<?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>73309</bug_id>
          
          <creation_ts>2011-11-29 04:50:05 -0800</creation_ts>
          <short_desc>[Qt] GC should be parallel on Qt platform</short_desc>
          <delta_ts>2012-02-20 09:39:45 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Roland Takacs">rtakacs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>kbalazs</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>levin+threading</cc>
    
    <cc>loki</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>paroga</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wingo</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zimmermann</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>510694</commentid>
    <comment_count>0</comment_count>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2011-11-29 04:50:05 -0800</bug_when>
    <thetext>I would like to make parallel gc on QT platform, because of the speed-up. It has been implemented already, but only for mac.
This patch is located on http://trac.webkit.org/changeset/98937.

I modified only the specific contents.

This is only an experimental patch to enable shared gc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511470</commentid>
    <comment_count>1</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2011-11-30 00:42:11 -0800</bug_when>
    <thetext>Hey,

Qt instead of QT since QT is QuickTime, I changed the topic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511521</commentid>
    <comment_count>2</comment_count>
      <attachid>117142</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2011-11-30 01:43:42 -0800</bug_when>
    <thetext>Created attachment 117142
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511541</commentid>
    <comment_count>3</comment_count>
      <attachid>117142</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2011-11-30 02:07:37 -0800</bug_when>
    <thetext>Comment on attachment 117142
proposed patch

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        These changes made the parallel gc feature available for non-mac ports.

That is not true. This patch adds Qt support only.
BTW, you have moved the core detection routine from ParallelJobs to WTF, which is OK, but you have forgot to mention this move here.

&gt; Source/JavaScriptCore/ChangeLog:17
&gt; +        * wtf/NumberOfCores.cpp: Added.

Did you add this to the project files? It looks like you missed it.

&gt; Source/JavaScriptCore/ChangeLog:19
&gt; +        * wtf/NumberOfCores.h: Added.

Ditto.

&gt; Source/JavaScriptCore/runtime/Heuristics.cpp:45
&gt; +#include &lt;wtf/NumberOfCores.h&gt;

I guess it will be an alphabetical order issue.

&gt; Source/JavaScriptCore/wtf/NumberOfCores.cpp:61
&gt; +        if (sysctlResult &gt;= 0) {
&gt; +
&gt; +            s_numOfCores = result;
&gt; +
&gt; +        }

Empty lines!
No need for the curly brackets in this case!

&gt; Source/JavaScriptCore/wtf/NumberOfCores.cpp:71
&gt; +        if (sysconfResult &gt;= 0) {
&gt; +
&gt; +            s_numOfCores = static_cast&lt;int&gt;(sysconfResult);
&gt; +
&gt; +        }

Empty lines, curly brackets!



Well, I guess it will fail on several ports. You should consider the project files.
Before sending a patch for review you should make sure do not brake anything.
At least you have to execute run-webkit-test on Qt port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512730</commentid>
    <comment_count>4</comment_count>
      <attachid>117142</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2011-12-01 06:41:31 -0800</bug_when>
    <thetext>Comment on attachment 117142
proposed patch

I will fix and test it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516548</commentid>
    <comment_count>5</comment_count>
      <attachid>118189</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2011-12-07 02:09:07 -0800</bug_when>
    <thetext>Created attachment 118189
This patch results some speed-ups on QT platform

The run-sunspider results:
Total: 183.9ms +/- 3.9%  [before modification]
Total: 151.2ms +/- 0.8%  [after modification]

The run-sunspider --v8-suite results:
Total: 947.5ms +/- 2.6% [before modification]
Total: 775.3ms +/- 6.6% [after modification]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516558</commentid>
    <comment_count>6</comment_count>
      <attachid>118189</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-12-07 02:27:34 -0800</bug_when>
    <thetext>Comment on attachment 118189
This patch results some speed-ups on QT platform

Nice speedup!

A couple of things:

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

&gt; Source/JavaScriptCore/runtime/Heuristics.cpp:-202
&gt;  } } // namespace JSC::Heuristics
&gt; -
&gt; -

Please don&apos;t delete these lines.

&gt; Source/JavaScriptCore/wtf/MainThread.h:54
&gt; +void initializeGCThreads();

Plural? I thought there is only one thread.

&gt; Source/JavaScriptCore/wtf/NumberOfCores.cpp:82
&gt;  #endif
&gt;  
&gt;      }
&gt; -
&gt;      return s_numOfCores;
&gt;  }
&gt;  

No node /trunk/Source/JavaScriptCore/wtf/NumberOfCores.cpp at revision 102229

The system does not know this file...

&gt; Source/JavaScriptCore/wtf/ParallelJobsGeneric.h:133
&gt; +    static Vector&lt; RefPtr&lt;ThreadPrivate&gt; &gt;* s_threadPool;    

Do not add extra whitepsace at the end of a line.

&gt; Source/JavaScriptCore/wtf/Platform.h:1120
&gt; -#if !defined(ENABLE_PARALLEL_GC) &amp;&amp; PLATFORM(MAC) &amp;&amp; ENABLE(COMPARE_AND_SWAP)
&gt; +#if !defined(ENABLE_PARALLEL_GC) &amp;&amp; (PLATFORM(MAC)  || PLATFORM(QT)) &amp;&amp; ENABLE(COMPARE_AND_SWAP)

Only one space between (PLATFORM(MAC) || PLATFORM(QT))

&gt; Source/JavaScriptCore/wtf/mac/MainThreadMac.mm:164
&gt;  }
&gt;  #endif
&gt; +*/

Why did you comment out these lines? Shouldn&apos;t you remove them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518261</commentid>
    <comment_count>7</comment_count>
      <attachid>118576</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2011-12-09 07:41:36 -0800</bug_when>
    <thetext>Created attachment 118576
This patch results some speed-ups on QT platform

Measurement Results:
*V8           speed-up:  3%  [From: 711.4ms   To: 690.7ms]
*V8 splay     speed-up: 15%  [From: 142.5ms   To: 121.6ms]
*Windscorpion speed-up:  2%  [From: 3353.1ms  To: 3281.6ms]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518267</commentid>
    <comment_count>8</comment_count>
      <attachid>118576</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-12-09 07:55:07 -0800</bug_when>
    <thetext>Comment on attachment 118576
This patch results some speed-ups on QT platform

Attachment 118576 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10827065</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518268</commentid>
    <comment_count>9</comment_count>
      <attachid>118576</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-09 08:02:21 -0800</bug_when>
    <thetext>Comment on attachment 118576
This patch results some speed-ups on QT platform

Attachment 118576 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10825107</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518271</commentid>
    <comment_count>10</comment_count>
      <attachid>118576</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-12-09 08:07:43 -0800</bug_when>
    <thetext>Comment on attachment 118576
This patch results some speed-ups on QT platform

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

Informal review.

&gt; Source/JavaScriptCore/wtf/NumberOfCores.cpp:3
&gt; + * Copyright (C) 2011 University of Szeged
&gt; + * All rights reserved.

Put these to one line, please!

&gt; Source/JavaScriptCore/wtf/NumberOfCores.cpp:48
&gt; +    if (s_numberOfCores &lt; 0) {
&gt; +
&gt; +#if OS(DARWIN) || OS(OPENBSD) || OS(NETBSD)
&gt; +

The preferred style is using early return, like:
if (s_numberOfCores &gt; 0)
    return s_numberOfCores;
...

&gt; Source/JavaScriptCore/wtf/NumberOfCores.cpp:61
&gt; +
&gt; +#elif OS(LINUX) || OS(AIX) || OS(SOLARIS)
&gt; +

no need for the newlines here and before/after the other # directives.

&gt; Source/JavaScriptCore/wtf/NumberOfCores.cpp:76
&gt; +
&gt; +#elif OS(WINDOWS)
&gt; +
&gt; +        UNUSED_PARAM(defaultIfUnavailable);
&gt; +        SYSTEM_INFO sysInfo;
&gt; +        GetSystemInfo(&amp;sysInfo);
&gt; +
&gt; +        s_numberOfCores = sysInfo.dwNumberOfProcessors;
&gt; +
&gt; +#else
&gt; +        s_numberOfCores = 1;

Originally there was a const int named defaultIfUnavailable for the fallback case, please keep it. Actually the UNUSED_PARAM would not build without it. Btw, changing the value to 1 (it used to be 2) is ok, we should not be too optimistic.

&gt; Source/JavaScriptCore/wtf/ParallelJobsGeneric.cpp:58
&gt; +    if (s_maxNumberOfCores == -1)
&gt; +        s_maxNumberOfCores = numberOfCores();

You don&apos;t need the static here, you already cache the value in numberOfCores(), so it&apos;s ok to call it every time. Btw, it would be better if the cached case of numberOfCores() could be inline.

&gt; Source/JavaScriptCore/wtf/ParallelJobsGeneric.h:93
&gt; -    static int s_maxNumberOfParallelThreads;
&gt; +    static int s_maxNumberOfCores;

You no longer need this.

&gt; Source/JavaScriptCore/wtf/wtf.pro:201
&gt; +    NumberOfCores.cpp \

You should add these at least to the Mac build as well, but maybe the best would be to add it to every build so it would be available cross-platform in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518273</commentid>
    <comment_count>11</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-12-09 08:10:28 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 118576 [details])
&gt; Attachment 118576 [details] did not pass efl-ews (efl):
&gt; Output: http://queues.webkit.org/results/10825107

You need to guard the initializeGCThreads with ENABLE(PARALLEL_GC), otherwise it&apos;s a defined but not used function on !mac &amp;&amp; !qt platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518681</commentid>
    <comment_count>12</comment_count>
      <attachid>118576</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-09 17:33:18 -0800</bug_when>
    <thetext>Comment on attachment 118576
This patch results some speed-ups on QT platform

Attachment 118576 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10832459</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526113</commentid>
    <comment_count>13</comment_count>
      <attachid>120291</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2011-12-22 02:31:53 -0800</bug_when>
    <thetext>Created attachment 120291
This patch results some speed-ups on QT platform.

SunSpider measurement results:

V8           speed-up:  1.071x as fast  [From: 746.1ms  To: 696.4ms ] [7 %]
V8 Splay     speed-up:  1.082x as fast  [From: 3490.4ms To: 3226.7ms] [8 %]
WindScorpion speed-up:  1.158x as fast  [From: 145.8ms  To: 125.9ms ] [15,8 %]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526131</commentid>
    <comment_count>14</comment_count>
      <attachid>120291</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-22 02:48:40 -0800</bug_when>
    <thetext>Comment on attachment 120291
This patch results some speed-ups on QT platform.

Attachment 120291 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10986409</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526141</commentid>
    <comment_count>15</comment_count>
      <attachid>120291</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-22 03:09:50 -0800</bug_when>
    <thetext>Comment on attachment 120291
This patch results some speed-ups on QT platform.

Attachment 120291 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10997421</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526147</commentid>
    <comment_count>16</comment_count>
      <attachid>120291</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-22 03:13:10 -0800</bug_when>
    <thetext>Comment on attachment 120291
This patch results some speed-ups on QT platform.

Attachment 120291 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10998395</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526214</commentid>
    <comment_count>17</comment_count>
      <attachid>120313</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2011-12-22 06:05:55 -0800</bug_when>
    <thetext>Created attachment 120313
This patch results some speed-ups on QT platform.

SunSpider measurement results:

V8           speed-up:  1.071x as fast  [From: 746.1ms  To: 696.4ms ] [7 %]
V8 Splay     speed-up:  1.082x as fast  [From: 3490.4ms To: 3226.7ms] [8 %]
WindScorpion speed-up:  1.158x as fast  [From: 145.8ms  To: 125.9ms ] [15,8 %]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526224</commentid>
    <comment_count>18</comment_count>
      <attachid>120313</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-22 06:45:48 -0800</bug_when>
    <thetext>Comment on attachment 120313
This patch results some speed-ups on QT platform.

Attachment 120313 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10986488</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526226</commentid>
    <comment_count>19</comment_count>
      <attachid>120313</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-22 06:46:10 -0800</bug_when>
    <thetext>Comment on attachment 120313
This patch results some speed-ups on QT platform.

Attachment 120313 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11000502</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526232</commentid>
    <comment_count>20</comment_count>
      <attachid>120313</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-22 06:55:07 -0800</bug_when>
    <thetext>Comment on attachment 120313
This patch results some speed-ups on QT platform.

Attachment 120313 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10981526</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526840</commentid>
    <comment_count>21</comment_count>
      <attachid>120313</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-12-23 05:37:54 -0800</bug_when>
    <thetext>Comment on attachment 120313
This patch results some speed-ups on QT platform.

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

&gt; Source/JavaScriptCore/wtf/NumberOfCores.cpp:48
&gt; +#if OS(DARWIN) || OS(OPENBSD) || OS(NETBSD)

This should work for OS(FREEBSD) as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528443</commentid>
    <comment_count>22</comment_count>
      <attachid>120869</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-02 01:42:14 -0800</bug_when>
    <thetext>Created attachment 120869
This patch results some speed-ups on QT platform.

SunSpider measurement results:

V8           speed-up:  1.071x as fast  [From: 746.1ms  To: 696.4ms ] [7 %]
V8 Splay     speed-up:  1.082x as fast  [From: 3490.4ms To: 3226.7ms] [8 %]
WindScorpion speed-up:  1.158x as fast  [From: 145.8ms  To: 125.9ms ] [15,8 %]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528448</commentid>
    <comment_count>23</comment_count>
      <attachid>120869</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-02 02:13:58 -0800</bug_when>
    <thetext>Comment on attachment 120869
This patch results some speed-ups on QT platform.

Attachment 120869 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10924904</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528482</commentid>
    <comment_count>24</comment_count>
      <attachid>120875</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-02 05:50:17 -0800</bug_when>
    <thetext>Created attachment 120875
This patch results some speed-ups on QT platform.

SunSpider measurement results:

V8           speed-up:  1.071x as fast  [From: 746.1ms  To: 696.4ms ] [7 %]
V8 Splay     speed-up:  1.082x as fast  [From: 3490.4ms To: 3226.7ms] [8 %]
WindScorpion speed-up:  1.158x as fast  [From: 145.8ms  To: 125.9ms ] [15,8 %]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528485</commentid>
    <comment_count>25</comment_count>
      <attachid>120876</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-02 05:53:18 -0800</bug_when>
    <thetext>Created attachment 120876
This file includes measurements with and without &quot;gc()&quot; call</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528503</commentid>
    <comment_count>26</comment_count>
      <attachid>120875</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-02 07:02:02 -0800</bug_when>
    <thetext>Comment on attachment 120875
This patch results some speed-ups on QT platform.

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

Informal review.
Some nits, otherwise looks good to me.

&gt; Source/JavaScriptCore/GNUmakefile.list.am:607
&gt; +        Source/JavaScriptCore/wtf/NumberOfCores.h \
&gt; +        Source/JavaScriptCore/wtf/NumberOfCores.cpp \

Nit: wrong identation

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:263
&gt; +#if ENABLE(PARALLEL_GC)
&gt; +static ThreadSpecific&lt;bool&gt;* isGCThread;
&gt; +
&gt; +void initializeGCThreads()
&gt; +{
&gt; +    isGCThread = new ThreadSpecific&lt;bool&gt;();
&gt; +}
&gt; +#endif
&gt; +
&gt; +#if ENABLE(PARALLEL_GC)
&gt; +void registerGCThread()
&gt; +{

Nit: no need for the #endif+#if again, please remove them.

&gt; Source/JavaScriptCore/wtf/NumberOfCores.cpp:46
&gt; +    if (s_numberOfCores &gt; 0)
&gt; +        return s_numberOfCores;

Nit: I would put a newline after that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528691</commentid>
    <comment_count>27</comment_count>
      <attachid>120917</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-03 01:19:39 -0800</bug_when>
    <thetext>Created attachment 120917
This patch results some speed-ups on QT platform.

SunSpider measurement results:

V8           speed-up:  1.071x as fast  [From: 746.1ms  To: 696.4ms ] [7 %]
WindScorpion speed-up:  1.082x as fast  [From: 3490.4ms To: 3226.7ms] [8 %]
V8 Splay     speed-up:  1.158x as fast  [From: 145.8ms  To: 125.9ms ] [15,8 %]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528692</commentid>
    <comment_count>28</comment_count>
      <attachid>120917</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-03 01:25:56 -0800</bug_when>
    <thetext>Comment on attachment 120917
This patch results some speed-ups on QT platform.

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

&gt; Source/JavaScriptCore/wtf/NumberOfCores.h:26
&gt; +int numberOfCores();

Why not processorCoreCount? or similar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528702</commentid>
    <comment_count>29</comment_count>
      <attachid>120921</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-03 02:24:35 -0800</bug_when>
    <thetext>Created attachment 120921
This patch results some speed-ups on QT platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529469</commentid>
    <comment_count>30</comment_count>
      <attachid>121101</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-04 04:57:15 -0800</bug_when>
    <thetext>Created attachment 121101
fixed the windows build problem

I added my new files to win build file to build successful on windows, furthermore I took Kenneth&apos;s advice, and I renamed my &apos;NumberOfCores()&apos; function to &apos;NumberOfProcessorCores()&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530099</commentid>
    <comment_count>31</comment_count>
      <attachid>121241</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-05 01:38:02 -0800</bug_when>
    <thetext>Created attachment 121241
Undefined UNUSED_PARAM resolved

I included the &apos;UnusedParam.h&apos; in my file to see the UNUSED_PARAM definition...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530440</commentid>
    <comment_count>32</comment_count>
      <attachid>121241</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 11:02:01 -0800</bug_when>
    <thetext>Comment on attachment 121241
Undefined UNUSED_PARAM resolved

Attachment 121241 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11141036

New failing tests:
http/tests/inspector/network/download.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533805</commentid>
    <comment_count>33</comment_count>
      <attachid>122009</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-11 05:08:41 -0800</bug_when>
    <thetext>Created attachment 122009
working progress test

It is a working progress test, its purpose is whether it builds on Windows platform...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533828</commentid>
    <comment_count>34</comment_count>
      <attachid>122009</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-11 05:48:50 -0800</bug_when>
    <thetext>Comment on attachment 122009
working progress test

Attachment 122009 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11167856</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534766</commentid>
    <comment_count>35</comment_count>
      <attachid>122221</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-12 05:42:02 -0800</bug_when>
    <thetext>Created attachment 122221
fixed the unresolved external symbol problem

I added the isMainThreadOrGCThread&apos;s symbol to the JavaScriptCore.order file to see the &apos;bool isMainThreadOrGCThread()&apos; function on windows platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535550</commentid>
    <comment_count>36</comment_count>
      <attachid>122403</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-13 02:35:42 -0800</bug_when>
    <thetext>Created attachment 122403
Fixed the &apos;Patch does not apply&apos; problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536930</commentid>
    <comment_count>37</comment_count>
      <attachid>122728</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-17 00:35:39 -0800</bug_when>
    <thetext>Created attachment 122728
There is some change in xproj and NumberOfCores files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536983</commentid>
    <comment_count>38</comment_count>
      <attachid>122739</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-17 02:30:06 -0800</bug_when>
    <thetext>Created attachment 122739
fixed the unresolved external symbol problem on Windows platform</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537020</commentid>
    <comment_count>39</comment_count>
      <attachid>122739</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-01-17 04:37:47 -0800</bug_when>
    <thetext>Comment on attachment 122739
fixed the unresolved external symbol problem on Windows platform

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



&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Two files had been added to the project, namely NumberOfCores.h/cpp,

have been

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:253
&gt; +    if (!isGCThread) {

I would write the comment in 1 line before the if and leave the brackets.

&gt; Source/WTF/ChangeLog:8
&gt; +        Two files had been added to the project, namely NumberOfCores.h/cpp,

have been

Otherwise I have no objections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537032</commentid>
    <comment_count>40</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-17 05:12:28 -0800</bug_when>
    <thetext>&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/MainThread.cpp:253
&gt; &gt; +    if (!isGCThread) {
&gt; 
&gt; I would write the comment in 1 line before the if and leave the brackets.

Let me nitting you over! ;) I disagree with this because:
1. it is copy-pasted code
2. scoping the comment makes it easier to read, this is the more common practice in WebKit I think</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537661</commentid>
    <comment_count>41</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-01-17 23:39:24 -0800</bug_when>
    <thetext>(In reply to comment #40)
&gt; Let me nitting you over! ;) I disagree with this because:
&gt; 1. it is copy-pasted code
&gt; 2. scoping the comment makes it easier to read, this is the more common practice in WebKit I think

Right! Then let&apos;s see this patch in the trunk. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537687</commentid>
    <comment_count>42</comment_count>
      <attachid>122739</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-01-18 00:53:27 -0800</bug_when>
    <thetext>Comment on attachment 122739
fixed the unresolved external symbol problem on Windows platform

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

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:-92
&gt; -
&gt;  #if !PLATFORM(MAC)
&gt; -

Why did you removed these lines?

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:-107
&gt; -
&gt;  #else
&gt; -

Ditto.

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:255
&gt; +        // This happens if we&apos;re running in a process that doesn&apos;t care about
&gt; +        // MainThread.

Could you write a better explanation here?

Ok, basically I would split this patch into two:

One which adds the number of processor cores part, and a followup patch which adds the parallel gc feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537724</commentid>
    <comment_count>43</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-18 02:03:46 -0800</bug_when>
    <thetext>Well, I think the main issue that the changelog don&apos;t describe the changes in detail so it&apos;s hard to review.

(In reply to comment #42)
&gt; (From update of attachment 122739 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122739&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/MainThread.cpp:-92
&gt; &gt; -
&gt; &gt;  #if !PLATFORM(MAC)
&gt; &gt; -
&gt; 
&gt; Why did you removed these lines?
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/MainThread.cpp:-107
&gt; &gt; -
&gt; &gt;  #else
&gt; &gt; -
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/MainThread.cpp:255
&gt; &gt; +        // This happens if we&apos;re running in a process that doesn&apos;t care about
&gt; &gt; +        // MainThread.
&gt; 
&gt; Could you write a better explanation here?

This is copy-pasted code, I don&apos;t think the comment should be changed.

&gt; 
&gt; Ok, basically I would split this patch into two:
&gt; 
&gt; One which adds the number of processor cores part, and a followup patch which adds the parallel gc feature.

We already have the number of processor cores part, it has been just moved into WTF to be accessible in JSC. Zoltan, do you agree with me that the patch is ok as it is with a better changelog?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537883</commentid>
    <comment_count>44</comment_count>
      <attachid>122934</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-18 08:20:26 -0800</bug_when>
    <thetext>Created attachment 122934
This patch do the parallel gc only

I took Zoltan Herceg&apos;s advice, so I separated to two part my patch. This part contains the parallel gc feature only.
The processor core counter part is located at https://bugs.webkit.org/show_bug.cgi?id=76530.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539340</commentid>
    <comment_count>45</comment_count>
      <attachid>122934</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-20 01:21:23 -0800</bug_when>
    <thetext>Comment on attachment 122934
This patch do the parallel gc only

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

I think we need yet another iteration.

&gt; Source/JavaScriptCore/ChangeLog:25
&gt; +        * JavaScriptCore.order:
&gt; +        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
&gt; +        * wtf/MainThread.cpp:
&gt; +        (WTF::initializeMainThread):
&gt; +        (WTF::registerGCThread):
&gt; +        (WTF::isMainThreadOrGCThread):
&gt; +        * wtf/MainThread.h:
&gt; +        * wtf/Platform.h:
&gt; +        * wtf/mac/MainThreadMac.mm:

Please examine what have you changed and why in a few words.

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:-92
&gt; -
&gt;  #if !PLATFORM(MAC)
&gt; -

Again: why??? Zoltan already pointed out in his review that you should not make such changes.

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:-107
&gt; -
&gt;  #else
&gt; -

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539435</commentid>
    <comment_count>46</comment_count>
      <attachid>123295</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-20 05:34:30 -0800</bug_when>
    <thetext>Created attachment 123295
I did the modifications requested by Zoltan Herczeg and Balazs Kelemen

I wrote a few examination to my changes and I did not removed the new lines around the preprocessor macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539469</commentid>
    <comment_count>47</comment_count>
      <attachid>123308</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-20 06:52:19 -0800</bug_when>
    <thetext>Created attachment 123308
final update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539490</commentid>
    <comment_count>48</comment_count>
      <attachid>123312</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-20 07:22:38 -0800</bug_when>
    <thetext>Created attachment 123312
Final update

I forgot to include threadspecific.h , but this patch fixes this problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540397</commentid>
    <comment_count>49</comment_count>
      <attachid>123523</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-22 23:24:58 -0800</bug_when>
    <thetext>Created attachment 123523
working progress test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540437</commentid>
    <comment_count>50</comment_count>
      <attachid>123529</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-23 01:42:34 -0800</bug_when>
    <thetext>Created attachment 123529
working progress test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542047</commentid>
    <comment_count>51</comment_count>
      <attachid>123893</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-24 23:59:48 -0800</bug_when>
    <thetext>Created attachment 123893
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542107</commentid>
    <comment_count>52</comment_count>
      <attachid>123903</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-25 02:21:15 -0800</bug_when>
    <thetext>Created attachment 123903
FINAL PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542110</commentid>
    <comment_count>53</comment_count>
      <attachid>123903</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-25 02:25:46 -0800</bug_when>
    <thetext>Comment on attachment 123903
FINAL PATCH

For what it&apos;s worth, this looks right to me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542111</commentid>
    <comment_count>54</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-25 02:26:30 -0800</bug_when>
    <thetext>(In reply to comment #53)
&gt; (From update of attachment 123903 [details])
&gt; For what it&apos;s worth, this looks right to me!

(However I&apos;ll let one of the Qt folks decide the final review.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542927</commentid>
    <comment_count>55</comment_count>
      <attachid>124070</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-26 00:44:52 -0800</bug_when>
    <thetext>Created attachment 124070
Final update

I moved &apos; #include &lt;wtf/ThreadSpecific.h&gt; &apos; to the MainThread.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542929</commentid>
    <comment_count>56</comment_count>
      <attachid>124070</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-01-26 00:48:38 -0800</bug_when>
    <thetext>Comment on attachment 124070
Final update

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542985</commentid>
    <comment_count>57</comment_count>
      <attachid>124070</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-26 02:22:40 -0800</bug_when>
    <thetext>Comment on attachment 124070
Final update

Clearing flags on attachment: 124070

Committed r105982: &lt;http://trac.webkit.org/changeset/105982&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542986</commentid>
    <comment_count>58</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-26 02:22:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543030</commentid>
    <comment_count>59</comment_count>
      <attachid>124070</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-01-26 03:43:51 -0800</bug_when>
    <thetext>Comment on attachment 124070
Final update

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

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:254
&gt; +static ThreadSpecific&lt;bool&gt;* isGCThread;

This breaks the world on mac. isGCThread is still defined in MainThreadMac.mm.
initializeGCThreading creates the one in MainThreadMac.mm, but this ThreadSpecific is never initialized!
I don&apos;t get how this can work for you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543034</commentid>
    <comment_count>60</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-01-26 03:50:19 -0800</bug_when>
    <thetext>(In reply to comment #59)
&gt; (From update of attachment 124070 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124070&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/MainThread.cpp:254
&gt; &gt; +static ThreadSpecific&lt;bool&gt;* isGCThread;
&gt; 
&gt; This breaks the world on mac. isGCThread is still defined in MainThreadMac.mm.
&gt; initializeGCThreading creates the one in MainThreadMac.mm, but this ThreadSpecific is never initialized!
&gt; I don&apos;t get how this can work for you?

I suggest you move initializeGCThreading() from MainThreadMac.mm to MainThread.cpp.
But you also have to call them somewhere from the Qt platform code, otherwise it&apos;ll still crash random for you - as it does now in trunk with this patch applied.

I&apos;m rolling it out for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543058</commentid>
    <comment_count>61</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-01-26 04:30:24 -0800</bug_when>
    <thetext>Reopen, because it was rolled out - http://trac.webkit.org/changeset/105987</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548613</commentid>
    <comment_count>62</comment_count>
      <attachid>125302</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-02-03 03:21:39 -0800</bug_when>
    <thetext>Created attachment 125302
Final update

Thanks Nikolas to show me what the errors are, so I moved the initializeGCThreads to the MainThread.cpp furthermore I removed the isGCThread from MainThreadMac.mm because MainThread.cpp already contains it.
I created new measurements that I inserted into the Changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553891</commentid>
    <comment_count>63</comment_count>
      <attachid>125302</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-02-09 23:59:55 -0800</bug_when>
    <thetext>Comment on attachment 125302
Final update

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553973</commentid>
    <comment_count>64</comment_count>
      <attachid>125302</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-10 02:49:05 -0800</bug_when>
    <thetext>Comment on attachment 125302
Final update

Clearing flags on attachment: 125302

Committed r107390: &lt;http://trac.webkit.org/changeset/107390&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553974</commentid>
    <comment_count>65</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-10 02:49:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560264</commentid>
    <comment_count>66</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-02-20 09:39:45 -0800</bug_when>
    <thetext>You added a few &quot;#if PLATFORM(WINDOWS)&quot;. Did you mean &quot;#if PLATFORM(WIN)&quot; or is the change correct?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117142</attachid>
            <date>2011-11-30 01:43:42 -0800</date>
            <delta_ts>2011-12-07 02:11:36 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>20111130.patch</filename>
            <type>text/plain</type>
            <size>13753</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA4YjQzZWYuLjc3NDVlZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDExLTExLTMwICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIG5vbi1tYWMgcG9ydHMuCisKKyAgICAgICAgKiBydW50aW1l
L0hldXJpc3RpY3MuY3BwOgorICAgICAgICAoSlNDOjpIZXVyaXN0aWNzOjppbml0aWFsaXplSGV1
cmlzdGljcyk6CisgICAgICAgICogd3RmL01haW5UaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjpp
bml0aWFsaXplR0NUaHJlYWRzKToKKyAgICAgICAgKFdURjo6cmVnaXN0ZXJHQ1RocmVhZCk6Cisg
ICAgICAgIChXVEY6OmlzTWFpblRocmVhZE9yR0NUaHJlYWQpOgorICAgICAgICAqIHd0Zi9NYWlu
VGhyZWFkLmg6CisgICAgICAgICogd3RmL051bWJlck9mQ29yZXMuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdURjo6bnVtYmVyT2ZDb3Jlcyk6CisgICAgICAgICogd3RmL051bWJlck9mQ29yZXMuaDog
QWRkZWQuCisgICAgICAgICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAq
IHd0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmg6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52aXJv
bm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1lbnQpOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgor
ICAgICAgICAqIHd0Zi9tYWMvTWFpblRocmVhZE1hYy5tbToKKyAgICAgICAgKiB3dGYvd3RmLnBy
aToKKwogMjAxMS0xMS0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IG1ha2UgZGlzdGNoZWNrIGJ1aWxkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGV1cmlzdGljcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZXVyaXN0aWNzLmNwcAppbmRleCBiNWZkZDhh
Li4yODcxNzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZXVy
aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZXVyaXN0aWNz
LmNwcApAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNl
bmRpZgogCisjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KKwogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBIZXVyaXN0aWNzIHsKIAogdW5zaWduZWQgbWF4aW11bUV2YWxPcHRpbWl6YXRp
b25DYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50OwpAQCAtMTcwLDE0ICsxNzIsOCBAQCB2b2lkIGlu
aXRpYWxpemVIZXVyaXN0aWNzKCkKICAgICBTRVQoc2hhcmVkU3RhY2tXYWtldXBUaHJlc2hvbGQs
ICAgICAgICAgICAxKTsKICAgICBTRVQob3BhcXVlUm9vdE1lcmdlVGhyZXNob2xkLCAgICAgICAg
ICAgICAxMDAwKTsKIAotICAgIGludCBjcHVzVG9Vc2UgPSAxOwotI2lmIE9TKERBUldJTikgJiYg
RU5BQkxFKFBBUkFMTEVMX0dDKQotICAgIGludCBuYW1lWzJdOwotICAgIHNpemVfdCB2YWx1ZVNp
emUgPSBzaXplb2YoY3B1c1RvVXNlKTsKLSAgICBuYW1lWzBdID0gQ1RMX0hXOwotICAgIG5hbWVb
MV0gPSBIV19BVkFJTENQVTsKLSAgICBzeXNjdGwobmFtZSwgMiwgJmNwdXNUb1VzZSwgJnZhbHVl
U2l6ZSwgMCwgMCk7Ci0jZW5kaWYKKyAgICBpbnQgY3B1c1RvVXNlID0gV1RGOjpudW1iZXJPZkNv
cmVzKCk7CisKICAgICAvLyBXZSBkb24ndCBzY2FsZSBzbyB3ZWxsIGJleW9uZCA0LgogICAgIGlm
IChjcHVzVG9Vc2UgPiA0KQogICAgICAgICBjcHVzVG9Vc2UgPSA0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvTWFpblRocmVhZC5jcHAKaW5kZXggOTY3YjcxNS4uYThmM2IxMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCkBAIC0yMzgsNCArMjM4LDQyIEBAIGJv
b2wgaXNNYWluVGhyZWFkKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQor
c3RhdGljIFRocmVhZFNwZWNpZmljPGJvb2w+KiBpc0dDVGhyZWFkOworCit2b2lkIGluaXRpYWxp
emVHQ1RocmVhZHMoKQoreworICAgIGlzR0NUaHJlYWQgPSBuZXcgVGhyZWFkU3BlY2lmaWM8Ym9v
bD4oKTsKK30KKyNlbHNlCitzdGF0aWMgdm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCkgeyB9Cisj
ZW5kaWYKKworI2lmIEVOQUJMRShQQVJBTExFTF9HQykKK3ZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgp
Cit7CisgICAgaWYgKCFpc0dDVGhyZWFkKSB7CisgICAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiB3
ZSdyZSBydW5uaW5nIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBhYm91dAorICAgICAg
ICAvLyBNYWluVGhyZWFkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgKippc0dDVGhy
ZWFkID0gdHJ1ZTsKK30KKworYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKK3sKKyAgICBp
ZiAoaXNHQ1RocmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQorI2Vsc2UKKy8vIFRoaXMgaXMg
bmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVw
cm9jZXNzb3IgbWFjcm9zLgorYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKK3sKKyAgICBy
ZXR1cm4gaXNNYWluVGhyZWFkKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCmluZGV4IDFmYzBlMzIuLmRlYWJmYjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW5jbHVkZSAiUGxhdGZvcm0uaCIKIAogI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUg
PHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtNTAsNiArNTEs
NyBAQCB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCBwYXVzZWQpOwogCiBi
b29sIGlzTWFpblRocmVhZCgpOwogI2lmIEVOQUJMRShQQVJBTExFTF9HQykKK3ZvaWQgaW5pdGlh
bGl6ZUdDVGhyZWFkcygpOwogdm9pZCByZWdpc3RlckdDVGhyZWFkKCk7CiBib29sIGlzTWFpblRo
cmVhZE9yR0NUaHJlYWQoKTsKICNlbGlmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL051bWJlck9mQ29yZXMuY3BwCmluZGV4IGU2OWRlMjkuLjkzOWI5ZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcApAQCAtMCwwICsxLDkw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJOdW1iZXJPZkNvcmVzLmgiCisKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5CU0QpIHx8IE9T
KE5FVEJTRCkKKyNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+
CisjZWxpZiBPUyhMSU5VWCkgfHwgT1MoQUlYKSB8fCBPUyhTT0xBUklTKQorI2luY2x1ZGUgPHVu
aXN0ZC5oPgorI2VsaWYgT1MoV0lORE9XUykKKyNpbmNsdWRlIDxXaW5kb3dzLmg+CisjZW5kaWYK
KworbmFtZXNwYWNlIFdURiB7CisKK2ludCBudW1iZXJPZkNvcmVzKCkKK3sKKyAgICBzdGF0aWMg
aW50IHNfbnVtT2ZDb3JlcyA9IC0xOworCisgICAgaWYgKHNfbnVtT2ZDb3JlcyA8IDApIHsKKwor
I2lmIE9TKERBUldJTikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQorCisgICAgICAgIHVu
c2lnbmVkIHJlc3VsdDsKKyAgICAgICAgc2l6ZV90IGxlbmd0aCA9IHNpemVvZihyZXN1bHQpOwor
ICAgICAgICBpbnQgbmFtZVtdID0geworICAgICAgICAgICAgICAgIENUTF9IVywKKyAgICAgICAg
ICAgICAgICBIV19OQ1BVCisgICAgICAgIH07CisgICAgICAgIGludCBzeXNjdGxSZXN1bHQgPSBz
eXNjdGwobmFtZSwgc2l6ZW9mKG5hbWUpIC8gc2l6ZW9mKGludCksICZyZXN1bHQsICZsZW5ndGgs
IDAsIDApOworCisgICAgICAgIGlmIChzeXNjdGxSZXN1bHQgPj0gMCkgeworCisgICAgICAgICAg
ICBzX251bU9mQ29yZXMgPSByZXN1bHQ7CisKKyAgICAgICAgfQorCisjZWxpZiBPUyhMSU5VWCkg
fHwgT1MoQUlYKSB8fCBPUyhTT0xBUklTKQorCisgICAgICAgIGxvbmcgc3lzY29uZlJlc3VsdCA9
IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOworCisgICAgICAgIGlmIChzeXNjb25mUmVz
dWx0ID49IDApIHsKKworICAgICAgICAgICAgc19udW1PZkNvcmVzID0gc3RhdGljX2Nhc3Q8aW50
PihzeXNjb25mUmVzdWx0KTsKKworICAgICAgICB9CisKKyNlbGlmIE9TKFdJTkRPV1MpCisKKyAg
ICAgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRJZlVuYXZhaWxhYmxlKTsKKyAgICAgICAgU1lTVEVN
X0lORk8gc3lzSW5mbzsKKyAgICAgICAgR2V0U3lzdGVtSW5mbygmc3lzSW5mbyk7CisKKyAgICAg
ICAgc19udW1PZkNvcmVzID0gc3lzSW5mby5kd051bWJlck9mUHJvY2Vzc29yczsKKworI2Vsc2UK
KyAgICAgICAgc19udW1PZkNvcmVzID0gMTsKKyNlbmRpZgorCisgICAgfQorCisgICAgcmV0dXJu
IHNfbnVtT2ZDb3JlczsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9OdW1iZXJPZkNvcmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9m
Q29yZXMuaAppbmRleCBlNjlkZTI5Li45YzJkYjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL051bWJlck9mQ29yZXMuaApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKwor
I2lmbmRlZiBOdW1iZXJPZkNvcmVzX2gKKyNkZWZpbmUgTnVtYmVyT2ZDb3Jlc19oCisKK25hbWVz
cGFjZSBXVEYgeworCitpbnQgbnVtYmVyT2ZDb3JlcygpOworCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKaW5kZXgg
NzY3NzQyNy4uMmUyNDU1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bh
cmFsbGVsSm9ic0dlbmVyaWMuY3BwCkBAIC0zMiw0NyArMzIsMTAgQEAKICNpbmNsdWRlICJQYXJh
bGxlbEpvYnMuaCIKICNpbmNsdWRlICJVbnVzZWRQYXJhbS5oIgogCi0jaWYgT1MoREFSV0lOKSB8
fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCi0jaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgotI2lu
Y2x1ZGUgPHN5cy90eXBlcy5oPgotI2VsaWYgT1MoTElOVVgpIHx8IE9TKEFJWCkgfHwgT1MoU09M
QVJJUykKLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNlbGlmIE9TKFdJTkRPV1MpCi0jaW5jbHVkZSA8
V2luZG93cy5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXVEYgewogCiBWZWN0b3I8IFJlZlB0cjxQ
YXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlPiA+KiBQYXJhbGxlbEVudmlyb25tZW50
OjpzX3RocmVhZFBvb2wgPSAwOwogCi1pbnQgUGFyYWxsZWxFbnZpcm9ubWVudDo6c19tYXhOdW1i
ZXJPZlBhcmFsbGVsVGhyZWFkcyA9IC0xOwotCi12b2lkIFBhcmFsbGVsRW52aXJvbm1lbnQ6OmRl
dGVybWluZU1heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKCkKLXsKLSAgICBjb25zdCBpbnQgZGVm
YXVsdElmVW5hdmFpbGFibGUgPSAyOwotI2lmIE9TKERBUldJTikgfHwgT1MoT1BFTkJTRCkgfHwg
T1MoTkVUQlNEKQotICAgIHVuc2lnbmVkIHJlc3VsdDsKLSAgICBzaXplX3QgbGVuZ3RoID0gc2l6
ZW9mKHJlc3VsdCk7Ci0gICAgaW50IG5hbWVbXSA9IHsKLSAgICAgICAgQ1RMX0hXLAotICAgICAg
ICBIV19OQ1BVCi0gICAgfTsKLSAgICBpbnQgc3lzY3RsUmVzdWx0ID0gc3lzY3RsKG5hbWUsIHNp
emVvZihuYW1lKSAvIHNpemVvZihpbnQpLCAmcmVzdWx0LCAmbGVuZ3RoLCAwLCAwKTsKLSAgICBz
X21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lzY3RsUmVzdWx0IDwgMCA/IGRlZmF1bHRJ
ZlVuYXZhaWxhYmxlIDogcmVzdWx0OwotI2VsaWYgT1MoTElOVVgpIHx8IE9TKEFJWCkgfHwgT1Mo
U09MQVJJUykKLSAgICBsb25nIHN5c2NvbmZSZXN1bHQgPSBzeXNjb25mKF9TQ19OUFJPQ0VTU09S
U19PTkxOKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lzY29uZlJlc3Vs
dCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0YXRpY19jYXN0PGludD4oc3lzY29uZlJl
c3VsdCk7Ci0jZWxpZiBPUyhXSU5ET1dTKQotICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0SWZVbmF2
YWlsYWJsZSk7Ci0KLSAgICBTWVNURU1fSU5GTyBzeXNJbmZvOwotICAgIEdldFN5c3RlbUluZm8o
JnN5c0luZm8pOwotICAgIHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPSBzeXNJbmZvLmR3
TnVtYmVyT2ZQcm9jZXNzb3JzOwotI2Vsc2UKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJl
YWRzID0gZGVmYXVsdElmVW5hdmFpbGFibGU7Ci0jZW5kaWYKLX0KLQogYm9vbCBQYXJhbGxlbEVu
dmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp0cnlMb2NrRm9yKFBhcmFsbGVsRW52aXJvbm1lbnQq
IHBhcmVudCkKIHsKICAgICBib29sIGxvY2tlZCA9IG1fbXV0ZXgudHJ5TG9jaygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaAppbmRleCBlN2Qy
NDQxLi45NjJmMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFs
bGVsSm9ic0dlbmVyaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVs
Sm9ic0dlbmVyaWMuaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaWYgRU5BQkxFKFRIUkVBRElOR19H
RU5FUklDKQogCisjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtNDYsMTEgKzQ3
LDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVF9BUkcocmVxdWVzdGVkSm9iTnVt
YmVyLCByZXF1ZXN0ZWRKb2JOdW1iZXIgPj0gMSk7CiAKLSAgICAgICAgaWYgKHNfbWF4TnVtYmVy
T2ZQYXJhbGxlbFRocmVhZHMgPT0gLTEpCi0gICAgICAgICAgICBkZXRlcm1pbmVNYXhOdW1iZXJP
ZlBhcmFsbGVsVGhyZWFkcygpOworICAgICAgICBpbnQgbnVtT2ZDb3JlcyA9IG51bWJlck9mQ29y
ZXMoKTsKIAotICAgICAgICBpZiAoIXJlcXVlc3RlZEpvYk51bWJlciB8fCByZXF1ZXN0ZWRKb2JO
dW1iZXIgPiBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKQotICAgICAgICAgICAgcmVxdWVz
dGVkSm9iTnVtYmVyID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNfbWF4TnVtYmVyT2ZQYXJhbGxl
bFRocmVhZHMpOworICAgICAgICBpZiAoIXJlcXVlc3RlZEpvYk51bWJlciB8fCByZXF1ZXN0ZWRK
b2JOdW1iZXIgPiBudW1PZkNvcmVzKQorICAgICAgICAgICAgcmVxdWVzdGVkSm9iTnVtYmVyID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG51bU9mQ29yZXMpOwogCiAgICAgICAgIGlmICghc190aHJl
YWRQb29sKQogICAgICAgICAgICAgc190aHJlYWRQb29sID0gbmV3IFZlY3RvcjwgUmVmUHRyPFRo
cmVhZFByaXZhdGU+ID4oKTsKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgICAgICAvLyBU
aGUgbWFpbiB0aHJlYWQgc2hvdWxkIGJlIGFsc28gYSB3b3JrZXIuCiAgICAgICAgIGludCBtYXhO
dW1iZXJPZk5ld1RocmVhZHMgPSByZXF1ZXN0ZWRKb2JOdW1iZXIgLSAxOwogCi0gICAgICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyAmJiBtX3RocmVh
ZHMuc2l6ZSgpIDwgbWF4TnVtYmVyT2ZOZXdUaHJlYWRzOyArK2kpIHsKKyAgICAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBudW1PZkNvcmVzICYmIG1fdGhyZWFkcy5zaXplKCkgPCBtYXhOdW1iZXJP
Zk5ld1RocmVhZHM7ICsraSkgewogICAgICAgICAgICAgaWYgKHNfdGhyZWFkUG9vbC0+c2l6ZSgp
IDwgaSArIDEpCiAgICAgICAgICAgICAgICAgc190aHJlYWRQb29sLT5hcHBlbmQoVGhyZWFkUHJp
dmF0ZTo6Y3JlYXRlKCkpOwogCkBAIC0xMjUsMTUgKzEyNSwxMiBAQCBwdWJsaWM6CiAgICAgfTsK
IAogcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVs
VGhyZWFkcygpOwogCiAgICAgVGhyZWFkRnVuY3Rpb24gbV90aHJlYWRGdW5jdGlvbjsKICAgICBz
aXplX3QgbV9zaXplT2ZQYXJhbWV0ZXI7Ci0gICAgaW50IG1fbnVtYmVyT2ZKb2JzOwogCiAgICAg
VmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiBtX3RocmVhZHM7Ci0gICAgc3RhdGljIFZl
Y3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4qIHNfdGhyZWFkUG9vbDsKLSAgICBzdGF0aWMg
aW50IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHM7CisgICAgc3RhdGljIFZlY3RvcjwgUmVm
UHRyPFRocmVhZFByaXZhdGU+ID4qIHNfdGhyZWFkUG9vbDsgICAgCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCBiYTFlZGIzLi5j
Njg3NzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTAxLDcgKzEx
MDEsNyBAQAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAjZW5kaWYKIAotI2lm
ICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
Q09NUEFSRV9BTkRfU1dBUCkKKyNpZiAhZGVmaW5lZChFTkFCTEVfUEFSQUxMRUxfR0MpICYmIChQ
TEFURk9STShNQUMpICB8fCBQTEFURk9STShRVCkpICYmIEVOQUJMRShDT01QQVJFX0FORF9TV0FQ
KQogI2RlZmluZSBFTkFCTEVfUEFSQUxMRUxfR0MgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0gYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCmluZGV4IGZiYzYyNTAuLjM1NTk1
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRN
YWMubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5t
bQpAQCAtNTksMTcgKzU5LDYgQEAgc3RhdGljIGJvb2wgbWFpblRocmVhZEVzdGFibGlzaGVkQXNQ
dGhyZWFkTWFpbjsKIHN0YXRpYyBwdGhyZWFkX3QgbWFpblRocmVhZFB0aHJlYWQ7CiBzdGF0aWMg
TlNUaHJlYWQqIG1haW5UaHJlYWROU1RocmVhZDsKIAotI2lmIEVOQUJMRShQQVJBTExFTF9HQykK
LXN0YXRpYyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNHQ1RocmVhZDsKLQotc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZUdDVGhyZWFkcygpCi17Ci0gICAgaXNHQ1RocmVhZCA9IG5ldyBUaHJlYWRTcGVj
aWZpYzxib29sPigpOwotfQotI2Vsc2UKLXN0YXRpYyB2b2lkIGluaXRpYWxpemVHQ1RocmVhZHMo
KSB7IH0KLSNlbmRpZgotCiB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKQogewog
ICAgIEFTU0VSVCghc3RhdGljTWFpblRocmVhZENhbGxlcik7CkBAIC0xNDUsNiArMTM0LDcgQEAg
Ym9vbCBpc01haW5UaHJlYWQoKQogICAgIHJldHVybiBwdGhyZWFkX2VxdWFsKHB0aHJlYWRfc2Vs
ZigpLCBtYWluVGhyZWFkUHRocmVhZCk7CiB9CiAKKy8qCiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dD
KQogdm9pZCByZWdpc3RlckdDVGhyZWFkKCkKIHsKQEAgLTE3MSw1ICsxNjEsNiBAQCBib29sIGlz
TWFpblRocmVhZE9yR0NUaHJlYWQoKQogICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKIH0KICNl
bmRpZgorKi8KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL3d0Zi5wcmkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5wcmkK
aW5kZXggZDUyMmQwYS4uMmExN2U1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi93dGYucHJpCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnByaQpAQCAt
MTM3LDcgKzEzNyw4IEBAIEhFQURFUlMgKz0gXAogICAgIHd0Zi9WZWN0b3IuaCBcCiAgICAgd3Rm
L1ZlY3RvclRyYWl0cy5oIFwKICAgICB3dGYvVk1UYWdzLmggXAotICAgIHd0Zi9XVEZUaHJlYWRE
YXRhLmgKKyAgICB3dGYvV1RGVGhyZWFkRGF0YS5oIFwKKyAgICB3dGYvTnVtYmVyT2ZDb3Jlcy5o
CiAKIFNPVVJDRVMgKz0gXAogICAgIHd0Zi9Bc3NlcnRpb25zLmNwcCBcCkBAIC0xODcsNyArMTg4
LDggQEAgU09VUkNFUyArPSBcCiAgICAgd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBcCiAgICAgd3Rm
L3VuaWNvZGUvQ29sbGF0b3JEZWZhdWx0LmNwcCBcCiAgICAgd3RmL3VuaWNvZGUvaWN1L0NvbGxh
dG9ySUNVLmNwcCBcCi0gICAgd3RmL3VuaWNvZGUvVVRGOC5jcHAKKyAgICB3dGYvdW5pY29kZS9V
VEY4LmNwcCBcCisgICAgd3RmL051bWJlck9mQ29yZXMuY3BwCiAKIHVuaXg6IFNPVVJDRVMgKz0g
d3RmL09TQWxsb2NhdG9yUG9zaXguY3BwCiB3aW4qfHdpbmNlKjogU09VUkNFUyArPSB3dGYvT1NB
bGxvY2F0b3JXaW4uY3BwCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118189</attachid>
            <date>2011-12-07 02:09:07 -0800</date>
            <delta_ts>2011-12-09 07:41:36 -0800</delta_ts>
            <desc>This patch results some speed-ups on QT platform</desc>
            <filename>20111207.patch</filename>
            <type>text/plain</type>
            <size>10830</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDYxM2Q2ZGMuLmZlNjM5ZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTEyLTA3ICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIEl0IGNhdXNlcyB0aGUgZm9s
bG93aW5nIHNwZWVkLXVwczoKKyAgICAgICAgLSBUaGUgcGVyZm9ybWFuY2UgZ2FpbiBjYW4gYmUg
c2VlbiBiZWxvdworCisgICAgICAgIFRoZSBydW4tc3Vuc3BpZGVyIHJlc3VsdHM6CisgICAgICAg
IFRvdGFsOiAxODMuOW1zICsvLSAzLjklICBbYmVmb3JlIG1vZGlmaWNhdGlvbl0KKyAgICAgICAg
VG90YWw6IDE1MS4ybXMgKy8tIDAuOCUgIFthZnRlciBtb2RpZmljYXRpb25dCisKKyAgICAgICAg
VGhlIHJ1bi1zdW5zcGlkZXIgLS12OC1zdWl0ZSByZXN1bHRzOgorICAgICAgICBUb3RhbDogOTQ3
LjVtcyArLy0gMi42JSBbYmVmb3JlIG1vZGlmaWNhdGlvbl0KKyAgICAgICAgVG90YWw6IDc3NS4z
bXMgKy8tIDYuNiUgW2FmdGVyIG1vZGlmaWNhdGlvbl0KKworICAgICAgICAqIHJ1bnRpbWUvSGV1
cmlzdGljcy5jcHA6CisgICAgICAgIChKU0M6OkhldXJpc3RpY3M6OmluaXRpYWxpemVIZXVyaXN0
aWNzKToKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAgIChXVEY6OmluaXRp
YWxpemVHQ1RocmVhZHMpOgorICAgICAgICAoV1RGOjpyZWdpc3RlckdDVGhyZWFkKToKKyAgICAg
ICAgKFdURjo6aXNNYWluVGhyZWFkT3JHQ1RocmVhZCk6CisgICAgICAgICogd3RmL01haW5UaHJl
YWQuaDoKKyAgICAgICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5jcHA6IEFkZGVkLgorICAgICAgICAo
V1RGOjpudW1iZXJPZkNvcmVzKToKKyAgICAgICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5oOiBBZGRl
ZC4KKyAgICAgICAgKiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgICogd3Rm
L1BhcmFsbGVsSm9ic0dlbmVyaWMuaDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZpcm9ubWVu
dDo6UGFyYWxsZWxFbnZpcm9ubWVudCk6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAg
ICAgICogd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tOgorICAgICAgICAqIHd0Zi93dGYucHJvOgor
CiAyMDExLTEyLTAxICBDaGFvLXlpbmcgRnUgIDxmdUBtaXBzLmNvbT4KIAogICAgICAgICBNYWNy
b0Fzc2VtYmxlck1JUFMgZG9lcyBub3QgaW1wbGVtZW50IHJlYWRDYWxsVGFyZ2V0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZXVyaXN0aWNzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hldXJpc3RpY3MuY3BwCmluZGV4IDBkNWM3MGUuLmJk
OGI2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hldXJpc3Rp
Y3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hldXJpc3RpY3MuY3Bw
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIZXVy
aXN0aWNzLmgiCisjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3dGYv
UGFnZUJsb2NrLmg+CiAKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC0xNjEsMTQgKzE2Miw4IEBAIHZv
aWQgaW5pdGlhbGl6ZUhldXJpc3RpY3MoKQogICAgIFNFVChzaGFyZWRTdGFja1dha2V1cFRocmVz
aG9sZCwgICAgICAgICAgIDEpOwogICAgIFNFVChvcGFxdWVSb290TWVyZ2VUaHJlc2hvbGQsICAg
ICAgICAgICAgIDEwMDApOwogCi0gICAgaW50IGNwdXNUb1VzZSA9IDE7Ci0jaWYgT1MoREFSV0lO
KSAmJiBFTkFCTEUoUEFSQUxMRUxfR0MpCi0gICAgaW50IG5hbWVbMl07Ci0gICAgc2l6ZV90IHZh
bHVlU2l6ZSA9IHNpemVvZihjcHVzVG9Vc2UpOwotICAgIG5hbWVbMF0gPSBDVExfSFc7Ci0gICAg
bmFtZVsxXSA9IEhXX0FWQUlMQ1BVOwotICAgIHN5c2N0bChuYW1lLCAyLCAmY3B1c1RvVXNlLCAm
dmFsdWVTaXplLCAwLCAwKTsKLSNlbmRpZgorICAgIGludCBjcHVzVG9Vc2UgPSBXVEY6Om51bWJl
ck9mQ29yZXMoKTsKKwogICAgIC8vIFdlIGRvbid0IHNjYWxlIHNvIHdlbGwgYmV5b25kIDQuCiAg
ICAgaWYgKGNwdXNUb1VzZSA+IDQpCiAgICAgICAgIGNwdXNUb1VzZSA9IDQ7CkBAIC0xOTgsNSAr
MTkzLDMgQEAgdm9pZCBpbml0aWFsaXplSGV1cmlzdGljcygpCiB9CiAKIH0gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpIZXVyaXN0aWNzCi0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9NYWluVGhyZWFkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVh
ZC5jcHAKaW5kZXggZGVjN2JiYy4uNWZkYmYxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L01haW5UaHJlYWQuY3BwCkBAIC0yMzYsNCArMjM2LDQyIEBAIGJvb2wgaXNNYWluVGhyZWFkKCkK
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQorc3RhdGljIFRocmVhZFNwZWNp
ZmljPGJvb2w+KiBpc0dDVGhyZWFkOworCit2b2lkIGluaXRpYWxpemVHQ1RocmVhZHMoKQorewor
ICAgIGlzR0NUaHJlYWQgPSBuZXcgVGhyZWFkU3BlY2lmaWM8Ym9vbD4oKTsKK30KKyNlbHNlCitz
dGF0aWMgdm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCkgeyB9CisjZW5kaWYKKworI2lmIEVOQUJM
RShQQVJBTExFTF9HQykKK3ZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpCit7CisgICAgaWYgKCFpc0dD
VGhyZWFkKSB7CisgICAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGluIGEg
cHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBhYm91dAorICAgICAgICAvLyBNYWluVGhyZWFkLgor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgKippc0dDVGhyZWFkID0gdHJ1ZTsKK30KKwor
Ym9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKK3sKKyAgICBpZiAoaXNHQ1RocmVhZC0+aXNT
ZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJu
IGlzTWFpblRocmVhZCgpOworfQorI2Vsc2UKKy8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ug
SmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgor
Ym9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKK3sKKyAgICByZXR1cm4gaXNNYWluVGhyZWFk
KCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvTWFpblRocmVhZC5oCmluZGV4IDFmYzBlMzIuLmRlYWJmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvTWFpblRocmVhZC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGxhdGZv
cm0uaCIKIAogI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZp
Yy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtNTAsNiArNTEsNyBAQCB2b2lkIHNldE1haW5U
aHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCBwYXVzZWQpOwogCiBib29sIGlzTWFpblRocmVhZCgp
OwogI2lmIEVOQUJMRShQQVJBTExFTF9HQykKK3ZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpOwog
dm9pZCByZWdpc3RlckdDVGhyZWFkKCk7CiBib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsK
ICNlbGlmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9m
Q29yZXMuY3BwCmluZGV4IDkzOWI5ZmUuLmVlMDdmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcApAQCAtNTQsMjIgKzU0LDE2IEBAIGludCBudW1iZXJP
ZkNvcmVzKCkKICAgICAgICAgfTsKICAgICAgICAgaW50IHN5c2N0bFJlc3VsdCA9IHN5c2N0bChu
YW1lLCBzaXplb2YobmFtZSkgLyBzaXplb2YoaW50KSwgJnJlc3VsdCwgJmxlbmd0aCwgMCwgMCk7
CiAKLSAgICAgICAgaWYgKHN5c2N0bFJlc3VsdCA+PSAwKSB7Ci0KKyAgICAgICAgaWYgKHN5c2N0
bFJlc3VsdCA+PSAwKQogICAgICAgICAgICAgc19udW1PZkNvcmVzID0gcmVzdWx0OwogCi0gICAg
ICAgIH0KLQogI2VsaWYgT1MoTElOVVgpIHx8IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKIAogICAg
ICAgICBsb25nIHN5c2NvbmZSZXN1bHQgPSBzeXNjb25mKF9TQ19OUFJPQ0VTU09SU19PTkxOKTsK
IAotICAgICAgICBpZiAoc3lzY29uZlJlc3VsdCA+PSAwKSB7Ci0KKyAgICAgICAgaWYgKHN5c2Nv
bmZSZXN1bHQgPj0gMCkKICAgICAgICAgICAgIHNfbnVtT2ZDb3JlcyA9IHN0YXRpY19jYXN0PGlu
dD4oc3lzY29uZlJlc3VsdCk7CiAKLSAgICAgICAgfQotCiAjZWxpZiBPUyhXSU5ET1dTKQogCiAg
ICAgICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0SWZVbmF2YWlsYWJsZSk7CkBAIC04Myw3ICs3Nyw2
IEBAIGludCBudW1iZXJPZkNvcmVzKCkKICNlbmRpZgogCiAgICAgfQotCiAgICAgcmV0dXJuIHNf
bnVtT2ZDb3JlczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxs
ZWxKb2JzR2VuZXJpYy5jcHAKaW5kZXggNzY3NzQyNy4uMmUyNDU1YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCkBAIC0zMiw0NyAr
MzIsMTAgQEAKICNpbmNsdWRlICJQYXJhbGxlbEpvYnMuaCIKICNpbmNsdWRlICJVbnVzZWRQYXJh
bS5oIgogCi0jaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCi0jaW5j
bHVkZSA8c3lzL3N5c2N0bC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2VsaWYgT1MoTElO
VVgpIHx8IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNlbGlm
IE9TKFdJTkRPV1MpCi0jaW5jbHVkZSA8V2luZG93cy5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBX
VEYgewogCiBWZWN0b3I8IFJlZlB0cjxQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRl
PiA+KiBQYXJhbGxlbEVudmlyb25tZW50OjpzX3RocmVhZFBvb2wgPSAwOwogCi1pbnQgUGFyYWxs
ZWxFbnZpcm9ubWVudDo6c19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IC0xOwotCi12b2lk
IFBhcmFsbGVsRW52aXJvbm1lbnQ6OmRldGVybWluZU1heE51bWJlck9mUGFyYWxsZWxUaHJlYWRz
KCkKLXsKLSAgICBjb25zdCBpbnQgZGVmYXVsdElmVW5hdmFpbGFibGUgPSAyOwotI2lmIE9TKERB
UldJTikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQotICAgIHVuc2lnbmVkIHJlc3VsdDsK
LSAgICBzaXplX3QgbGVuZ3RoID0gc2l6ZW9mKHJlc3VsdCk7Ci0gICAgaW50IG5hbWVbXSA9IHsK
LSAgICAgICAgQ1RMX0hXLAotICAgICAgICBIV19OQ1BVCi0gICAgfTsKLSAgICBpbnQgc3lzY3Rs
UmVzdWx0ID0gc3lzY3RsKG5hbWUsIHNpemVvZihuYW1lKSAvIHNpemVvZihpbnQpLCAmcmVzdWx0
LCAmbGVuZ3RoLCAwLCAwKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lz
Y3RsUmVzdWx0IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxhYmxlIDogcmVzdWx0OwotI2VsaWYgT1Mo
TElOVVgpIHx8IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKLSAgICBsb25nIHN5c2NvbmZSZXN1bHQg
PSBzeXNjb25mKF9TQ19OUFJPQ0VTU09SU19PTkxOKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxs
ZWxUaHJlYWRzID0gc3lzY29uZlJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0
YXRpY19jYXN0PGludD4oc3lzY29uZlJlc3VsdCk7Ci0jZWxpZiBPUyhXSU5ET1dTKQotICAgIFVO
VVNFRF9QQVJBTShkZWZhdWx0SWZVbmF2YWlsYWJsZSk7Ci0KLSAgICBTWVNURU1fSU5GTyBzeXNJ
bmZvOwotICAgIEdldFN5c3RlbUluZm8oJnN5c0luZm8pOwotICAgIHNfbWF4TnVtYmVyT2ZQYXJh
bGxlbFRocmVhZHMgPSBzeXNJbmZvLmR3TnVtYmVyT2ZQcm9jZXNzb3JzOwotI2Vsc2UKLSAgICBz
X21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gZGVmYXVsdElmVW5hdmFpbGFibGU7Ci0jZW5k
aWYKLX0KLQogYm9vbCBQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp0cnlMb2Nr
Rm9yKFBhcmFsbGVsRW52aXJvbm1lbnQqIHBhcmVudCkKIHsKICAgICBib29sIGxvY2tlZCA9IG1f
bXV0ZXgudHJ5TG9jaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVs
Sm9ic0dlbmVyaWMuaAppbmRleCBlN2QyNDQxLi45NjJmMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaApAQCAtMzAsNiArMzAsNyBAQAog
CiAjaWYgRU5BQkxFKFRIUkVBRElOR19HRU5FUklDKQogCisjaW5jbHVkZSA8d3RmL051bWJlck9m
Q29yZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KIApAQCAtNDYsMTEgKzQ3LDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFT
U0VSVF9BUkcocmVxdWVzdGVkSm9iTnVtYmVyLCByZXF1ZXN0ZWRKb2JOdW1iZXIgPj0gMSk7CiAK
LSAgICAgICAgaWYgKHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPT0gLTEpCi0gICAgICAg
ICAgICBkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpOworICAgICAgICBpbnQg
bnVtT2ZDb3JlcyA9IG51bWJlck9mQ29yZXMoKTsKIAotICAgICAgICBpZiAoIXJlcXVlc3RlZEpv
Yk51bWJlciB8fCByZXF1ZXN0ZWRKb2JOdW1iZXIgPiBzX21heE51bWJlck9mUGFyYWxsZWxUaHJl
YWRzKQotICAgICAgICAgICAgcmVxdWVzdGVkSm9iTnVtYmVyID0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMpOworICAgICAgICBpZiAoIXJlcXVlc3Rl
ZEpvYk51bWJlciB8fCByZXF1ZXN0ZWRKb2JOdW1iZXIgPiBudW1PZkNvcmVzKQorICAgICAgICAg
ICAgcmVxdWVzdGVkSm9iTnVtYmVyID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG51bU9mQ29yZXMp
OwogCiAgICAgICAgIGlmICghc190aHJlYWRQb29sKQogICAgICAgICAgICAgc190aHJlYWRQb29s
ID0gbmV3IFZlY3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4oKTsKQEAgLTU4LDcgKzU4LDcg
QEAgcHVibGljOgogICAgICAgICAvLyBUaGUgbWFpbiB0aHJlYWQgc2hvdWxkIGJlIGFsc28gYSB3
b3JrZXIuCiAgICAgICAgIGludCBtYXhOdW1iZXJPZk5ld1RocmVhZHMgPSByZXF1ZXN0ZWRKb2JO
dW1iZXIgLSAxOwogCi0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc19tYXhOdW1iZXJPZlBh
cmFsbGVsVGhyZWFkcyAmJiBtX3RocmVhZHMuc2l6ZSgpIDwgbWF4TnVtYmVyT2ZOZXdUaHJlYWRz
OyArK2kpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1PZkNvcmVzICYmIG1fdGhy
ZWFkcy5zaXplKCkgPCBtYXhOdW1iZXJPZk5ld1RocmVhZHM7ICsraSkgewogICAgICAgICAgICAg
aWYgKHNfdGhyZWFkUG9vbC0+c2l6ZSgpIDwgaSArIDEpCiAgICAgICAgICAgICAgICAgc190aHJl
YWRQb29sLT5hcHBlbmQoVGhyZWFkUHJpdmF0ZTo6Y3JlYXRlKCkpOwogCkBAIC0xMjUsMTUgKzEy
NSwxMiBAQCBwdWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBkZXRl
cm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpOwogCiAgICAgVGhyZWFkRnVuY3Rpb24g
bV90aHJlYWRGdW5jdGlvbjsKICAgICBzaXplX3QgbV9zaXplT2ZQYXJhbWV0ZXI7Ci0gICAgaW50
IG1fbnVtYmVyT2ZKb2JzOwogCiAgICAgVmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiBt
X3RocmVhZHM7Ci0gICAgc3RhdGljIFZlY3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4qIHNf
dGhyZWFkUG9vbDsKLSAgICBzdGF0aWMgaW50IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHM7
CisgICAgc3RhdGljIFZlY3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4qIHNfdGhyZWFkUG9v
bDsgICAgCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxh
dGZvcm0uaAppbmRleCBiZTBjNjRlLi43ZTU2OGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
bGF0Zm9ybS5oCkBAIC0xMTE3LDcgKzExMTcsNyBAQAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9B
TkRfU1dBUCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYg
UExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKKyNpZiAhZGVmaW5lZChF
TkFCTEVfUEFSQUxMRUxfR0MpICYmIChQTEFURk9STShNQUMpICB8fCBQTEFURk9STShRVCkpICYm
IEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQogI2RlZmluZSBFTkFCTEVfUEFSQUxMRUxfR0MgMQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5U
aHJlYWRNYWMubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFj
Lm1tCmluZGV4IGZiYzYyNTAuLjM1NTk1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQpAQCAtNTksMTcgKzU5LDYgQEAgc3RhdGljIGJvb2wg
bWFpblRocmVhZEVzdGFibGlzaGVkQXNQdGhyZWFkTWFpbjsKIHN0YXRpYyBwdGhyZWFkX3QgbWFp
blRocmVhZFB0aHJlYWQ7CiBzdGF0aWMgTlNUaHJlYWQqIG1haW5UaHJlYWROU1RocmVhZDsKIAot
I2lmIEVOQUJMRShQQVJBTExFTF9HQykKLXN0YXRpYyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNH
Q1RocmVhZDsKLQotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpCi17Ci0gICAgaXNH
Q1RocmVhZCA9IG5ldyBUaHJlYWRTcGVjaWZpYzxib29sPigpOwotfQotI2Vsc2UKLXN0YXRpYyB2
b2lkIGluaXRpYWxpemVHQ1RocmVhZHMoKSB7IH0KLSNlbmRpZgotCiB2b2lkIGluaXRpYWxpemVN
YWluVGhyZWFkUGxhdGZvcm0oKQogewogICAgIEFTU0VSVCghc3RhdGljTWFpblRocmVhZENhbGxl
cik7CkBAIC0xNDUsNiArMTM0LDcgQEAgYm9vbCBpc01haW5UaHJlYWQoKQogICAgIHJldHVybiBw
dGhyZWFkX2VxdWFsKHB0aHJlYWRfc2VsZigpLCBtYWluVGhyZWFkUHRocmVhZCk7CiB9CiAKKy8q
CiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQogdm9pZCByZWdpc3RlckdDVGhyZWFkKCkKIHsKQEAg
LTE3MSw1ICsxNjEsNiBAQCBib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQogICAgIHJldHVy
biBpc01haW5UaHJlYWQoKTsKIH0KICNlbmRpZgorKi8KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5wcm8gYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL3d0Zi5wcm8KaW5kZXggZDI2Y2Q1ZC4uMDM0MTcyOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvd3RmLnBybwpAQCAtOTEsNiArOTEsNyBAQCBIRUFERVJTICs9IFwKICAgICBO
b25Db3B5aW5nU29ydC5oIFwKICAgICBOb3RGb3VuZC5oIFwKICAgICBOdWxsUHRyLmggXAorICAg
IE51bWJlck9mQ29yZXMuaCBcCiAgICAgT1NBbGxvY2F0b3IuaCBcCiAgICAgT1NSYW5kb21Tb3Vy
Y2UuaCBcCiAgICAgT3duQXJyYXlQdHIuaCBcCkBAIC0xOTcsNiArMTk4LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgTWFpblRocmVhZC5jcHAgXAogICAgIE1ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBO
dWxsUHRyLmNwcCBcCisgICAgTnVtYmVyT2ZDb3Jlcy5jcHAgXAogICAgIE9TUmFuZG9tU291cmNl
LmNwcCBcCiAgICAgcXQvTWFpblRocmVhZFF0LmNwcCBcCiAgICAgcXQvU3RyaW5nUXQuY3BwIFwK
</data>
<flag name="review"
          id="117843"
          type_id="1"
          status="-"
          setter="zherczeg"
    />
    <flag name="commit-queue"
          id="117844"
          type_id="3"
          status="-"
          setter="zherczeg"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118576</attachid>
            <date>2011-12-09 07:41:36 -0800</date>
            <delta_ts>2011-12-22 02:31:53 -0800</delta_ts>
            <desc>This patch results some speed-ups on QT platform</desc>
            <filename>20101209.patch</filename>
            <type>text/plain</type>
            <size>14584</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGY5Y2U0MDYuLjYyNGE0Y2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDExLTEyLTA5ICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIDIgZmlsZXMgaXMgYWRkZWQg
dG8gdGhlIHByb2plY3QsIG5hbWVseSBOdW1iZXJPZkNvcmVzLmgvY3BwLCB0aGF0CisgICAgICAg
IGluY2x1ZGUgYSBDUFUgY29yZSBudW1iZXIgZGV0ZXJtaW5pbmcgZnVuY3Rpb24uIEl0IHVzZWQg
dG8gYmUgaW4KKyAgICAgICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5oL2NwcCBiZWZvcmUuCisKKyAg
ICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAgIHNwZWVkLXVw
OiAgMyUgIFtGcm9tOiA3MTEuNG1zICAgVG86IDY5MC43bXNdCisgICAgICAgIFY4IHNwbGF5ICAg
ICBzcGVlZC11cDogMTUlICBbRnJvbTogMTQyLjVtcyAgIFRvOiAxMjEuNm1zXQorICAgICAgICBX
aW5kc2NvcnBpb24gc3BlZWQtdXA6ICAyJSAgW0Zyb206IDMzNTMuMW1zICBUbzogMzI4MS42bXNd
CisKKyAgICAgICAgVGVzdGVkIG9uIEludGVsKFIpIENvcmUoVE0pIGk1LTIzMjAgQ1BVIEAgMy4w
MEdIeiB3aXRoIDQtY29yZS4KKworICAgICAgICAqIHJ1bnRpbWUvSGV1cmlzdGljcy5jcHA6Cisg
ICAgICAgIChKU0M6OkhldXJpc3RpY3M6OmluaXRpYWxpemVIZXVyaXN0aWNzKToKKyAgICAgICAg
KiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVHQ1RocmVhZHMp
OgorICAgICAgICAoV1RGOjpyZWdpc3RlckdDVGhyZWFkKToKKyAgICAgICAgKFdURjo6aXNNYWlu
VGhyZWFkT3JHQ1RocmVhZCk6CisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKyAgICAgICAg
KiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52
aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1lbnQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEpv
YnNHZW5lcmljLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAgICogd3RmL21h
Yy9NYWluVGhyZWFkTWFjLm1tOgorICAgICAgICAqIHd0Zi93dGYucHJvOgorCiAyMDExLTEyLTA5
ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgcmVsb2Fk
aW5nIHN0b3JhZ2UgcG9pbnRlciBmb3IgaW5kZXhlZCBwcm9wZXJ0aWVzIHVubmVjZXNzYXJpbHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hldXJpc3RpY3MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGV1cmlzdGljcy5jcHAKaW5kZXggMGQ1
YzcwZS4uMmMzN2ViYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SGV1cmlzdGljcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGV1cmlz
dGljcy5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkhldXJpc3RpY3MuaCIKKyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1
ZGUgPHd0Zi9QYWdlQmxvY2suaD4KIAogI2luY2x1ZGUgPGxpbWl0cz4KQEAgLTE2MSwxNCArMTYy
LDggQEAgdm9pZCBpbml0aWFsaXplSGV1cmlzdGljcygpCiAgICAgU0VUKHNoYXJlZFN0YWNrV2Fr
ZXVwVGhyZXNob2xkLCAgICAgICAgICAgMSk7CiAgICAgU0VUKG9wYXF1ZVJvb3RNZXJnZVRocmVz
aG9sZCwgICAgICAgICAgICAgMTAwMCk7CiAKLSAgICBpbnQgY3B1c1RvVXNlID0gMTsKLSNpZiBP
UyhEQVJXSU4pICYmIEVOQUJMRShQQVJBTExFTF9HQykKLSAgICBpbnQgbmFtZVsyXTsKLSAgICBz
aXplX3QgdmFsdWVTaXplID0gc2l6ZW9mKGNwdXNUb1VzZSk7Ci0gICAgbmFtZVswXSA9IENUTF9I
VzsKLSAgICBuYW1lWzFdID0gSFdfQVZBSUxDUFU7Ci0gICAgc3lzY3RsKG5hbWUsIDIsICZjcHVz
VG9Vc2UsICZ2YWx1ZVNpemUsIDAsIDApOwotI2VuZGlmCisgICAgaW50IGNwdXNUb1VzZSA9IFdU
Rjo6bnVtYmVyT2ZDb3JlcygpOworCiAgICAgLy8gV2UgZG9uJ3Qgc2NhbGUgc28gd2VsbCBiZXlv
bmQgNC4KICAgICBpZiAoY3B1c1RvVXNlID4gNCkKICAgICAgICAgY3B1c1RvVXNlID0gNDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCmluZGV4IGRlYzdiYmMuLjVmZGJm
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcApAQCAtMjM2LDQg
KzIzNiw0MiBAQCBib29sIGlzTWFpblRocmVhZCgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQ
QVJBTExFTF9HQykKK3N0YXRpYyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNHQ1RocmVhZDsKKwor
dm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCkKK3sKKyAgICBpc0dDVGhyZWFkID0gbmV3IFRocmVh
ZFNwZWNpZmljPGJvb2w+KCk7Cit9CisjZWxzZQorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdDVGhy
ZWFkcygpIHsgfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCit2b2lkIHJlZ2lz
dGVyR0NUaHJlYWQoKQoreworICAgIGlmICghaXNHQ1RocmVhZCkgeworICAgICAgICAvLyBUaGlz
IGhhcHBlbnMgaWYgd2UncmUgcnVubmluZyBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0IGNhcmUg
YWJvdXQKKyAgICAgICAgLy8gTWFpblRocmVhZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgICoqaXNHQ1RocmVhZCA9IHRydWU7Cit9CisKK2Jvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVh
ZCgpCit7CisgICAgaWYgKGlzR0NUaHJlYWQtPmlzU2V0KCkgJiYgKippc0dDVGhyZWFkKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKK30KKyNlbHNl
CisvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIEphdmFTY3JpcHRDb3JlLmV4cCBkb2Vzbid0
IHN1cHBvcnQgcHJlcHJvY2Vzc29yIG1hY3Jvcy4KK2Jvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVh
ZCgpCit7CisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQorI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhy
ZWFkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaAppbmRleCAxZmMw
ZTMyLi5kZWFiZmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5U
aHJlYWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtLmgiCiAKICNpbmNsdWRlIDxzdGRpbnQu
aD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAK
QEAgLTUwLDYgKzUxLDcgQEAgdm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wg
cGF1c2VkKTsKIAogYm9vbCBpc01haW5UaHJlYWQoKTsKICNpZiBFTkFCTEUoUEFSQUxMRUxfR0Mp
Cit2b2lkIGluaXRpYWxpemVHQ1RocmVhZHMoKTsKIHZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpOwog
Ym9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7CiAjZWxpZiBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4zZTJiNmEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcApAQCAtMCwwICsxLDg0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBV
TklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOdW1iZXJP
ZkNvcmVzLmgiCisKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5CU0QpIHx8IE9TKE5FVEJTRCkK
KyNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZWxpZiBP
UyhMSU5VWCkgfHwgT1MoQUlYKSB8fCBPUyhTT0xBUklTKQorI2luY2x1ZGUgPHVuaXN0ZC5oPgor
I2VsaWYgT1MoV0lORE9XUykKKyNpbmNsdWRlIDxXaW5kb3dzLmg+CisjZW5kaWYKKworbmFtZXNw
YWNlIFdURiB7CisKK2ludCBudW1iZXJPZkNvcmVzKCkKK3sKKyAgICBzdGF0aWMgaW50IHNfbnVt
YmVyT2ZDb3JlcyA9IC0xOworCisgICAgaWYgKHNfbnVtYmVyT2ZDb3JlcyA8IDApIHsKKworI2lm
IE9TKERBUldJTikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQorCisgICAgICAgIHVuc2ln
bmVkIHJlc3VsdDsKKyAgICAgICAgc2l6ZV90IGxlbmd0aCA9IHNpemVvZihyZXN1bHQpOworICAg
ICAgICBpbnQgbmFtZVtdID0geworICAgICAgICAgICAgICAgIENUTF9IVywKKyAgICAgICAgICAg
ICAgICBIV19OQ1BVCisgICAgICAgIH07CisgICAgICAgIGludCBzeXNjdGxSZXN1bHQgPSBzeXNj
dGwobmFtZSwgc2l6ZW9mKG5hbWUpIC8gc2l6ZW9mKGludCksICZyZXN1bHQsICZsZW5ndGgsIDAs
IDApOworCisgICAgICAgIGlmIChzeXNjdGxSZXN1bHQgPj0gMCkKKyAgICAgICAgICAgIHNfbnVt
YmVyT2ZDb3JlcyA9IHJlc3VsdDsKKworI2VsaWYgT1MoTElOVVgpIHx8IE9TKEFJWCkgfHwgT1Mo
U09MQVJJUykKKworICAgICAgICBsb25nIHN5c2NvbmZSZXN1bHQgPSBzeXNjb25mKF9TQ19OUFJP
Q0VTU09SU19PTkxOKTsKKworICAgICAgICBpZiAoc3lzY29uZlJlc3VsdCA+PSAwKQorICAgICAg
ICAgICAgc19udW1iZXJPZkNvcmVzID0gc3RhdGljX2Nhc3Q8aW50PihzeXNjb25mUmVzdWx0KTsK
KworI2VsaWYgT1MoV0lORE9XUykKKworICAgICAgICBVTlVTRURfUEFSQU0oZGVmYXVsdElmVW5h
dmFpbGFibGUpOworICAgICAgICBTWVNURU1fSU5GTyBzeXNJbmZvOworICAgICAgICBHZXRTeXN0
ZW1JbmZvKCZzeXNJbmZvKTsKKworICAgICAgICBzX251bWJlck9mQ29yZXMgPSBzeXNJbmZvLmR3
TnVtYmVyT2ZQcm9jZXNzb3JzOworCisjZWxzZQorICAgICAgICBzX251bWJlck9mQ29yZXMgPSAx
OworI2VuZGlmCisKKyAgICB9CisKKyAgICByZXR1cm4gc19udW1iZXJPZkNvcmVzOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljMmRiOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaApAQCAtMCwwICsxLDMxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKworI2lmbmRlZiBOdW1iZXJPZkNvcmVzX2gKKyNkZWZpbmUgTnVtYmVyT2ZD
b3Jlc19oCisKK25hbWVzcGFjZSBXVEYgeworCitpbnQgbnVtYmVyT2ZDb3JlcygpOworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpv
YnNHZW5lcmljLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2Vu
ZXJpYy5jcHAKaW5kZXggMTJlYWY0ZS4uODYyZWNlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAK
ICNpbmNsdWRlICJQYXJhbGxlbEpvYnMuaCIKICNpbmNsdWRlICJVbnVzZWRQYXJhbS5oIgorI2lu
Y2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAKICNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5C
U0QpIHx8IE9TKE5FVEJTRCkKICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CkBAIC00NSw3ICs0Niw3
IEBAIG5hbWVzcGFjZSBXVEYgewogCiBWZWN0b3I8IFJlZlB0cjxQYXJhbGxlbEVudmlyb25tZW50
OjpUaHJlYWRQcml2YXRlPiA+KiBQYXJhbGxlbEVudmlyb25tZW50OjpzX3RocmVhZFBvb2wgPSAw
OwogCi1pbnQgUGFyYWxsZWxFbnZpcm9ubWVudDo6c19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFk
cyA9IC0xOworaW50IFBhcmFsbGVsRW52aXJvbm1lbnQ6OnNfbWF4TnVtYmVyT2ZDb3JlcyA9IC0x
OwogCiBQYXJhbGxlbEVudmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25tZW50KFRocmVhZEZ1bmN0
aW9uIHRocmVhZEZ1bmN0aW9uLCBzaXplX3Qgc2l6ZU9mUGFyYW1ldGVyLCBpbnQgcmVxdWVzdGVk
Sm9iTnVtYmVyKSA6CiAgICAgbV90aHJlYWRGdW5jdGlvbih0aHJlYWRGdW5jdGlvbiksCkBAIC01
MywxMSArNTQsMTEgQEAgUGFyYWxsZWxFbnZpcm9ubWVudDo6UGFyYWxsZWxFbnZpcm9ubWVudChU
aHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgc2l6ZV90IHMKIHsKICAgICBBU1NFUlRfQVJH
KHJlcXVlc3RlZEpvYk51bWJlciwgcmVxdWVzdGVkSm9iTnVtYmVyID49IDEpOwogCi0gICAgaWYg
KHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPT0gLTEpCi0gICAgICAgIGRldGVybWluZU1h
eE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKCk7CisgICAgaWYgKHNfbWF4TnVtYmVyT2ZDb3JlcyA9
PSAtMSkKKyAgICAgICAgc19tYXhOdW1iZXJPZkNvcmVzID0gbnVtYmVyT2ZDb3JlcygpOwogCi0g
ICAgaWYgKCFyZXF1ZXN0ZWRKb2JOdW1iZXIgfHwgcmVxdWVzdGVkSm9iTnVtYmVyID4gc19tYXhO
dW1iZXJPZlBhcmFsbGVsVGhyZWFkcykKLSAgICAgICAgcmVxdWVzdGVkSm9iTnVtYmVyID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMpOworICAgIGlm
ICghcmVxdWVzdGVkSm9iTnVtYmVyIHx8IHJlcXVlc3RlZEpvYk51bWJlciA+IHNfbWF4TnVtYmVy
T2ZDb3JlcykKKyAgICAgICAgcmVxdWVzdGVkSm9iTnVtYmVyID0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHNfbWF4TnVtYmVyT2ZDb3Jlcyk7CiAKICAgICBpZiAoIXNfdGhyZWFkUG9vbCkKICAgICAg
ICAgc190aHJlYWRQb29sID0gbmV3IFZlY3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4oKTsK
QEAgLTY1LDcgKzY2LDcgQEAgUGFyYWxsZWxFbnZpcm9ubWVudDo6UGFyYWxsZWxFbnZpcm9ubWVu
dChUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgc2l6ZV90IHMKICAgICAvLyBUaGUgbWFp
biB0aHJlYWQgc2hvdWxkIGJlIGFsc28gYSB3b3JrZXIuCiAgICAgaW50IG1heE51bWJlck9mTmV3
VGhyZWFkcyA9IHJlcXVlc3RlZEpvYk51bWJlciAtIDE7CiAKLSAgICBmb3IgKGludCBpID0gMDsg
aSA8IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgJiYgbV90aHJlYWRzLnNpemUoKSA8IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZk5ld1RocmVhZHMpOyArK2kpIHsKKyAgICBm
b3IgKGludCBpID0gMDsgaSA8IHNfbWF4TnVtYmVyT2ZDb3JlcyAmJiBtX3RocmVhZHMuc2l6ZSgp
IDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heE51bWJlck9mTmV3VGhyZWFkcyk7ICsraSkgewog
ICAgICAgICBpZiAoc190aHJlYWRQb29sLT5zaXplKCkgPCBpICsgMSkKICAgICAgICAgICAgIHNf
dGhyZWFkUG9vbC0+YXBwZW5kKFRocmVhZFByaXZhdGU6OmNyZWF0ZSgpKTsKIApAQCAtOTMsMzIg
Kzk0LDYgQEAgdm9pZCBQYXJhbGxlbEVudmlyb25tZW50OjpleGVjdXRlKHZvaWQqIHBhcmFtZXRl
cnMpCiAgICAgICAgIG1fdGhyZWFkc1tpXS0+d2FpdEZvckZpbmlzaCgpOwogfQogCi12b2lkIFBh
cmFsbGVsRW52aXJvbm1lbnQ6OmRldGVybWluZU1heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKCkK
LXsKLSAgICBjb25zdCBpbnQgZGVmYXVsdElmVW5hdmFpbGFibGUgPSAyOwotI2lmIE9TKERBUldJ
TikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQotICAgIHVuc2lnbmVkIHJlc3VsdDsKLSAg
ICBzaXplX3QgbGVuZ3RoID0gc2l6ZW9mKHJlc3VsdCk7Ci0gICAgaW50IG5hbWVbXSA9IHsKLSAg
ICAgICAgQ1RMX0hXLAotICAgICAgICBIV19OQ1BVCi0gICAgfTsKLSAgICBpbnQgc3lzY3RsUmVz
dWx0ID0gc3lzY3RsKG5hbWUsIHNpemVvZihuYW1lKSAvIHNpemVvZihpbnQpLCAmcmVzdWx0LCAm
bGVuZ3RoLCAwLCAwKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lzY3Rs
UmVzdWx0IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxhYmxlIDogcmVzdWx0OwotI2VsaWYgT1MoTElO
VVgpIHx8IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKLSAgICBsb25nIHN5c2NvbmZSZXN1bHQgPSBz
eXNjb25mKF9TQ19OUFJPQ0VTU09SU19PTkxOKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxU
aHJlYWRzID0gc3lzY29uZlJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0YXRp
Y19jYXN0PGludD4oc3lzY29uZlJlc3VsdCk7Ci0jZWxpZiBPUyhXSU5ET1dTKQotICAgIFVOVVNF
RF9QQVJBTShkZWZhdWx0SWZVbmF2YWlsYWJsZSk7Ci0KLSAgICBTWVNURU1fSU5GTyBzeXNJbmZv
OwotICAgIEdldFN5c3RlbUluZm8oJnN5c0luZm8pOwotICAgIHNfbWF4TnVtYmVyT2ZQYXJhbGxl
bFRocmVhZHMgPSBzeXNJbmZvLmR3TnVtYmVyT2ZQcm9jZXNzb3JzOwotI2Vsc2UKLSAgICBzX21h
eE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gZGVmYXVsdElmVW5hdmFpbGFibGU7Ci0jZW5kaWYK
LX0KLQogYm9vbCBQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp0cnlMb2NrRm9y
KFBhcmFsbGVsRW52aXJvbm1lbnQqIHBhcmVudCkKIHsKICAgICBib29sIGxvY2tlZCA9IG1fbXV0
ZXgudHJ5TG9jaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJh
bGxlbEpvYnNHZW5lcmljLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9i
c0dlbmVyaWMuaAppbmRleCBkYWI2ZGQ5Li5lNmNkMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaApAQCAtODQsMTUgKzg0LDEzIEBAIHB1
YmxpYzoKICAgICB9OwogCiBwcml2YXRlOgotICAgIHN0YXRpYyB2b2lkIGRldGVybWluZU1heE51
bWJlck9mUGFyYWxsZWxUaHJlYWRzKCk7Ci0KICAgICBUaHJlYWRGdW5jdGlvbiBtX3RocmVhZEZ1
bmN0aW9uOwogICAgIHNpemVfdCBtX3NpemVPZlBhcmFtZXRlcjsKICAgICBpbnQgbV9udW1iZXJP
ZkpvYnM7CiAKICAgICBWZWN0b3I8IFJlZlB0cjxUaHJlYWRQcml2YXRlPiA+IG1fdGhyZWFkczsK
ICAgICBzdGF0aWMgVmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiogc190aHJlYWRQb29s
OwotICAgIHN0YXRpYyBpbnQgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkczsKKyAgICBzdGF0
aWMgaW50IHNfbWF4TnVtYmVyT2ZDb3JlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDcyYmYyM2IuLjc5NTg4NWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKQEAgLTExMTMsNyArMTExMyw3IEBACiAjZGVm
aW5lIEVOQUJMRV9DT01QQVJFX0FORF9TV0FQIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5B
QkxFX1BBUkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpKSAmJiBF
TkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKKyNpZiAhZGVmaW5lZChFTkFCTEVfUEFSQUxMRUxfR0Mp
ICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oUVQpKSAmJiBF
TkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKICNkZWZpbmUgRU5BQkxFX1BBUkFMTEVMX0dDIDEKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhy
ZWFkTWFjLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5t
bQppbmRleCBmYmM2MjUwLi5kNWQ1YjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvbWFjL01haW5UaHJlYWRNYWMubW0KQEAgLTU5LDE3ICs1OSw2IEBAIHN0YXRpYyBib29sIG1h
aW5UaHJlYWRFc3RhYmxpc2hlZEFzUHRocmVhZE1haW47CiBzdGF0aWMgcHRocmVhZF90IG1haW5U
aHJlYWRQdGhyZWFkOwogc3RhdGljIE5TVGhyZWFkKiBtYWluVGhyZWFkTlNUaHJlYWQ7CiAKLSNp
ZiBFTkFCTEUoUEFSQUxMRUxfR0MpCi1zdGF0aWMgVGhyZWFkU3BlY2lmaWM8Ym9vbD4qIGlzR0NU
aHJlYWQ7Ci0KLXN0YXRpYyB2b2lkIGluaXRpYWxpemVHQ1RocmVhZHMoKQotewotICAgIGlzR0NU
aHJlYWQgPSBuZXcgVGhyZWFkU3BlY2lmaWM8Ym9vbD4oKTsKLX0KLSNlbHNlCi1zdGF0aWMgdm9p
ZCBpbml0aWFsaXplR0NUaHJlYWRzKCkgeyB9Ci0jZW5kaWYKLQogdm9pZCBpbml0aWFsaXplTWFp
blRocmVhZFBsYXRmb3JtKCkKIHsKICAgICBBU1NFUlQoIXN0YXRpY01haW5UaHJlYWRDYWxsZXIp
OwpAQCAtMTQ1LDMxICsxMzQsNCBAQCBib29sIGlzTWFpblRocmVhZCgpCiAgICAgcmV0dXJuIHB0
aHJlYWRfZXF1YWwocHRocmVhZF9zZWxmKCksIG1haW5UaHJlYWRQdGhyZWFkKTsKIH0KIAotI2lm
IEVOQUJMRShQQVJBTExFTF9HQykKLXZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpCi17Ci0gICAgaWYg
KCFpc0dDVGhyZWFkKSB7Ci0gICAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiB3ZSdyZSBydW5uaW5n
IGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBhYm91dAotICAgICAgICAvLyBNYWluVGhy
ZWFkLgotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgKippc0dDVGhyZWFkID0gdHJ1ZTsK
LX0KLQotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKLXsKLSAgICBpZiAoaXNHQ1RocmVh
ZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIAot
ICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKLX0KLSNlbHNlCi0vLyBUaGlzIGlzIG5lY2Vzc2Fy
eSBiZWNhdXNlIEphdmFTY3JpcHRDb3JlLmV4cCBkb2Vzbid0IHN1cHBvcnQgcHJlcHJvY2Vzc29y
IG1hY3Jvcy4KLWJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpCi17Ci0gICAgcmV0dXJuIGlz
TWFpblRocmVhZCgpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi93dGYucHJvCmluZGV4IGQyNmNkNWQuLjAzNDE3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnBybworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL3d0Zi5wcm8KQEAgLTkxLDYgKzkxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgTm9uQ29weWlu
Z1NvcnQuaCBcCiAgICAgTm90Rm91bmQuaCBcCiAgICAgTnVsbFB0ci5oIFwKKyAgICBOdW1iZXJP
ZkNvcmVzLmggXAogICAgIE9TQWxsb2NhdG9yLmggXAogICAgIE9TUmFuZG9tU291cmNlLmggXAog
ICAgIE93bkFycmF5UHRyLmggXApAQCAtMTk3LDYgKzE5OCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IE1haW5UaHJlYWQuY3BwIFwKICAgICBNZXRhQWxsb2NhdG9yLmNwcCBcCiAgICAgTnVsbFB0ci5j
cHAgXAorICAgIE51bWJlck9mQ29yZXMuY3BwIFwKICAgICBPU1JhbmRvbVNvdXJjZS5jcHAgXAog
ICAgIHF0L01haW5UaHJlYWRRdC5jcHAgXAogICAgIHF0L1N0cmluZ1F0LmNwcCBcCg==
</data>
<flag name="commit-queue"
          id="118367"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120291</attachid>
            <date>2011-12-22 02:31:53 -0800</date>
            <delta_ts>2011-12-22 06:05:55 -0800</delta_ts>
            <desc>This patch results some speed-ups on QT platform.</desc>
            <filename>20121222_2.diff</filename>
            <type>text/plain</type>
            <size>20512</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQwNTBlYjMuLjIxZjQ3ZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDExLTEyLTIyICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIDIgZmlsZXMgaXMgYWRkZWQg
dG8gdGhlIHByb2plY3QsIG5hbWVseSBOdW1iZXJPZkNvcmVzLmgvY3BwLCB0aGF0CisgICAgICAg
IGluY2x1ZGUgYSBDUFUgY29yZSBudW1iZXIgZGV0ZXJtaW5pbmcgZnVuY3Rpb24uIEl0IHVzZWQg
dG8gYmUgaW4KKyAgICAgICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5oL2NwcCBiZWZvcmUuCisKKyAg
ICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAgIHNwZWVkLXVw
OiAgMS4wNzF4IGFzIGZhc3QgIFtGcm9tOiA3NDYuMW1zICBUbzogNjk2LjRtcyBdCisgICAgICAg
IFY4IHNwbGF5ICAgICBzcGVlZC11cDogIDEuMDgyeCBhcyBmYXN0ICBbRnJvbTogMzQ5MC40bXMg
VG86IDMyMjYuN21zXQorICAgICAgICBXaW5kc2NvcnBpb24gc3BlZWQtdXA6ICAxLjE1OHggYXMg
ZmFzdCAgW0Zyb206IDE0NS44bXMgIFRvOiAxMjUuOW1zIF0KKworICAgICAgICBUZXN0ZWQgb24g
SW50ZWwoUikgQ29yZShUTSkgaTUtMjMyMCBDUFUgQCAzLjAwR0h6IHdpdGggNC1jb3JlLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5n
eXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6
aW5pdGlhbGl6ZU9wdGlvbnMpOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVHQ1RocmVh
ZHMpOgorICAgICAgICAoV1RGOjpyZWdpc3RlckdDVGhyZWFkKToKKyAgICAgICAgKFdURjo6aXNN
YWluVGhyZWFkT3JHQ1RocmVhZCk6CisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKyAgICAg
ICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGOjpudW1iZXJP
ZkNvcmVzKToKKyAgICAgICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5oOiBBZGRlZC4KKyAgICAgICAg
KiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52
aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1lbnQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEpv
YnNHZW5lcmljLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAgICogd3RmL21h
Yy9NYWluVGhyZWFkTWFjLm1tOgorICAgICAgICAqIHd0Zi93dGYucHJvOgorCiAyMDExLTEyLTIx
ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgT1MgWCBidWlsZCBm
aXggYWZ0ZXIgcjEwMzQ4OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggZmY1NjU2MC4uODJlNzg0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTYwMyw2ICs2MDMsNyBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL05vbkNvcHlpbmdTb3J0LmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTm90Rm91bmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9OdWxsUHRyLmggXAorICAgICAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051
bWJlck9mQ29yZXMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU0FsbG9jYXRvci5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmNwcCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5oIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKaW5kZXggMDFmZDNkYy4uM2U2MGJkNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAgLTE4MCw2ICsxODAsNyBA
QAogICAgICAgICAgICAgJ3d0Zi9Ob25jb3B5YWJsZS5oJywKICAgICAgICAgICAgICd3dGYvTm90
Rm91bmQuaCcsCiAgICAgICAgICAgICAnd3RmL051bGxQdHIuaCcsCisgICAgICAgICAgICAnd3Rm
L051bWJlck9mQ29yZXMuaCcsCiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yLmgnLAogICAg
ICAgICAgICAgJ3d0Zi9Pd25BcnJheVB0ci5oJywKICAgICAgICAgICAgICd3dGYvT3duRmFzdE1h
bGxvY1B0ci5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWQ5OGNiZC4uZGU3
YjNmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcxMSw2ICs3MTEsOCBAQAog
CQlFNDlEQzE2QzEyRUYyOTRFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5REMxNTExMkVGMjcy
MjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDlEQzE2RDEyRUYyOTUzMDAxODRBMUYgLyog
U291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0OURDMTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRl
ckNhY2hlSXRlbS5oICovOyB9OwogCQlFNEQ4Q0VGQjEyRkM0Mzk2MDBCQzlGNUEgLyogQmxvb21G
aWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
RDhDRTlCMTJGQzQyRTEwMEJDOUY1QSAvKiBCbG9vbUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUVERTgxQ0E3MTRBMjJBMjEwMDQ0MTFG
RiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEVERTgxQ0E1MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmNw
cCAqLzsgfTsKKwkJRURFODFDQTgxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVERTgxQ0E2MTRB
MjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmggKi87IH07CiAJCUYzQkQzMUVEMTI2NzM1
NzcwMDY1NDY3RiAvKiBUZXh0UG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEYzQkQzMUQwMTI2NzMwMTgwMDY1NDY3RiAvKiBUZXh0UG9zaXRp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlG
REExNUMxRTEyQjAzMDVDMDAzQTU4M0EgLyogQ29tcGxleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRBMTVDMTYxMkIwMzAyODAwM0E1ODNBIC8qIENv
bXBsZXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGRTFCNDQ3QTBFQ0NENzNCMDA0RjRERDEgLyogU3RkTGliRXh0cmFzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTFCNDQ3OTBFQ0NENzNCMDA0RjRE
RDEgLyogU3RkTGliRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTE1MDEsNiArMTUwMyw4IEBACiAJCUU0OURDMTUxMTJFRjI3MjIwMDE4
NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNvdXJjZVByb3ZpZGVyQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTQ5REMxNTUxMkVGMjc3MjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNoZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0RDhDRTlCMTJGQzQyRTEwMEJDOUY1
QSAvKiBCbG9vbUZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9v
bUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFREU4MUNBNTE0QTIyQTIx
MDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBOdW1iZXJPZkNvcmVzLmNwcDsgcGF0aCA9IHd0Zi9OdW1iZXJPZkNvcmVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRURFODFDQTYxNEEyMkEyMTAwNDQxMUZG
IC8qIE51bWJlck9mQ29yZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTnVt
YmVyT2ZDb3Jlcy5oOyBwYXRoID0gd3RmL051bWJlck9mQ29yZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjNCRDMxRDAxMjY3MzAxODAwNjU0NjdGIC8qIFRleHRQb3NpdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUZXh0UG9zaXRpb24uaDsgcGF0aCA9
IHRleHQvVGV4dFBvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QkIy
QkM1MDMwRjc3MjEwMUZDRkUxRCAvKiBDb21wbGV0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbXBsZXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQlGNUMyOTBFNjAyODRGOThFMDE4NjM1Q0Eg
LyogSmF2YVNjcmlwdENvcmVQcmVmaXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlwdENvcmVQcmVmaXguaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwpAQCAtMTYxNSw2ICsxNjE5LDggQEAKIAkJMDg2
N0Q2OTFGRTg0MDI4RkMwMkFBQzA3IC8qIEphdmFTY3JpcHRDb3JlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlFREU4MUNBNTE0QTIyQTIxMDA0NDExRkYg
LyogTnVtYmVyT2ZDb3Jlcy5jcHAgKi8sCisJCQkJRURFODFDQTYxNEEyMkEyMTAwNDQxMUZGIC8q
IE51bWJlck9mQ29yZXMuaCAqLywKIAkJCQk4NjA0RjRGMjE0M0E2QzQ0MDBCMjk1RjUgLyogQ2hh
bmdlTG9nICovLAogCQkJCUE3MThGODIxMTE3OEVCNEIwMDI0NjVBNyAvKiBjcmVhdGVfcmVnZXhf
dGFibGVzICovLAogCQkJCTkzN0I2M0NDMDlFNzY2RDIwMEE2NzFERCAvKiBEZXJpdmVkU291cmNl
cy5tYWtlICovLApAQCAtMzAwMiw2ICszMDA4LDcgQEAKIAkJCQk4NjBCRDgwMTE0OEVBNkYyMDAx
MTJCMkYgLyogSW50cmluc2ljLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkJDMEFFODE0OTZDN0M3
MDBENEZCREQgLyogREZHRXhpdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTlFNTUx
MTQ5ODA5MzUwMDAwMUE4QSAvKiBGdW5jdGlvbmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlFREU4
MUNBODE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0zNTQwLDYgKzM1NDcsNyBAQAogCQkJCUE3M0JFMTY4MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJh
eUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzNCRTE2QTE0ODQyMDUyMDA5MTIwNEIg
LyogQXJyYXlCdWZmZXJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQkMwQUU3MTQ5NkM3
QzQwMEQ0RkJERCAvKiBERkdFeGl0UHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFREU4
MUNBNzE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggNjhkMTBiNy4u
ZTY1ZTE1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJPcHRpb25zLmgiCiAKICNpbmNsdWRlIDxsaW1pdHM+
CisjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3dGYvUGFnZUJsb2Nr
Lmg+CiAKICNpZiBPUyhEQVJXSU4pICYmIEVOQUJMRShQQVJBTExFTF9HQykKQEAgLTE3NCwxMiAr
MTc1LDggQEAgdm9pZCBpbml0aWFsaXplT3B0aW9ucygpCiAgICAgU0VUKG9wYXF1ZVJvb3RNZXJn
ZVRocmVzaG9sZCwgICAgICAgICAgICAgMTAwMCk7CiAKICAgICBpbnQgY3B1c1RvVXNlID0gMTsK
LSNpZiBPUyhEQVJXSU4pICYmIEVOQUJMRShQQVJBTExFTF9HQykKLSAgICBpbnQgbmFtZVsyXTsK
LSAgICBzaXplX3QgdmFsdWVTaXplID0gc2l6ZW9mKGNwdXNUb1VzZSk7Ci0gICAgbmFtZVswXSA9
IENUTF9IVzsKLSAgICBuYW1lWzFdID0gSFdfQVZBSUxDUFU7Ci0gICAgc3lzY3RsKG5hbWUsIDIs
ICZjcHVzVG9Vc2UsICZ2YWx1ZVNpemUsIDAsIDApOworI2lmIEVOQUJMRShQQVJBTExFTF9HQykK
KyAgICBjcHVzVG9Vc2UgPSBXVEY6Om51bWJlck9mQ29yZXMoKTsKICNlbmRpZgogICAgIC8vIFdl
IGRvbid0IHNjYWxlIHNvIHdlbGwgYmV5b25kIDQuCiAgICAgaWYgKGNwdXNUb1VzZSA+IDQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA2ZDFjZWU4Li4zOGVh
Njc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTUzLDYg
KzUzLDcgQEAgU0VUKFdURl9IRUFERVJTCiAgICAgTm9uY29weWFibGUuaAogICAgIE5vdEZvdW5k
LmgKICAgICBOdWxsUHRyLmgKKyAgICBOdW1iZXJPZkNvcmVzLmgKICAgICBPU0FsbG9jYXRvci5o
CiAgICAgT1NSYW5kb21Tb3VyY2UuaAogICAgIE93bkFycmF5UHRyLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL01haW5UaHJlYWQuY3BwCmluZGV4IDkxNTEyNjUuLjc2YzUzNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcApAQCAtMjQ5LDQgKzI0OSw0MCBAQCBi
b29sIGlzTWFpblRocmVhZCgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQQVJBTExFTF9HQykK
K3N0YXRpYyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNHQ1RocmVhZDsKKwordm9pZCBpbml0aWFs
aXplR0NUaHJlYWRzKCkKK3sKKyAgICBpc0dDVGhyZWFkID0gbmV3IFRocmVhZFNwZWNpZmljPGJv
b2w+KCk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShQQVJBTExFTF9HQykKK3ZvaWQgcmVnaXN0
ZXJHQ1RocmVhZCgpCit7CisgICAgaWYgKCFpc0dDVGhyZWFkKSB7CisgICAgICAgIC8vIFRoaXMg
aGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBh
Ym91dAorICAgICAgICAvLyBNYWluVGhyZWFkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgKippc0dDVGhyZWFkID0gdHJ1ZTsKK30KKworYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFk
KCkKK3sKKyAgICBpZiAoaXNHQ1RocmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQorI2Vsc2UK
Ky8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qg
c3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgorYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFk
KCkKK3sKKyAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJl
YWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCmluZGV4IGMxNTNk
MWUuLjNmNTI2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRo
cmVhZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm0uaCIKIAogI2luY2x1ZGUgPHN0ZGludC5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApA
QCAtNTMsNiArNTQsNyBAQCB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCBw
YXVzZWQpOwogCiBib29sIGlzTWFpblRocmVhZCgpOwogI2lmIEVOQUJMRShQQVJBTExFTF9HQykK
K3ZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpOwogdm9pZCByZWdpc3RlckdDVGhyZWFkKCk7CiBi
b29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsKICNlbGlmIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjg0ZTY3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBV
TklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVO
SVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk51bWJlck9m
Q29yZXMuaCIKKworI2lmIE9TKERBUldJTikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQor
I2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNlbGlmIE9T
KExJTlVYKSB8fCBPUyhBSVgpIHx8IE9TKFNPTEFSSVMpCisjaW5jbHVkZSA8dW5pc3RkLmg+Cisj
ZWxpZiBPUyhXSU5ET1dTKQorI2luY2x1ZGUgPFdpbmRvd3MuaD4KKyNlbmRpZgorCituYW1lc3Bh
Y2UgV1RGIHsKKworaW50IG51bWJlck9mQ29yZXMoKQoreworICAgIGNvbnN0IGludCBkZWZhdWx0
SWZVbmF2YWlsYWJsZSA9IDE7CisgICAgc3RhdGljIGludCBzX251bWJlck9mQ29yZXMgPSAtMTsK
KworICAgIGlmIChzX251bWJlck9mQ29yZXMgPiAwKQorICAgICAgICByZXR1cm4gc19udW1iZXJP
ZkNvcmVzOworI2lmIE9TKERBUldJTikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQorICAg
IHVuc2lnbmVkIHJlc3VsdDsKKyAgICBzaXplX3QgbGVuZ3RoID0gc2l6ZW9mKHJlc3VsdCk7Cisg
ICAgaW50IG5hbWVbXSA9IHsKKyAgICAgICAgICAgIENUTF9IVywKKyAgICAgICAgICAgIEhXX05D
UFUKKyAgICB9OworICAgIGludCBzeXNjdGxSZXN1bHQgPSBzeXNjdGwobmFtZSwgc2l6ZW9mKG5h
bWUpIC8gc2l6ZW9mKGludCksICZyZXN1bHQsICZsZW5ndGgsIDAsIDApOworCisgICAgc19udW1i
ZXJPZkNvcmVzID0gc3lzY3RsUmVzdWx0IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxhYmxlIDogcmVz
dWx0OworI2VsaWYgT1MoTElOVVgpIHx8IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKKyAgICBsb25n
IHN5c2NvbmZSZXN1bHQgPSBzeXNjb25mKF9TQ19OUFJPQ0VTU09SU19PTkxOKTsKKworICAgIHNf
bnVtYmVyT2ZDb3JlcyA9IHN5c2NvbmZSZXN1bHQgPCAwID8gZGVmYXVsdElmVW5hdmFpbGFibGUg
OiBzdGF0aWNfY2FzdDxpbnQ+KHN5c2NvbmZSZXN1bHQpOworI2VsaWYgT1MoV0lORE9XUykKKyAg
ICBVTlVTRURfUEFSQU0oZGVmYXVsdElmVW5hdmFpbGFibGUpOworICAgIFNZU1RFTV9JTkZPIHN5
c0luZm87CisgICAgR2V0U3lzdGVtSW5mbygmc3lzSW5mbyk7CisKKyAgICBzX251bWJlck9mQ29y
ZXMgPSBzeXNJbmZvLmR3TnVtYmVyT2ZQcm9jZXNzb3JzOworI2Vsc2UKKyAgICBzX251bWJlck9m
Q29yZXMgPSBkZWZhdWx0SWZVbmF2YWlsYWJsZTsKKyNlbmRpZgorICAgIHJldHVybiBzX251bWJl
ck9mQ29yZXM7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
TnVtYmVyT2ZDb3Jlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVz
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNThmNTRkYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5oCkBAIC0w
LDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVn
ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgUm9sYW5kIFRh
a2FjcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
CisgKi8KKworI2lmbmRlZiBOdW1iZXJPZkNvcmVzX2gKKyNkZWZpbmUgTnVtYmVyT2ZDb3Jlc19o
CisKK25hbWVzcGFjZSBXVEYgeworCitpbnQgbnVtYmVyT2ZDb3JlcygpOworCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5l
cmljLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5j
cHAKaW5kZXggYjYyMDdkYy4uOTg3NDJiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNs
dWRlICJQYXJhbGxlbEpvYnMuaCIKICNpbmNsdWRlICJVbnVzZWRQYXJhbS5oIgorI2luY2x1ZGUg
PHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAKICNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5CU0QpIHx8
IE9TKE5FVEJTRCkKICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CkBAIC00NSwxOSArNDYsMTYgQEAg
bmFtZXNwYWNlIFdURiB7CiAKIFZlY3RvcjwgUmVmUHRyPFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRo
cmVhZFByaXZhdGU+ID4qIFBhcmFsbGVsRW52aXJvbm1lbnQ6OnNfdGhyZWFkUG9vbCA9IDA7CiAK
LWludCBQYXJhbGxlbEVudmlyb25tZW50OjpzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0g
LTE7Ci0KIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1lbnQoVGhyZWFkRnVu
Y3Rpb24gdGhyZWFkRnVuY3Rpb24sIHNpemVfdCBzaXplT2ZQYXJhbWV0ZXIsIGludCByZXF1ZXN0
ZWRKb2JOdW1iZXIpIDoKICAgICBtX3RocmVhZEZ1bmN0aW9uKHRocmVhZEZ1bmN0aW9uKSwKICAg
ICBtX3NpemVPZlBhcmFtZXRlcihzaXplT2ZQYXJhbWV0ZXIpCiB7CiAgICAgQVNTRVJUX0FSRyhy
ZXF1ZXN0ZWRKb2JOdW1iZXIsIHJlcXVlc3RlZEpvYk51bWJlciA+PSAxKTsKIAotICAgIGlmIChz
X21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID09IC0xKQotICAgICAgICBkZXRlcm1pbmVNYXhO
dW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpOworICAgIGludCBtYXhOdW1iZXJPZkNvcmVzID0gbnVt
YmVyT2ZDb3JlcygpOwogCi0gICAgaWYgKCFyZXF1ZXN0ZWRKb2JOdW1iZXIgfHwgcmVxdWVzdGVk
Sm9iTnVtYmVyID4gc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcykKLSAgICAgICAgcmVxdWVz
dGVkSm9iTnVtYmVyID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNfbWF4TnVtYmVyT2ZQYXJhbGxl
bFRocmVhZHMpOworICAgIGlmICghcmVxdWVzdGVkSm9iTnVtYmVyIHx8IHJlcXVlc3RlZEpvYk51
bWJlciA+IG1heE51bWJlck9mQ29yZXMpCisgICAgICAgIHJlcXVlc3RlZEpvYk51bWJlciA9IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZkNvcmVzKTsKIAogICAgIGlmICghc190aHJl
YWRQb29sKQogICAgICAgICBzX3RocmVhZFBvb2wgPSBuZXcgVmVjdG9yPCBSZWZQdHI8VGhyZWFk
UHJpdmF0ZT4gPigpOwpAQCAtNjUsNyArNjMsNyBAQCBQYXJhbGxlbEVudmlyb25tZW50OjpQYXJh
bGxlbEVudmlyb25tZW50KFRocmVhZEZ1bmN0aW9uIHRocmVhZEZ1bmN0aW9uLCBzaXplX3Qgcwog
ICAgIC8vIFRoZSBtYWluIHRocmVhZCBzaG91bGQgYmUgYWxzbyBhIHdvcmtlci4KICAgICBpbnQg
bWF4TnVtYmVyT2ZOZXdUaHJlYWRzID0gcmVxdWVzdGVkSm9iTnVtYmVyIC0gMTsKIAotICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyAmJiBtX3RocmVh
ZHMuc2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heE51bWJlck9mTmV3VGhyZWFkcyk7
ICsraSkgeworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWF4TnVtYmVyT2ZDb3JlcyAmJiBtX3Ro
cmVhZHMuc2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heE51bWJlck9mTmV3VGhyZWFk
cyk7ICsraSkgewogICAgICAgICBpZiAoc190aHJlYWRQb29sLT5zaXplKCkgPCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oaSkgKyAxVSkKICAgICAgICAgICAgIHNfdGhyZWFkUG9vbC0+YXBwZW5kKFRo
cmVhZFByaXZhdGU6OmNyZWF0ZSgpKTsKIApAQCAtOTMsMzIgKzkxLDYgQEAgdm9pZCBQYXJhbGxl
bEVudmlyb25tZW50OjpleGVjdXRlKHZvaWQqIHBhcmFtZXRlcnMpCiAgICAgICAgIG1fdGhyZWFk
c1tpXS0+d2FpdEZvckZpbmlzaCgpOwogfQogCi12b2lkIFBhcmFsbGVsRW52aXJvbm1lbnQ6OmRl
dGVybWluZU1heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKCkKLXsKLSAgICBjb25zdCBpbnQgZGVm
YXVsdElmVW5hdmFpbGFibGUgPSAyOwotI2lmIE9TKERBUldJTikgfHwgT1MoT1BFTkJTRCkgfHwg
T1MoTkVUQlNEKQotICAgIHVuc2lnbmVkIHJlc3VsdDsKLSAgICBzaXplX3QgbGVuZ3RoID0gc2l6
ZW9mKHJlc3VsdCk7Ci0gICAgaW50IG5hbWVbXSA9IHsKLSAgICAgICAgQ1RMX0hXLAotICAgICAg
ICBIV19OQ1BVCi0gICAgfTsKLSAgICBpbnQgc3lzY3RsUmVzdWx0ID0gc3lzY3RsKG5hbWUsIHNp
emVvZihuYW1lKSAvIHNpemVvZihpbnQpLCAmcmVzdWx0LCAmbGVuZ3RoLCAwLCAwKTsKLSAgICBz
X21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lzY3RsUmVzdWx0IDwgMCA/IGRlZmF1bHRJ
ZlVuYXZhaWxhYmxlIDogcmVzdWx0OwotI2VsaWYgT1MoTElOVVgpIHx8IE9TKEFJWCkgfHwgT1Mo
U09MQVJJUykKLSAgICBsb25nIHN5c2NvbmZSZXN1bHQgPSBzeXNjb25mKF9TQ19OUFJPQ0VTU09S
U19PTkxOKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lzY29uZlJlc3Vs
dCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0YXRpY19jYXN0PGludD4oc3lzY29uZlJl
c3VsdCk7Ci0jZWxpZiBPUyhXSU5ET1dTKQotICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0SWZVbmF2
YWlsYWJsZSk7Ci0KLSAgICBTWVNURU1fSU5GTyBzeXNJbmZvOwotICAgIEdldFN5c3RlbUluZm8o
JnN5c0luZm8pOwotICAgIHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPSBzeXNJbmZvLmR3
TnVtYmVyT2ZQcm9jZXNzb3JzOwotI2Vsc2UKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJl
YWRzID0gZGVmYXVsdElmVW5hdmFpbGFibGU7Ci0jZW5kaWYKLX0KLQogYm9vbCBQYXJhbGxlbEVu
dmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp0cnlMb2NrRm9yKFBhcmFsbGVsRW52aXJvbm1lbnQq
IHBhcmVudCkKIHsKICAgICBib29sIGxvY2tlZCA9IG1fbXV0ZXgudHJ5TG9jaygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaAppbmRleCBkYWI2
ZGQ5Li4xYzdkNjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFs
bGVsSm9ic0dlbmVyaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVs
Sm9ic0dlbmVyaWMuaApAQCAtODQsMTUgKzg0LDEyIEBAIHB1YmxpYzoKICAgICB9OwogCiBwcml2
YXRlOgotICAgIHN0YXRpYyB2b2lkIGRldGVybWluZU1heE51bWJlck9mUGFyYWxsZWxUaHJlYWRz
KCk7Ci0KICAgICBUaHJlYWRGdW5jdGlvbiBtX3RocmVhZEZ1bmN0aW9uOwogICAgIHNpemVfdCBt
X3NpemVPZlBhcmFtZXRlcjsKICAgICBpbnQgbV9udW1iZXJPZkpvYnM7CiAKICAgICBWZWN0b3I8
IFJlZlB0cjxUaHJlYWRQcml2YXRlPiA+IG1fdGhyZWFkczsKICAgICBzdGF0aWMgVmVjdG9yPCBS
ZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiogc190aHJlYWRQb29sOwotICAgIHN0YXRpYyBpbnQgc19t
YXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDkyNjJjNmUuLjgzYWIyN2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKQEAgLTExMTYsNyArMTExNiw3IEBACiAjZGVm
aW5lIEVOQUJMRV9DT01QQVJFX0FORF9TV0FQIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5B
QkxFX1BBUkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpKSAmJiBF
TkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKKyNpZiAhZGVmaW5lZChFTkFCTEVfUEFSQUxMRUxfR0Mp
ICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oUVQpKSAmJiBF
TkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKICNkZWZpbmUgRU5BQkxFX1BBUkFMTEVMX0dDIDEKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhy
ZWFkTWFjLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5t
bQppbmRleCBmYmM2MjUwLi5kNWQ1YjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvbWFjL01haW5UaHJlYWRNYWMubW0KQEAgLTU5LDE3ICs1OSw2IEBAIHN0YXRpYyBib29sIG1h
aW5UaHJlYWRFc3RhYmxpc2hlZEFzUHRocmVhZE1haW47CiBzdGF0aWMgcHRocmVhZF90IG1haW5U
aHJlYWRQdGhyZWFkOwogc3RhdGljIE5TVGhyZWFkKiBtYWluVGhyZWFkTlNUaHJlYWQ7CiAKLSNp
ZiBFTkFCTEUoUEFSQUxMRUxfR0MpCi1zdGF0aWMgVGhyZWFkU3BlY2lmaWM8Ym9vbD4qIGlzR0NU
aHJlYWQ7Ci0KLXN0YXRpYyB2b2lkIGluaXRpYWxpemVHQ1RocmVhZHMoKQotewotICAgIGlzR0NU
aHJlYWQgPSBuZXcgVGhyZWFkU3BlY2lmaWM8Ym9vbD4oKTsKLX0KLSNlbHNlCi1zdGF0aWMgdm9p
ZCBpbml0aWFsaXplR0NUaHJlYWRzKCkgeyB9Ci0jZW5kaWYKLQogdm9pZCBpbml0aWFsaXplTWFp
blRocmVhZFBsYXRmb3JtKCkKIHsKICAgICBBU1NFUlQoIXN0YXRpY01haW5UaHJlYWRDYWxsZXIp
OwpAQCAtMTQ1LDMxICsxMzQsNCBAQCBib29sIGlzTWFpblRocmVhZCgpCiAgICAgcmV0dXJuIHB0
aHJlYWRfZXF1YWwocHRocmVhZF9zZWxmKCksIG1haW5UaHJlYWRQdGhyZWFkKTsKIH0KIAotI2lm
IEVOQUJMRShQQVJBTExFTF9HQykKLXZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpCi17Ci0gICAgaWYg
KCFpc0dDVGhyZWFkKSB7Ci0gICAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiB3ZSdyZSBydW5uaW5n
IGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBhYm91dAotICAgICAgICAvLyBNYWluVGhy
ZWFkLgotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgKippc0dDVGhyZWFkID0gdHJ1ZTsK
LX0KLQotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKLXsKLSAgICBpZiAoaXNHQ1RocmVh
ZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIAot
ICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKLX0KLSNlbHNlCi0vLyBUaGlzIGlzIG5lY2Vzc2Fy
eSBiZWNhdXNlIEphdmFTY3JpcHRDb3JlLmV4cCBkb2Vzbid0IHN1cHBvcnQgcHJlcHJvY2Vzc29y
IG1hY3Jvcy4KLWJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpCi17Ci0gICAgcmV0dXJuIGlz
TWFpblRocmVhZCgpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi93dGYucHJvCmluZGV4IDRjNTc1ZTMuLmM0NjM2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnBybworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL3d0Zi5wcm8KQEAgLTkyLDYgKzkyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgTm9uQ29weWlu
Z1NvcnQuaCBcCiAgICAgTm90Rm91bmQuaCBcCiAgICAgTnVsbFB0ci5oIFwKKyAgICBOdW1iZXJP
ZkNvcmVzLmggXAogICAgIE9TQWxsb2NhdG9yLmggXAogICAgIE9TUmFuZG9tU291cmNlLmggXAog
ICAgIE93bkFycmF5UHRyLmggXApAQCAtMTk4LDYgKzE5OSw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IE1haW5UaHJlYWQuY3BwIFwKICAgICBNZXRhQWxsb2NhdG9yLmNwcCBcCiAgICAgTnVsbFB0ci5j
cHAgXAorICAgIE51bWJlck9mQ29yZXMuY3BwIFwKICAgICBPU1JhbmRvbVNvdXJjZS5jcHAgXAog
ICAgIHF0L01haW5UaHJlYWRRdC5jcHAgXAogICAgIHF0L1N0cmluZ1F0LmNwcCBcCg==
</data>
<flag name="commit-queue"
          id="120533"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120313</attachid>
            <date>2011-12-22 06:05:55 -0800</date>
            <delta_ts>2012-01-02 01:42:14 -0800</delta_ts>
            <desc>This patch results some speed-ups on QT platform.</desc>
            <filename>20121222_3.diff</filename>
            <type>text/plain</type>
            <size>20739</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQwNTBlYjMuLjIxZjQ3ZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDExLTEyLTIyICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIDIgZmlsZXMgaXMgYWRkZWQg
dG8gdGhlIHByb2plY3QsIG5hbWVseSBOdW1iZXJPZkNvcmVzLmgvY3BwLCB0aGF0CisgICAgICAg
IGluY2x1ZGUgYSBDUFUgY29yZSBudW1iZXIgZGV0ZXJtaW5pbmcgZnVuY3Rpb24uIEl0IHVzZWQg
dG8gYmUgaW4KKyAgICAgICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5oL2NwcCBiZWZvcmUuCisKKyAg
ICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAgIHNwZWVkLXVw
OiAgMS4wNzF4IGFzIGZhc3QgIFtGcm9tOiA3NDYuMW1zICBUbzogNjk2LjRtcyBdCisgICAgICAg
IFY4IHNwbGF5ICAgICBzcGVlZC11cDogIDEuMDgyeCBhcyBmYXN0ICBbRnJvbTogMzQ5MC40bXMg
VG86IDMyMjYuN21zXQorICAgICAgICBXaW5kc2NvcnBpb24gc3BlZWQtdXA6ICAxLjE1OHggYXMg
ZmFzdCAgW0Zyb206IDE0NS44bXMgIFRvOiAxMjUuOW1zIF0KKworICAgICAgICBUZXN0ZWQgb24g
SW50ZWwoUikgQ29yZShUTSkgaTUtMjMyMCBDUFUgQCAzLjAwR0h6IHdpdGggNC1jb3JlLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5n
eXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6
aW5pdGlhbGl6ZU9wdGlvbnMpOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVHQ1RocmVh
ZHMpOgorICAgICAgICAoV1RGOjpyZWdpc3RlckdDVGhyZWFkKToKKyAgICAgICAgKFdURjo6aXNN
YWluVGhyZWFkT3JHQ1RocmVhZCk6CisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKyAgICAg
ICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGOjpudW1iZXJP
ZkNvcmVzKToKKyAgICAgICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5oOiBBZGRlZC4KKyAgICAgICAg
KiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52
aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1lbnQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEpv
YnNHZW5lcmljLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAgICogd3RmL21h
Yy9NYWluVGhyZWFkTWFjLm1tOgorICAgICAgICAqIHd0Zi93dGYucHJvOgorCiAyMDExLTEyLTIx
ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgT1MgWCBidWlsZCBm
aXggYWZ0ZXIgcjEwMzQ4OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggZmY1NjU2MC4uODJlNzg0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTYwMyw2ICs2MDMsNyBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL05vbkNvcHlpbmdTb3J0LmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTm90Rm91bmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9OdWxsUHRyLmggXAorICAgICAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051
bWJlck9mQ29yZXMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU0FsbG9jYXRvci5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmNwcCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5oIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKaW5kZXggMDFmZDNkYy4uM2U2MGJkNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAgLTE4MCw2ICsxODAsNyBA
QAogICAgICAgICAgICAgJ3d0Zi9Ob25jb3B5YWJsZS5oJywKICAgICAgICAgICAgICd3dGYvTm90
Rm91bmQuaCcsCiAgICAgICAgICAgICAnd3RmL051bGxQdHIuaCcsCisgICAgICAgICAgICAnd3Rm
L051bWJlck9mQ29yZXMuaCcsCiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yLmgnLAogICAg
ICAgICAgICAgJ3d0Zi9Pd25BcnJheVB0ci5oJywKICAgICAgICAgICAgICd3dGYvT3duRmFzdE1h
bGxvY1B0ci5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWQ5OGNiZC4uZGU3
YjNmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcxMSw2ICs3MTEsOCBAQAog
CQlFNDlEQzE2QzEyRUYyOTRFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5REMxNTExMkVGMjcy
MjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDlEQzE2RDEyRUYyOTUzMDAxODRBMUYgLyog
U291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0OURDMTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRl
ckNhY2hlSXRlbS5oICovOyB9OwogCQlFNEQ4Q0VGQjEyRkM0Mzk2MDBCQzlGNUEgLyogQmxvb21G
aWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
RDhDRTlCMTJGQzQyRTEwMEJDOUY1QSAvKiBCbG9vbUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUVERTgxQ0E3MTRBMjJBMjEwMDQ0MTFG
RiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEVERTgxQ0E1MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmNw
cCAqLzsgfTsKKwkJRURFODFDQTgxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVERTgxQ0E2MTRB
MjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmggKi87IH07CiAJCUYzQkQzMUVEMTI2NzM1
NzcwMDY1NDY3RiAvKiBUZXh0UG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEYzQkQzMUQwMTI2NzMwMTgwMDY1NDY3RiAvKiBUZXh0UG9zaXRp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlG
REExNUMxRTEyQjAzMDVDMDAzQTU4M0EgLyogQ29tcGxleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRBMTVDMTYxMkIwMzAyODAwM0E1ODNBIC8qIENv
bXBsZXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGRTFCNDQ3QTBFQ0NENzNCMDA0RjRERDEgLyogU3RkTGliRXh0cmFzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTFCNDQ3OTBFQ0NENzNCMDA0RjRE
RDEgLyogU3RkTGliRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTE1MDEsNiArMTUwMyw4IEBACiAJCUU0OURDMTUxMTJFRjI3MjIwMDE4
NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNvdXJjZVByb3ZpZGVyQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTQ5REMxNTUxMkVGMjc3MjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNoZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0RDhDRTlCMTJGQzQyRTEwMEJDOUY1
QSAvKiBCbG9vbUZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9v
bUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFREU4MUNBNTE0QTIyQTIx
MDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBOdW1iZXJPZkNvcmVzLmNwcDsgcGF0aCA9IHd0Zi9OdW1iZXJPZkNvcmVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRURFODFDQTYxNEEyMkEyMTAwNDQxMUZG
IC8qIE51bWJlck9mQ29yZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTnVt
YmVyT2ZDb3Jlcy5oOyBwYXRoID0gd3RmL051bWJlck9mQ29yZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjNCRDMxRDAxMjY3MzAxODAwNjU0NjdGIC8qIFRleHRQb3NpdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUZXh0UG9zaXRpb24uaDsgcGF0aCA9
IHRleHQvVGV4dFBvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QkIy
QkM1MDMwRjc3MjEwMUZDRkUxRCAvKiBDb21wbGV0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbXBsZXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQlGNUMyOTBFNjAyODRGOThFMDE4NjM1Q0Eg
LyogSmF2YVNjcmlwdENvcmVQcmVmaXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlwdENvcmVQcmVmaXguaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwpAQCAtMTYxNSw2ICsxNjE5LDggQEAKIAkJMDg2
N0Q2OTFGRTg0MDI4RkMwMkFBQzA3IC8qIEphdmFTY3JpcHRDb3JlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlFREU4MUNBNTE0QTIyQTIxMDA0NDExRkYg
LyogTnVtYmVyT2ZDb3Jlcy5jcHAgKi8sCisJCQkJRURFODFDQTYxNEEyMkEyMTAwNDQxMUZGIC8q
IE51bWJlck9mQ29yZXMuaCAqLywKIAkJCQk4NjA0RjRGMjE0M0E2QzQ0MDBCMjk1RjUgLyogQ2hh
bmdlTG9nICovLAogCQkJCUE3MThGODIxMTE3OEVCNEIwMDI0NjVBNyAvKiBjcmVhdGVfcmVnZXhf
dGFibGVzICovLAogCQkJCTkzN0I2M0NDMDlFNzY2RDIwMEE2NzFERCAvKiBEZXJpdmVkU291cmNl
cy5tYWtlICovLApAQCAtMzAwMiw2ICszMDA4LDcgQEAKIAkJCQk4NjBCRDgwMTE0OEVBNkYyMDAx
MTJCMkYgLyogSW50cmluc2ljLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkJDMEFFODE0OTZDN0M3
MDBENEZCREQgLyogREZHRXhpdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTlFNTUx
MTQ5ODA5MzUwMDAwMUE4QSAvKiBGdW5jdGlvbmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlFREU4
MUNBODE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0zNTQwLDYgKzM1NDcsNyBAQAogCQkJCUE3M0JFMTY4MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJh
eUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzNCRTE2QTE0ODQyMDUyMDA5MTIwNEIg
LyogQXJyYXlCdWZmZXJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQkMwQUU3MTQ5NkM3
QzQwMEQ0RkJERCAvKiBERkdFeGl0UHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFREU4
MUNBNzE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggNjhkMTBiNy4u
ZTY1ZTE1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJPcHRpb25zLmgiCiAKICNpbmNsdWRlIDxsaW1pdHM+
CisjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3dGYvUGFnZUJsb2Nr
Lmg+CiAKICNpZiBPUyhEQVJXSU4pICYmIEVOQUJMRShQQVJBTExFTF9HQykKQEAgLTE3NCwxMiAr
MTc1LDggQEAgdm9pZCBpbml0aWFsaXplT3B0aW9ucygpCiAgICAgU0VUKG9wYXF1ZVJvb3RNZXJn
ZVRocmVzaG9sZCwgICAgICAgICAgICAgMTAwMCk7CiAKICAgICBpbnQgY3B1c1RvVXNlID0gMTsK
LSNpZiBPUyhEQVJXSU4pICYmIEVOQUJMRShQQVJBTExFTF9HQykKLSAgICBpbnQgbmFtZVsyXTsK
LSAgICBzaXplX3QgdmFsdWVTaXplID0gc2l6ZW9mKGNwdXNUb1VzZSk7Ci0gICAgbmFtZVswXSA9
IENUTF9IVzsKLSAgICBuYW1lWzFdID0gSFdfQVZBSUxDUFU7Ci0gICAgc3lzY3RsKG5hbWUsIDIs
ICZjcHVzVG9Vc2UsICZ2YWx1ZVNpemUsIDAsIDApOworI2lmIEVOQUJMRShQQVJBTExFTF9HQykK
KyAgICBjcHVzVG9Vc2UgPSBXVEY6Om51bWJlck9mQ29yZXMoKTsKICNlbmRpZgogICAgIC8vIFdl
IGRvbid0IHNjYWxlIHNvIHdlbGwgYmV5b25kIDQuCiAgICAgaWYgKGNwdXNUb1VzZSA+IDQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA2ZDFjZWU4Li4zOGVh
Njc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTUzLDYg
KzUzLDcgQEAgU0VUKFdURl9IRUFERVJTCiAgICAgTm9uY29weWFibGUuaAogICAgIE5vdEZvdW5k
LmgKICAgICBOdWxsUHRyLmgKKyAgICBOdW1iZXJPZkNvcmVzLmgKICAgICBPU0FsbG9jYXRvci5o
CiAgICAgT1NSYW5kb21Tb3VyY2UuaAogICAgIE93bkFycmF5UHRyLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL01haW5UaHJlYWQuY3BwCmluZGV4IDkxNTEyNjUuLjc2YzUzNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcApAQCAtMjQ5LDQgKzI0OSw0MCBAQCBi
b29sIGlzTWFpblRocmVhZCgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQQVJBTExFTF9HQykK
K3N0YXRpYyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNHQ1RocmVhZDsKKwordm9pZCBpbml0aWFs
aXplR0NUaHJlYWRzKCkKK3sKKyAgICBpc0dDVGhyZWFkID0gbmV3IFRocmVhZFNwZWNpZmljPGJv
b2w+KCk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShQQVJBTExFTF9HQykKK3ZvaWQgcmVnaXN0
ZXJHQ1RocmVhZCgpCit7CisgICAgaWYgKCFpc0dDVGhyZWFkKSB7CisgICAgICAgIC8vIFRoaXMg
aGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBh
Ym91dAorICAgICAgICAvLyBNYWluVGhyZWFkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgKippc0dDVGhyZWFkID0gdHJ1ZTsKK30KKworYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFk
KCkKK3sKKyAgICBpZiAoaXNHQ1RocmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQorI2Vsc2UK
Ky8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qg
c3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgorYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFk
KCkKK3sKKyAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJl
YWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCmluZGV4IGMxNTNk
MWUuLjMzZGNlODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRo
cmVhZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm0uaCIKIAogI2luY2x1ZGUgPHN0ZGludC5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApA
QCAtNTMsMTIgKzU0LDExIEBAIHZvaWQgc2V0TWFpblRocmVhZENhbGxiYWNrc1BhdXNlZChib29s
IHBhdXNlZCk7CiAKIGJvb2wgaXNNYWluVGhyZWFkKCk7CiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dD
KQordm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCk7CiB2b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKTsK
IGJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpOwotI2VsaWYgUExBVEZPUk0oTUFDKQotYm9v
bCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7CiAjZWxzZQotaW5saW5lIGJvb2wgaXNNYWluVGhy
ZWFkT3JHQ1RocmVhZCgpIHsgcmV0dXJuIGlzTWFpblRocmVhZCgpOyB9Citib29sIGlzTWFpblRo
cmVhZE9yR0NUaHJlYWQoKTsKICNlbmRpZgogCiAvLyBOT1RFOiB0aGVzZSBmdW5jdGlvbnMgYXJl
IGludGVybmFsIHRvIHRoZSBjYWxsT25NYWluVGhyZWFkIGltcGxlbWVudGF0aW9uLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uODRlNjcxMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVO
SVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5J
VkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTnVtYmVyT2ZD
b3Jlcy5oIgorCisjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCisj
aW5jbHVkZSA8c3lzL3N5c2N0bC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VsaWYgT1Mo
TElOVVgpIHx8IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNl
bGlmIE9TKFdJTkRPV1MpCisjaW5jbHVkZSA8V2luZG93cy5oPgorI2VuZGlmCisKK25hbWVzcGFj
ZSBXVEYgeworCitpbnQgbnVtYmVyT2ZDb3JlcygpCit7CisgICAgY29uc3QgaW50IGRlZmF1bHRJ
ZlVuYXZhaWxhYmxlID0gMTsKKyAgICBzdGF0aWMgaW50IHNfbnVtYmVyT2ZDb3JlcyA9IC0xOwor
CisgICAgaWYgKHNfbnVtYmVyT2ZDb3JlcyA+IDApCisgICAgICAgIHJldHVybiBzX251bWJlck9m
Q29yZXM7CisjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCisgICAg
dW5zaWduZWQgcmVzdWx0OworICAgIHNpemVfdCBsZW5ndGggPSBzaXplb2YocmVzdWx0KTsKKyAg
ICBpbnQgbmFtZVtdID0geworICAgICAgICAgICAgQ1RMX0hXLAorICAgICAgICAgICAgSFdfTkNQ
VQorICAgIH07CisgICAgaW50IHN5c2N0bFJlc3VsdCA9IHN5c2N0bChuYW1lLCBzaXplb2YobmFt
ZSkgLyBzaXplb2YoaW50KSwgJnJlc3VsdCwgJmxlbmd0aCwgMCwgMCk7CisKKyAgICBzX251bWJl
ck9mQ29yZXMgPSBzeXNjdGxSZXN1bHQgPCAwID8gZGVmYXVsdElmVW5hdmFpbGFibGUgOiByZXN1
bHQ7CisjZWxpZiBPUyhMSU5VWCkgfHwgT1MoQUlYKSB8fCBPUyhTT0xBUklTKQorICAgIGxvbmcg
c3lzY29uZlJlc3VsdCA9IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOworCisgICAgc19u
dW1iZXJPZkNvcmVzID0gc3lzY29uZlJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6
IHN0YXRpY19jYXN0PGludD4oc3lzY29uZlJlc3VsdCk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAg
IFVOVVNFRF9QQVJBTShkZWZhdWx0SWZVbmF2YWlsYWJsZSk7CisgICAgU1lTVEVNX0lORk8gc3lz
SW5mbzsKKyAgICBHZXRTeXN0ZW1JbmZvKCZzeXNJbmZvKTsKKworICAgIHNfbnVtYmVyT2ZDb3Jl
cyA9IHN5c0luZm8uZHdOdW1iZXJPZlByb2Nlc3NvcnM7CisjZWxzZQorICAgIHNfbnVtYmVyT2ZD
b3JlcyA9IGRlZmF1bHRJZlVuYXZhaWxhYmxlOworI2VuZGlmCisgICAgcmV0dXJuIHNfbnVtYmVy
T2ZDb3JlczsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9O
dW1iZXJPZkNvcmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGY1NGRjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmgKQEAgLTAs
MCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdl
ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBSb2xhbmQgVGFr
YWNzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoK
KyAqLworCisjaWZuZGVmIE51bWJlck9mQ29yZXNfaAorI2RlZmluZSBOdW1iZXJPZkNvcmVzX2gK
KworbmFtZXNwYWNlIFdURiB7CisKK2ludCBudW1iZXJPZkNvcmVzKCk7CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVy
aWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNw
cAppbmRleCBiNjIwN2RjLi45ODc0MmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1
ZGUgIlBhcmFsbGVsSm9icy5oIgogI2luY2x1ZGUgIlVudXNlZFBhcmFtLmgiCisjaW5jbHVkZSA8
d3RmL051bWJlck9mQ29yZXMuaD4KIAogI2lmIE9TKERBUldJTikgfHwgT1MoT1BFTkJTRCkgfHwg
T1MoTkVUQlNEKQogI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KQEAgLTQ1LDE5ICs0NiwxNiBAQCBu
YW1lc3BhY2UgV1RGIHsKIAogVmVjdG9yPCBSZWZQdHI8UGFyYWxsZWxFbnZpcm9ubWVudDo6VGhy
ZWFkUHJpdmF0ZT4gPiogUGFyYWxsZWxFbnZpcm9ubWVudDo6c190aHJlYWRQb29sID0gMDsKIAot
aW50IFBhcmFsbGVsRW52aXJvbm1lbnQ6OnNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPSAt
MTsKLQogUGFyYWxsZWxFbnZpcm9ubWVudDo6UGFyYWxsZWxFbnZpcm9ubWVudChUaHJlYWRGdW5j
dGlvbiB0aHJlYWRGdW5jdGlvbiwgc2l6ZV90IHNpemVPZlBhcmFtZXRlciwgaW50IHJlcXVlc3Rl
ZEpvYk51bWJlcikgOgogICAgIG1fdGhyZWFkRnVuY3Rpb24odGhyZWFkRnVuY3Rpb24pLAogICAg
IG1fc2l6ZU9mUGFyYW1ldGVyKHNpemVPZlBhcmFtZXRlcikKIHsKICAgICBBU1NFUlRfQVJHKHJl
cXVlc3RlZEpvYk51bWJlciwgcmVxdWVzdGVkSm9iTnVtYmVyID49IDEpOwogCi0gICAgaWYgKHNf
bWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPT0gLTEpCi0gICAgICAgIGRldGVybWluZU1heE51
bWJlck9mUGFyYWxsZWxUaHJlYWRzKCk7CisgICAgaW50IG1heE51bWJlck9mQ29yZXMgPSBudW1i
ZXJPZkNvcmVzKCk7CiAKLSAgICBpZiAoIXJlcXVlc3RlZEpvYk51bWJlciB8fCByZXF1ZXN0ZWRK
b2JOdW1iZXIgPiBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKQotICAgICAgICByZXF1ZXN0
ZWRKb2JOdW1iZXIgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc19tYXhOdW1iZXJPZlBhcmFsbGVs
VGhyZWFkcyk7CisgICAgaWYgKCFyZXF1ZXN0ZWRKb2JOdW1iZXIgfHwgcmVxdWVzdGVkSm9iTnVt
YmVyID4gbWF4TnVtYmVyT2ZDb3JlcykKKyAgICAgICAgcmVxdWVzdGVkSm9iTnVtYmVyID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KG1heE51bWJlck9mQ29yZXMpOwogCiAgICAgaWYgKCFzX3RocmVh
ZFBvb2wpCiAgICAgICAgIHNfdGhyZWFkUG9vbCA9IG5ldyBWZWN0b3I8IFJlZlB0cjxUaHJlYWRQ
cml2YXRlPiA+KCk7CkBAIC02NSw3ICs2Myw3IEBAIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlBhcmFs
bGVsRW52aXJvbm1lbnQoVGhyZWFkRnVuY3Rpb24gdGhyZWFkRnVuY3Rpb24sIHNpemVfdCBzCiAg
ICAgLy8gVGhlIG1haW4gdGhyZWFkIHNob3VsZCBiZSBhbHNvIGEgd29ya2VyLgogICAgIGludCBt
YXhOdW1iZXJPZk5ld1RocmVhZHMgPSByZXF1ZXN0ZWRKb2JOdW1iZXIgLSAxOwogCi0gICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzICYmIG1fdGhyZWFk
cy5zaXplKCkgPCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4TnVtYmVyT2ZOZXdUaHJlYWRzKTsg
KytpKSB7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXhOdW1iZXJPZkNvcmVzICYmIG1fdGhy
ZWFkcy5zaXplKCkgPCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4TnVtYmVyT2ZOZXdUaHJlYWRz
KTsgKytpKSB7CiAgICAgICAgIGlmIChzX3RocmVhZFBvb2wtPnNpemUoKSA8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihpKSArIDFVKQogICAgICAgICAgICAgc190aHJlYWRQb29sLT5hcHBlbmQoVGhy
ZWFkUHJpdmF0ZTo6Y3JlYXRlKCkpOwogCkBAIC05MywzMiArOTEsNiBAQCB2b2lkIFBhcmFsbGVs
RW52aXJvbm1lbnQ6OmV4ZWN1dGUodm9pZCogcGFyYW1ldGVycykKICAgICAgICAgbV90aHJlYWRz
W2ldLT53YWl0Rm9yRmluaXNoKCk7CiB9CiAKLXZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6ZGV0
ZXJtaW5lTWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMoKQotewotICAgIGNvbnN0IGludCBkZWZh
dWx0SWZVbmF2YWlsYWJsZSA9IDI7Ci0jaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBP
UyhORVRCU0QpCi0gICAgdW5zaWduZWQgcmVzdWx0OwotICAgIHNpemVfdCBsZW5ndGggPSBzaXpl
b2YocmVzdWx0KTsKLSAgICBpbnQgbmFtZVtdID0gewotICAgICAgICBDVExfSFcsCi0gICAgICAg
IEhXX05DUFUKLSAgICB9OwotICAgIGludCBzeXNjdGxSZXN1bHQgPSBzeXNjdGwobmFtZSwgc2l6
ZW9mKG5hbWUpIC8gc2l6ZW9mKGludCksICZyZXN1bHQsICZsZW5ndGgsIDAsIDApOwotICAgIHNf
bWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPSBzeXNjdGxSZXN1bHQgPCAwID8gZGVmYXVsdElm
VW5hdmFpbGFibGUgOiByZXN1bHQ7Ci0jZWxpZiBPUyhMSU5VWCkgfHwgT1MoQUlYKSB8fCBPUyhT
T0xBUklTKQotICAgIGxvbmcgc3lzY29uZlJlc3VsdCA9IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JT
X09OTE4pOwotICAgIHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPSBzeXNjb25mUmVzdWx0
IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxhYmxlIDogc3RhdGljX2Nhc3Q8aW50PihzeXNjb25mUmVz
dWx0KTsKLSNlbGlmIE9TKFdJTkRPV1MpCi0gICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRJZlVuYXZh
aWxhYmxlKTsKLQotICAgIFNZU1RFTV9JTkZPIHN5c0luZm87Ci0gICAgR2V0U3lzdGVtSW5mbygm
c3lzSW5mbyk7Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5c0luZm8uZHdO
dW1iZXJPZlByb2Nlc3NvcnM7Ci0jZWxzZQotICAgIHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVh
ZHMgPSBkZWZhdWx0SWZVbmF2YWlsYWJsZTsKLSNlbmRpZgotfQotCiBib29sIFBhcmFsbGVsRW52
aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxvY2tGb3IoUGFyYWxsZWxFbnZpcm9ubWVudCog
cGFyZW50KQogewogICAgIGJvb2wgbG9ja2VkID0gbV9tdXRleC50cnlMb2NrKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oCmluZGV4IGRhYjZk
ZDkuLjFjN2Q2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxs
ZWxKb2JzR2VuZXJpYy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxK
b2JzR2VuZXJpYy5oCkBAIC04NCwxNSArODQsMTIgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZh
dGU6Ci0gICAgc3RhdGljIHZvaWQgZGV0ZXJtaW5lTWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMo
KTsKLQogICAgIFRocmVhZEZ1bmN0aW9uIG1fdGhyZWFkRnVuY3Rpb247CiAgICAgc2l6ZV90IG1f
c2l6ZU9mUGFyYW1ldGVyOwogICAgIGludCBtX251bWJlck9mSm9iczsKIAogICAgIFZlY3Rvcjwg
UmVmUHRyPFRocmVhZFByaXZhdGU+ID4gbV90aHJlYWRzOwogICAgIHN0YXRpYyBWZWN0b3I8IFJl
ZlB0cjxUaHJlYWRQcml2YXRlPiA+KiBzX3RocmVhZFBvb2w7Ci0gICAgc3RhdGljIGludCBzX21h
eE51bWJlck9mUGFyYWxsZWxUaHJlYWRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKaW5kZXggOTI2MmM2ZS4uODNhYjI3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaApAQCAtMTExNiw3ICsxMTE2LDcgQEAKICNkZWZp
bmUgRU5BQkxFX0NPTVBBUkVfQU5EX1NXQVAgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFC
TEVfUEFSQUxMRUxfR0MpICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykpICYmIEVO
QUJMRShDT01QQVJFX0FORF9TV0FQKQorI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykg
JiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShRVCkpICYmIEVO
QUJMRShDT01QQVJFX0FORF9TV0FQKQogI2RlZmluZSBFTkFCTEVfUEFSQUxMRUxfR0MgMQogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJl
YWRNYWMubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1t
CmluZGV4IGZiYzYyNTAuLmQ1ZDViNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9tYWMvTWFpblRocmVhZE1hYy5tbQpAQCAtNTksMTcgKzU5LDYgQEAgc3RhdGljIGJvb2wgbWFp
blRocmVhZEVzdGFibGlzaGVkQXNQdGhyZWFkTWFpbjsKIHN0YXRpYyBwdGhyZWFkX3QgbWFpblRo
cmVhZFB0aHJlYWQ7CiBzdGF0aWMgTlNUaHJlYWQqIG1haW5UaHJlYWROU1RocmVhZDsKIAotI2lm
IEVOQUJMRShQQVJBTExFTF9HQykKLXN0YXRpYyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNHQ1Ro
cmVhZDsKLQotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpCi17Ci0gICAgaXNHQ1Ro
cmVhZCA9IG5ldyBUaHJlYWRTcGVjaWZpYzxib29sPigpOwotfQotI2Vsc2UKLXN0YXRpYyB2b2lk
IGluaXRpYWxpemVHQ1RocmVhZHMoKSB7IH0KLSNlbmRpZgotCiB2b2lkIGluaXRpYWxpemVNYWlu
VGhyZWFkUGxhdGZvcm0oKQogewogICAgIEFTU0VSVCghc3RhdGljTWFpblRocmVhZENhbGxlcik7
CkBAIC0xNDUsMzEgKzEzNCw0IEBAIGJvb2wgaXNNYWluVGhyZWFkKCkKICAgICByZXR1cm4gcHRo
cmVhZF9lcXVhbChwdGhyZWFkX3NlbGYoKSwgbWFpblRocmVhZFB0aHJlYWQpOwogfQogCi0jaWYg
RU5BQkxFKFBBUkFMTEVMX0dDKQotdm9pZCByZWdpc3RlckdDVGhyZWFkKCkKLXsKLSAgICBpZiAo
IWlzR0NUaHJlYWQpIHsKLSAgICAgICAgLy8gVGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcg
aW4gYSBwcm9jZXNzIHRoYXQgZG9lc24ndCBjYXJlIGFib3V0Ci0gICAgICAgIC8vIE1haW5UaHJl
YWQuCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOwot
fQotCi1ib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQotewotICAgIGlmIChpc0dDVGhyZWFk
LT5pc1NldCgpICYmICoqaXNHQ1RocmVhZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0g
ICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOwotfQotI2Vsc2UKLS8vIFRoaXMgaXMgbmVjZXNzYXJ5
IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3Ig
bWFjcm9zLgotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKLXsKLSAgICByZXR1cm4gaXNN
YWluVGhyZWFkKCk7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5wcm8gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL3d0Zi5wcm8KaW5kZXggNGM1NzVlMy4uYzQ2MzZkOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvd3RmLnBybwpAQCAtOTIsNiArOTIsNyBAQCBIRUFERVJTICs9IFwKICAgICBOb25Db3B5aW5n
U29ydC5oIFwKICAgICBOb3RGb3VuZC5oIFwKICAgICBOdWxsUHRyLmggXAorICAgIE51bWJlck9m
Q29yZXMuaCBcCiAgICAgT1NBbGxvY2F0b3IuaCBcCiAgICAgT1NSYW5kb21Tb3VyY2UuaCBcCiAg
ICAgT3duQXJyYXlQdHIuaCBcCkBAIC0xOTgsNiArMTk5LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
TWFpblRocmVhZC5jcHAgXAogICAgIE1ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBOdWxsUHRyLmNw
cCBcCisgICAgTnVtYmVyT2ZDb3Jlcy5jcHAgXAogICAgIE9TUmFuZG9tU291cmNlLmNwcCBcCiAg
ICAgcXQvTWFpblRocmVhZFF0LmNwcCBcCiAgICAgcXQvU3RyaW5nUXQuY3BwIFwK
</data>
<flag name="commit-queue"
          id="120565"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120869</attachid>
            <date>2012-01-02 01:42:14 -0800</date>
            <delta_ts>2012-01-02 05:50:17 -0800</delta_ts>
            <desc>This patch results some speed-ups on QT platform.</desc>
            <filename>2012_01_02.diff</filename>
            <type>text/plain</type>
            <size>20750</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNiY2NlZGQuLmQzYTI3OTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAxLTAyICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIDIgZmlsZXMgaXMgYWRkZWQg
dG8gdGhlIHByb2plY3QsIG5hbWVseSBOdW1iZXJPZkNvcmVzLmgvY3BwLCB0aGF0CisgICAgICAg
IGluY2x1ZGUgYSBDUFUgY29yZSBudW1iZXIgZGV0ZXJtaW5pbmcgZnVuY3Rpb24uIEl0IHVzZWQg
dG8gYmUgaW4KKyAgICAgICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5oL2NwcCBiZWZvcmUuCisKKyAg
ICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAgIHNwZWVkLXVw
OiAgMS4wNzF4IGFzIGZhc3QgIFtGcm9tOiA3NDYuMW1zICBUbzogNjk2LjRtcyBdCisgICAgICAg
IFY4IHNwbGF5ICAgICBzcGVlZC11cDogIDEuMDgyeCBhcyBmYXN0ICBbRnJvbTogMzQ5MC40bXMg
VG86IDMyMjYuN21zXQorICAgICAgICBXaW5kc2NvcnBpb24gc3BlZWQtdXA6ICAxLjE1OHggYXMg
ZmFzdCAgW0Zyb206IDE0NS44bXMgIFRvOiAxMjUuOW1zIF0KKworICAgICAgICBUZXN0ZWQgb24g
SW50ZWwoUikgQ29yZShUTSkgaTUtMjMyMCBDUFUgQCAzLjAwR0h6IHdpdGggNC1jb3JlLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5n
eXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6
aW5pdGlhbGl6ZU9wdGlvbnMpOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVHQ1RocmVh
ZHMpOgorICAgICAgICAoV1RGOjpyZWdpc3RlckdDVGhyZWFkKToKKyAgICAgICAgKFdURjo6aXNN
YWluVGhyZWFkT3JHQ1RocmVhZCk6CisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKyAgICAg
ICAgKiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVs
RW52aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1lbnQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxl
bEpvYnNHZW5lcmljLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAgICogd3Rm
L21hYy9NYWluVGhyZWFkTWFjLm1tOgorICAgICAgICAqIHd0Zi93dGYucHJvOgorCiAyMDEyLTAx
LTAxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbCBpbnN0
cnVjdGlvbnMgc2hvdWxkIGxlYXZlIHJvb20gZm9yIGxpbmtpbmcgaW5mb3JtYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZmY1NjU2MC4uZmMwYmJi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYwMyw2
ICs2MDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL05vbkNvcHlpbmdTb3J0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
Tm90Rm91bmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdWxsUHRyLmggXAorICAg
ICAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaCBcCisgICAgICAg
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvT1NBbGxvY2F0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NS
YW5kb21Tb3VyY2UuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZ3lwaSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBp
CmluZGV4IDAxZmQzZGMuLmM3OWY5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5neXBpCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5neXBpCkBAIC01NzEsNiArNTcxLDggQEAKICAgICAgICAgICAgICd3dGYvTWFpblRo
cmVhZC5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9NYWxsb2Nab25lU3VwcG9ydC5oJywKICAgICAg
ICAgICAgICd3dGYvTnVsbFB0ci5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9OdW1iZXJPZkNvcmVz
LmNwcCcsCisgICAgICAgICAgICAnd3RmL051bWJlck9mQ29yZXMuaCcsCiAgICAgICAgICAgICAn
d3RmL09TQWxsb2NhdG9yUG9zaXguY3BwJywKICAgICAgICAgICAgICd3dGYvT1NBbGxvY2F0b3JX
aW4uY3BwJywKICAgICAgICAgICAgICd3dGYvT1NSYW5kb21Tb3VyY2UuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWQ5OGNiZC4uZGU3YjNmNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTcxMSw2ICs3MTEsOCBAQAogCQlFNDlEQzE2QzEyRUYyOTRFMDAx
ODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5REMxNTExMkVGMjcyMjAwMTg0QTFGIC8qIFNvdXJjZVBy
b3ZpZGVyQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFNDlEQzE2RDEyRUYyOTUzMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0
ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURD
MTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oICovOyB9Owog
CQlFNEQ4Q0VGQjEyRkM0Mzk2MDBCQzlGNUEgLyogQmxvb21GaWx0ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RDhDRTlCMTJGQzQyRTEwMEJDOUY1
QSAvKiBCbG9vbUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUVERTgxQ0E3MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVERTgxQ0E1
MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAqLzsgfTsKKwkJRURFODFDQTgx
NEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVERTgxQ0E2MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1i
ZXJPZkNvcmVzLmggKi87IH07CiAJCUYzQkQzMUVEMTI2NzM1NzcwMDY1NDY3RiAvKiBUZXh0UG9z
aXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYz
QkQzMUQwMTI2NzMwMTgwMDY1NDY3RiAvKiBUZXh0UG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGREExNUMxRTEyQjAzMDVDMDAzQTU4
M0EgLyogQ29tcGxleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkRBMTVDMTYxMkIwMzAyODAwM0E1ODNBIC8qIENvbXBsZXguaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTFCNDQ3QTBFQ0NENzNCMDA0
RjRERDEgLyogU3RkTGliRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRTFCNDQ3OTBFQ0NENzNCMDA0RjRERDEgLyogU3RkTGliRXh0cmFzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MDEs
NiArMTUwMyw4IEBACiAJCUU0OURDMTUxMTJFRjI3MjIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRl
ckNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVy
Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5REMxNTUxMkVGMjc3MjAw
MTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU0RDhDRTlCMTJGQzQyRTEwMEJDOUY1QSAvKiBCbG9vbUZpbHRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9vbUZpbHRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFREU4MUNBNTE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZD
b3Jlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOdW1iZXJPZkNv
cmVzLmNwcDsgcGF0aCA9IHd0Zi9OdW1iZXJPZkNvcmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRURFODFDQTYxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTnVtYmVyT2ZDb3Jlcy5oOyBwYXRoID0g
d3RmL051bWJlck9mQ29yZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjNCRDMx
RDAxMjY3MzAxODAwNjU0NjdGIC8qIFRleHRQb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBUZXh0UG9zaXRpb24uaDsgcGF0aCA9IHRleHQvVGV4dFBvc2l0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QkIyQkM1MDMwRjc3MjEwMUZDRkUxRCAv
KiBDb21wbGV0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvbXBsZXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB9OwogCQlGNUMyOTBFNjAyODRGOThFMDE4NjM1Q0EgLyogSmF2YVNjcmlwdENvcmVQcmVm
aXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SmF2YVNjcmlwdENvcmVQcmVmaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB9OwpAQCAtMTYxNSw2ICsxNjE5LDggQEAKIAkJMDg2N0Q2OTFGRTg0MDI4RkMwMkFBQzA3
IC8qIEphdmFTY3JpcHRDb3JlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQlFREU4MUNBNTE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAg
Ki8sCisJCQkJRURFODFDQTYxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuaCAqLywK
IAkJCQk4NjA0RjRGMjE0M0E2QzQ0MDBCMjk1RjUgLyogQ2hhbmdlTG9nICovLAogCQkJCUE3MThG
ODIxMTE3OEVCNEIwMDI0NjVBNyAvKiBjcmVhdGVfcmVnZXhfdGFibGVzICovLAogCQkJCTkzN0I2
M0NDMDlFNzY2RDIwMEE2NzFERCAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLApAQCAtMzAwMiw2
ICszMDA4LDcgQEAKIAkJCQk4NjBCRDgwMTE0OEVBNkYyMDAxMTJCMkYgLyogSW50cmluc2ljLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkJDMEFFODE0OTZDN0M3MDBENEZCREQgLyogREZHRXhpdFBy
b2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTlFNTUxMTQ5ODA5MzUwMDAwMUE4QSAvKiBG
dW5jdGlvbmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlFREU4MUNBODE0QTIyQTIxMDA0NDExRkYg
LyogTnVtYmVyT2ZDb3Jlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0zNTQwLDYgKzM1NDcsNyBAQAog
CQkJCUE3M0JFMTY4MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNzNCRTE2QTE0ODQyMDUyMDA5MTIwNEIgLyogQXJyYXlCdWZmZXJWaWV3LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGQkMwQUU3MTQ5NkM3QzQwMEQ0RkJERCAvKiBERkdFeGl0
UHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFREU4MUNBNzE0QTIyQTIxMDA0NDExRkYg
LyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggNjhkMTBiNy4uZTY1ZTE1YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNs
dWRlICJPcHRpb25zLmgiCiAKICNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8d3RmL051bWJl
ck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3dGYvUGFnZUJsb2NrLmg+CiAKICNpZiBPUyhEQVJXSU4p
ICYmIEVOQUJMRShQQVJBTExFTF9HQykKQEAgLTE3NCwxMiArMTc1LDggQEAgdm9pZCBpbml0aWFs
aXplT3B0aW9ucygpCiAgICAgU0VUKG9wYXF1ZVJvb3RNZXJnZVRocmVzaG9sZCwgICAgICAgICAg
ICAgMTAwMCk7CiAKICAgICBpbnQgY3B1c1RvVXNlID0gMTsKLSNpZiBPUyhEQVJXSU4pICYmIEVO
QUJMRShQQVJBTExFTF9HQykKLSAgICBpbnQgbmFtZVsyXTsKLSAgICBzaXplX3QgdmFsdWVTaXpl
ID0gc2l6ZW9mKGNwdXNUb1VzZSk7Ci0gICAgbmFtZVswXSA9IENUTF9IVzsKLSAgICBuYW1lWzFd
ID0gSFdfQVZBSUxDUFU7Ci0gICAgc3lzY3RsKG5hbWUsIDIsICZjcHVzVG9Vc2UsICZ2YWx1ZVNp
emUsIDAsIDApOworI2lmIEVOQUJMRShQQVJBTExFTF9HQykKKyAgICBjcHVzVG9Vc2UgPSBXVEY6
Om51bWJlck9mQ29yZXMoKTsKICNlbmRpZgogICAgIC8vIFdlIGRvbid0IHNjYWxlIHNvIHdlbGwg
YmV5b25kIDQuCiAgICAgaWYgKGNwdXNUb1VzZSA+IDQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA2ZDFjZWU4Li4zOGVhNjc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTUzLDYgKzUzLDcgQEAgU0VUKFdURl9IRUFE
RVJTCiAgICAgTm9uY29weWFibGUuaAogICAgIE5vdEZvdW5kLmgKICAgICBOdWxsUHRyLmgKKyAg
ICBOdW1iZXJPZkNvcmVzLmgKICAgICBPU0FsbG9jYXRvci5oCiAgICAgT1NSYW5kb21Tb3VyY2Uu
aAogICAgIE93bkFycmF5UHRyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvTWFpblRocmVhZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQu
Y3BwCmluZGV4IDkxNTEyNjUuLjc2YzUzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvTWFpblRocmVhZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9N
YWluVGhyZWFkLmNwcApAQCAtMjQ5LDQgKzI0OSw0MCBAQCBib29sIGlzTWFpblRocmVhZCgpCiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQQVJBTExFTF9HQykKK3N0YXRpYyBUaHJlYWRTcGVjaWZp
Yzxib29sPiogaXNHQ1RocmVhZDsKKwordm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCkKK3sKKyAg
ICBpc0dDVGhyZWFkID0gbmV3IFRocmVhZFNwZWNpZmljPGJvb2w+KCk7Cit9CisjZW5kaWYKKwor
I2lmIEVOQUJMRShQQVJBTExFTF9HQykKK3ZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpCit7CisgICAg
aWYgKCFpc0dDVGhyZWFkKSB7CisgICAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiB3ZSdyZSBydW5u
aW5nIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBhYm91dAorICAgICAgICAvLyBNYWlu
VGhyZWFkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgKippc0dDVGhyZWFkID0gdHJ1
ZTsKK30KKworYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKK3sKKyAgICBpZiAoaXNHQ1Ro
cmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQorI2Vsc2UKKy8vIFRoaXMgaXMgbmVjZXNzYXJ5
IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3Ig
bWFjcm9zLgorYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKK3sKKyAgICByZXR1cm4gaXNN
YWluVGhyZWFkKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvTWFpblRocmVhZC5oCmluZGV4IGMxNTNkMWUuLjMzZGNlODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiUGxhdGZvcm0uaCIKIAogI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJl
YWRTcGVjaWZpYy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtNTMsMTIgKzU0LDExIEBAIHZv
aWQgc2V0TWFpblRocmVhZENhbGxiYWNrc1BhdXNlZChib29sIHBhdXNlZCk7CiAKIGJvb2wgaXNN
YWluVGhyZWFkKCk7CiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQordm9pZCBpbml0aWFsaXplR0NU
aHJlYWRzKCk7CiB2b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKTsKIGJvb2wgaXNNYWluVGhyZWFkT3JH
Q1RocmVhZCgpOwotI2VsaWYgUExBVEZPUk0oTUFDKQotYm9vbCBpc01haW5UaHJlYWRPckdDVGhy
ZWFkKCk7CiAjZWxzZQotaW5saW5lIGJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpIHsgcmV0
dXJuIGlzTWFpblRocmVhZCgpOyB9Citib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsKICNl
bmRpZgogCiAvLyBOT1RFOiB0aGVzZSBmdW5jdGlvbnMgYXJlIGludGVybmFsIHRvIHRoZSBjYWxs
T25NYWluVGhyZWFkIGltcGxlbWVudGF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
TnVtYmVyT2ZDb3Jlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQy
MWQ2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVy
T2ZDb3Jlcy5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBV
bml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTnVtYmVyT2ZDb3Jlcy5oIgorCisjaWYgT1MoREFSV0lO
KSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCisjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgor
I2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VsaWYgT1MoTElOVVgpIHx8IE9TKEFJWCkgfHwgT1Mo
U09MQVJJUykKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbGlmIE9TKFdJTkRPV1MpCisjaW5jbHVk
ZSA8V2luZG93cy5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXVEYgeworCitpbnQgbnVtYmVyT2ZD
b3JlcygpCit7CisgICAgY29uc3QgaW50IGRlZmF1bHRJZlVuYXZhaWxhYmxlID0gMTsKKyAgICBz
dGF0aWMgaW50IHNfbnVtYmVyT2ZDb3JlcyA9IC0xOworCisgICAgaWYgKHNfbnVtYmVyT2ZDb3Jl
cyA+IDApCisgICAgICAgIHJldHVybiBzX251bWJlck9mQ29yZXM7CisjaWYgT1MoREFSV0lOKSB8
fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpIHx8IE9TKEZSRUVCU0QpCisgICAgdW5zaWduZWQg
cmVzdWx0OworICAgIHNpemVfdCBsZW5ndGggPSBzaXplb2YocmVzdWx0KTsKKyAgICBpbnQgbmFt
ZVtdID0geworICAgICAgICAgICAgQ1RMX0hXLAorICAgICAgICAgICAgSFdfTkNQVQorICAgIH07
CisgICAgaW50IHN5c2N0bFJlc3VsdCA9IHN5c2N0bChuYW1lLCBzaXplb2YobmFtZSkgLyBzaXpl
b2YoaW50KSwgJnJlc3VsdCwgJmxlbmd0aCwgMCwgMCk7CisKKyAgICBzX251bWJlck9mQ29yZXMg
PSBzeXNjdGxSZXN1bHQgPCAwID8gZGVmYXVsdElmVW5hdmFpbGFibGUgOiByZXN1bHQ7CisjZWxp
ZiBPUyhMSU5VWCkgfHwgT1MoQUlYKSB8fCBPUyhTT0xBUklTKQorICAgIGxvbmcgc3lzY29uZlJl
c3VsdCA9IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOworCisgICAgc19udW1iZXJPZkNv
cmVzID0gc3lzY29uZlJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0YXRpY19j
YXN0PGludD4oc3lzY29uZlJlc3VsdCk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgIFVOVVNFRF9Q
QVJBTShkZWZhdWx0SWZVbmF2YWlsYWJsZSk7CisgICAgU1lTVEVNX0lORk8gc3lzSW5mbzsKKyAg
ICBHZXRTeXN0ZW1JbmZvKCZzeXNJbmZvKTsKKworICAgIHNfbnVtYmVyT2ZDb3JlcyA9IHN5c0lu
Zm8uZHdOdW1iZXJPZlByb2Nlc3NvcnM7CisjZWxzZQorICAgIHNfbnVtYmVyT2ZDb3JlcyA9IGRl
ZmF1bHRJZlVuYXZhaWxhYmxlOworI2VuZGlmCisgICAgcmV0dXJuIHNfbnVtYmVyT2ZDb3JlczsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNv
cmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTM2MzI5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmgKQEAgLTAsMCArMSwzMCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgTnVtYmVyT2ZDb3Jlc19oCisjZGVmaW5lIE51bWJl
ck9mQ29yZXNfaAorCituYW1lc3BhY2UgV1RGIHsKKworaW50IG51bWJlck9mQ29yZXMoKTsKKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxs
ZWxKb2JzR2VuZXJpYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9i
c0dlbmVyaWMuY3BwCmluZGV4IGI2MjA3ZGMuLjk4NzQyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogCiAjaW5jbHVkZSAiUGFyYWxsZWxKb2JzLmgiCiAjaW5jbHVkZSAiVW51c2VkUGFyYW0uaCIK
KyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogCiAjaWYgT1MoREFSV0lOKSB8fCBPUyhP
UEVOQlNEKSB8fCBPUyhORVRCU0QpCiAjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgpAQCAtNDUsMTkg
KzQ2LDE2IEBAIG5hbWVzcGFjZSBXVEYgewogCiBWZWN0b3I8IFJlZlB0cjxQYXJhbGxlbEVudmly
b25tZW50OjpUaHJlYWRQcml2YXRlPiA+KiBQYXJhbGxlbEVudmlyb25tZW50OjpzX3RocmVhZFBv
b2wgPSAwOwogCi1pbnQgUGFyYWxsZWxFbnZpcm9ubWVudDo6c19tYXhOdW1iZXJPZlBhcmFsbGVs
VGhyZWFkcyA9IC0xOwotCiBQYXJhbGxlbEVudmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25tZW50
KFRocmVhZEZ1bmN0aW9uIHRocmVhZEZ1bmN0aW9uLCBzaXplX3Qgc2l6ZU9mUGFyYW1ldGVyLCBp
bnQgcmVxdWVzdGVkSm9iTnVtYmVyKSA6CiAgICAgbV90aHJlYWRGdW5jdGlvbih0aHJlYWRGdW5j
dGlvbiksCiAgICAgbV9zaXplT2ZQYXJhbWV0ZXIoc2l6ZU9mUGFyYW1ldGVyKQogewogICAgIEFT
U0VSVF9BUkcocmVxdWVzdGVkSm9iTnVtYmVyLCByZXF1ZXN0ZWRKb2JOdW1iZXIgPj0gMSk7CiAK
LSAgICBpZiAoc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9PSAtMSkKLSAgICAgICAgZGV0
ZXJtaW5lTWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMoKTsKKyAgICBpbnQgbWF4TnVtYmVyT2ZD
b3JlcyA9IG51bWJlck9mQ29yZXMoKTsKIAotICAgIGlmICghcmVxdWVzdGVkSm9iTnVtYmVyIHx8
IHJlcXVlc3RlZEpvYk51bWJlciA+IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMpCi0gICAg
ICAgIHJlcXVlc3RlZEpvYk51bWJlciA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzX21heE51bWJl
ck9mUGFyYWxsZWxUaHJlYWRzKTsKKyAgICBpZiAoIXJlcXVlc3RlZEpvYk51bWJlciB8fCByZXF1
ZXN0ZWRKb2JOdW1iZXIgPiBtYXhOdW1iZXJPZkNvcmVzKQorICAgICAgICByZXF1ZXN0ZWRKb2JO
dW1iZXIgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4TnVtYmVyT2ZDb3Jlcyk7CiAKICAgICBp
ZiAoIXNfdGhyZWFkUG9vbCkKICAgICAgICAgc190aHJlYWRQb29sID0gbmV3IFZlY3RvcjwgUmVm
UHRyPFRocmVhZFByaXZhdGU+ID4oKTsKQEAgLTY1LDcgKzYzLDcgQEAgUGFyYWxsZWxFbnZpcm9u
bWVudDo6UGFyYWxsZWxFbnZpcm9ubWVudChUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwg
c2l6ZV90IHMKICAgICAvLyBUaGUgbWFpbiB0aHJlYWQgc2hvdWxkIGJlIGFsc28gYSB3b3JrZXIu
CiAgICAgaW50IG1heE51bWJlck9mTmV3VGhyZWFkcyA9IHJlcXVlc3RlZEpvYk51bWJlciAtIDE7
CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMg
JiYgbV90aHJlYWRzLnNpemUoKSA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZk5l
d1RocmVhZHMpOyArK2kpIHsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heE51bWJlck9mQ29y
ZXMgJiYgbV90aHJlYWRzLnNpemUoKSA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJP
Zk5ld1RocmVhZHMpOyArK2kpIHsKICAgICAgICAgaWYgKHNfdGhyZWFkUG9vbC0+c2l6ZSgpIDwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGkpICsgMVUpCiAgICAgICAgICAgICBzX3RocmVhZFBvb2wt
PmFwcGVuZChUaHJlYWRQcml2YXRlOjpjcmVhdGUoKSk7CiAKQEAgLTkzLDMyICs5MSw2IEBAIHZv
aWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6ZXhlY3V0ZSh2b2lkKiBwYXJhbWV0ZXJzKQogICAgICAg
ICBtX3RocmVhZHNbaV0tPndhaXRGb3JGaW5pc2goKTsKIH0KIAotdm9pZCBQYXJhbGxlbEVudmly
b25tZW50OjpkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpCi17Ci0gICAgY29u
c3QgaW50IGRlZmF1bHRJZlVuYXZhaWxhYmxlID0gMjsKLSNpZiBPUyhEQVJXSU4pIHx8IE9TKE9Q
RU5CU0QpIHx8IE9TKE5FVEJTRCkKLSAgICB1bnNpZ25lZCByZXN1bHQ7Ci0gICAgc2l6ZV90IGxl
bmd0aCA9IHNpemVvZihyZXN1bHQpOwotICAgIGludCBuYW1lW10gPSB7Ci0gICAgICAgIENUTF9I
VywKLSAgICAgICAgSFdfTkNQVQotICAgIH07Ci0gICAgaW50IHN5c2N0bFJlc3VsdCA9IHN5c2N0
bChuYW1lLCBzaXplb2YobmFtZSkgLyBzaXplb2YoaW50KSwgJnJlc3VsdCwgJmxlbmd0aCwgMCwg
MCk7Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5c2N0bFJlc3VsdCA8IDAg
PyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHJlc3VsdDsKLSNlbGlmIE9TKExJTlVYKSB8fCBPUyhB
SVgpIHx8IE9TKFNPTEFSSVMpCi0gICAgbG9uZyBzeXNjb25mUmVzdWx0ID0gc3lzY29uZihfU0Nf
TlBST0NFU1NPUlNfT05MTik7Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5
c2NvbmZSZXN1bHQgPCAwID8gZGVmYXVsdElmVW5hdmFpbGFibGUgOiBzdGF0aWNfY2FzdDxpbnQ+
KHN5c2NvbmZSZXN1bHQpOwotI2VsaWYgT1MoV0lORE9XUykKLSAgICBVTlVTRURfUEFSQU0oZGVm
YXVsdElmVW5hdmFpbGFibGUpOwotCi0gICAgU1lTVEVNX0lORk8gc3lzSW5mbzsKLSAgICBHZXRT
eXN0ZW1JbmZvKCZzeXNJbmZvKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0g
c3lzSW5mby5kd051bWJlck9mUHJvY2Vzc29yczsKLSNlbHNlCi0gICAgc19tYXhOdW1iZXJPZlBh
cmFsbGVsVGhyZWFkcyA9IGRlZmF1bHRJZlVuYXZhaWxhYmxlOwotI2VuZGlmCi19Ci0KIGJvb2wg
UGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6dHJ5TG9ja0ZvcihQYXJhbGxlbEVu
dmlyb25tZW50KiBwYXJlbnQpCiB7CiAgICAgYm9vbCBsb2NrZWQgPSBtX211dGV4LnRyeUxvY2so
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2Vu
ZXJpYy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgK
aW5kZXggZGFiNmRkOS4uMWM3ZDYzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKQEAgLTg0LDE1ICs4NCwxMiBAQCBwdWJsaWM6CiAgICAg
fTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFs
bGVsVGhyZWFkcygpOwotCiAgICAgVGhyZWFkRnVuY3Rpb24gbV90aHJlYWRGdW5jdGlvbjsKICAg
ICBzaXplX3QgbV9zaXplT2ZQYXJhbWV0ZXI7CiAgICAgaW50IG1fbnVtYmVyT2ZKb2JzOwogCiAg
ICAgVmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiBtX3RocmVhZHM7CiAgICAgc3RhdGlj
IFZlY3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4qIHNfdGhyZWFkUG9vbDsKLSAgICBzdGF0
aWMgaW50IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHM7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCBiYjE0NjJlLi5mYjFm
OTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTE2LDcgKzExMTYs
NyBAQAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAjZW5kaWYKIAotI2lmICFk
ZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0o
SU9TKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisjaWYgIWRlZmluZWQoRU5BQkxFX1BB
UkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JN
KFFUKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAjZGVmaW5lIEVOQUJMRV9QQVJBTExF
TF9HQyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9t
YWMvTWFpblRocmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5U
aHJlYWRNYWMubW0KaW5kZXggZmJjNjI1MC4uZDVkNWI2YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBAIC01OSwxNyArNTksNiBAQCBzdGF0
aWMgYm9vbCBtYWluVGhyZWFkRXN0YWJsaXNoZWRBc1B0aHJlYWRNYWluOwogc3RhdGljIHB0aHJl
YWRfdCBtYWluVGhyZWFkUHRocmVhZDsKIHN0YXRpYyBOU1RocmVhZCogbWFpblRocmVhZE5TVGhy
ZWFkOwogCi0jaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQotc3RhdGljIFRocmVhZFNwZWNpZmljPGJv
b2w+KiBpc0dDVGhyZWFkOwotCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCkKLXsK
LSAgICBpc0dDVGhyZWFkID0gbmV3IFRocmVhZFNwZWNpZmljPGJvb2w+KCk7Ci19Ci0jZWxzZQot
c3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpIHsgfQotI2VuZGlmCi0KIHZvaWQgaW5p
dGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgpCiB7CiAgICAgQVNTRVJUKCFzdGF0aWNNYWluVGhy
ZWFkQ2FsbGVyKTsKQEAgLTE0NSwzMSArMTM0LDQgQEAgYm9vbCBpc01haW5UaHJlYWQoKQogICAg
IHJldHVybiBwdGhyZWFkX2VxdWFsKHB0aHJlYWRfc2VsZigpLCBtYWluVGhyZWFkUHRocmVhZCk7
CiB9CiAKLSNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCi12b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKQot
ewotICAgIGlmICghaXNHQ1RocmVhZCkgewotICAgICAgICAvLyBUaGlzIGhhcHBlbnMgaWYgd2Un
cmUgcnVubmluZyBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0IGNhcmUgYWJvdXQKLSAgICAgICAg
Ly8gTWFpblRocmVhZC4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgICoqaXNHQ1RocmVh
ZCA9IHRydWU7Ci19Ci0KLWJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpCi17Ci0gICAgaWYg
KGlzR0NUaHJlYWQtPmlzU2V0KCkgJiYgKippc0dDVGhyZWFkKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAKLSAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Ci19Ci0jZWxzZQotLy8gVGhpcyBp
cyBuZWNlc3NhcnkgYmVjYXVzZSBKYXZhU2NyaXB0Q29yZS5leHAgZG9lc24ndCBzdXBwb3J0IHBy
ZXByb2Nlc3NvciBtYWNyb3MuCi1ib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQotewotICAg
IHJldHVybiBpc01haW5UaHJlYWQoKTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnBybyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvd3RmLnBybwppbmRleCA0YzU3NWUzLi5jNDYzNmQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5wcm8KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi93dGYucHJvCkBAIC05Miw2ICs5Miw3IEBAIEhFQURFUlMgKz0gXAogICAg
IE5vbkNvcHlpbmdTb3J0LmggXAogICAgIE5vdEZvdW5kLmggXAogICAgIE51bGxQdHIuaCBcCisg
ICAgTnVtYmVyT2ZDb3Jlcy5oIFwKICAgICBPU0FsbG9jYXRvci5oIFwKICAgICBPU1JhbmRvbVNv
dXJjZS5oIFwKICAgICBPd25BcnJheVB0ci5oIFwKQEAgLTE5OCw2ICsxOTksNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBNYWluVGhyZWFkLmNwcCBcCiAgICAgTWV0YUFsbG9jYXRvci5jcHAgXAogICAg
IE51bGxQdHIuY3BwIFwKKyAgICBOdW1iZXJPZkNvcmVzLmNwcCBcCiAgICAgT1NSYW5kb21Tb3Vy
Y2UuY3BwIFwKICAgICBxdC9NYWluVGhyZWFkUXQuY3BwIFwKICAgICBxdC9TdHJpbmdRdC5jcHAg
XAo=
</data>
<flag name="commit-queue"
          id="121207"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120875</attachid>
            <date>2012-01-02 05:50:17 -0800</date>
            <delta_ts>2012-01-03 01:19:39 -0800</delta_ts>
            <desc>This patch results some speed-ups on QT platform.</desc>
            <filename>2012_01_02_final.diff</filename>
            <type>text/plain</type>
            <size>21056</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNiY2NlZGQuLmM4NjU3MjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAxLTAyICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIDIgZmlsZXMgaXMgYWRkZWQg
dG8gdGhlIHByb2plY3QsIG5hbWVseSBOdW1iZXJPZkNvcmVzLmgvY3BwLCB0aGF0CisgICAgICAg
IGluY2x1ZGUgYSBDUFUgY29yZSBudW1iZXIgZGV0ZXJtaW5pbmcgZnVuY3Rpb24uIEl0IHVzZWQg
dG8gYmUgaW4KKyAgICAgICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5oL2NwcCBiZWZvcmUuCisKKyAg
ICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAgIHNwZWVkLXVw
OiAgMS4wNzF4IGFzIGZhc3QgIFtGcm9tOiA3NDYuMW1zICBUbzogNjk2LjRtcyBdCisgICAgICAg
IFY4IHNwbGF5ICAgICBzcGVlZC11cDogIDEuMDgyeCBhcyBmYXN0ICBbRnJvbTogMzQ5MC40bXMg
VG86IDMyMjYuN21zXQorICAgICAgICBXaW5kc2NvcnBpb24gc3BlZWQtdXA6ICAxLjE1OHggYXMg
ZmFzdCAgW0Zyb206IDE0NS44bXMgIFRvOiAxMjUuOW1zIF0KKworICAgICAgICBUZXN0ZWQgb24g
SW50ZWwoUikgQ29yZShUTSkgaTUtMjMyMCBDUFUgQCAzLjAwR0h6IHdpdGggNC1jb3JlLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5n
eXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6
aW5pdGlhbGl6ZU9wdGlvbnMpOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVHQ1RocmVh
ZHMpOgorICAgICAgICAoV1RGOjpyZWdpc3RlckdDVGhyZWFkKToKKyAgICAgICAgKFdURjo6aXNN
YWluVGhyZWFkT3JHQ1RocmVhZCk6CisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKyAgICAg
ICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGOjpudW1iZXJP
ZkNvcmVzKToKKyAgICAgICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5oOiBBZGRlZC4KKyAgICAgICAg
KiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52
aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1lbnQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEpv
YnNHZW5lcmljLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAgICogd3RmL21h
Yy9NYWluVGhyZWFkTWFjLm1tOgorICAgICAgICAqIHd0Zi93dGYucHJvOgorCiAyMDEyLTAxLTAx
ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbCBpbnN0cnVj
dGlvbnMgc2hvdWxkIGxlYXZlIHJvb20gZm9yIGxpbmtpbmcgaW5mb3JtYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZmY1NjU2MC4uZmMwYmJiZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYwMyw2ICs2
MDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL05vbkNvcHlpbmdTb3J0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTm90
Rm91bmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdWxsUHRyLmggXAorICAgICAg
ICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaCBcCisgICAgICAgIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvT1NBbGxvY2F0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9PU1JhbmRvbVNvdXJjZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5k
b21Tb3VyY2UuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZ3lwaSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCmlu
ZGV4IDAxZmQzZGMuLmM3OWY5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5neXBpCkBAIC01NzEsNiArNTcxLDggQEAKICAgICAgICAgICAgICd3dGYvTWFpblRocmVh
ZC5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9NYWxsb2Nab25lU3VwcG9ydC5oJywKICAgICAgICAg
ICAgICd3dGYvTnVsbFB0ci5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9OdW1iZXJPZkNvcmVzLmNw
cCcsCisgICAgICAgICAgICAnd3RmL051bWJlck9mQ29yZXMuaCcsCiAgICAgICAgICAgICAnd3Rm
L09TQWxsb2NhdG9yUG9zaXguY3BwJywKICAgICAgICAgICAgICd3dGYvT1NBbGxvY2F0b3JXaW4u
Y3BwJywKICAgICAgICAgICAgICd3dGYvT1NSYW5kb21Tb3VyY2UuY3BwJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMWQ5OGNiZC4uZGU3YjNmNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTcxMSw2ICs3MTEsOCBAQAogCQlFNDlEQzE2QzEyRUYyOTRFMDAxODRB
MUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTQ5REMxNTExMkVGMjcyMjAwMTg0QTFGIC8qIFNvdXJjZVByb3Zp
ZGVyQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFNDlEQzE2RDEyRUYyOTUzMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURDMTQ5
MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oICovOyB9OwogCQlF
NEQ4Q0VGQjEyRkM0Mzk2MDBCQzlGNUEgLyogQmxvb21GaWx0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RDhDRTlCMTJGQzQyRTEwMEJDOUY1QSAv
KiBCbG9vbUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUVERTgxQ0E3MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVERTgxQ0E1MTRB
MjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAqLzsgfTsKKwkJRURFODFDQTgxNEEy
MkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVERTgxQ0E2MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJP
ZkNvcmVzLmggKi87IH07CiAJCUYzQkQzMUVEMTI2NzM1NzcwMDY1NDY3RiAvKiBUZXh0UG9zaXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzQkQz
MUQwMTI2NzMwMTgwMDY1NDY3RiAvKiBUZXh0UG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGREExNUMxRTEyQjAzMDVDMDAzQTU4M0Eg
LyogQ29tcGxleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkRBMTVDMTYxMkIwMzAyODAwM0E1ODNBIC8qIENvbXBsZXguaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTFCNDQ3QTBFQ0NENzNCMDA0RjRE
RDEgLyogU3RkTGliRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRTFCNDQ3OTBFQ0NENzNCMDA0RjRERDEgLyogU3RkTGliRXh0cmFzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MDEsNiAr
MTUwMyw4IEBACiAJCUU0OURDMTUxMTJFRjI3MjIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNh
Y2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVyQ2Fj
aGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5REMxNTUxMkVGMjc3MjAwMTg0
QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU0RDhDRTlCMTJGQzQyRTEwMEJDOUY1QSAvKiBCbG9vbUZpbHRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9vbUZpbHRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFREU4MUNBNTE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jl
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOdW1iZXJPZkNvcmVz
LmNwcDsgcGF0aCA9IHd0Zi9OdW1iZXJPZkNvcmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRURFODFDQTYxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTnVtYmVyT2ZDb3Jlcy5oOyBwYXRoID0gd3Rm
L051bWJlck9mQ29yZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjNCRDMxRDAx
MjY3MzAxODAwNjU0NjdGIC8qIFRleHRQb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBUZXh0UG9zaXRpb24uaDsgcGF0aCA9IHRleHQvVGV4dFBvc2l0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QkIyQkM1MDMwRjc3MjEwMUZDRkUxRCAvKiBD
b21wbGV0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENvbXBsZXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB9OwogCQlGNUMyOTBFNjAyODRGOThFMDE4NjM1Q0EgLyogSmF2YVNjcmlwdENvcmVQcmVmaXgu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2
YVNjcmlwdENvcmVQcmVmaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB9OwpAQCAtMTYxNSw2ICsxNjE5LDggQEAKIAkJMDg2N0Q2OTFGRTg0MDI4RkMwMkFBQzA3IC8q
IEphdmFTY3JpcHRDb3JlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQlFREU4MUNBNTE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgKi8s
CisJCQkJRURFODFDQTYxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuaCAqLywKIAkJ
CQk4NjA0RjRGMjE0M0E2QzQ0MDBCMjk1RjUgLyogQ2hhbmdlTG9nICovLAogCQkJCUE3MThGODIx
MTE3OEVCNEIwMDI0NjVBNyAvKiBjcmVhdGVfcmVnZXhfdGFibGVzICovLAogCQkJCTkzN0I2M0ND
MDlFNzY2RDIwMEE2NzFERCAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLApAQCAtMzAwMiw2ICsz
MDA4LDcgQEAKIAkJCQk4NjBCRDgwMTE0OEVBNkYyMDAxMTJCMkYgLyogSW50cmluc2ljLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkJDMEFFODE0OTZDN0M3MDBENEZCREQgLyogREZHRXhpdFByb2Zp
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTlFNTUxMTQ5ODA5MzUwMDAwMUE4QSAvKiBGdW5j
dGlvbmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlFREU4MUNBODE0QTIyQTIxMDA0NDExRkYgLyog
TnVtYmVyT2ZDb3Jlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0zNTQwLDYgKzM1NDcsNyBAQAogCQkJ
CUE3M0JFMTY4MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNzNCRTE2QTE0ODQyMDUyMDA5MTIwNEIgLyogQXJyYXlCdWZmZXJWaWV3LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGQkMwQUU3MTQ5NkM3QzQwMEQ0RkJERCAvKiBERkdFeGl0UHJv
ZmlsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFREU4MUNBNzE0QTIyQTIxMDA0NDExRkYgLyog
TnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggNjhkMTBiNy4uZTY1ZTE1YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAKICNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8d3RmL051bWJlck9m
Q29yZXMuaD4KICNpbmNsdWRlIDx3dGYvUGFnZUJsb2NrLmg+CiAKICNpZiBPUyhEQVJXSU4pICYm
IEVOQUJMRShQQVJBTExFTF9HQykKQEAgLTE3NCwxMiArMTc1LDggQEAgdm9pZCBpbml0aWFsaXpl
T3B0aW9ucygpCiAgICAgU0VUKG9wYXF1ZVJvb3RNZXJnZVRocmVzaG9sZCwgICAgICAgICAgICAg
MTAwMCk7CiAKICAgICBpbnQgY3B1c1RvVXNlID0gMTsKLSNpZiBPUyhEQVJXSU4pICYmIEVOQUJM
RShQQVJBTExFTF9HQykKLSAgICBpbnQgbmFtZVsyXTsKLSAgICBzaXplX3QgdmFsdWVTaXplID0g
c2l6ZW9mKGNwdXNUb1VzZSk7Ci0gICAgbmFtZVswXSA9IENUTF9IVzsKLSAgICBuYW1lWzFdID0g
SFdfQVZBSUxDUFU7Ci0gICAgc3lzY3RsKG5hbWUsIDIsICZjcHVzVG9Vc2UsICZ2YWx1ZVNpemUs
IDAsIDApOworI2lmIEVOQUJMRShQQVJBTExFTF9HQykKKyAgICBjcHVzVG9Vc2UgPSBXVEY6Om51
bWJlck9mQ29yZXMoKTsKICNlbmRpZgogICAgIC8vIFdlIGRvbid0IHNjYWxlIHNvIHdlbGwgYmV5
b25kIDQuCiAgICAgaWYgKGNwdXNUb1VzZSA+IDQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9D
TWFrZUxpc3RzLnR4dAppbmRleCA2ZDFjZWU4Li4yOWIyYzExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTUzLDYgKzUzLDcgQEAgU0VUKFdURl9IRUFERVJT
CiAgICAgTm9uY29weWFibGUuaAogICAgIE5vdEZvdW5kLmgKICAgICBOdWxsUHRyLmgKKyAgICBO
dW1iZXJPZkNvcmVzLmgKICAgICBPU0FsbG9jYXRvci5oCiAgICAgT1NSYW5kb21Tb3VyY2UuaAog
ICAgIE93bkFycmF5UHRyLmgKQEAgLTE0Nyw2ICsxNDgsNyBAQCBTRVQoV1RGX1NPVVJDRVMKICAg
ICBNYWluVGhyZWFkLmNwcAogICAgIE1ENS5jcHAKICAgICBPU1JhbmRvbVNvdXJjZS5jcHAKKyAg
ICBOdW1iZXJPZkNvcmVzLmNwcAogICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZC5jcHAKICAgICBQ
YWdlQmxvY2suY3BwCiAgICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL01haW5UaHJlYWQuY3BwCmluZGV4IDkxNTEyNjUuLjc2YzUzNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcApAQCAtMjQ5LDQgKzI0OSw0MCBAQCBi
b29sIGlzTWFpblRocmVhZCgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQQVJBTExFTF9HQykK
K3N0YXRpYyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNHQ1RocmVhZDsKKwordm9pZCBpbml0aWFs
aXplR0NUaHJlYWRzKCkKK3sKKyAgICBpc0dDVGhyZWFkID0gbmV3IFRocmVhZFNwZWNpZmljPGJv
b2w+KCk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShQQVJBTExFTF9HQykKK3ZvaWQgcmVnaXN0
ZXJHQ1RocmVhZCgpCit7CisgICAgaWYgKCFpc0dDVGhyZWFkKSB7CisgICAgICAgIC8vIFRoaXMg
aGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBh
Ym91dAorICAgICAgICAvLyBNYWluVGhyZWFkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgKippc0dDVGhyZWFkID0gdHJ1ZTsKK30KKworYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFk
KCkKK3sKKyAgICBpZiAoaXNHQ1RocmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQorI2Vsc2UK
Ky8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qg
c3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgorYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFk
KCkKK3sKKyAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJl
YWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCmluZGV4IGMxNTNk
MWUuLjMzZGNlODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRo
cmVhZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm0uaCIKIAogI2luY2x1ZGUgPHN0ZGludC5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApA
QCAtNTMsMTIgKzU0LDExIEBAIHZvaWQgc2V0TWFpblRocmVhZENhbGxiYWNrc1BhdXNlZChib29s
IHBhdXNlZCk7CiAKIGJvb2wgaXNNYWluVGhyZWFkKCk7CiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dD
KQordm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCk7CiB2b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKTsK
IGJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpOwotI2VsaWYgUExBVEZPUk0oTUFDKQotYm9v
bCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7CiAjZWxzZQotaW5saW5lIGJvb2wgaXNNYWluVGhy
ZWFkT3JHQ1RocmVhZCgpIHsgcmV0dXJuIGlzTWFpblRocmVhZCgpOyB9Citib29sIGlzTWFpblRo
cmVhZE9yR0NUaHJlYWQoKTsKICNlbmRpZgogCiAvLyBOT1RFOiB0aGVzZSBmdW5jdGlvbnMgYXJl
IGludGVybmFsIHRvIHRoZSBjYWxsT25NYWluVGhyZWFkIGltcGxlbWVudGF0aW9uLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZjQyMWQ2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZF
UlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTnVtYmVyT2ZDb3Jl
cy5oIgorCisjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCisjaW5j
bHVkZSA8c3lzL3N5c2N0bC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VsaWYgT1MoTElO
VVgpIHx8IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbGlm
IE9TKFdJTkRPV1MpCisjaW5jbHVkZSA8V2luZG93cy5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBX
VEYgeworCitpbnQgbnVtYmVyT2ZDb3JlcygpCit7CisgICAgY29uc3QgaW50IGRlZmF1bHRJZlVu
YXZhaWxhYmxlID0gMTsKKyAgICBzdGF0aWMgaW50IHNfbnVtYmVyT2ZDb3JlcyA9IC0xOworCisg
ICAgaWYgKHNfbnVtYmVyT2ZDb3JlcyA+IDApCisgICAgICAgIHJldHVybiBzX251bWJlck9mQ29y
ZXM7CisjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpIHx8IE9TKEZS
RUVCU0QpCisgICAgdW5zaWduZWQgcmVzdWx0OworICAgIHNpemVfdCBsZW5ndGggPSBzaXplb2Yo
cmVzdWx0KTsKKyAgICBpbnQgbmFtZVtdID0geworICAgICAgICAgICAgQ1RMX0hXLAorICAgICAg
ICAgICAgSFdfTkNQVQorICAgIH07CisgICAgaW50IHN5c2N0bFJlc3VsdCA9IHN5c2N0bChuYW1l
LCBzaXplb2YobmFtZSkgLyBzaXplb2YoaW50KSwgJnJlc3VsdCwgJmxlbmd0aCwgMCwgMCk7CisK
KyAgICBzX251bWJlck9mQ29yZXMgPSBzeXNjdGxSZXN1bHQgPCAwID8gZGVmYXVsdElmVW5hdmFp
bGFibGUgOiByZXN1bHQ7CisjZWxpZiBPUyhMSU5VWCkgfHwgT1MoQUlYKSB8fCBPUyhTT0xBUklT
KQorICAgIGxvbmcgc3lzY29uZlJlc3VsdCA9IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4p
OworCisgICAgc19udW1iZXJPZkNvcmVzID0gc3lzY29uZlJlc3VsdCA8IDAgPyBkZWZhdWx0SWZV
bmF2YWlsYWJsZSA6IHN0YXRpY19jYXN0PGludD4oc3lzY29uZlJlc3VsdCk7CisjZWxpZiBPUyhX
SU5ET1dTKQorICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0SWZVbmF2YWlsYWJsZSk7CisgICAgU1lT
VEVNX0lORk8gc3lzSW5mbzsKKyAgICBHZXRTeXN0ZW1JbmZvKCZzeXNJbmZvKTsKKworICAgIHNf
bnVtYmVyT2ZDb3JlcyA9IHN5c0luZm8uZHdOdW1iZXJPZlByb2Nlc3NvcnM7CisjZWxzZQorICAg
IHNfbnVtYmVyT2ZDb3JlcyA9IGRlZmF1bHRJZlVuYXZhaWxhYmxlOworI2VuZGlmCisgICAgcmV0
dXJuIHNfbnVtYmVyT2ZDb3JlczsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051
bWJlck9mQ29yZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTM2MzI5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNv
cmVzLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJz
aXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgTnVtYmVyT2ZD
b3Jlc19oCisjZGVmaW5lIE51bWJlck9mQ29yZXNfaAorCituYW1lc3BhY2UgV1RGIHsKKworaW50
IG51bWJlck9mQ29yZXMoKTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCmluZGV4IGI2MjA3ZGMuLjk4NzQyYjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJp
Yy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmlj
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAiUGFyYWxsZWxKb2JzLmgiCiAjaW5j
bHVkZSAiVW51c2VkUGFyYW0uaCIKKyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogCiAj
aWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCiAjaW5jbHVkZSA8c3lz
L3N5c2N0bC5oPgpAQCAtNDUsMTkgKzQ2LDE2IEBAIG5hbWVzcGFjZSBXVEYgewogCiBWZWN0b3I8
IFJlZlB0cjxQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlPiA+KiBQYXJhbGxlbEVu
dmlyb25tZW50OjpzX3RocmVhZFBvb2wgPSAwOwogCi1pbnQgUGFyYWxsZWxFbnZpcm9ubWVudDo6
c19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IC0xOwotCiBQYXJhbGxlbEVudmlyb25tZW50
OjpQYXJhbGxlbEVudmlyb25tZW50KFRocmVhZEZ1bmN0aW9uIHRocmVhZEZ1bmN0aW9uLCBzaXpl
X3Qgc2l6ZU9mUGFyYW1ldGVyLCBpbnQgcmVxdWVzdGVkSm9iTnVtYmVyKSA6CiAgICAgbV90aHJl
YWRGdW5jdGlvbih0aHJlYWRGdW5jdGlvbiksCiAgICAgbV9zaXplT2ZQYXJhbWV0ZXIoc2l6ZU9m
UGFyYW1ldGVyKQogewogICAgIEFTU0VSVF9BUkcocmVxdWVzdGVkSm9iTnVtYmVyLCByZXF1ZXN0
ZWRKb2JOdW1iZXIgPj0gMSk7CiAKLSAgICBpZiAoc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFk
cyA9PSAtMSkKLSAgICAgICAgZGV0ZXJtaW5lTWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMoKTsK
KyAgICBpbnQgbWF4TnVtYmVyT2ZDb3JlcyA9IG51bWJlck9mQ29yZXMoKTsKIAotICAgIGlmICgh
cmVxdWVzdGVkSm9iTnVtYmVyIHx8IHJlcXVlc3RlZEpvYk51bWJlciA+IHNfbWF4TnVtYmVyT2ZQ
YXJhbGxlbFRocmVhZHMpCi0gICAgICAgIHJlcXVlc3RlZEpvYk51bWJlciA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKTsKKyAgICBpZiAoIXJlcXVl
c3RlZEpvYk51bWJlciB8fCByZXF1ZXN0ZWRKb2JOdW1iZXIgPiBtYXhOdW1iZXJPZkNvcmVzKQor
ICAgICAgICByZXF1ZXN0ZWRKb2JOdW1iZXIgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4TnVt
YmVyT2ZDb3Jlcyk7CiAKICAgICBpZiAoIXNfdGhyZWFkUG9vbCkKICAgICAgICAgc190aHJlYWRQ
b29sID0gbmV3IFZlY3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4oKTsKQEAgLTY1LDcgKzYz
LDcgQEAgUGFyYWxsZWxFbnZpcm9ubWVudDo6UGFyYWxsZWxFbnZpcm9ubWVudChUaHJlYWRGdW5j
dGlvbiB0aHJlYWRGdW5jdGlvbiwgc2l6ZV90IHMKICAgICAvLyBUaGUgbWFpbiB0aHJlYWQgc2hv
dWxkIGJlIGFsc28gYSB3b3JrZXIuCiAgICAgaW50IG1heE51bWJlck9mTmV3VGhyZWFkcyA9IHJl
cXVlc3RlZEpvYk51bWJlciAtIDE7CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHNfbWF4TnVt
YmVyT2ZQYXJhbGxlbFRocmVhZHMgJiYgbV90aHJlYWRzLnNpemUoKSA8IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihtYXhOdW1iZXJPZk5ld1RocmVhZHMpOyArK2kpIHsKKyAgICBmb3IgKGludCBpID0g
MDsgaSA8IG1heE51bWJlck9mQ29yZXMgJiYgbV90aHJlYWRzLnNpemUoKSA8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihtYXhOdW1iZXJPZk5ld1RocmVhZHMpOyArK2kpIHsKICAgICAgICAgaWYgKHNf
dGhyZWFkUG9vbC0+c2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGkpICsgMVUpCiAgICAg
ICAgICAgICBzX3RocmVhZFBvb2wtPmFwcGVuZChUaHJlYWRQcml2YXRlOjpjcmVhdGUoKSk7CiAK
QEAgLTkzLDMyICs5MSw2IEBAIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6ZXhlY3V0ZSh2b2lk
KiBwYXJhbWV0ZXJzKQogICAgICAgICBtX3RocmVhZHNbaV0tPndhaXRGb3JGaW5pc2goKTsKIH0K
IAotdm9pZCBQYXJhbGxlbEVudmlyb25tZW50OjpkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVs
VGhyZWFkcygpCi17Ci0gICAgY29uc3QgaW50IGRlZmF1bHRJZlVuYXZhaWxhYmxlID0gMjsKLSNp
ZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5CU0QpIHx8IE9TKE5FVEJTRCkKLSAgICB1bnNpZ25lZCBy
ZXN1bHQ7Ci0gICAgc2l6ZV90IGxlbmd0aCA9IHNpemVvZihyZXN1bHQpOwotICAgIGludCBuYW1l
W10gPSB7Ci0gICAgICAgIENUTF9IVywKLSAgICAgICAgSFdfTkNQVQotICAgIH07Ci0gICAgaW50
IHN5c2N0bFJlc3VsdCA9IHN5c2N0bChuYW1lLCBzaXplb2YobmFtZSkgLyBzaXplb2YoaW50KSwg
JnJlc3VsdCwgJmxlbmd0aCwgMCwgMCk7Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFk
cyA9IHN5c2N0bFJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHJlc3VsdDsKLSNl
bGlmIE9TKExJTlVYKSB8fCBPUyhBSVgpIHx8IE9TKFNPTEFSSVMpCi0gICAgbG9uZyBzeXNjb25m
UmVzdWx0ID0gc3lzY29uZihfU0NfTlBST0NFU1NPUlNfT05MTik7Ci0gICAgc19tYXhOdW1iZXJP
ZlBhcmFsbGVsVGhyZWFkcyA9IHN5c2NvbmZSZXN1bHQgPCAwID8gZGVmYXVsdElmVW5hdmFpbGFi
bGUgOiBzdGF0aWNfY2FzdDxpbnQ+KHN5c2NvbmZSZXN1bHQpOwotI2VsaWYgT1MoV0lORE9XUykK
LSAgICBVTlVTRURfUEFSQU0oZGVmYXVsdElmVW5hdmFpbGFibGUpOwotCi0gICAgU1lTVEVNX0lO
Rk8gc3lzSW5mbzsKLSAgICBHZXRTeXN0ZW1JbmZvKCZzeXNJbmZvKTsKLSAgICBzX21heE51bWJl
ck9mUGFyYWxsZWxUaHJlYWRzID0gc3lzSW5mby5kd051bWJlck9mUHJvY2Vzc29yczsKLSNlbHNl
Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IGRlZmF1bHRJZlVuYXZhaWxhYmxl
OwotI2VuZGlmCi19Ci0KIGJvb2wgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6
dHJ5TG9ja0ZvcihQYXJhbGxlbEVudmlyb25tZW50KiBwYXJlbnQpCiB7CiAgICAgYm9vbCBsb2Nr
ZWQgPSBtX211dGV4LnRyeUxvY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmgKaW5kZXggZGFiNmRkOS4uMWM3ZDYzYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKQEAgLTg0LDE1ICs4
NCwxMiBAQCBwdWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBkZXRl
cm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpOwotCiAgICAgVGhyZWFkRnVuY3Rpb24g
bV90aHJlYWRGdW5jdGlvbjsKICAgICBzaXplX3QgbV9zaXplT2ZQYXJhbWV0ZXI7CiAgICAgaW50
IG1fbnVtYmVyT2ZKb2JzOwogCiAgICAgVmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiBt
X3RocmVhZHM7CiAgICAgc3RhdGljIFZlY3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4qIHNf
dGhyZWFkUG9vbDsKLSAgICBzdGF0aWMgaW50IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0u
aAppbmRleCBiYjE0NjJlLi5mYjFmOTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9y
bS5oCkBAIC0xMTE2LDcgKzExMTYsNyBAQAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dB
UCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRG
T1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisj
aWYgIWRlZmluZWQoRU5BQkxFX1BBUkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFU
Rk9STShJT1MpIHx8IFBMQVRGT1JNKFFUKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAj
ZGVmaW5lIEVOQUJMRV9QQVJBTExFTF9HQyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KaW5kZXggZmJjNjI1MC4uZDVkNWI2YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5t
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBA
IC01OSwxNyArNTksNiBAQCBzdGF0aWMgYm9vbCBtYWluVGhyZWFkRXN0YWJsaXNoZWRBc1B0aHJl
YWRNYWluOwogc3RhdGljIHB0aHJlYWRfdCBtYWluVGhyZWFkUHRocmVhZDsKIHN0YXRpYyBOU1Ro
cmVhZCogbWFpblRocmVhZE5TVGhyZWFkOwogCi0jaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQotc3Rh
dGljIFRocmVhZFNwZWNpZmljPGJvb2w+KiBpc0dDVGhyZWFkOwotCi1zdGF0aWMgdm9pZCBpbml0
aWFsaXplR0NUaHJlYWRzKCkKLXsKLSAgICBpc0dDVGhyZWFkID0gbmV3IFRocmVhZFNwZWNpZmlj
PGJvb2w+KCk7Ci19Ci0jZWxzZQotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpIHsg
fQotI2VuZGlmCi0KIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgpCiB7CiAgICAg
QVNTRVJUKCFzdGF0aWNNYWluVGhyZWFkQ2FsbGVyKTsKQEAgLTE0NSwzMSArMTM0LDQgQEAgYm9v
bCBpc01haW5UaHJlYWQoKQogICAgIHJldHVybiBwdGhyZWFkX2VxdWFsKHB0aHJlYWRfc2VsZigp
LCBtYWluVGhyZWFkUHRocmVhZCk7CiB9CiAKLSNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCi12b2lk
IHJlZ2lzdGVyR0NUaHJlYWQoKQotewotICAgIGlmICghaXNHQ1RocmVhZCkgewotICAgICAgICAv
LyBUaGlzIGhhcHBlbnMgaWYgd2UncmUgcnVubmluZyBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0
IGNhcmUgYWJvdXQKLSAgICAgICAgLy8gTWFpblRocmVhZC4KLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgICoqaXNHQ1RocmVhZCA9IHRydWU7Ci19Ci0KLWJvb2wgaXNNYWluVGhyZWFkT3JH
Q1RocmVhZCgpCi17Ci0gICAgaWYgKGlzR0NUaHJlYWQtPmlzU2V0KCkgJiYgKippc0dDVGhyZWFk
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7
Ci19Ci0jZWxzZQotLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBKYXZhU2NyaXB0Q29yZS5l
eHAgZG9lc24ndCBzdXBwb3J0IHByZXByb2Nlc3NvciBtYWNyb3MuCi1ib29sIGlzTWFpblRocmVh
ZE9yR0NUaHJlYWQoKQotewotICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKLX0KLSNlbmRpZgot
CiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvd3RmLnBybyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnBybwppbmRleCA0YzU3
NWUzLi5jNDYzNmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5w
cm8KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvCkBAIC05Miw2ICs5Miw3
IEBAIEhFQURFUlMgKz0gXAogICAgIE5vbkNvcHlpbmdTb3J0LmggXAogICAgIE5vdEZvdW5kLmgg
XAogICAgIE51bGxQdHIuaCBcCisgICAgTnVtYmVyT2ZDb3Jlcy5oIFwKICAgICBPU0FsbG9jYXRv
ci5oIFwKICAgICBPU1JhbmRvbVNvdXJjZS5oIFwKICAgICBPd25BcnJheVB0ci5oIFwKQEAgLTE5
OCw2ICsxOTksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBNYWluVGhyZWFkLmNwcCBcCiAgICAgTWV0
YUFsbG9jYXRvci5jcHAgXAogICAgIE51bGxQdHIuY3BwIFwKKyAgICBOdW1iZXJPZkNvcmVzLmNw
cCBcCiAgICAgT1NSYW5kb21Tb3VyY2UuY3BwIFwKICAgICBxdC9NYWluVGhyZWFkUXQuY3BwIFwK
ICAgICBxdC9TdHJpbmdRdC5jcHAgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>120876</attachid>
            <date>2012-01-02 05:53:18 -0800</date>
            <delta_ts>2012-01-02 06:02:04 -0800</delta_ts>
            <desc>This file includes measurements with and without &quot;gc()&quot; call</desc>
            <filename>compareResults.txt</filename>
            <type>text/plain</type>
            <size>983</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">U3VuU3BpZGVyIG1lYXN1cmVtZW50czoKCldpdGggR0MgKG5vcm1hbCBjYXNlKQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAqKiBUT1RBTCAqKjogICAgICAgICAgID8/ICAg
ICAgICAgICAxNDIuMG1zICsvLSAyLjAlICAgMTQyLjVtcyArLy0gMS4yJSAgICAgbm90IGNvbmNs
dXNpdmU6IG1pZ2h0IGJlICoxLjAwNHggYXMgc2xvdyoKdjg6ICAgICoqIFRPVEFMICoqOiAgICAg
IDEuMDcxeCBhcyBmYXN0ICAgIDc0Ni4xbXMgKy8tIDQuMiUgICA2OTYuNG1zICsvLSAwLjclICAg
ICBzaWduaWZpY2FudAp3czogICAgKiogVE9UQUwgKio6ICAgICAgMS4wODJ4IGFzIGZhc3QgICAg
MzQ5MC40bXMgKy8tIDMuMiUgIDMyMjYuN21zICsvLSAwLjclICAgIHNpZ25pZmljYW50CnNwbGF5
OiAqKiBUT1RBTCAqKjogICAgICAxLjE1OHggYXMgZmFzdCAgICAxNDUuOG1zICsvLSAxLjAlICAg
MTI1LjltcyArLy0gMi4xJSAgICAgc2lnbmlmaWNhbnQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQoKCgpXaXRob3V0IEdDIChpZiAiZ2MoKSIgY2FsbCBpcyByZW1vdmVkIGZvciBzdW5z
cGlkZXIgZHJpdmVyKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAqKiBU
T1RBTCAqKjogICAgICAgICAgIC0gICAgICAgICAgICAxNTEuNW1zICsvLSAwLjglICAgMTUxLjVt
cyArLy0gMC43JQp2ODogICAgKiogVE9UQUwgKio6ICAgICAgMS4wMjF4IGFzIGZhc3QgICAgNzA4
LjltcyArLy0gMC4zJSAgIDY5NC4zbXMgKy8tIDAuNiUgICAgICBzaWduaWZpY2FudAp3czogICAg
KiogVE9UQUwgKio6ICAgICAgMS4wMTJ4IGFzIGZhc3QgICAgMzMxMi40bXMgKy8tIDAuMiUgIDMy
NzIuOG1zICsvLSAwLjMlICAgICBzaWduaWZpY2FudApzcGxheTogKiogVE9UQUwgKio6ICAgICAg
MS4xMjB4IGFzIGZhc3QgICAgMTQ2LjJtcyArLy0gMS4xJSAgIDEzMC41bXMgKy8tIDIuMiUgICAg
ICBzaWduaWZpY2FudAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120917</attachid>
            <date>2012-01-03 01:19:39 -0800</date>
            <delta_ts>2012-01-03 02:24:35 -0800</delta_ts>
            <desc>This patch results some speed-ups on QT platform.</desc>
            <filename>2012_01_03.diff</filename>
            <type>text/plain</type>
            <size>21011</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNiY2NlZGQuLmM4NjU3MjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAxLTAyICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIDIgZmlsZXMgaXMgYWRkZWQg
dG8gdGhlIHByb2plY3QsIG5hbWVseSBOdW1iZXJPZkNvcmVzLmgvY3BwLCB0aGF0CisgICAgICAg
IGluY2x1ZGUgYSBDUFUgY29yZSBudW1iZXIgZGV0ZXJtaW5pbmcgZnVuY3Rpb24uIEl0IHVzZWQg
dG8gYmUgaW4KKyAgICAgICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5oL2NwcCBiZWZvcmUuCisKKyAg
ICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAgIHNwZWVkLXVw
OiAgMS4wNzF4IGFzIGZhc3QgIFtGcm9tOiA3NDYuMW1zICBUbzogNjk2LjRtcyBdCisgICAgICAg
IFdpbmRTY29ycGlvbiBzcGVlZC11cDogIDEuMDgyeCBhcyBmYXN0ICBbRnJvbTogMzQ5MC40bXMg
VG86IDMyMjYuN21zXQorICAgICAgICBWOCBTcGxheSAgICAgc3BlZWQtdXA6ICAxLjE1OHggYXMg
ZmFzdCAgW0Zyb206IDE0NS44bXMgIFRvOiAxMjUuOW1zIF0KKworICAgICAgICBUZXN0ZWQgb24g
SW50ZWwoUikgQ29yZShUTSkgaTUtMjMyMCBDUFUgQCAzLjAwR0h6IHdpdGggNC1jb3JlLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5n
eXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6
aW5pdGlhbGl6ZU9wdGlvbnMpOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVHQ1RocmVh
ZHMpOgorICAgICAgICAoV1RGOjpyZWdpc3RlckdDVGhyZWFkKToKKyAgICAgICAgKFdURjo6aXNN
YWluVGhyZWFkT3JHQ1RocmVhZCk6CisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKyAgICAg
ICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGOjpudW1iZXJP
ZkNvcmVzKToKKyAgICAgICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5oOiBBZGRlZC4KKyAgICAgICAg
KiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52
aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1lbnQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEpv
YnNHZW5lcmljLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAgICogd3RmL21h
Yy9NYWluVGhyZWFkTWFjLm1tOgorICAgICAgICAqIHd0Zi93dGYucHJvOgorCiAyMDEyLTAxLTAx
ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbCBpbnN0cnVj
dGlvbnMgc2hvdWxkIGxlYXZlIHJvb20gZm9yIGxpbmtpbmcgaW5mb3JtYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZmY1NjU2MC4uMjRmM2M5MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYwMyw2ICs2
MDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL05vbkNvcHlpbmdTb3J0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTm90
Rm91bmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdWxsUHRyLmggXAorCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgXAorCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L09TQWxsb2NhdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3Vy
Y2UuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQppbmRleCAwMWZkM2RjLi5j
NzlmOTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQpAQCAt
NTcxLDYgKzU3MSw4IEBACiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuY3BwJywKICAgICAg
ICAgICAgICd3dGYvTWFsbG9jWm9uZVN1cHBvcnQuaCcsCiAgICAgICAgICAgICAnd3RmL051bGxQ
dHIuY3BwJywKKyAgICAgICAgICAgICd3dGYvTnVtYmVyT2ZDb3Jlcy5jcHAnLAorICAgICAgICAg
ICAgJ3d0Zi9OdW1iZXJPZkNvcmVzLmgnLAogICAgICAgICAgICAgJ3d0Zi9PU0FsbG9jYXRvclBv
c2l4LmNwcCcsCiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yV2luLmNwcCcsCiAgICAgICAg
ICAgICAnd3RmL09TUmFuZG9tU291cmNlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDFkOThjYmQuLmRlN2IzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC03MTEsNiArNzExLDggQEAKIAkJRTQ5REMxNkMxMkVGMjk0RTAwMTg0QTFGIC8qIFNvdXJjZVBy
b3ZpZGVyQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU0OURDMTUxMTJFRjI3MjIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ5REMxNkQx
MkVGMjk1MzAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE0OTEyRUYyNjFBMDAxODRB
MUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLzsgfTsKIAkJRTREOENFRkIxMkZDNDM5
NjAwQkM5RjVBIC8qIEJsb29tRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNEQ4Q0U5QjEyRkM0MkUxMDBCQzlGNUEgLyogQmxvb21GaWx0ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFREU4
MUNBNzE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFREU4MUNBNTE0QTIyQTIxMDA0NDExRkYg
LyogTnVtYmVyT2ZDb3Jlcy5jcHAgKi87IH07CisJCUVERTgxQ0E4MTRBMjJBMjEwMDQ0MTFGRiAv
KiBOdW1iZXJPZkNvcmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFREU4MUNBNjE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5oICovOyB9
OwogCQlGM0JEMzFFRDEyNjczNTc3MDA2NTQ2N0YgLyogVGV4dFBvc2l0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0JEMzFEMDEyNjczMDE4MDA2
NTQ2N0YgLyogVGV4dFBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRkRBMTVDMUUxMkIwMzA1QzAwM0E1ODNBIC8qIENvbXBsZXguaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQTE1QzE2MTJC
MDMwMjgwMDNBNTgzQSAvKiBDb21wbGV4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkUxQjQ0N0EwRUNDRDczQjAwNEY0REQxIC8qIFN0ZExpYkV4
dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUx
QjQ0NzkwRUNDRDczQjAwNEY0REQxIC8qIFN0ZExpYkV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTAxLDYgKzE1MDMsOCBAQAogCQlF
NDlEQzE1MTEyRUYyNzIyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0OURDMTU1MTJFRjI3NzIwMDE4NEExRiAvKiBTb3VyY2VQ
cm92aWRlckNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNv
dXJjZVByb3ZpZGVyQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEQ4
Q0U5QjEyRkM0MkUxMDBCQzlGNUEgLyogQmxvb21GaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmxvb21GaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRURFODFDQTUxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTnVtYmVyT2ZDb3Jlcy5jcHA7IHBhdGggPSB3
dGYvTnVtYmVyT2ZDb3Jlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVERTgx
Q0E2MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IE51bWJlck9mQ29yZXMuaDsgcGF0aCA9IHd0Zi9OdW1iZXJPZkNvcmVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzQkQzMUQwMTI2NzMwMTgwMDY1NDY3
RiAvKiBUZXh0UG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4
dFBvc2l0aW9uLmg7IHBhdGggPSB0ZXh0L1RleHRQb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNUJCMkJDNTAzMEY3NzIxMDFGQ0ZFMUQgLyogQ29tcGxldGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wbGV0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJRjVDMjkw
RTYwMjg0Rjk4RTAxODYzNUNBIC8qIEphdmFTY3JpcHRDb3JlUHJlZml4LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHRDb3JlUHJl
Zml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKQEAgLTE2MTUs
NiArMTYxOSw4IEBACiAJCTA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBKYXZhU2NyaXB0Q29y
ZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRURFODFD
QTUxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuY3BwICovLAorCQkJCUVERTgxQ0E2
MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmggKi8sCiAJCQkJODYwNEY0RjIxNDNB
NkM0NDAwQjI5NUY1IC8qIENoYW5nZUxvZyAqLywKIAkJCQlBNzE4RjgyMTExNzhFQjRCMDAyNDY1
QTcgLyogY3JlYXRlX3JlZ2V4X3RhYmxlcyAqLywKIAkJCQk5MzdCNjNDQzA5RTc2NkQyMDBBNjcx
REQgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKQEAgLTMwMDIsNiArMzAwOCw3IEBACiAJCQkJ
ODYwQkQ4MDExNDhFQTZGMjAwMTEyQjJGIC8qIEludHJpbnNpYy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZCQzBBRTgxNDk2QzdDNzAwRDRGQkREIC8qIERGR0V4aXRQcm9maWxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUE5RTU1MTE0OTgwOTM1MDAwMDFBOEEgLyogRnVuY3Rpb25hbC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRURFODFDQTgxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpAQCAtMzU0MCw2ICszNTQ3LDcgQEAKIAkJCQlBNzNCRTE2ODE0ODQy
MDUyMDA5MTIwNEIgLyogQXJyYXlCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTczQkUx
NkExNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkJDMEFFNzE0OTZDN0M0MDBENEZCREQgLyogREZHRXhpdFByb2ZpbGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRURFODFDQTcxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
Y3BwCmluZGV4IDY4ZDEwYjcuLmU2NWUxNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiT3B0aW9ucy5oIgog
CiAjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5j
bHVkZSA8d3RmL1BhZ2VCbG9jay5oPgogCiAjaWYgT1MoREFSV0lOKSAmJiBFTkFCTEUoUEFSQUxM
RUxfR0MpCkBAIC0xNzQsMTIgKzE3NSw4IEBAIHZvaWQgaW5pdGlhbGl6ZU9wdGlvbnMoKQogICAg
IFNFVChvcGFxdWVSb290TWVyZ2VUaHJlc2hvbGQsICAgICAgICAgICAgIDEwMDApOwogCiAgICAg
aW50IGNwdXNUb1VzZSA9IDE7Ci0jaWYgT1MoREFSV0lOKSAmJiBFTkFCTEUoUEFSQUxMRUxfR0Mp
Ci0gICAgaW50IG5hbWVbMl07Ci0gICAgc2l6ZV90IHZhbHVlU2l6ZSA9IHNpemVvZihjcHVzVG9V
c2UpOwotICAgIG5hbWVbMF0gPSBDVExfSFc7Ci0gICAgbmFtZVsxXSA9IEhXX0FWQUlMQ1BVOwot
ICAgIHN5c2N0bChuYW1lLCAyLCAmY3B1c1RvVXNlLCAmdmFsdWVTaXplLCAwLCAwKTsKKyNpZiBF
TkFCTEUoUEFSQUxMRUxfR0MpCisgICAgY3B1c1RvVXNlID0gV1RGOjpudW1iZXJPZkNvcmVzKCk7
CiAjZW5kaWYKICAgICAvLyBXZSBkb24ndCBzY2FsZSBzbyB3ZWxsIGJleW9uZCA0LgogICAgIGlm
IChjcHVzVG9Vc2UgPiA0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQK
aW5kZXggNmQxY2VlOC4uMjliMmMxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtl
TGlzdHMudHh0CkBAIC01Myw2ICs1Myw3IEBAIFNFVChXVEZfSEVBREVSUwogICAgIE5vbmNvcHlh
YmxlLmgKICAgICBOb3RGb3VuZC5oCiAgICAgTnVsbFB0ci5oCisgICAgTnVtYmVyT2ZDb3Jlcy5o
CiAgICAgT1NBbGxvY2F0b3IuaAogICAgIE9TUmFuZG9tU291cmNlLmgKICAgICBPd25BcnJheVB0
ci5oCkBAIC0xNDcsNiArMTQ4LDcgQEAgU0VUKFdURl9TT1VSQ0VTCiAgICAgTWFpblRocmVhZC5j
cHAKICAgICBNRDUuY3BwCiAgICAgT1NSYW5kb21Tb3VyY2UuY3BwCisgICAgTnVtYmVyT2ZDb3Jl
cy5jcHAKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwCiAgICAgUGFnZUJsb2NrLmNwcAog
ICAgIFBhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWlu
VGhyZWFkLmNwcAppbmRleCA5MTUxMjY1Li40ZjNkNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvTWFpblRocmVhZC5jcHAKQEAgLTI0OSw0ICsyNDksMzggQEAgYm9vbCBpc01haW5UaHJl
YWQoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCitzdGF0aWMgVGhyZWFk
U3BlY2lmaWM8Ym9vbD4qIGlzR0NUaHJlYWQ7CisKK3ZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygp
Cit7CisgICAgaXNHQ1RocmVhZCA9IG5ldyBUaHJlYWRTcGVjaWZpYzxib29sPigpOworfQorCit2
b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKQoreworICAgIGlmICghaXNHQ1RocmVhZCkgeworICAgICAg
ICAvLyBUaGlzIGhhcHBlbnMgaWYgd2UncmUgcnVubmluZyBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vz
bid0IGNhcmUgYWJvdXQKKyAgICAgICAgLy8gTWFpblRocmVhZC4KKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgICoqaXNHQ1RocmVhZCA9IHRydWU7Cit9CisKK2Jvb2wgaXNNYWluVGhyZWFk
T3JHQ1RocmVhZCgpCit7CisgICAgaWYgKGlzR0NUaHJlYWQtPmlzU2V0KCkgJiYgKippc0dDVGhy
ZWFkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsK
K30KKyNlbHNlCisvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIEphdmFTY3JpcHRDb3JlLmV4
cCBkb2Vzbid0IHN1cHBvcnQgcHJlcHJvY2Vzc29yIG1hY3Jvcy4KK2Jvb2wgaXNNYWluVGhyZWFk
T3JHQ1RocmVhZCgpCit7CisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQorI2VuZGlmCisK
IH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9NYWluVGhyZWFkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaApp
bmRleCBjMTUzZDFlLi4zM2RjZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL01haW5UaHJlYWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJl
YWQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtLmgiCiAKICNpbmNsdWRl
IDxzdGRpbnQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KIAogbmFtZXNwYWNl
IFdURiB7CiAKQEAgLTUzLDEyICs1NCwxMSBAQCB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQ
YXVzZWQoYm9vbCBwYXVzZWQpOwogCiBib29sIGlzTWFpblRocmVhZCgpOwogI2lmIEVOQUJMRShQ
QVJBTExFTF9HQykKK3ZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpOwogdm9pZCByZWdpc3RlckdD
VGhyZWFkKCk7CiBib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsKLSNlbGlmIFBMQVRGT1JN
KE1BQykKLWJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpOwogI2Vsc2UKLWlubGluZSBib29s
IGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKSB7IHJldHVybiBpc01haW5UaHJlYWQoKTsgfQorYm9v
bCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7CiAjZW5kaWYKIAogLy8gTk9URTogdGhlc2UgZnVu
Y3Rpb25zIGFyZSBpbnRlcm5hbCB0byB0aGUgY2FsbE9uTWFpblRocmVhZCBpbXBsZW1lbnRhdGlv
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNGE2NDYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuY3BwCkBAIC0wLDAgKzEsNzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk51
bWJlck9mQ29yZXMuaCIKKworI2lmIE9TKERBUldJTikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVU
QlNEKQorI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNl
bGlmIE9TKExJTlVYKSB8fCBPUyhBSVgpIHx8IE9TKFNPTEFSSVMpCisjaW5jbHVkZSA8dW5pc3Rk
Lmg+CisjZWxpZiBPUyhXSU5ET1dTKQorI2luY2x1ZGUgPFdpbmRvd3MuaD4KKyNlbmRpZgorCitu
YW1lc3BhY2UgV1RGIHsKKworaW50IG51bWJlck9mQ29yZXMoKQoreworICAgIGNvbnN0IGludCBk
ZWZhdWx0SWZVbmF2YWlsYWJsZSA9IDE7CisgICAgc3RhdGljIGludCBzX251bWJlck9mQ29yZXMg
PSAtMTsKKworICAgIGlmIChzX251bWJlck9mQ29yZXMgPiAwKQorICAgICAgICByZXR1cm4gc19u
dW1iZXJPZkNvcmVzOworCisjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRC
U0QpIHx8IE9TKEZSRUVCU0QpCisgICAgdW5zaWduZWQgcmVzdWx0OworICAgIHNpemVfdCBsZW5n
dGggPSBzaXplb2YocmVzdWx0KTsKKyAgICBpbnQgbmFtZVtdID0geworICAgICAgICAgICAgQ1RM
X0hXLAorICAgICAgICAgICAgSFdfTkNQVQorICAgIH07CisgICAgaW50IHN5c2N0bFJlc3VsdCA9
IHN5c2N0bChuYW1lLCBzaXplb2YobmFtZSkgLyBzaXplb2YoaW50KSwgJnJlc3VsdCwgJmxlbmd0
aCwgMCwgMCk7CisKKyAgICBzX251bWJlck9mQ29yZXMgPSBzeXNjdGxSZXN1bHQgPCAwID8gZGVm
YXVsdElmVW5hdmFpbGFibGUgOiByZXN1bHQ7CisjZWxpZiBPUyhMSU5VWCkgfHwgT1MoQUlYKSB8
fCBPUyhTT0xBUklTKQorICAgIGxvbmcgc3lzY29uZlJlc3VsdCA9IHN5c2NvbmYoX1NDX05QUk9D
RVNTT1JTX09OTE4pOworCisgICAgc19udW1iZXJPZkNvcmVzID0gc3lzY29uZlJlc3VsdCA8IDAg
PyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0YXRpY19jYXN0PGludD4oc3lzY29uZlJlc3VsdCk7
CisjZWxpZiBPUyhXSU5ET1dTKQorICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0SWZVbmF2YWlsYWJs
ZSk7CisgICAgU1lTVEVNX0lORk8gc3lzSW5mbzsKKyAgICBHZXRTeXN0ZW1JbmZvKCZzeXNJbmZv
KTsKKworICAgIHNfbnVtYmVyT2ZDb3JlcyA9IHN5c0luZm8uZHdOdW1iZXJPZlByb2Nlc3NvcnM7
CisjZWxzZQorICAgIHNfbnVtYmVyT2ZDb3JlcyA9IGRlZmF1bHRJZlVuYXZhaWxhYmxlOworI2Vu
ZGlmCisgICAgcmV0dXJuIHNfbnVtYmVyT2ZDb3JlczsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL051bWJlck9mQ29yZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40ZTM2MzI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9OdW1iZXJPZkNvcmVzLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5k
ZWYgTnVtYmVyT2ZDb3Jlc19oCisjZGVmaW5lIE51bWJlck9mQ29yZXNfaAorCituYW1lc3BhY2Ug
V1RGIHsKKworaW50IG51bWJlck9mQ29yZXMoKTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCmluZGV4IGI2MjA3
ZGMuLjk4NzQyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxs
ZWxKb2JzR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxl
bEpvYnNHZW5lcmljLmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAiUGFyYWxsZWxK
b2JzLmgiCiAjaW5jbHVkZSAiVW51c2VkUGFyYW0uaCIKKyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZD
b3Jlcy5oPgogCiAjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCiAj
aW5jbHVkZSA8c3lzL3N5c2N0bC5oPgpAQCAtNDUsMTkgKzQ2LDE2IEBAIG5hbWVzcGFjZSBXVEYg
ewogCiBWZWN0b3I8IFJlZlB0cjxQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlPiA+
KiBQYXJhbGxlbEVudmlyb25tZW50OjpzX3RocmVhZFBvb2wgPSAwOwogCi1pbnQgUGFyYWxsZWxF
bnZpcm9ubWVudDo6c19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IC0xOwotCiBQYXJhbGxl
bEVudmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25tZW50KFRocmVhZEZ1bmN0aW9uIHRocmVhZEZ1
bmN0aW9uLCBzaXplX3Qgc2l6ZU9mUGFyYW1ldGVyLCBpbnQgcmVxdWVzdGVkSm9iTnVtYmVyKSA6
CiAgICAgbV90aHJlYWRGdW5jdGlvbih0aHJlYWRGdW5jdGlvbiksCiAgICAgbV9zaXplT2ZQYXJh
bWV0ZXIoc2l6ZU9mUGFyYW1ldGVyKQogewogICAgIEFTU0VSVF9BUkcocmVxdWVzdGVkSm9iTnVt
YmVyLCByZXF1ZXN0ZWRKb2JOdW1iZXIgPj0gMSk7CiAKLSAgICBpZiAoc19tYXhOdW1iZXJPZlBh
cmFsbGVsVGhyZWFkcyA9PSAtMSkKLSAgICAgICAgZGV0ZXJtaW5lTWF4TnVtYmVyT2ZQYXJhbGxl
bFRocmVhZHMoKTsKKyAgICBpbnQgbWF4TnVtYmVyT2ZDb3JlcyA9IG51bWJlck9mQ29yZXMoKTsK
IAotICAgIGlmICghcmVxdWVzdGVkSm9iTnVtYmVyIHx8IHJlcXVlc3RlZEpvYk51bWJlciA+IHNf
bWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMpCi0gICAgICAgIHJlcXVlc3RlZEpvYk51bWJlciA9
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKTsKKyAg
ICBpZiAoIXJlcXVlc3RlZEpvYk51bWJlciB8fCByZXF1ZXN0ZWRKb2JOdW1iZXIgPiBtYXhOdW1i
ZXJPZkNvcmVzKQorICAgICAgICByZXF1ZXN0ZWRKb2JOdW1iZXIgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4obWF4TnVtYmVyT2ZDb3Jlcyk7CiAKICAgICBpZiAoIXNfdGhyZWFkUG9vbCkKICAgICAg
ICAgc190aHJlYWRQb29sID0gbmV3IFZlY3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4oKTsK
QEAgLTY1LDcgKzYzLDcgQEAgUGFyYWxsZWxFbnZpcm9ubWVudDo6UGFyYWxsZWxFbnZpcm9ubWVu
dChUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgc2l6ZV90IHMKICAgICAvLyBUaGUgbWFp
biB0aHJlYWQgc2hvdWxkIGJlIGFsc28gYSB3b3JrZXIuCiAgICAgaW50IG1heE51bWJlck9mTmV3
VGhyZWFkcyA9IHJlcXVlc3RlZEpvYk51bWJlciAtIDE7CiAKLSAgICBmb3IgKGludCBpID0gMDsg
aSA8IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgJiYgbV90aHJlYWRzLnNpemUoKSA8IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZk5ld1RocmVhZHMpOyArK2kpIHsKKyAgICBm
b3IgKGludCBpID0gMDsgaSA8IG1heE51bWJlck9mQ29yZXMgJiYgbV90aHJlYWRzLnNpemUoKSA8
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZk5ld1RocmVhZHMpOyArK2kpIHsKICAg
ICAgICAgaWYgKHNfdGhyZWFkUG9vbC0+c2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGkp
ICsgMVUpCiAgICAgICAgICAgICBzX3RocmVhZFBvb2wtPmFwcGVuZChUaHJlYWRQcml2YXRlOjpj
cmVhdGUoKSk7CiAKQEAgLTkzLDMyICs5MSw2IEBAIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6
ZXhlY3V0ZSh2b2lkKiBwYXJhbWV0ZXJzKQogICAgICAgICBtX3RocmVhZHNbaV0tPndhaXRGb3JG
aW5pc2goKTsKIH0KIAotdm9pZCBQYXJhbGxlbEVudmlyb25tZW50OjpkZXRlcm1pbmVNYXhOdW1i
ZXJPZlBhcmFsbGVsVGhyZWFkcygpCi17Ci0gICAgY29uc3QgaW50IGRlZmF1bHRJZlVuYXZhaWxh
YmxlID0gMjsKLSNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5CU0QpIHx8IE9TKE5FVEJTRCkKLSAg
ICB1bnNpZ25lZCByZXN1bHQ7Ci0gICAgc2l6ZV90IGxlbmd0aCA9IHNpemVvZihyZXN1bHQpOwot
ICAgIGludCBuYW1lW10gPSB7Ci0gICAgICAgIENUTF9IVywKLSAgICAgICAgSFdfTkNQVQotICAg
IH07Ci0gICAgaW50IHN5c2N0bFJlc3VsdCA9IHN5c2N0bChuYW1lLCBzaXplb2YobmFtZSkgLyBz
aXplb2YoaW50KSwgJnJlc3VsdCwgJmxlbmd0aCwgMCwgMCk7Ci0gICAgc19tYXhOdW1iZXJPZlBh
cmFsbGVsVGhyZWFkcyA9IHN5c2N0bFJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6
IHJlc3VsdDsKLSNlbGlmIE9TKExJTlVYKSB8fCBPUyhBSVgpIHx8IE9TKFNPTEFSSVMpCi0gICAg
bG9uZyBzeXNjb25mUmVzdWx0ID0gc3lzY29uZihfU0NfTlBST0NFU1NPUlNfT05MTik7Ci0gICAg
c19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5c2NvbmZSZXN1bHQgPCAwID8gZGVmYXVs
dElmVW5hdmFpbGFibGUgOiBzdGF0aWNfY2FzdDxpbnQ+KHN5c2NvbmZSZXN1bHQpOwotI2VsaWYg
T1MoV0lORE9XUykKLSAgICBVTlVTRURfUEFSQU0oZGVmYXVsdElmVW5hdmFpbGFibGUpOwotCi0g
ICAgU1lTVEVNX0lORk8gc3lzSW5mbzsKLSAgICBHZXRTeXN0ZW1JbmZvKCZzeXNJbmZvKTsKLSAg
ICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lzSW5mby5kd051bWJlck9mUHJvY2Vz
c29yczsKLSNlbHNlCi0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IGRlZmF1bHRJ
ZlVuYXZhaWxhYmxlOwotI2VuZGlmCi19Ci0KIGJvb2wgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhy
ZWFkUHJpdmF0ZTo6dHJ5TG9ja0ZvcihQYXJhbGxlbEVudmlyb25tZW50KiBwYXJlbnQpCiB7CiAg
ICAgYm9vbCBsb2NrZWQgPSBtX211dGV4LnRyeUxvY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKaW5kZXggZGFiNmRkOS4uMWM3ZDYzYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmlj
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgK
QEAgLTg0LDE1ICs4NCwxMiBAQCBwdWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToKLSAgICBzdGF0
aWMgdm9pZCBkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpOwotCiAgICAgVGhy
ZWFkRnVuY3Rpb24gbV90aHJlYWRGdW5jdGlvbjsKICAgICBzaXplX3QgbV9zaXplT2ZQYXJhbWV0
ZXI7CiAgICAgaW50IG1fbnVtYmVyT2ZKb2JzOwogCiAgICAgVmVjdG9yPCBSZWZQdHI8VGhyZWFk
UHJpdmF0ZT4gPiBtX3RocmVhZHM7CiAgICAgc3RhdGljIFZlY3RvcjwgUmVmUHRyPFRocmVhZFBy
aXZhdGU+ID4qIHNfdGhyZWFkUG9vbDsKLSAgICBzdGF0aWMgaW50IHNfbWF4TnVtYmVyT2ZQYXJh
bGxlbFRocmVhZHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvUGxhdGZvcm0uaAppbmRleCBiYjE0NjJlLi5mYjFmOTI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTE2LDcgKzExMTYsNyBAQAogI2RlZmluZSBFTkFCTEVfQ09N
UEFSRV9BTkRfU1dBUCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9H
QykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSkgJiYgRU5BQkxFKENPTVBBUkVf
QU5EX1NXQVApCisjaWYgIWRlZmluZWQoRU5BQkxFX1BBUkFMTEVMX0dDKSAmJiAoUExBVEZPUk0o
TUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFFUKSkgJiYgRU5BQkxFKENPTVBBUkVf
QU5EX1NXQVApCiAjZGVmaW5lIEVOQUJMRV9QQVJBTExFTF9HQyAxCiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KaW5kZXggZmJjNjI1
MC4uZDVkNWI2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFp
blRocmVhZE1hYy5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhy
ZWFkTWFjLm1tCkBAIC01OSwxNyArNTksNiBAQCBzdGF0aWMgYm9vbCBtYWluVGhyZWFkRXN0YWJs
aXNoZWRBc1B0aHJlYWRNYWluOwogc3RhdGljIHB0aHJlYWRfdCBtYWluVGhyZWFkUHRocmVhZDsK
IHN0YXRpYyBOU1RocmVhZCogbWFpblRocmVhZE5TVGhyZWFkOwogCi0jaWYgRU5BQkxFKFBBUkFM
TEVMX0dDKQotc3RhdGljIFRocmVhZFNwZWNpZmljPGJvb2w+KiBpc0dDVGhyZWFkOwotCi1zdGF0
aWMgdm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCkKLXsKLSAgICBpc0dDVGhyZWFkID0gbmV3IFRo
cmVhZFNwZWNpZmljPGJvb2w+KCk7Ci19Ci0jZWxzZQotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdD
VGhyZWFkcygpIHsgfQotI2VuZGlmCi0KIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9y
bSgpCiB7CiAgICAgQVNTRVJUKCFzdGF0aWNNYWluVGhyZWFkQ2FsbGVyKTsKQEAgLTE0NSwzMSAr
MTM0LDQgQEAgYm9vbCBpc01haW5UaHJlYWQoKQogICAgIHJldHVybiBwdGhyZWFkX2VxdWFsKHB0
aHJlYWRfc2VsZigpLCBtYWluVGhyZWFkUHRocmVhZCk7CiB9CiAKLSNpZiBFTkFCTEUoUEFSQUxM
RUxfR0MpCi12b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKQotewotICAgIGlmICghaXNHQ1RocmVhZCkg
ewotICAgICAgICAvLyBUaGlzIGhhcHBlbnMgaWYgd2UncmUgcnVubmluZyBpbiBhIHByb2Nlc3Mg
dGhhdCBkb2Vzbid0IGNhcmUgYWJvdXQKLSAgICAgICAgLy8gTWFpblRocmVhZC4KLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgICoqaXNHQ1RocmVhZCA9IHRydWU7Ci19Ci0KLWJvb2wgaXNN
YWluVGhyZWFkT3JHQ1RocmVhZCgpCi17Ci0gICAgaWYgKGlzR0NUaHJlYWQtPmlzU2V0KCkgJiYg
Kippc0dDVGhyZWFkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICByZXR1cm4gaXNN
YWluVGhyZWFkKCk7Ci19Ci0jZWxzZQotLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBKYXZh
U2NyaXB0Q29yZS5leHAgZG9lc24ndCBzdXBwb3J0IHByZXByb2Nlc3NvciBtYWNyb3MuCi1ib29s
IGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQotewotICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsK
LX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvd3RmLnBybyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnBy
bwppbmRleCA0YzU3NWUzLi5jNDYzNmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL3d0Zi5wcm8KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvCkBA
IC05Miw2ICs5Miw3IEBAIEhFQURFUlMgKz0gXAogICAgIE5vbkNvcHlpbmdTb3J0LmggXAogICAg
IE5vdEZvdW5kLmggXAogICAgIE51bGxQdHIuaCBcCisgICAgTnVtYmVyT2ZDb3Jlcy5oIFwKICAg
ICBPU0FsbG9jYXRvci5oIFwKICAgICBPU1JhbmRvbVNvdXJjZS5oIFwKICAgICBPd25BcnJheVB0
ci5oIFwKQEAgLTE5OCw2ICsxOTksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBNYWluVGhyZWFkLmNw
cCBcCiAgICAgTWV0YUFsbG9jYXRvci5jcHAgXAogICAgIE51bGxQdHIuY3BwIFwKKyAgICBOdW1i
ZXJPZkNvcmVzLmNwcCBcCiAgICAgT1NSYW5kb21Tb3VyY2UuY3BwIFwKICAgICBxdC9NYWluVGhy
ZWFkUXQuY3BwIFwKICAgICBxdC9TdHJpbmdRdC5jcHAgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120921</attachid>
            <date>2012-01-03 02:24:35 -0800</date>
            <delta_ts>2012-01-04 04:57:15 -0800</delta_ts>
            <desc>This patch results some speed-ups on QT platform.</desc>
            <filename>2012_01_03.diff</filename>
            <type>text/plain</type>
            <size>21047</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNiY2NlZGQuLmM4NjU3MjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAxLTAyICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIDIgZmlsZXMgaXMgYWRkZWQg
dG8gdGhlIHByb2plY3QsIG5hbWVseSBOdW1iZXJPZkNvcmVzLmgvY3BwLCB0aGF0CisgICAgICAg
IGluY2x1ZGUgYSBDUFUgY29yZSBudW1iZXIgZGV0ZXJtaW5pbmcgZnVuY3Rpb24uIEl0IHVzZWQg
dG8gYmUgaW4KKyAgICAgICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5oL2NwcCBiZWZvcmUuCisKKyAg
ICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAgIHNwZWVkLXVw
OiAgMS4wNzF4IGFzIGZhc3QgIFtGcm9tOiA3NDYuMW1zICBUbzogNjk2LjRtcyBdCisgICAgICAg
IFdpbmRTY29ycGlvbiBzcGVlZC11cDogIDEuMDgyeCBhcyBmYXN0ICBbRnJvbTogMzQ5MC40bXMg
VG86IDMyMjYuN21zXQorICAgICAgICBWOCBTcGxheSAgICAgc3BlZWQtdXA6ICAxLjE1OHggYXMg
ZmFzdCAgW0Zyb206IDE0NS44bXMgIFRvOiAxMjUuOW1zIF0KKworICAgICAgICBUZXN0ZWQgb24g
SW50ZWwoUikgQ29yZShUTSkgaTUtMjMyMCBDUFUgQCAzLjAwR0h6IHdpdGggNC1jb3JlLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5n
eXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6
aW5pdGlhbGl6ZU9wdGlvbnMpOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVHQ1RocmVh
ZHMpOgorICAgICAgICAoV1RGOjpyZWdpc3RlckdDVGhyZWFkKToKKyAgICAgICAgKFdURjo6aXNN
YWluVGhyZWFkT3JHQ1RocmVhZCk6CisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKyAgICAg
ICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGOjpudW1iZXJP
ZkNvcmVzKToKKyAgICAgICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5oOiBBZGRlZC4KKyAgICAgICAg
KiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52
aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1lbnQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEpv
YnNHZW5lcmljLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAgICogd3RmL21h
Yy9NYWluVGhyZWFkTWFjLm1tOgorICAgICAgICAqIHd0Zi93dGYucHJvOgorCiAyMDEyLTAxLTAx
ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbCBpbnN0cnVj
dGlvbnMgc2hvdWxkIGxlYXZlIHJvb20gZm9yIGxpbmtpbmcgaW5mb3JtYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZmY1NjU2MC4uMjRmM2M5MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYwMyw2ICs2
MDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL05vbkNvcHlpbmdTb3J0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTm90
Rm91bmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdWxsUHRyLmggXAorCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgXAorCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L09TQWxsb2NhdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3Vy
Y2UuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQppbmRleCAwMWZkM2RjLi5j
NzlmOTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQpAQCAt
NTcxLDYgKzU3MSw4IEBACiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuY3BwJywKICAgICAg
ICAgICAgICd3dGYvTWFsbG9jWm9uZVN1cHBvcnQuaCcsCiAgICAgICAgICAgICAnd3RmL051bGxQ
dHIuY3BwJywKKyAgICAgICAgICAgICd3dGYvTnVtYmVyT2ZDb3Jlcy5jcHAnLAorICAgICAgICAg
ICAgJ3d0Zi9OdW1iZXJPZkNvcmVzLmgnLAogICAgICAgICAgICAgJ3d0Zi9PU0FsbG9jYXRvclBv
c2l4LmNwcCcsCiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yV2luLmNwcCcsCiAgICAgICAg
ICAgICAnd3RmL09TUmFuZG9tU291cmNlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDFkOThjYmQuLmRlN2IzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC03MTEsNiArNzExLDggQEAKIAkJRTQ5REMxNkMxMkVGMjk0RTAwMTg0QTFGIC8qIFNvdXJjZVBy
b3ZpZGVyQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU0OURDMTUxMTJFRjI3MjIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ5REMxNkQx
MkVGMjk1MzAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE0OTEyRUYyNjFBMDAxODRB
MUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLzsgfTsKIAkJRTREOENFRkIxMkZDNDM5
NjAwQkM5RjVBIC8qIEJsb29tRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNEQ4Q0U5QjEyRkM0MkUxMDBCQzlGNUEgLyogQmxvb21GaWx0ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFREU4
MUNBNzE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFREU4MUNBNTE0QTIyQTIxMDA0NDExRkYg
LyogTnVtYmVyT2ZDb3Jlcy5jcHAgKi87IH07CisJCUVERTgxQ0E4MTRBMjJBMjEwMDQ0MTFGRiAv
KiBOdW1iZXJPZkNvcmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFREU4MUNBNjE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5oICovOyB9
OwogCQlGM0JEMzFFRDEyNjczNTc3MDA2NTQ2N0YgLyogVGV4dFBvc2l0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0JEMzFEMDEyNjczMDE4MDA2
NTQ2N0YgLyogVGV4dFBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRkRBMTVDMUUxMkIwMzA1QzAwM0E1ODNBIC8qIENvbXBsZXguaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQTE1QzE2MTJC
MDMwMjgwMDNBNTgzQSAvKiBDb21wbGV4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkUxQjQ0N0EwRUNDRDczQjAwNEY0REQxIC8qIFN0ZExpYkV4
dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUx
QjQ0NzkwRUNDRDczQjAwNEY0REQxIC8qIFN0ZExpYkV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTAxLDYgKzE1MDMsOCBAQAogCQlF
NDlEQzE1MTEyRUYyNzIyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0OURDMTU1MTJFRjI3NzIwMDE4NEExRiAvKiBTb3VyY2VQ
cm92aWRlckNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNv
dXJjZVByb3ZpZGVyQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEQ4
Q0U5QjEyRkM0MkUxMDBCQzlGNUEgLyogQmxvb21GaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmxvb21GaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRURFODFDQTUxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTnVtYmVyT2ZDb3Jlcy5jcHA7IHBhdGggPSB3
dGYvTnVtYmVyT2ZDb3Jlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVERTgx
Q0E2MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IE51bWJlck9mQ29yZXMuaDsgcGF0aCA9IHd0Zi9OdW1iZXJPZkNvcmVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzQkQzMUQwMTI2NzMwMTgwMDY1NDY3
RiAvKiBUZXh0UG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4
dFBvc2l0aW9uLmg7IHBhdGggPSB0ZXh0L1RleHRQb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNUJCMkJDNTAzMEY3NzIxMDFGQ0ZFMUQgLyogQ29tcGxldGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wbGV0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJRjVDMjkw
RTYwMjg0Rjk4RTAxODYzNUNBIC8qIEphdmFTY3JpcHRDb3JlUHJlZml4LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHRDb3JlUHJl
Zml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKQEAgLTE2MTUs
NiArMTYxOSw4IEBACiAJCTA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBKYXZhU2NyaXB0Q29y
ZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRURFODFD
QTUxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuY3BwICovLAorCQkJCUVERTgxQ0E2
MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmggKi8sCiAJCQkJODYwNEY0RjIxNDNB
NkM0NDAwQjI5NUY1IC8qIENoYW5nZUxvZyAqLywKIAkJCQlBNzE4RjgyMTExNzhFQjRCMDAyNDY1
QTcgLyogY3JlYXRlX3JlZ2V4X3RhYmxlcyAqLywKIAkJCQk5MzdCNjNDQzA5RTc2NkQyMDBBNjcx
REQgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKQEAgLTMwMDIsNiArMzAwOCw3IEBACiAJCQkJ
ODYwQkQ4MDExNDhFQTZGMjAwMTEyQjJGIC8qIEludHJpbnNpYy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZCQzBBRTgxNDk2QzdDNzAwRDRGQkREIC8qIERGR0V4aXRQcm9maWxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUE5RTU1MTE0OTgwOTM1MDAwMDFBOEEgLyogRnVuY3Rpb25hbC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRURFODFDQTgxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpAQCAtMzU0MCw2ICszNTQ3LDcgQEAKIAkJCQlBNzNCRTE2ODE0ODQy
MDUyMDA5MTIwNEIgLyogQXJyYXlCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTczQkUx
NkExNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkJDMEFFNzE0OTZDN0M0MDBENEZCREQgLyogREZHRXhpdFByb2ZpbGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRURFODFDQTcxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
Y3BwCmluZGV4IDY4ZDEwYjcuLmY2NjBjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiT3B0aW9ucy5oIgog
CiAjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5j
bHVkZSA8d3RmL1BhZ2VCbG9jay5oPgogCiAjaWYgT1MoREFSV0lOKSAmJiBFTkFCTEUoUEFSQUxM
RUxfR0MpCkBAIC0xNzQsMTIgKzE3NSw4IEBAIHZvaWQgaW5pdGlhbGl6ZU9wdGlvbnMoKQogICAg
IFNFVChvcGFxdWVSb290TWVyZ2VUaHJlc2hvbGQsICAgICAgICAgICAgIDEwMDApOwogCiAgICAg
aW50IGNwdXNUb1VzZSA9IDE7Ci0jaWYgT1MoREFSV0lOKSAmJiBFTkFCTEUoUEFSQUxMRUxfR0Mp
Ci0gICAgaW50IG5hbWVbMl07Ci0gICAgc2l6ZV90IHZhbHVlU2l6ZSA9IHNpemVvZihjcHVzVG9V
c2UpOwotICAgIG5hbWVbMF0gPSBDVExfSFc7Ci0gICAgbmFtZVsxXSA9IEhXX0FWQUlMQ1BVOwot
ICAgIHN5c2N0bChuYW1lLCAyLCAmY3B1c1RvVXNlLCAmdmFsdWVTaXplLCAwLCAwKTsKKyNpZiBF
TkFCTEUoUEFSQUxMRUxfR0MpCisgICAgY3B1c1RvVXNlID0gV1RGOjpudW1iZXJPZlByb2Nlc3Nv
ckNvcmVzKCk7CiAjZW5kaWYKICAgICAvLyBXZSBkb24ndCBzY2FsZSBzbyB3ZWxsIGJleW9uZCA0
LgogICAgIGlmIChjcHVzVG9Vc2UgPiA0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VM
aXN0cy50eHQKaW5kZXggNmQxY2VlOC4uMjliMmMxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0NNYWtlTGlzdHMudHh0CkBAIC01Myw2ICs1Myw3IEBAIFNFVChXVEZfSEVBREVSUwogICAg
IE5vbmNvcHlhYmxlLmgKICAgICBOb3RGb3VuZC5oCiAgICAgTnVsbFB0ci5oCisgICAgTnVtYmVy
T2ZDb3Jlcy5oCiAgICAgT1NBbGxvY2F0b3IuaAogICAgIE9TUmFuZG9tU291cmNlLmgKICAgICBP
d25BcnJheVB0ci5oCkBAIC0xNDcsNiArMTQ4LDcgQEAgU0VUKFdURl9TT1VSQ0VTCiAgICAgTWFp
blRocmVhZC5jcHAKICAgICBNRDUuY3BwCiAgICAgT1NSYW5kb21Tb3VyY2UuY3BwCisgICAgTnVt
YmVyT2ZDb3Jlcy5jcHAKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwCiAgICAgUGFnZUJs
b2NrLmNwcAogICAgIFBhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9NYWluVGhyZWFkLmNwcAppbmRleCA5MTUxMjY1Li40ZjNkNmE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKQEAgLTI0OSw0ICsyNDksMzggQEAgYm9vbCBp
c01haW5UaHJlYWQoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCitzdGF0
aWMgVGhyZWFkU3BlY2lmaWM8Ym9vbD4qIGlzR0NUaHJlYWQ7CisKK3ZvaWQgaW5pdGlhbGl6ZUdD
VGhyZWFkcygpCit7CisgICAgaXNHQ1RocmVhZCA9IG5ldyBUaHJlYWRTcGVjaWZpYzxib29sPigp
OworfQorCit2b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKQoreworICAgIGlmICghaXNHQ1RocmVhZCkg
eworICAgICAgICAvLyBUaGlzIGhhcHBlbnMgaWYgd2UncmUgcnVubmluZyBpbiBhIHByb2Nlc3Mg
dGhhdCBkb2Vzbid0IGNhcmUgYWJvdXQKKyAgICAgICAgLy8gTWFpblRocmVhZC4KKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgICoqaXNHQ1RocmVhZCA9IHRydWU7Cit9CisKK2Jvb2wgaXNN
YWluVGhyZWFkT3JHQ1RocmVhZCgpCit7CisgICAgaWYgKGlzR0NUaHJlYWQtPmlzU2V0KCkgJiYg
Kippc0dDVGhyZWFkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBpc01haW5U
aHJlYWQoKTsKK30KKyNlbHNlCisvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIEphdmFTY3Jp
cHRDb3JlLmV4cCBkb2Vzbid0IHN1cHBvcnQgcHJlcHJvY2Vzc29yIG1hY3Jvcy4KK2Jvb2wgaXNN
YWluVGhyZWFkT3JHQ1RocmVhZCgpCit7CisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQor
I2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9NYWluVGhyZWFkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5U
aHJlYWQuaAppbmRleCBjMTUzZDFlLi4zM2RjZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL01haW5UaHJlYWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L01haW5UaHJlYWQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtLmgiCiAK
ICNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KIAog
bmFtZXNwYWNlIFdURiB7CiAKQEAgLTUzLDEyICs1NCwxMSBAQCB2b2lkIHNldE1haW5UaHJlYWRD
YWxsYmFja3NQYXVzZWQoYm9vbCBwYXVzZWQpOwogCiBib29sIGlzTWFpblRocmVhZCgpOwogI2lm
IEVOQUJMRShQQVJBTExFTF9HQykKK3ZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpOwogdm9pZCBy
ZWdpc3RlckdDVGhyZWFkKCk7CiBib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsKLSNlbGlm
IFBMQVRGT1JNKE1BQykKLWJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpOwogI2Vsc2UKLWlu
bGluZSBib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKSB7IHJldHVybiBpc01haW5UaHJlYWQo
KTsgfQorYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7CiAjZW5kaWYKIAogLy8gTk9URTog
dGhlc2UgZnVuY3Rpb25zIGFyZSBpbnRlcm5hbCB0byB0aGUgY2FsbE9uTWFpblRocmVhZCBpbXBs
ZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVy
T2ZDb3Jlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjNDQwMTMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuY3BwCkBAIC0w
LDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVn
ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk51bWJlck9mQ29yZXMuaCIKKworI2lmIE9TKERBUldJTikgfHwgT1MoT1BFTkJTRCkg
fHwgT1MoTkVUQlNEKQorI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyNpbmNsdWRlIDxzeXMvdHlw
ZXMuaD4KKyNlbGlmIE9TKExJTlVYKSB8fCBPUyhBSVgpIHx8IE9TKFNPTEFSSVMpCisjaW5jbHVk
ZSA8dW5pc3RkLmg+CisjZWxpZiBPUyhXSU5ET1dTKQorI2luY2x1ZGUgPFdpbmRvd3MuaD4KKyNl
bmRpZgorCituYW1lc3BhY2UgV1RGIHsKKworaW50IG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKQor
eworICAgIGNvbnN0IGludCBkZWZhdWx0SWZVbmF2YWlsYWJsZSA9IDE7CisgICAgc3RhdGljIGlu
dCBzX251bWJlck9mQ29yZXMgPSAtMTsKKworICAgIGlmIChzX251bWJlck9mQ29yZXMgPiAwKQor
ICAgICAgICByZXR1cm4gc19udW1iZXJPZkNvcmVzOworCisjaWYgT1MoREFSV0lOKSB8fCBPUyhP
UEVOQlNEKSB8fCBPUyhORVRCU0QpIHx8IE9TKEZSRUVCU0QpCisgICAgdW5zaWduZWQgcmVzdWx0
OworICAgIHNpemVfdCBsZW5ndGggPSBzaXplb2YocmVzdWx0KTsKKyAgICBpbnQgbmFtZVtdID0g
eworICAgICAgICAgICAgQ1RMX0hXLAorICAgICAgICAgICAgSFdfTkNQVQorICAgIH07CisgICAg
aW50IHN5c2N0bFJlc3VsdCA9IHN5c2N0bChuYW1lLCBzaXplb2YobmFtZSkgLyBzaXplb2YoaW50
KSwgJnJlc3VsdCwgJmxlbmd0aCwgMCwgMCk7CisKKyAgICBzX251bWJlck9mQ29yZXMgPSBzeXNj
dGxSZXN1bHQgPCAwID8gZGVmYXVsdElmVW5hdmFpbGFibGUgOiByZXN1bHQ7CisjZWxpZiBPUyhM
SU5VWCkgfHwgT1MoQUlYKSB8fCBPUyhTT0xBUklTKQorICAgIGxvbmcgc3lzY29uZlJlc3VsdCA9
IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOworCisgICAgc19udW1iZXJPZkNvcmVzID0g
c3lzY29uZlJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0YXRpY19jYXN0PGlu
dD4oc3lzY29uZlJlc3VsdCk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgIFVOVVNFRF9QQVJBTShk
ZWZhdWx0SWZVbmF2YWlsYWJsZSk7CisgICAgU1lTVEVNX0lORk8gc3lzSW5mbzsKKyAgICBHZXRT
eXN0ZW1JbmZvKCZzeXNJbmZvKTsKKworICAgIHNfbnVtYmVyT2ZDb3JlcyA9IHN5c0luZm8uZHdO
dW1iZXJPZlByb2Nlc3NvcnM7CisjZWxzZQorICAgIHNfbnVtYmVyT2ZDb3JlcyA9IGRlZmF1bHRJ
ZlVuYXZhaWxhYmxlOworI2VuZGlmCisgICAgcmV0dXJuIHNfbnVtYmVyT2ZDb3JlczsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjBjN2U3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmgKQEAgLTAsMCArMSwzMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKgorICovCisKKyNpZm5kZWYgTnVtYmVyT2ZDb3Jlc19oCisjZGVmaW5lIE51bWJlck9mQ29y
ZXNfaAorCituYW1lc3BhY2UgV1RGIHsKKworaW50IG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsK
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVs
Sm9ic0dlbmVyaWMuY3BwCmluZGV4IGI2MjA3ZGMuLjA2ZTc5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcApAQCAtMzEsNiArMzEs
NyBAQAogCiAjaW5jbHVkZSAiUGFyYWxsZWxKb2JzLmgiCiAjaW5jbHVkZSAiVW51c2VkUGFyYW0u
aCIKKyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogCiAjaWYgT1MoREFSV0lOKSB8fCBP
UyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCiAjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgpAQCAtNDUs
MTkgKzQ2LDE2IEBAIG5hbWVzcGFjZSBXVEYgewogCiBWZWN0b3I8IFJlZlB0cjxQYXJhbGxlbEVu
dmlyb25tZW50OjpUaHJlYWRQcml2YXRlPiA+KiBQYXJhbGxlbEVudmlyb25tZW50OjpzX3RocmVh
ZFBvb2wgPSAwOwogCi1pbnQgUGFyYWxsZWxFbnZpcm9ubWVudDo6c19tYXhOdW1iZXJPZlBhcmFs
bGVsVGhyZWFkcyA9IC0xOwotCiBQYXJhbGxlbEVudmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25t
ZW50KFRocmVhZEZ1bmN0aW9uIHRocmVhZEZ1bmN0aW9uLCBzaXplX3Qgc2l6ZU9mUGFyYW1ldGVy
LCBpbnQgcmVxdWVzdGVkSm9iTnVtYmVyKSA6CiAgICAgbV90aHJlYWRGdW5jdGlvbih0aHJlYWRG
dW5jdGlvbiksCiAgICAgbV9zaXplT2ZQYXJhbWV0ZXIoc2l6ZU9mUGFyYW1ldGVyKQogewogICAg
IEFTU0VSVF9BUkcocmVxdWVzdGVkSm9iTnVtYmVyLCByZXF1ZXN0ZWRKb2JOdW1iZXIgPj0gMSk7
CiAKLSAgICBpZiAoc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9PSAtMSkKLSAgICAgICAg
ZGV0ZXJtaW5lTWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMoKTsKKyAgICBpbnQgbWF4TnVtYmVy
T2ZDb3JlcyA9IG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsKIAotICAgIGlmICghcmVxdWVzdGVk
Sm9iTnVtYmVyIHx8IHJlcXVlc3RlZEpvYk51bWJlciA+IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRo
cmVhZHMpCi0gICAgICAgIHJlcXVlc3RlZEpvYk51bWJlciA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKTsKKyAgICBpZiAoIXJlcXVlc3RlZEpvYk51
bWJlciB8fCByZXF1ZXN0ZWRKb2JOdW1iZXIgPiBtYXhOdW1iZXJPZkNvcmVzKQorICAgICAgICBy
ZXF1ZXN0ZWRKb2JOdW1iZXIgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4TnVtYmVyT2ZDb3Jl
cyk7CiAKICAgICBpZiAoIXNfdGhyZWFkUG9vbCkKICAgICAgICAgc190aHJlYWRQb29sID0gbmV3
IFZlY3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4oKTsKQEAgLTY1LDcgKzYzLDcgQEAgUGFy
YWxsZWxFbnZpcm9ubWVudDo6UGFyYWxsZWxFbnZpcm9ubWVudChUaHJlYWRGdW5jdGlvbiB0aHJl
YWRGdW5jdGlvbiwgc2l6ZV90IHMKICAgICAvLyBUaGUgbWFpbiB0aHJlYWQgc2hvdWxkIGJlIGFs
c28gYSB3b3JrZXIuCiAgICAgaW50IG1heE51bWJlck9mTmV3VGhyZWFkcyA9IHJlcXVlc3RlZEpv
Yk51bWJlciAtIDE7CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHNfbWF4TnVtYmVyT2ZQYXJh
bGxlbFRocmVhZHMgJiYgbV90aHJlYWRzLnNpemUoKSA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPiht
YXhOdW1iZXJPZk5ld1RocmVhZHMpOyArK2kpIHsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1h
eE51bWJlck9mQ29yZXMgJiYgbV90aHJlYWRzLnNpemUoKSA8IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihtYXhOdW1iZXJPZk5ld1RocmVhZHMpOyArK2kpIHsKICAgICAgICAgaWYgKHNfdGhyZWFkUG9v
bC0+c2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGkpICsgMVUpCiAgICAgICAgICAgICBz
X3RocmVhZFBvb2wtPmFwcGVuZChUaHJlYWRQcml2YXRlOjpjcmVhdGUoKSk7CiAKQEAgLTkzLDMy
ICs5MSw2IEBAIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6ZXhlY3V0ZSh2b2lkKiBwYXJhbWV0
ZXJzKQogICAgICAgICBtX3RocmVhZHNbaV0tPndhaXRGb3JGaW5pc2goKTsKIH0KIAotdm9pZCBQ
YXJhbGxlbEVudmlyb25tZW50OjpkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcygp
Ci17Ci0gICAgY29uc3QgaW50IGRlZmF1bHRJZlVuYXZhaWxhYmxlID0gMjsKLSNpZiBPUyhEQVJX
SU4pIHx8IE9TKE9QRU5CU0QpIHx8IE9TKE5FVEJTRCkKLSAgICB1bnNpZ25lZCByZXN1bHQ7Ci0g
ICAgc2l6ZV90IGxlbmd0aCA9IHNpemVvZihyZXN1bHQpOwotICAgIGludCBuYW1lW10gPSB7Ci0g
ICAgICAgIENUTF9IVywKLSAgICAgICAgSFdfTkNQVQotICAgIH07Ci0gICAgaW50IHN5c2N0bFJl
c3VsdCA9IHN5c2N0bChuYW1lLCBzaXplb2YobmFtZSkgLyBzaXplb2YoaW50KSwgJnJlc3VsdCwg
Jmxlbmd0aCwgMCwgMCk7Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5c2N0
bFJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHJlc3VsdDsKLSNlbGlmIE9TKExJ
TlVYKSB8fCBPUyhBSVgpIHx8IE9TKFNPTEFSSVMpCi0gICAgbG9uZyBzeXNjb25mUmVzdWx0ID0g
c3lzY29uZihfU0NfTlBST0NFU1NPUlNfT05MTik7Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVs
VGhyZWFkcyA9IHN5c2NvbmZSZXN1bHQgPCAwID8gZGVmYXVsdElmVW5hdmFpbGFibGUgOiBzdGF0
aWNfY2FzdDxpbnQ+KHN5c2NvbmZSZXN1bHQpOwotI2VsaWYgT1MoV0lORE9XUykKLSAgICBVTlVT
RURfUEFSQU0oZGVmYXVsdElmVW5hdmFpbGFibGUpOwotCi0gICAgU1lTVEVNX0lORk8gc3lzSW5m
bzsKLSAgICBHZXRTeXN0ZW1JbmZvKCZzeXNJbmZvKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxs
ZWxUaHJlYWRzID0gc3lzSW5mby5kd051bWJlck9mUHJvY2Vzc29yczsKLSNlbHNlCi0gICAgc19t
YXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IGRlZmF1bHRJZlVuYXZhaWxhYmxlOwotI2VuZGlm
Ci19Ci0KIGJvb2wgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6dHJ5TG9ja0Zv
cihQYXJhbGxlbEVudmlyb25tZW50KiBwYXJlbnQpCiB7CiAgICAgYm9vbCBsb2NrZWQgPSBtX211
dGV4LnRyeUxvY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpv
YnNHZW5lcmljLmgKaW5kZXggZGFiNmRkOS4uMWM3ZDYzYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKQEAgLTg0LDE1ICs4NCwxMiBAQCBw
dWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBkZXRlcm1pbmVNYXhO
dW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpOwotCiAgICAgVGhyZWFkRnVuY3Rpb24gbV90aHJlYWRG
dW5jdGlvbjsKICAgICBzaXplX3QgbV9zaXplT2ZQYXJhbWV0ZXI7CiAgICAgaW50IG1fbnVtYmVy
T2ZKb2JzOwogCiAgICAgVmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiBtX3RocmVhZHM7
CiAgICAgc3RhdGljIFZlY3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4qIHNfdGhyZWFkUG9v
bDsKLSAgICBzdGF0aWMgaW50IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHM7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCBi
YjE0NjJlLi5mYjFmOTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0x
MTE2LDcgKzExMTYsNyBAQAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAjZW5k
aWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oSU9TKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1BBUkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKFFUKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAjZGVmaW5lIEVO
QUJMRV9QQVJBTExFTF9HQyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvbWFjL01haW5UaHJlYWRNYWMubW0KaW5kZXggZmJjNjI1MC4uZDVkNWI2YSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBAIC01OSwxNyAr
NTksNiBAQCBzdGF0aWMgYm9vbCBtYWluVGhyZWFkRXN0YWJsaXNoZWRBc1B0aHJlYWRNYWluOwog
c3RhdGljIHB0aHJlYWRfdCBtYWluVGhyZWFkUHRocmVhZDsKIHN0YXRpYyBOU1RocmVhZCogbWFp
blRocmVhZE5TVGhyZWFkOwogCi0jaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQotc3RhdGljIFRocmVh
ZFNwZWNpZmljPGJvb2w+KiBpc0dDVGhyZWFkOwotCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplR0NU
aHJlYWRzKCkKLXsKLSAgICBpc0dDVGhyZWFkID0gbmV3IFRocmVhZFNwZWNpZmljPGJvb2w+KCk7
Ci19Ci0jZWxzZQotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpIHsgfQotI2VuZGlm
Ci0KIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgpCiB7CiAgICAgQVNTRVJUKCFz
dGF0aWNNYWluVGhyZWFkQ2FsbGVyKTsKQEAgLTE0NSwzMSArMTM0LDQgQEAgYm9vbCBpc01haW5U
aHJlYWQoKQogICAgIHJldHVybiBwdGhyZWFkX2VxdWFsKHB0aHJlYWRfc2VsZigpLCBtYWluVGhy
ZWFkUHRocmVhZCk7CiB9CiAKLSNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCi12b2lkIHJlZ2lzdGVy
R0NUaHJlYWQoKQotewotICAgIGlmICghaXNHQ1RocmVhZCkgewotICAgICAgICAvLyBUaGlzIGhh
cHBlbnMgaWYgd2UncmUgcnVubmluZyBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0IGNhcmUgYWJv
dXQKLSAgICAgICAgLy8gTWFpblRocmVhZC4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
ICoqaXNHQ1RocmVhZCA9IHRydWU7Ci19Ci0KLWJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgp
Ci17Ci0gICAgaWYgKGlzR0NUaHJlYWQtPmlzU2V0KCkgJiYgKippc0dDVGhyZWFkKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Ci19Ci0jZWxz
ZQotLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBKYXZhU2NyaXB0Q29yZS5leHAgZG9lc24n
dCBzdXBwb3J0IHByZXByb2Nlc3NvciBtYWNyb3MuCi1ib29sIGlzTWFpblRocmVhZE9yR0NUaHJl
YWQoKQotewotICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKLX0KLSNlbmRpZgotCiB9IC8vIG5h
bWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnBy
byBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnBybwppbmRleCA0YzU3NWUzLi5jNDYz
NmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5wcm8KKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvCkBAIC05Miw2ICs5Miw3IEBAIEhFQURF
UlMgKz0gXAogICAgIE5vbkNvcHlpbmdTb3J0LmggXAogICAgIE5vdEZvdW5kLmggXAogICAgIE51
bGxQdHIuaCBcCisgICAgTnVtYmVyT2ZDb3Jlcy5oIFwKICAgICBPU0FsbG9jYXRvci5oIFwKICAg
ICBPU1JhbmRvbVNvdXJjZS5oIFwKICAgICBPd25BcnJheVB0ci5oIFwKQEAgLTE5OCw2ICsxOTks
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBNYWluVGhyZWFkLmNwcCBcCiAgICAgTWV0YUFsbG9jYXRv
ci5jcHAgXAogICAgIE51bGxQdHIuY3BwIFwKKyAgICBOdW1iZXJPZkNvcmVzLmNwcCBcCiAgICAg
T1NSYW5kb21Tb3VyY2UuY3BwIFwKICAgICBxdC9NYWluVGhyZWFkUXQuY3BwIFwKICAgICBxdC9T
dHJpbmdRdC5jcHAgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121101</attachid>
            <date>2012-01-04 04:57:15 -0800</date>
            <delta_ts>2012-01-05 01:38:02 -0800</delta_ts>
            <desc>fixed the windows build problem</desc>
            <filename>parallel_gc_qt.diff</filename>
            <type>text/plain</type>
            <size>21654</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNiY2NlZGQuLmEwOGU2YTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTAxLTA0ICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIDIgZmlsZXMgaXMgYWRkZWQg
dG8gdGhlIHByb2plY3QsIG5hbWVseSBOdW1iZXJPZkNvcmVzLmgvY3BwLCB0aGF0CisgICAgICAg
IGluY2x1ZGUgYSBDUFUgY29yZSBudW1iZXIgZGV0ZXJtaW5pbmcgZnVuY3Rpb24uIEl0IHVzZWQg
dG8gYmUgaW4KKyAgICAgICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5oL2NwcCBiZWZvcmUuCisKKyAg
ICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAgIHNwZWVkLXVw
OiAgMS4wNzF4IGFzIGZhc3QgIFtGcm9tOiA3NDYuMW1zICBUbzogNjk2LjRtcyBdCisgICAgICAg
IFdpbmRTY29ycGlvbiBzcGVlZC11cDogIDEuMDgyeCBhcyBmYXN0ICBbRnJvbTogMzQ5MC40bXMg
VG86IDMyMjYuN21zXQorICAgICAgICBWOCBTcGxheSAgICAgc3BlZWQtdXA6ICAxLjE1OHggYXMg
ZmFzdCAgW0Zyb206IDE0NS44bXMgIFRvOiAxMjUuOW1zIF0KKworICAgICAgICBUZXN0ZWQgb24g
SW50ZWwoUikgQ29yZShUTSkgaTUtMjMyMCBDUFUgQCAzLjAwR0h6IHdpdGggNC1jb3JlLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5n
eXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvajoKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmluaXRpYWxp
emVPcHRpb25zKToKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3Rm
L01haW5UaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjppbml0aWFsaXplR0NUaHJlYWRzKToKKyAg
ICAgICAgKFdURjo6cmVnaXN0ZXJHQ1RocmVhZCk6CisgICAgICAgIChXVEY6OmlzTWFpblRocmVh
ZE9yR0NUaHJlYWQpOgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6CisgICAgICAgICogd3Rm
L051bWJlck9mQ29yZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bnVtYmVyT2ZQcm9jZXNz
b3JDb3Jlcyk6CisgICAgICAgICogd3RmL051bWJlck9mQ29yZXMuaDogQWRkZWQuCisgICAgICAg
ICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVu
dmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25tZW50KToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxK
b2JzR2VuZXJpYy5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9t
YWMvTWFpblRocmVhZE1hYy5tbToKKyAgICAgICAgKiB3dGYvd3RmLnBybzoKKwogMjAxMi0wMS0w
MSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIENhbGwgaW5zdHJ1
Y3Rpb25zIHNob3VsZCBsZWF2ZSByb29tIGZvciBsaW5raW5nIGluZm9ybWF0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGZmNTY1NjAuLjI0ZjNjOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC02MDMsNiAr
NjAzLDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9Ob25Db3B5aW5nU29ydC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL05v
dEZvdW5kLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVsbFB0ci5oIFwKKwlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuY3BwIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9PU0FsbG9jYXRvci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291
cmNlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKaW5kZXggMDFmZDNkYy4u
Yzc5Zjk3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAg
LTU3MSw2ICs1NzEsOCBAQAogICAgICAgICAgICAgJ3d0Zi9NYWluVGhyZWFkLmNwcCcsCiAgICAg
ICAgICAgICAnd3RmL01hbGxvY1pvbmVTdXBwb3J0LmgnLAogICAgICAgICAgICAgJ3d0Zi9OdWxs
UHRyLmNwcCcsCisgICAgICAgICAgICAnd3RmL051bWJlck9mQ29yZXMuY3BwJywKKyAgICAgICAg
ICAgICd3dGYvTnVtYmVyT2ZDb3Jlcy5oJywKICAgICAgICAgICAgICd3dGYvT1NBbGxvY2F0b3JQ
b3NpeC5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9PU0FsbG9jYXRvcldpbi5jcHAnLAogICAgICAg
ICAgICAgJ3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKaW5kZXgg
M2ZkY2Q5OC4uYmU1Y2MwZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCkBAIC05NDUsNiArOTQ1LDE0
IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3Rm
XE51bWJlck9mQ29yZXMuY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2
ZVBhdGg9Ii4uXC4uXHd0ZlxOdW1iZXJPZkNvcmVzLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZp
bGUKIAkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXE9TQWxsb2NhdG9yV2luLmNwcCIKIAkJCT4K
IAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZDk4Y2JkLi5kZTdi
M2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzExLDYgKzcxMSw4IEBACiAJ
CUU0OURDMTZDMTJFRjI5NEUwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE1MTEyRUYyNzIy
MDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0OURDMTZEMTJFRjI5NTMwMDE4NEExRiAvKiBT
b3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTQ5REMxNDkxMkVGMjYxQTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVy
Q2FjaGVJdGVtLmggKi87IH07CiAJCUU0RDhDRUZCMTJGQzQzOTYwMEJDOUY1QSAvKiBCbG9vbUZp
bHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRE
OENFOUIxMkZDNDJFMTAwQkM5RjVBIC8qIEJsb29tRmlsdGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRURFODFDQTcxNEEyMkEyMTAwNDQxMUZG
IC8qIE51bWJlck9mQ29yZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRURFODFDQTUxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuY3Bw
ICovOyB9OworCQlFREU4MUNBODE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRURFODFDQTYxNEEy
MkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuaCAqLzsgfTsKIAkJRjNCRDMxRUQxMjY3MzU3
NzAwNjU0NjdGIC8qIFRleHRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjNCRDMxRDAxMjY3MzAxODAwNjU0NjdGIC8qIFRleHRQb3NpdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZE
QTE1QzFFMTJCMDMwNUMwMDNBNTgzQSAvKiBDb21wbGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREExNUMxNjEyQjAzMDI4MDAzQTU4M0EgLyogQ29t
cGxleC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUZFMUI0NDdBMEVDQ0Q3M0IwMDRGNEREMSAvKiBTdGRMaWJFeHRyYXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMUI0NDc5MEVDQ0Q3M0IwMDRGNERE
MSAvKiBTdGRMaWJFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTUwMSw2ICsxNTAzLDggQEAKIAkJRTQ5REMxNTExMkVGMjcyMjAwMTg0
QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU291cmNlUHJvdmlkZXJDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDlEQzE1NTEyRUYyNzcyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTREOENFOUIxMkZDNDJFMTAwQkM5RjVB
IC8qIEJsb29tRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb29t
RmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVERTgxQ0E1MTRBMjJBMjEw
MDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IE51bWJlck9mQ29yZXMuY3BwOyBwYXRoID0gd3RmL051bWJlck9mQ29yZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFREU4MUNBNjE0QTIyQTIxMDA0NDExRkYg
LyogTnVtYmVyT2ZDb3Jlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOdW1i
ZXJPZkNvcmVzLmg7IHBhdGggPSB3dGYvTnVtYmVyT2ZDb3Jlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGM0JEMzFEMDEyNjczMDE4MDA2NTQ2N0YgLyogVGV4dFBvc2l0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRleHRQb3NpdGlvbi5oOyBwYXRoID0g
dGV4dC9UZXh0UG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVCQjJC
QzUwMzBGNzcyMTAxRkNGRTFEIC8qIENvbXBsZXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGxldGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCUY1QzI5MEU2MDI4NEY5OEUwMTg2MzVDQSAv
KiBKYXZhU2NyaXB0Q29yZVByZWZpeC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q29yZVByZWZpeC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CkBAIC0xNjE1LDYgKzE2MTksOCBAQAogCQkwODY3
RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogSmF2YVNjcmlwdENvcmUgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUVERTgxQ0E1MTRBMjJBMjEwMDQ0MTFGRiAv
KiBOdW1iZXJPZkNvcmVzLmNwcCAqLywKKwkJCQlFREU4MUNBNjE0QTIyQTIxMDA0NDExRkYgLyog
TnVtYmVyT2ZDb3Jlcy5oICovLAogCQkJCTg2MDRGNEYyMTQzQTZDNDQwMEIyOTVGNSAvKiBDaGFu
Z2VMb2cgKi8sCiAJCQkJQTcxOEY4MjExMTc4RUI0QjAwMjQ2NUE3IC8qIGNyZWF0ZV9yZWdleF90
YWJsZXMgKi8sCiAJCQkJOTM3QjYzQ0MwOUU3NjZEMjAwQTY3MUREIC8qIERlcml2ZWRTb3VyY2Vz
Lm1ha2UgKi8sCkBAIC0zMDAyLDYgKzMwMDgsNyBAQAogCQkJCTg2MEJEODAxMTQ4RUE2RjIwMDEx
MkIyRiAvKiBJbnRyaW5zaWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQkMwQUU4MTQ5NkM3Qzcw
MEQ0RkJERCAvKiBERkdFeGl0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBOUU1NTEx
NDk4MDkzNTAwMDAxQThBIC8qIEZ1bmN0aW9uYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCUVERTgx
Q0E4MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTM1NDAsNiArMzU0Nyw3IEBACiAJCQkJQTczQkUxNjgxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5
QnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3M0JFMTZBMTQ4NDIwNTIwMDkxMjA0QiAv
KiBBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCQzBBRTcxNDk2QzdD
NDAwRDRGQkREIC8qIERGR0V4aXRQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUVERTgx
Q0E3MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRleCA2OGQxMGI3Li5m
NjYwYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcApAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogI2luY2x1ZGUgPGxpbWl0cz4K
KyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9QYWdlQmxvY2su
aD4KIAogI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVMX0dDKQpAQCAtMTc0LDEyICsx
NzUsOCBAQCB2b2lkIGluaXRpYWxpemVPcHRpb25zKCkKICAgICBTRVQob3BhcXVlUm9vdE1lcmdl
VGhyZXNob2xkLCAgICAgICAgICAgICAxMDAwKTsKIAogICAgIGludCBjcHVzVG9Vc2UgPSAxOwot
I2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVMX0dDKQotICAgIGludCBuYW1lWzJdOwot
ICAgIHNpemVfdCB2YWx1ZVNpemUgPSBzaXplb2YoY3B1c1RvVXNlKTsKLSAgICBuYW1lWzBdID0g
Q1RMX0hXOwotICAgIG5hbWVbMV0gPSBIV19BVkFJTENQVTsKLSAgICBzeXNjdGwobmFtZSwgMiwg
JmNwdXNUb1VzZSwgJnZhbHVlU2l6ZSwgMCwgMCk7CisjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQor
ICAgIGNwdXNUb1VzZSA9IFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpOwogI2VuZGlmCiAg
ICAgLy8gV2UgZG9uJ3Qgc2NhbGUgc28gd2VsbCBiZXlvbmQgNC4KICAgICBpZiAoY3B1c1RvVXNl
ID4gNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDZkMWNl
ZTguLjI5YjJjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3RzLnR4dApA
QCAtNTMsNiArNTMsNyBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBOb25jb3B5YWJsZS5oCiAgICAg
Tm90Rm91bmQuaAogICAgIE51bGxQdHIuaAorICAgIE51bWJlck9mQ29yZXMuaAogICAgIE9TQWxs
b2NhdG9yLmgKICAgICBPU1JhbmRvbVNvdXJjZS5oCiAgICAgT3duQXJyYXlQdHIuaApAQCAtMTQ3
LDYgKzE0OCw3IEBAIFNFVChXVEZfU09VUkNFUwogICAgIE1haW5UaHJlYWQuY3BwCiAgICAgTUQ1
LmNwcAogICAgIE9TUmFuZG9tU291cmNlLmNwcAorICAgIE51bWJlck9mQ29yZXMuY3BwCiAgICAg
UGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcAogICAgIFBhZ2VCbG9jay5jcHAKICAgICBQYXJhbGxl
bEpvYnNHZW5lcmljLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9N
YWluVGhyZWFkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAK
aW5kZXggOTE1MTI2NS4uNGYzZDZhNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9NYWluVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5U
aHJlYWQuY3BwCkBAIC0yNDksNCArMjQ5LDM4IEBAIGJvb2wgaXNNYWluVGhyZWFkKCkKIH0KICNl
bmRpZgogCisjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQorc3RhdGljIFRocmVhZFNwZWNpZmljPGJv
b2w+KiBpc0dDVGhyZWFkOworCit2b2lkIGluaXRpYWxpemVHQ1RocmVhZHMoKQoreworICAgIGlz
R0NUaHJlYWQgPSBuZXcgVGhyZWFkU3BlY2lmaWM8Ym9vbD4oKTsKK30KKwordm9pZCByZWdpc3Rl
ckdDVGhyZWFkKCkKK3sKKyAgICBpZiAoIWlzR0NUaHJlYWQpIHsKKyAgICAgICAgLy8gVGhpcyBo
YXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBwcm9jZXNzIHRoYXQgZG9lc24ndCBjYXJlIGFi
b3V0CisgICAgICAgIC8vIE1haW5UaHJlYWQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICAqKmlzR0NUaHJlYWQgPSB0cnVlOworfQorCitib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQo
KQoreworICAgIGlmIChpc0dDVGhyZWFkLT5pc1NldCgpICYmICoqaXNHQ1RocmVhZCkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Cit9CisjZWxzZQor
Ly8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBKYXZhU2NyaXB0Q29yZS5leHAgZG9lc24ndCBz
dXBwb3J0IHByZXByb2Nlc3NvciBtYWNyb3MuCitib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQo
KQoreworICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVh
ZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmgKaW5kZXggYzE1M2Qx
ZS4uMzNkY2U4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhy
ZWFkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmgKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybS5oIgogCiAjaW5jbHVkZSA8c3RkaW50Lmg+
CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBA
IC01MywxMiArNTQsMTEgQEAgdm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wg
cGF1c2VkKTsKIAogYm9vbCBpc01haW5UaHJlYWQoKTsKICNpZiBFTkFCTEUoUEFSQUxMRUxfR0Mp
Cit2b2lkIGluaXRpYWxpemVHQ1RocmVhZHMoKTsKIHZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpOwog
Ym9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7Ci0jZWxpZiBQTEFURk9STShNQUMpCi1ib29s
IGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsKICNlbHNlCi1pbmxpbmUgYm9vbCBpc01haW5UaHJl
YWRPckdDVGhyZWFkKCkgeyByZXR1cm4gaXNNYWluVGhyZWFkKCk7IH0KK2Jvb2wgaXNNYWluVGhy
ZWFkT3JHQ1RocmVhZCgpOwogI2VuZGlmCiAKIC8vIE5PVEU6IHRoZXNlIGZ1bmN0aW9ucyBhcmUg
aW50ZXJuYWwgdG8gdGhlIGNhbGxPbk1haW5UaHJlYWQgaW1wbGVtZW50YXRpb24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5iYzQ0MDEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJT
SVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOdW1iZXJPZkNvcmVz
LmgiCisKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5CU0QpIHx8IE9TKE5FVEJTRCkKKyNpbmNs
dWRlIDxzeXMvc3lzY3RsLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZWxpZiBPUyhMSU5V
WCkgfHwgT1MoQUlYKSB8fCBPUyhTT0xBUklTKQorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VsaWYg
T1MoV0lORE9XUykKKyNpbmNsdWRlIDxXaW5kb3dzLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdU
RiB7CisKK2ludCBudW1iZXJPZlByb2Nlc3NvckNvcmVzKCkKK3sKKyAgICBjb25zdCBpbnQgZGVm
YXVsdElmVW5hdmFpbGFibGUgPSAxOworICAgIHN0YXRpYyBpbnQgc19udW1iZXJPZkNvcmVzID0g
LTE7CisKKyAgICBpZiAoc19udW1iZXJPZkNvcmVzID4gMCkKKyAgICAgICAgcmV0dXJuIHNfbnVt
YmVyT2ZDb3JlczsKKworI2lmIE9TKERBUldJTikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNE
KSB8fCBPUyhGUkVFQlNEKQorICAgIHVuc2lnbmVkIHJlc3VsdDsKKyAgICBzaXplX3QgbGVuZ3Ro
ID0gc2l6ZW9mKHJlc3VsdCk7CisgICAgaW50IG5hbWVbXSA9IHsKKyAgICAgICAgICAgIENUTF9I
VywKKyAgICAgICAgICAgIEhXX05DUFUKKyAgICB9OworICAgIGludCBzeXNjdGxSZXN1bHQgPSBz
eXNjdGwobmFtZSwgc2l6ZW9mKG5hbWUpIC8gc2l6ZW9mKGludCksICZyZXN1bHQsICZsZW5ndGgs
IDAsIDApOworCisgICAgc19udW1iZXJPZkNvcmVzID0gc3lzY3RsUmVzdWx0IDwgMCA/IGRlZmF1
bHRJZlVuYXZhaWxhYmxlIDogcmVzdWx0OworI2VsaWYgT1MoTElOVVgpIHx8IE9TKEFJWCkgfHwg
T1MoU09MQVJJUykKKyAgICBsb25nIHN5c2NvbmZSZXN1bHQgPSBzeXNjb25mKF9TQ19OUFJPQ0VT
U09SU19PTkxOKTsKKworICAgIHNfbnVtYmVyT2ZDb3JlcyA9IHN5c2NvbmZSZXN1bHQgPCAwID8g
ZGVmYXVsdElmVW5hdmFpbGFibGUgOiBzdGF0aWNfY2FzdDxpbnQ+KHN5c2NvbmZSZXN1bHQpOwor
I2VsaWYgT1MoV0lORE9XUykKKyAgICBVTlVTRURfUEFSQU0oZGVmYXVsdElmVW5hdmFpbGFibGUp
OworICAgIFNZU1RFTV9JTkZPIHN5c0luZm87CisgICAgR2V0U3lzdGVtSW5mbygmc3lzSW5mbyk7
CisKKyAgICBzX251bWJlck9mQ29yZXMgPSBzeXNJbmZvLmR3TnVtYmVyT2ZQcm9jZXNzb3JzOwor
I2Vsc2UKKyAgICBzX251bWJlck9mQ29yZXMgPSBkZWZhdWx0SWZVbmF2YWlsYWJsZTsKKyNlbmRp
ZgorICAgIHJldHVybiBzX251bWJlck9mQ29yZXM7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNjYwYzdlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
TnVtYmVyT2ZDb3Jlcy5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVm
IE51bWJlck9mQ29yZXNfaAorI2RlZmluZSBOdW1iZXJPZkNvcmVzX2gKKworbmFtZXNwYWNlIFdU
RiB7CisKK2ludCBudW1iZXJPZlByb2Nlc3NvckNvcmVzKCk7CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAppbmRl
eCBiNjIwN2RjLi4wNmU3OTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIlBh
cmFsbGVsSm9icy5oIgogI2luY2x1ZGUgIlVudXNlZFBhcmFtLmgiCisjaW5jbHVkZSA8d3RmL051
bWJlck9mQ29yZXMuaD4KIAogI2lmIE9TKERBUldJTikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVU
QlNEKQogI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KQEAgLTQ1LDE5ICs0NiwxNiBAQCBuYW1lc3Bh
Y2UgV1RGIHsKIAogVmVjdG9yPCBSZWZQdHI8UGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJp
dmF0ZT4gPiogUGFyYWxsZWxFbnZpcm9ubWVudDo6c190aHJlYWRQb29sID0gMDsKIAotaW50IFBh
cmFsbGVsRW52aXJvbm1lbnQ6OnNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPSAtMTsKLQog
UGFyYWxsZWxFbnZpcm9ubWVudDo6UGFyYWxsZWxFbnZpcm9ubWVudChUaHJlYWRGdW5jdGlvbiB0
aHJlYWRGdW5jdGlvbiwgc2l6ZV90IHNpemVPZlBhcmFtZXRlciwgaW50IHJlcXVlc3RlZEpvYk51
bWJlcikgOgogICAgIG1fdGhyZWFkRnVuY3Rpb24odGhyZWFkRnVuY3Rpb24pLAogICAgIG1fc2l6
ZU9mUGFyYW1ldGVyKHNpemVPZlBhcmFtZXRlcikKIHsKICAgICBBU1NFUlRfQVJHKHJlcXVlc3Rl
ZEpvYk51bWJlciwgcmVxdWVzdGVkSm9iTnVtYmVyID49IDEpOwogCi0gICAgaWYgKHNfbWF4TnVt
YmVyT2ZQYXJhbGxlbFRocmVhZHMgPT0gLTEpCi0gICAgICAgIGRldGVybWluZU1heE51bWJlck9m
UGFyYWxsZWxUaHJlYWRzKCk7CisgICAgaW50IG1heE51bWJlck9mQ29yZXMgPSBudW1iZXJPZlBy
b2Nlc3NvckNvcmVzKCk7CiAKLSAgICBpZiAoIXJlcXVlc3RlZEpvYk51bWJlciB8fCByZXF1ZXN0
ZWRKb2JOdW1iZXIgPiBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKQotICAgICAgICByZXF1
ZXN0ZWRKb2JOdW1iZXIgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc19tYXhOdW1iZXJPZlBhcmFs
bGVsVGhyZWFkcyk7CisgICAgaWYgKCFyZXF1ZXN0ZWRKb2JOdW1iZXIgfHwgcmVxdWVzdGVkSm9i
TnVtYmVyID4gbWF4TnVtYmVyT2ZDb3JlcykKKyAgICAgICAgcmVxdWVzdGVkSm9iTnVtYmVyID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heE51bWJlck9mQ29yZXMpOwogCiAgICAgaWYgKCFzX3Ro
cmVhZFBvb2wpCiAgICAgICAgIHNfdGhyZWFkUG9vbCA9IG5ldyBWZWN0b3I8IFJlZlB0cjxUaHJl
YWRQcml2YXRlPiA+KCk7CkBAIC02NSw3ICs2Myw3IEBAIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlBh
cmFsbGVsRW52aXJvbm1lbnQoVGhyZWFkRnVuY3Rpb24gdGhyZWFkRnVuY3Rpb24sIHNpemVfdCBz
CiAgICAgLy8gVGhlIG1haW4gdGhyZWFkIHNob3VsZCBiZSBhbHNvIGEgd29ya2VyLgogICAgIGlu
dCBtYXhOdW1iZXJPZk5ld1RocmVhZHMgPSByZXF1ZXN0ZWRKb2JOdW1iZXIgLSAxOwogCi0gICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzICYmIG1fdGhy
ZWFkcy5zaXplKCkgPCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4TnVtYmVyT2ZOZXdUaHJlYWRz
KTsgKytpKSB7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXhOdW1iZXJPZkNvcmVzICYmIG1f
dGhyZWFkcy5zaXplKCkgPCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4TnVtYmVyT2ZOZXdUaHJl
YWRzKTsgKytpKSB7CiAgICAgICAgIGlmIChzX3RocmVhZFBvb2wtPnNpemUoKSA8IHN0YXRpY19j
YXN0PHVuc2lnbmVkPihpKSArIDFVKQogICAgICAgICAgICAgc190aHJlYWRQb29sLT5hcHBlbmQo
VGhyZWFkUHJpdmF0ZTo6Y3JlYXRlKCkpOwogCkBAIC05MywzMiArOTEsNiBAQCB2b2lkIFBhcmFs
bGVsRW52aXJvbm1lbnQ6OmV4ZWN1dGUodm9pZCogcGFyYW1ldGVycykKICAgICAgICAgbV90aHJl
YWRzW2ldLT53YWl0Rm9yRmluaXNoKCk7CiB9CiAKLXZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6
ZGV0ZXJtaW5lTWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMoKQotewotICAgIGNvbnN0IGludCBk
ZWZhdWx0SWZVbmF2YWlsYWJsZSA9IDI7Ci0jaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8
fCBPUyhORVRCU0QpCi0gICAgdW5zaWduZWQgcmVzdWx0OwotICAgIHNpemVfdCBsZW5ndGggPSBz
aXplb2YocmVzdWx0KTsKLSAgICBpbnQgbmFtZVtdID0gewotICAgICAgICBDVExfSFcsCi0gICAg
ICAgIEhXX05DUFUKLSAgICB9OwotICAgIGludCBzeXNjdGxSZXN1bHQgPSBzeXNjdGwobmFtZSwg
c2l6ZW9mKG5hbWUpIC8gc2l6ZW9mKGludCksICZyZXN1bHQsICZsZW5ndGgsIDAsIDApOwotICAg
IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPSBzeXNjdGxSZXN1bHQgPCAwID8gZGVmYXVs
dElmVW5hdmFpbGFibGUgOiByZXN1bHQ7Ci0jZWxpZiBPUyhMSU5VWCkgfHwgT1MoQUlYKSB8fCBP
UyhTT0xBUklTKQotICAgIGxvbmcgc3lzY29uZlJlc3VsdCA9IHN5c2NvbmYoX1NDX05QUk9DRVNT
T1JTX09OTE4pOwotICAgIHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPSBzeXNjb25mUmVz
dWx0IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxhYmxlIDogc3RhdGljX2Nhc3Q8aW50PihzeXNjb25m
UmVzdWx0KTsKLSNlbGlmIE9TKFdJTkRPV1MpCi0gICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRJZlVu
YXZhaWxhYmxlKTsKLQotICAgIFNZU1RFTV9JTkZPIHN5c0luZm87Ci0gICAgR2V0U3lzdGVtSW5m
bygmc3lzSW5mbyk7Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5c0luZm8u
ZHdOdW1iZXJPZlByb2Nlc3NvcnM7Ci0jZWxzZQotICAgIHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRo
cmVhZHMgPSBkZWZhdWx0SWZVbmF2YWlsYWJsZTsKLSNlbmRpZgotfQotCiBib29sIFBhcmFsbGVs
RW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxvY2tGb3IoUGFyYWxsZWxFbnZpcm9ubWVu
dCogcGFyZW50KQogewogICAgIGJvb2wgbG9ja2VkID0gbV9tdXRleC50cnlMb2NrKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oCmluZGV4IGRh
YjZkZDkuLjFjN2Q2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxs
ZWxKb2JzR2VuZXJpYy5oCkBAIC04NCwxNSArODQsMTIgQEAgcHVibGljOgogICAgIH07CiAKIHBy
aXZhdGU6Ci0gICAgc3RhdGljIHZvaWQgZGV0ZXJtaW5lTWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVh
ZHMoKTsKLQogICAgIFRocmVhZEZ1bmN0aW9uIG1fdGhyZWFkRnVuY3Rpb247CiAgICAgc2l6ZV90
IG1fc2l6ZU9mUGFyYW1ldGVyOwogICAgIGludCBtX251bWJlck9mSm9iczsKIAogICAgIFZlY3Rv
cjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4gbV90aHJlYWRzOwogICAgIHN0YXRpYyBWZWN0b3I8
IFJlZlB0cjxUaHJlYWRQcml2YXRlPiA+KiBzX3RocmVhZFBvb2w7Ci0gICAgc3RhdGljIGludCBz
X21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKaW5kZXggYmIxNDYyZS4uZmIxZjkyOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaApAQCAtMTExNiw3ICsxMTE2LDcgQEAKICNk
ZWZpbmUgRU5BQkxFX0NPTVBBUkVfQU5EX1NXQVAgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChF
TkFCTEVfUEFSQUxMRUxfR0MpICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykpICYm
IEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQorI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9H
QykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShRVCkpICYm
IEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQogI2RlZmluZSBFTkFCTEVfUEFSQUxMRUxfR0MgMQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5U
aHJlYWRNYWMubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFj
Lm1tCmluZGV4IGZiYzYyNTAuLmQ1ZDViNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQpAQCAtNTksMTcgKzU5LDYgQEAgc3RhdGljIGJvb2wg
bWFpblRocmVhZEVzdGFibGlzaGVkQXNQdGhyZWFkTWFpbjsKIHN0YXRpYyBwdGhyZWFkX3QgbWFp
blRocmVhZFB0aHJlYWQ7CiBzdGF0aWMgTlNUaHJlYWQqIG1haW5UaHJlYWROU1RocmVhZDsKIAot
I2lmIEVOQUJMRShQQVJBTExFTF9HQykKLXN0YXRpYyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNH
Q1RocmVhZDsKLQotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpCi17Ci0gICAgaXNH
Q1RocmVhZCA9IG5ldyBUaHJlYWRTcGVjaWZpYzxib29sPigpOwotfQotI2Vsc2UKLXN0YXRpYyB2
b2lkIGluaXRpYWxpemVHQ1RocmVhZHMoKSB7IH0KLSNlbmRpZgotCiB2b2lkIGluaXRpYWxpemVN
YWluVGhyZWFkUGxhdGZvcm0oKQogewogICAgIEFTU0VSVCghc3RhdGljTWFpblRocmVhZENhbGxl
cik7CkBAIC0xNDUsMzEgKzEzNCw0IEBAIGJvb2wgaXNNYWluVGhyZWFkKCkKICAgICByZXR1cm4g
cHRocmVhZF9lcXVhbChwdGhyZWFkX3NlbGYoKSwgbWFpblRocmVhZFB0aHJlYWQpOwogfQogCi0j
aWYgRU5BQkxFKFBBUkFMTEVMX0dDKQotdm9pZCByZWdpc3RlckdDVGhyZWFkKCkKLXsKLSAgICBp
ZiAoIWlzR0NUaHJlYWQpIHsKLSAgICAgICAgLy8gVGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5p
bmcgaW4gYSBwcm9jZXNzIHRoYXQgZG9lc24ndCBjYXJlIGFib3V0Ci0gICAgICAgIC8vIE1haW5U
aHJlYWQuCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAqKmlzR0NUaHJlYWQgPSB0cnVl
OwotfQotCi1ib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQotewotICAgIGlmIChpc0dDVGhy
ZWFkLT5pc1NldCgpICYmICoqaXNHQ1RocmVhZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
Ci0gICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOwotfQotI2Vsc2UKLS8vIFRoaXMgaXMgbmVjZXNz
YXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNz
b3IgbWFjcm9zLgotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKLXsKLSAgICByZXR1cm4g
aXNNYWluVGhyZWFkKCk7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5wcm8gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL3d0Zi5wcm8KaW5kZXggNGM1NzVlMy4uYzQ2MzZkOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvd3RmLnBybwpAQCAtOTIsNiArOTIsNyBAQCBIRUFERVJTICs9IFwKICAgICBOb25Db3B5
aW5nU29ydC5oIFwKICAgICBOb3RGb3VuZC5oIFwKICAgICBOdWxsUHRyLmggXAorICAgIE51bWJl
ck9mQ29yZXMuaCBcCiAgICAgT1NBbGxvY2F0b3IuaCBcCiAgICAgT1NSYW5kb21Tb3VyY2UuaCBc
CiAgICAgT3duQXJyYXlQdHIuaCBcCkBAIC0xOTgsNiArMTk5LDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgTWFpblRocmVhZC5jcHAgXAogICAgIE1ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBOdWxsUHRy
LmNwcCBcCisgICAgTnVtYmVyT2ZDb3Jlcy5jcHAgXAogICAgIE9TUmFuZG9tU291cmNlLmNwcCBc
CiAgICAgcXQvTWFpblRocmVhZFF0LmNwcCBcCiAgICAgcXQvU3RyaW5nUXQuY3BwIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121241</attachid>
            <date>2012-01-05 01:38:02 -0800</date>
            <delta_ts>2012-01-11 05:08:41 -0800</delta_ts>
            <desc>Undefined UNUSED_PARAM resolved</desc>
            <filename>parallel_gc.diff</filename>
            <type>text/plain</type>
            <size>21684</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNiY2NlZGQuLmEyZTRlZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTAxLTA1ICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIDIgZmlsZXMgaXMgYWRkZWQg
dG8gdGhlIHByb2plY3QsIG5hbWVseSBOdW1iZXJPZkNvcmVzLmgvY3BwLCB0aGF0CisgICAgICAg
IGluY2x1ZGUgYSBDUFUgY29yZSBudW1iZXIgZGV0ZXJtaW5pbmcgZnVuY3Rpb24uIEl0IHVzZWQg
dG8gYmUgaW4KKyAgICAgICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5oL2NwcCBiZWZvcmUuCisKKyAg
ICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAgIHNwZWVkLXVw
OiAgMS4wNzF4IGFzIGZhc3QgIFtGcm9tOiA3NDYuMW1zICBUbzogNjk2LjRtcyBdCisgICAgICAg
IFdpbmRTY29ycGlvbiBzcGVlZC11cDogIDEuMDgyeCBhcyBmYXN0ICBbRnJvbTogMzQ5MC40bXMg
VG86IDMyMjYuN21zXQorICAgICAgICBWOCBTcGxheSAgICAgc3BlZWQtdXA6ICAxLjE1OHggYXMg
ZmFzdCAgW0Zyb206IDE0NS44bXMgIFRvOiAxMjUuOW1zIF0KKworICAgICAgICBUZXN0ZWQgb24g
SW50ZWwoUikgQ29yZShUTSkgaTUtMjMyMCBDUFUgQCAzLjAwR0h6IHdpdGggNC1jb3JlLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5n
eXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvajoKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmluaXRpYWxp
emVPcHRpb25zKToKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3Rm
L01haW5UaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjppbml0aWFsaXplR0NUaHJlYWRzKToKKyAg
ICAgICAgKFdURjo6cmVnaXN0ZXJHQ1RocmVhZCk6CisgICAgICAgIChXVEY6OmlzTWFpblRocmVh
ZE9yR0NUaHJlYWQpOgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6CisgICAgICAgICogd3Rm
L051bWJlck9mQ29yZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bnVtYmVyT2ZQcm9jZXNz
b3JDb3Jlcyk6CisgICAgICAgICogd3RmL051bWJlck9mQ29yZXMuaDogQWRkZWQuCisgICAgICAg
ICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVu
dmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25tZW50KToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxK
b2JzR2VuZXJpYy5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9t
YWMvTWFpblRocmVhZE1hYy5tbToKKyAgICAgICAgKiB3dGYvd3RmLnBybzoKKwogMjAxMi0wMS0w
MSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIENhbGwgaW5zdHJ1
Y3Rpb25zIHNob3VsZCBsZWF2ZSByb29tIGZvciBsaW5raW5nIGluZm9ybWF0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGZmNTY1NjAuLjI0ZjNjOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC02MDMsNiAr
NjAzLDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9Ob25Db3B5aW5nU29ydC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL05v
dEZvdW5kLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVsbFB0ci5oIFwKKwlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuY3BwIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9PU0FsbG9jYXRvci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291
cmNlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKaW5kZXggMDFmZDNkYy4u
Yzc5Zjk3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAg
LTU3MSw2ICs1NzEsOCBAQAogICAgICAgICAgICAgJ3d0Zi9NYWluVGhyZWFkLmNwcCcsCiAgICAg
ICAgICAgICAnd3RmL01hbGxvY1pvbmVTdXBwb3J0LmgnLAogICAgICAgICAgICAgJ3d0Zi9OdWxs
UHRyLmNwcCcsCisgICAgICAgICAgICAnd3RmL051bWJlck9mQ29yZXMuY3BwJywKKyAgICAgICAg
ICAgICd3dGYvTnVtYmVyT2ZDb3Jlcy5oJywKICAgICAgICAgICAgICd3dGYvT1NBbGxvY2F0b3JQ
b3NpeC5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9PU0FsbG9jYXRvcldpbi5jcHAnLAogICAgICAg
ICAgICAgJ3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKaW5kZXgg
M2ZkY2Q5OC4uYmU1Y2MwZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCkBAIC05NDUsNiArOTQ1LDE0
IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3Rm
XE51bWJlck9mQ29yZXMuY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2
ZVBhdGg9Ii4uXC4uXHd0ZlxOdW1iZXJPZkNvcmVzLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZp
bGUKIAkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXE9TQWxsb2NhdG9yV2luLmNwcCIKIAkJCT4K
IAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZDk4Y2JkLi5kZTdi
M2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzExLDYgKzcxMSw4IEBACiAJ
CUU0OURDMTZDMTJFRjI5NEUwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE1MTEyRUYyNzIy
MDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0OURDMTZEMTJFRjI5NTMwMDE4NEExRiAvKiBT
b3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTQ5REMxNDkxMkVGMjYxQTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVy
Q2FjaGVJdGVtLmggKi87IH07CiAJCUU0RDhDRUZCMTJGQzQzOTYwMEJDOUY1QSAvKiBCbG9vbUZp
bHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRE
OENFOUIxMkZDNDJFMTAwQkM5RjVBIC8qIEJsb29tRmlsdGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRURFODFDQTcxNEEyMkEyMTAwNDQxMUZG
IC8qIE51bWJlck9mQ29yZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRURFODFDQTUxNEEyMkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuY3Bw
ICovOyB9OworCQlFREU4MUNBODE0QTIyQTIxMDA0NDExRkYgLyogTnVtYmVyT2ZDb3Jlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRURFODFDQTYxNEEy
MkEyMTAwNDQxMUZGIC8qIE51bWJlck9mQ29yZXMuaCAqLzsgfTsKIAkJRjNCRDMxRUQxMjY3MzU3
NzAwNjU0NjdGIC8qIFRleHRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjNCRDMxRDAxMjY3MzAxODAwNjU0NjdGIC8qIFRleHRQb3NpdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZE
QTE1QzFFMTJCMDMwNUMwMDNBNTgzQSAvKiBDb21wbGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREExNUMxNjEyQjAzMDI4MDAzQTU4M0EgLyogQ29t
cGxleC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUZFMUI0NDdBMEVDQ0Q3M0IwMDRGNEREMSAvKiBTdGRMaWJFeHRyYXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMUI0NDc5MEVDQ0Q3M0IwMDRGNERE
MSAvKiBTdGRMaWJFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTUwMSw2ICsxNTAzLDggQEAKIAkJRTQ5REMxNTExMkVGMjcyMjAwMTg0
QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU291cmNlUHJvdmlkZXJDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDlEQzE1NTEyRUYyNzcyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTREOENFOUIxMkZDNDJFMTAwQkM5RjVB
IC8qIEJsb29tRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb29t
RmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVERTgxQ0E1MTRBMjJBMjEw
MDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IE51bWJlck9mQ29yZXMuY3BwOyBwYXRoID0gd3RmL051bWJlck9mQ29yZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFREU4MUNBNjE0QTIyQTIxMDA0NDExRkYg
LyogTnVtYmVyT2ZDb3Jlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOdW1i
ZXJPZkNvcmVzLmg7IHBhdGggPSB3dGYvTnVtYmVyT2ZDb3Jlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGM0JEMzFEMDEyNjczMDE4MDA2NTQ2N0YgLyogVGV4dFBvc2l0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRleHRQb3NpdGlvbi5oOyBwYXRoID0g
dGV4dC9UZXh0UG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVCQjJC
QzUwMzBGNzcyMTAxRkNGRTFEIC8qIENvbXBsZXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGxldGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCUY1QzI5MEU2MDI4NEY5OEUwMTg2MzVDQSAv
KiBKYXZhU2NyaXB0Q29yZVByZWZpeC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q29yZVByZWZpeC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CkBAIC0xNjE1LDYgKzE2MTksOCBAQAogCQkwODY3
RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogSmF2YVNjcmlwdENvcmUgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUVERTgxQ0E1MTRBMjJBMjEwMDQ0MTFGRiAv
KiBOdW1iZXJPZkNvcmVzLmNwcCAqLywKKwkJCQlFREU4MUNBNjE0QTIyQTIxMDA0NDExRkYgLyog
TnVtYmVyT2ZDb3Jlcy5oICovLAogCQkJCTg2MDRGNEYyMTQzQTZDNDQwMEIyOTVGNSAvKiBDaGFu
Z2VMb2cgKi8sCiAJCQkJQTcxOEY4MjExMTc4RUI0QjAwMjQ2NUE3IC8qIGNyZWF0ZV9yZWdleF90
YWJsZXMgKi8sCiAJCQkJOTM3QjYzQ0MwOUU3NjZEMjAwQTY3MUREIC8qIERlcml2ZWRTb3VyY2Vz
Lm1ha2UgKi8sCkBAIC0zMDAyLDYgKzMwMDgsNyBAQAogCQkJCTg2MEJEODAxMTQ4RUE2RjIwMDEx
MkIyRiAvKiBJbnRyaW5zaWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQkMwQUU4MTQ5NkM3Qzcw
MEQ0RkJERCAvKiBERkdFeGl0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBOUU1NTEx
NDk4MDkzNTAwMDAxQThBIC8qIEZ1bmN0aW9uYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCUVERTgx
Q0E4MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTM1NDAsNiArMzU0Nyw3IEBACiAJCQkJQTczQkUxNjgxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5
QnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3M0JFMTZBMTQ4NDIwNTIwMDkxMjA0QiAv
KiBBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCQzBBRTcxNDk2QzdD
NDAwRDRGQkREIC8qIERGR0V4aXRQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUVERTgx
Q0E3MTRBMjJBMjEwMDQ0MTFGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRleCA2OGQxMGI3Li5m
NjYwYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcApAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogI2luY2x1ZGUgPGxpbWl0cz4K
KyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9QYWdlQmxvY2su
aD4KIAogI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVMX0dDKQpAQCAtMTc0LDEyICsx
NzUsOCBAQCB2b2lkIGluaXRpYWxpemVPcHRpb25zKCkKICAgICBTRVQob3BhcXVlUm9vdE1lcmdl
VGhyZXNob2xkLCAgICAgICAgICAgICAxMDAwKTsKIAogICAgIGludCBjcHVzVG9Vc2UgPSAxOwot
I2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVMX0dDKQotICAgIGludCBuYW1lWzJdOwot
ICAgIHNpemVfdCB2YWx1ZVNpemUgPSBzaXplb2YoY3B1c1RvVXNlKTsKLSAgICBuYW1lWzBdID0g
Q1RMX0hXOwotICAgIG5hbWVbMV0gPSBIV19BVkFJTENQVTsKLSAgICBzeXNjdGwobmFtZSwgMiwg
JmNwdXNUb1VzZSwgJnZhbHVlU2l6ZSwgMCwgMCk7CisjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQor
ICAgIGNwdXNUb1VzZSA9IFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpOwogI2VuZGlmCiAg
ICAgLy8gV2UgZG9uJ3Qgc2NhbGUgc28gd2VsbCBiZXlvbmQgNC4KICAgICBpZiAoY3B1c1RvVXNl
ID4gNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDZkMWNl
ZTguLjI5YjJjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3RzLnR4dApA
QCAtNTMsNiArNTMsNyBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBOb25jb3B5YWJsZS5oCiAgICAg
Tm90Rm91bmQuaAogICAgIE51bGxQdHIuaAorICAgIE51bWJlck9mQ29yZXMuaAogICAgIE9TQWxs
b2NhdG9yLmgKICAgICBPU1JhbmRvbVNvdXJjZS5oCiAgICAgT3duQXJyYXlQdHIuaApAQCAtMTQ3
LDYgKzE0OCw3IEBAIFNFVChXVEZfU09VUkNFUwogICAgIE1haW5UaHJlYWQuY3BwCiAgICAgTUQ1
LmNwcAogICAgIE9TUmFuZG9tU291cmNlLmNwcAorICAgIE51bWJlck9mQ29yZXMuY3BwCiAgICAg
UGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcAogICAgIFBhZ2VCbG9jay5jcHAKICAgICBQYXJhbGxl
bEpvYnNHZW5lcmljLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9N
YWluVGhyZWFkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAK
aW5kZXggOTE1MTI2NS4uNGYzZDZhNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9NYWluVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5U
aHJlYWQuY3BwCkBAIC0yNDksNCArMjQ5LDM4IEBAIGJvb2wgaXNNYWluVGhyZWFkKCkKIH0KICNl
bmRpZgogCisjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQorc3RhdGljIFRocmVhZFNwZWNpZmljPGJv
b2w+KiBpc0dDVGhyZWFkOworCit2b2lkIGluaXRpYWxpemVHQ1RocmVhZHMoKQoreworICAgIGlz
R0NUaHJlYWQgPSBuZXcgVGhyZWFkU3BlY2lmaWM8Ym9vbD4oKTsKK30KKwordm9pZCByZWdpc3Rl
ckdDVGhyZWFkKCkKK3sKKyAgICBpZiAoIWlzR0NUaHJlYWQpIHsKKyAgICAgICAgLy8gVGhpcyBo
YXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBwcm9jZXNzIHRoYXQgZG9lc24ndCBjYXJlIGFi
b3V0CisgICAgICAgIC8vIE1haW5UaHJlYWQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICAqKmlzR0NUaHJlYWQgPSB0cnVlOworfQorCitib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQo
KQoreworICAgIGlmIChpc0dDVGhyZWFkLT5pc1NldCgpICYmICoqaXNHQ1RocmVhZCkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Cit9CisjZWxzZQor
Ly8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBKYXZhU2NyaXB0Q29yZS5leHAgZG9lc24ndCBz
dXBwb3J0IHByZXByb2Nlc3NvciBtYWNyb3MuCitib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQo
KQoreworICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVh
ZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmgKaW5kZXggYzE1M2Qx
ZS4uMzNkY2U4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhy
ZWFkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmgKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybS5oIgogCiAjaW5jbHVkZSA8c3RkaW50Lmg+
CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBA
IC01MywxMiArNTQsMTEgQEAgdm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wg
cGF1c2VkKTsKIAogYm9vbCBpc01haW5UaHJlYWQoKTsKICNpZiBFTkFCTEUoUEFSQUxMRUxfR0Mp
Cit2b2lkIGluaXRpYWxpemVHQ1RocmVhZHMoKTsKIHZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpOwog
Ym9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7Ci0jZWxpZiBQTEFURk9STShNQUMpCi1ib29s
IGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsKICNlbHNlCi1pbmxpbmUgYm9vbCBpc01haW5UaHJl
YWRPckdDVGhyZWFkKCkgeyByZXR1cm4gaXNNYWluVGhyZWFkKCk7IH0KK2Jvb2wgaXNNYWluVGhy
ZWFkT3JHQ1RocmVhZCgpOwogI2VuZGlmCiAKIC8vIE5PVEU6IHRoZXNlIGZ1bmN0aW9ucyBhcmUg
aW50ZXJuYWwgdG8gdGhlIGNhbGxPbk1haW5UaHJlYWQgaW1wbGVtZW50YXRpb24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi44MmMwYjgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJT
SVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOdW1iZXJPZkNvcmVz
LmgiCisKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5CU0QpIHx8IE9TKE5FVEJTRCkKKyNpbmNs
dWRlIDxzeXMvc3lzY3RsLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZWxpZiBPUyhMSU5V
WCkgfHwgT1MoQUlYKSB8fCBPUyhTT0xBUklTKQorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VsaWYg
T1MoV0lORE9XUykKKyNpbmNsdWRlIDxXaW5kb3dzLmg+CisjaW5jbHVkZSA8d3RmL1VudXNlZFBh
cmFtLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdURiB7CisKK2ludCBudW1iZXJPZlByb2Nlc3Nv
ckNvcmVzKCkKK3sKKyAgICBjb25zdCBpbnQgZGVmYXVsdElmVW5hdmFpbGFibGUgPSAxOworICAg
IHN0YXRpYyBpbnQgc19udW1iZXJPZkNvcmVzID0gLTE7CisKKyAgICBpZiAoc19udW1iZXJPZkNv
cmVzID4gMCkKKyAgICAgICAgcmV0dXJuIHNfbnVtYmVyT2ZDb3JlczsKKworI2lmIE9TKERBUldJ
TikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKSB8fCBPUyhGUkVFQlNEKQorICAgIHVuc2ln
bmVkIHJlc3VsdDsKKyAgICBzaXplX3QgbGVuZ3RoID0gc2l6ZW9mKHJlc3VsdCk7CisgICAgaW50
IG5hbWVbXSA9IHsKKyAgICAgICAgICAgIENUTF9IVywKKyAgICAgICAgICAgIEhXX05DUFUKKyAg
ICB9OworICAgIGludCBzeXNjdGxSZXN1bHQgPSBzeXNjdGwobmFtZSwgc2l6ZW9mKG5hbWUpIC8g
c2l6ZW9mKGludCksICZyZXN1bHQsICZsZW5ndGgsIDAsIDApOworCisgICAgc19udW1iZXJPZkNv
cmVzID0gc3lzY3RsUmVzdWx0IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxhYmxlIDogcmVzdWx0Owor
I2VsaWYgT1MoTElOVVgpIHx8IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKKyAgICBsb25nIHN5c2Nv
bmZSZXN1bHQgPSBzeXNjb25mKF9TQ19OUFJPQ0VTU09SU19PTkxOKTsKKworICAgIHNfbnVtYmVy
T2ZDb3JlcyA9IHN5c2NvbmZSZXN1bHQgPCAwID8gZGVmYXVsdElmVW5hdmFpbGFibGUgOiBzdGF0
aWNfY2FzdDxpbnQ+KHN5c2NvbmZSZXN1bHQpOworI2VsaWYgT1MoV0lORE9XUykKKyAgICBVTlVT
RURfUEFSQU0oZGVmYXVsdElmVW5hdmFpbGFibGUpOworICAgIFNZU1RFTV9JTkZPIHN5c0luZm87
CisgICAgR2V0U3lzdGVtSW5mbygmc3lzSW5mbyk7CisKKyAgICBzX251bWJlck9mQ29yZXMgPSBz
eXNJbmZvLmR3TnVtYmVyT2ZQcm9jZXNzb3JzOworI2Vsc2UKKyAgICBzX251bWJlck9mQ29yZXMg
PSBkZWZhdWx0SWZVbmF2YWlsYWJsZTsKKyNlbmRpZgorICAgIHJldHVybiBzX251bWJlck9mQ29y
ZXM7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVy
T2ZDb3Jlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjYwYzdlNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5oCkBAIC0wLDAgKzEs
MzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIE51bWJlck9mQ29yZXNfaAorI2RlZmluZSBO
dW1iZXJPZkNvcmVzX2gKKworbmFtZXNwYWNlIFdURiB7CisKK2ludCBudW1iZXJPZlByb2Nlc3Nv
ckNvcmVzKCk7CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAppbmRleCBiNjIwN2RjLi4wNmU3OTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIlBhcmFsbGVsSm9icy5oIgogI2luY2x1ZGUgIlVu
dXNlZFBhcmFtLmgiCisjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KIAogI2lmIE9TKERB
UldJTikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQogI2luY2x1ZGUgPHN5cy9zeXNjdGwu
aD4KQEAgLTQ1LDE5ICs0NiwxNiBAQCBuYW1lc3BhY2UgV1RGIHsKIAogVmVjdG9yPCBSZWZQdHI8
UGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZT4gPiogUGFyYWxsZWxFbnZpcm9ubWVu
dDo6c190aHJlYWRQb29sID0gMDsKIAotaW50IFBhcmFsbGVsRW52aXJvbm1lbnQ6OnNfbWF4TnVt
YmVyT2ZQYXJhbGxlbFRocmVhZHMgPSAtMTsKLQogUGFyYWxsZWxFbnZpcm9ubWVudDo6UGFyYWxs
ZWxFbnZpcm9ubWVudChUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgc2l6ZV90IHNpemVP
ZlBhcmFtZXRlciwgaW50IHJlcXVlc3RlZEpvYk51bWJlcikgOgogICAgIG1fdGhyZWFkRnVuY3Rp
b24odGhyZWFkRnVuY3Rpb24pLAogICAgIG1fc2l6ZU9mUGFyYW1ldGVyKHNpemVPZlBhcmFtZXRl
cikKIHsKICAgICBBU1NFUlRfQVJHKHJlcXVlc3RlZEpvYk51bWJlciwgcmVxdWVzdGVkSm9iTnVt
YmVyID49IDEpOwogCi0gICAgaWYgKHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPT0gLTEp
Ci0gICAgICAgIGRldGVybWluZU1heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKCk7CisgICAgaW50
IG1heE51bWJlck9mQ29yZXMgPSBudW1iZXJPZlByb2Nlc3NvckNvcmVzKCk7CiAKLSAgICBpZiAo
IXJlcXVlc3RlZEpvYk51bWJlciB8fCByZXF1ZXN0ZWRKb2JOdW1iZXIgPiBzX21heE51bWJlck9m
UGFyYWxsZWxUaHJlYWRzKQotICAgICAgICByZXF1ZXN0ZWRKb2JOdW1iZXIgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyk7CisgICAgaWYgKCFyZXF1
ZXN0ZWRKb2JOdW1iZXIgfHwgcmVxdWVzdGVkSm9iTnVtYmVyID4gbWF4TnVtYmVyT2ZDb3JlcykK
KyAgICAgICAgcmVxdWVzdGVkSm9iTnVtYmVyID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heE51
bWJlck9mQ29yZXMpOwogCiAgICAgaWYgKCFzX3RocmVhZFBvb2wpCiAgICAgICAgIHNfdGhyZWFk
UG9vbCA9IG5ldyBWZWN0b3I8IFJlZlB0cjxUaHJlYWRQcml2YXRlPiA+KCk7CkBAIC02NSw3ICs2
Myw3IEBAIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1lbnQoVGhyZWFkRnVu
Y3Rpb24gdGhyZWFkRnVuY3Rpb24sIHNpemVfdCBzCiAgICAgLy8gVGhlIG1haW4gdGhyZWFkIHNo
b3VsZCBiZSBhbHNvIGEgd29ya2VyLgogICAgIGludCBtYXhOdW1iZXJPZk5ld1RocmVhZHMgPSBy
ZXF1ZXN0ZWRKb2JOdW1iZXIgLSAxOwogCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzX21heE51
bWJlck9mUGFyYWxsZWxUaHJlYWRzICYmIG1fdGhyZWFkcy5zaXplKCkgPCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4obWF4TnVtYmVyT2ZOZXdUaHJlYWRzKTsgKytpKSB7CisgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBtYXhOdW1iZXJPZkNvcmVzICYmIG1fdGhyZWFkcy5zaXplKCkgPCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4obWF4TnVtYmVyT2ZOZXdUaHJlYWRzKTsgKytpKSB7CiAgICAgICAgIGlmIChz
X3RocmVhZFBvb2wtPnNpemUoKSA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihpKSArIDFVKQogICAg
ICAgICAgICAgc190aHJlYWRQb29sLT5hcHBlbmQoVGhyZWFkUHJpdmF0ZTo6Y3JlYXRlKCkpOwog
CkBAIC05MywzMiArOTEsNiBAQCB2b2lkIFBhcmFsbGVsRW52aXJvbm1lbnQ6OmV4ZWN1dGUodm9p
ZCogcGFyYW1ldGVycykKICAgICAgICAgbV90aHJlYWRzW2ldLT53YWl0Rm9yRmluaXNoKCk7CiB9
CiAKLXZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6ZGV0ZXJtaW5lTWF4TnVtYmVyT2ZQYXJhbGxl
bFRocmVhZHMoKQotewotICAgIGNvbnN0IGludCBkZWZhdWx0SWZVbmF2YWlsYWJsZSA9IDI7Ci0j
aWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCi0gICAgdW5zaWduZWQg
cmVzdWx0OwotICAgIHNpemVfdCBsZW5ndGggPSBzaXplb2YocmVzdWx0KTsKLSAgICBpbnQgbmFt
ZVtdID0gewotICAgICAgICBDVExfSFcsCi0gICAgICAgIEhXX05DUFUKLSAgICB9OwotICAgIGlu
dCBzeXNjdGxSZXN1bHQgPSBzeXNjdGwobmFtZSwgc2l6ZW9mKG5hbWUpIC8gc2l6ZW9mKGludCks
ICZyZXN1bHQsICZsZW5ndGgsIDAsIDApOwotICAgIHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVh
ZHMgPSBzeXNjdGxSZXN1bHQgPCAwID8gZGVmYXVsdElmVW5hdmFpbGFibGUgOiByZXN1bHQ7Ci0j
ZWxpZiBPUyhMSU5VWCkgfHwgT1MoQUlYKSB8fCBPUyhTT0xBUklTKQotICAgIGxvbmcgc3lzY29u
ZlJlc3VsdCA9IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOwotICAgIHNfbWF4TnVtYmVy
T2ZQYXJhbGxlbFRocmVhZHMgPSBzeXNjb25mUmVzdWx0IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxh
YmxlIDogc3RhdGljX2Nhc3Q8aW50PihzeXNjb25mUmVzdWx0KTsKLSNlbGlmIE9TKFdJTkRPV1Mp
Ci0gICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRJZlVuYXZhaWxhYmxlKTsKLQotICAgIFNZU1RFTV9J
TkZPIHN5c0luZm87Ci0gICAgR2V0U3lzdGVtSW5mbygmc3lzSW5mbyk7Ci0gICAgc19tYXhOdW1i
ZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5c0luZm8uZHdOdW1iZXJPZlByb2Nlc3NvcnM7Ci0jZWxz
ZQotICAgIHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPSBkZWZhdWx0SWZVbmF2YWlsYWJs
ZTsKLSNlbmRpZgotfQotCiBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6
OnRyeUxvY2tGb3IoUGFyYWxsZWxFbnZpcm9ubWVudCogcGFyZW50KQogewogICAgIGJvb2wgbG9j
a2VkID0gbV9tdXRleC50cnlMb2NrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGFyYWxsZWxKb2JzR2VuZXJpYy5oCmluZGV4IGRhYjZkZDkuLjFjN2Q2M2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oCkBAIC04NCwxNSAr
ODQsMTIgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIHZvaWQgZGV0
ZXJtaW5lTWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMoKTsKLQogICAgIFRocmVhZEZ1bmN0aW9u
IG1fdGhyZWFkRnVuY3Rpb247CiAgICAgc2l6ZV90IG1fc2l6ZU9mUGFyYW1ldGVyOwogICAgIGlu
dCBtX251bWJlck9mSm9iczsKIAogICAgIFZlY3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4g
bV90aHJlYWRzOwogICAgIHN0YXRpYyBWZWN0b3I8IFJlZlB0cjxUaHJlYWRQcml2YXRlPiA+KiBz
X3RocmVhZFBvb2w7Ci0gICAgc3RhdGljIGludCBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRz
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3Jt
LmgKaW5kZXggYmIxNDYyZS4uZmIxZjkyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZv
cm0uaApAQCAtMTExNiw3ICsxMTE2LDcgQEAKICNkZWZpbmUgRU5BQkxFX0NPTVBBUkVfQU5EX1NX
QVAgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfUEFSQUxMRUxfR0MpICYmIChQTEFU
Rk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykpICYmIEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQor
I2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oSU9TKSB8fCBQTEFURk9STShRVCkpICYmIEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQog
I2RlZmluZSBFTkFCTEVfUEFSQUxMRUxfR0MgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCmluZGV4IGZiYzYyNTAuLmQ1ZDViNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMu
bW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQpA
QCAtNTksMTcgKzU5LDYgQEAgc3RhdGljIGJvb2wgbWFpblRocmVhZEVzdGFibGlzaGVkQXNQdGhy
ZWFkTWFpbjsKIHN0YXRpYyBwdGhyZWFkX3QgbWFpblRocmVhZFB0aHJlYWQ7CiBzdGF0aWMgTlNU
aHJlYWQqIG1haW5UaHJlYWROU1RocmVhZDsKIAotI2lmIEVOQUJMRShQQVJBTExFTF9HQykKLXN0
YXRpYyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNHQ1RocmVhZDsKLQotc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZUdDVGhyZWFkcygpCi17Ci0gICAgaXNHQ1RocmVhZCA9IG5ldyBUaHJlYWRTcGVjaWZp
Yzxib29sPigpOwotfQotI2Vsc2UKLXN0YXRpYyB2b2lkIGluaXRpYWxpemVHQ1RocmVhZHMoKSB7
IH0KLSNlbmRpZgotCiB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKQogewogICAg
IEFTU0VSVCghc3RhdGljTWFpblRocmVhZENhbGxlcik7CkBAIC0xNDUsMzEgKzEzNCw0IEBAIGJv
b2wgaXNNYWluVGhyZWFkKCkKICAgICByZXR1cm4gcHRocmVhZF9lcXVhbChwdGhyZWFkX3NlbGYo
KSwgbWFpblRocmVhZFB0aHJlYWQpOwogfQogCi0jaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQotdm9p
ZCByZWdpc3RlckdDVGhyZWFkKCkKLXsKLSAgICBpZiAoIWlzR0NUaHJlYWQpIHsKLSAgICAgICAg
Ly8gVGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBwcm9jZXNzIHRoYXQgZG9lc24n
dCBjYXJlIGFib3V0Ci0gICAgICAgIC8vIE1haW5UaHJlYWQuCi0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOwotfQotCi1ib29sIGlzTWFpblRocmVhZE9y
R0NUaHJlYWQoKQotewotICAgIGlmIChpc0dDVGhyZWFkLT5pc1NldCgpICYmICoqaXNHQ1RocmVh
ZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgcmV0dXJuIGlzTWFpblRocmVhZCgp
OwotfQotI2Vsc2UKLS8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUu
ZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgotYm9vbCBpc01haW5UaHJl
YWRPckdDVGhyZWFkKCkKLXsKLSAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Ci19Ci0jZW5kaWYK
LQogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL3d0Zi5wcm8gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5wcm8KaW5kZXggNGM1
NzVlMy4uYzQ2MzZkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYu
cHJvCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnBybwpAQCAtOTIsNiArOTIs
NyBAQCBIRUFERVJTICs9IFwKICAgICBOb25Db3B5aW5nU29ydC5oIFwKICAgICBOb3RGb3VuZC5o
IFwKICAgICBOdWxsUHRyLmggXAorICAgIE51bWJlck9mQ29yZXMuaCBcCiAgICAgT1NBbGxvY2F0
b3IuaCBcCiAgICAgT1NSYW5kb21Tb3VyY2UuaCBcCiAgICAgT3duQXJyYXlQdHIuaCBcCkBAIC0x
OTgsNiArMTk5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgTWFpblRocmVhZC5jcHAgXAogICAgIE1l
dGFBbGxvY2F0b3IuY3BwIFwKICAgICBOdWxsUHRyLmNwcCBcCisgICAgTnVtYmVyT2ZDb3Jlcy5j
cHAgXAogICAgIE9TUmFuZG9tU291cmNlLmNwcCBcCiAgICAgcXQvTWFpblRocmVhZFF0LmNwcCBc
CiAgICAgcXQvU3RyaW5nUXQuY3BwIFwK
</data>
<flag name="commit-queue"
          id="121669"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122009</attachid>
            <date>2012-01-11 05:08:41 -0800</date>
            <delta_ts>2012-01-13 02:35:42 -0800</delta_ts>
            <desc>working progress test</desc>
            <filename>gcc.diff</filename>
            <type>text/plain</type>
            <size>17192</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGM4YjQzYjQuLjFkNGZjMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAxLTExICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIDIgZmlsZXMgaXMgYWRkZWQg
dG8gdGhlIHByb2plY3QsIG5hbWVseSBOdW1iZXJPZkNvcmVzLmgvY3BwLCB0aGF0CisgICAgICAg
IGluY2x1ZGUgYSBDUFUgY29yZSBudW1iZXIgZGV0ZXJtaW5pbmcgZnVuY3Rpb24uIEl0IHVzZWQg
dG8gYmUgaW4KKyAgICAgICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5oL2NwcCBiZWZvcmUuCisKKyAg
ICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAgIHNwZWVkLXVw
OiAgMS4wNzF4IGFzIGZhc3QgIFtGcm9tOiA3NDYuMW1zICBUbzogNjk2LjRtcyBdCisgICAgICAg
IFdpbmRTY29ycGlvbiBzcGVlZC11cDogIDEuMDgyeCBhcyBmYXN0ICBbRnJvbTogMzQ5MC40bXMg
VG86IDMyMjYuN21zXQorICAgICAgICBWOCBTcGxheSAgICAgc3BlZWQtdXA6ICAxLjE1OHggYXMg
ZmFzdCAgW0Zyb206IDE0NS44bXMgIFRvOiAxMjUuOW1zIF0KKworICAgICAgICBUZXN0ZWQgb24g
SW50ZWwoUikgQ29yZShUTSkgaTUtMjMyMCBDUFUgQCAzLjAwR0h6IHdpdGggNC1jb3JlLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5n
eXBpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Ok9wdGlv
bnM6OmluaXRpYWxpemVPcHRpb25zKToKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogd3RmL01haW5UaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjppbml0aWFsaXplR0NU
aHJlYWRzKToKKyAgICAgICAgKFdURjo6cmVnaXN0ZXJHQ1RocmVhZCk6CisgICAgICAgIChXVEY6
OmlzTWFpblRocmVhZE9yR0NUaHJlYWQpOgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6Cisg
ICAgICAgICogd3RmL051bWJlck9mQ29yZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bnVt
YmVyT2ZQcm9jZXNzb3JDb3Jlcyk6CisgICAgICAgICogd3RmL051bWJlck9mQ29yZXMuaDogQWRk
ZWQuCisgICAgICAgICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RG
OjpQYXJhbGxlbEVudmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25tZW50KToKKyAgICAgICAgKiB3
dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAg
ICAgICAqIHd0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3BwOgorICAgICAgICAqIHd0
Zi9tYWMvTWFpblRocmVhZE1hYy5tbToKKyAgICAgICAgKiB3dGYvd3RmLnBybzoKKwogMjAxMi0w
MS0xMCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDY3Mzc5Mj4ganNjIHNob3VsZCBpbnN0YWxsIGRpcmVjdGx5IGluIHRvIHZlcnNpb25l
ZCBSZXNvdXJjZXMgc3ViZm9sZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
R05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCmluZGV4IDRmYjIxODEuLmJjZTgwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC02MTYsNiArNjE2LDggQEAgamF2YXNjcmlwdGNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Ob25Db3B5aW5nU29ydC5oIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL05vdEZvdW5kLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvTnVsbFB0ci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJl
ck9mQ29yZXMuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU0FsbG9jYXRvci5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmd5cGkKaW5kZXggYzkzNjc5MS4uMWRiYmY3OSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAgLTU3MSw2ICs1NzEsOCBAQAogICAgICAgICAg
ICAgJ3d0Zi9NYWluVGhyZWFkLmNwcCcsCiAgICAgICAgICAgICAnd3RmL01hbGxvY1pvbmVTdXBw
b3J0LmgnLAogICAgICAgICAgICAgJ3d0Zi9OdWxsUHRyLmNwcCcsCisgICAgICAgICAgICAnd3Rm
L051bWJlck9mQ29yZXMuY3BwJywKKyAgICAgICAgICAgICd3dGYvTnVtYmVyT2ZDb3Jlcy5oJywK
ICAgICAgICAgICAgICd3dGYvT1NBbGxvY2F0b3JQb3NpeC5jcHAnLAogICAgICAgICAgICAgJ3d0
Zi9PU0FsbG9jYXRvcldpbi5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9PU1JhbmRvbVNvdXJjZS5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRleCA2OGQx
MGI3Li5mNjYwYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNw
cApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogI2luY2x1ZGUgPGxp
bWl0cz4KKyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9QYWdl
QmxvY2suaD4KIAogI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVMX0dDKQpAQCAtMTc0
LDEyICsxNzUsOCBAQCB2b2lkIGluaXRpYWxpemVPcHRpb25zKCkKICAgICBTRVQob3BhcXVlUm9v
dE1lcmdlVGhyZXNob2xkLCAgICAgICAgICAgICAxMDAwKTsKIAogICAgIGludCBjcHVzVG9Vc2Ug
PSAxOwotI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVMX0dDKQotICAgIGludCBuYW1l
WzJdOwotICAgIHNpemVfdCB2YWx1ZVNpemUgPSBzaXplb2YoY3B1c1RvVXNlKTsKLSAgICBuYW1l
WzBdID0gQ1RMX0hXOwotICAgIG5hbWVbMV0gPSBIV19BVkFJTENQVTsKLSAgICBzeXNjdGwobmFt
ZSwgMiwgJmNwdXNUb1VzZSwgJnZhbHVlU2l6ZSwgMCwgMCk7CisjaWYgRU5BQkxFKFBBUkFMTEVM
X0dDKQorICAgIGNwdXNUb1VzZSA9IFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpOwogI2Vu
ZGlmCiAgICAgLy8gV2UgZG9uJ3Qgc2NhbGUgc28gd2VsbCBiZXlvbmQgNC4KICAgICBpZiAoY3B1
c1RvVXNlID4gNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4
IDUyZDNlM2MuLmMyMmFlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3Rz
LnR4dApAQCAtNTMsNiArNTMsNyBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBOb25jb3B5YWJsZS5o
CiAgICAgTm90Rm91bmQuaAogICAgIE51bGxQdHIuaAorICAgIE51bWJlck9mQ29yZXMuaAogICAg
IE9TQWxsb2NhdG9yLmgKICAgICBPU1JhbmRvbVNvdXJjZS5oCiAgICAgT3duQXJyYXlQdHIuaApA
QCAtMTQ2LDYgKzE0Nyw3IEBAIFNFVChXVEZfU09VUkNFUwogICAgIE1haW5UaHJlYWQuY3BwCiAg
ICAgTUQ1LmNwcAogICAgIE9TUmFuZG9tU291cmNlLmNwcAorICAgIE51bWJlck9mQ29yZXMuY3Bw
CiAgICAgUGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcAogICAgIFBhZ2VCbG9jay5jcHAKICAgICBQ
YXJhbGxlbEpvYnNHZW5lcmljLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9NYWluVGhyZWFkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVh
ZC5jcHAKaW5kZXggOTE1MTI2NS4uZWE2YWJjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L01haW5UaHJlYWQuY3BwCkBAIC0yNDksNCArMjQ5LDM0IEBAIGJvb2wgaXNNYWluVGhyZWFkKCkK
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQorI3ByYWdtYSBtZXNzYWdlKCJt
eU1lc3NhZ2U6IG1haW50aHJlYWQuY3BwIF9fZW5hYmxlKHBhcmFsbGVsX2djKV9fIikKK3N0YXRp
YyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNHQ1RocmVhZDsKKwordm9pZCBpbml0aWFsaXplR0NU
aHJlYWRzKCkKK3sKKyAgICBpc0dDVGhyZWFkID0gbmV3IFRocmVhZFNwZWNpZmljPGJvb2w+KCk7
Cit9CisKK3ZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpCit7CisgICAgaWYgKCFpc0dDVGhyZWFkKSB7
CisgICAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGluIGEgcHJvY2VzcyB0
aGF0IGRvZXNuJ3QgY2FyZSBhYm91dAorICAgICAgICAvLyBNYWluVGhyZWFkLgorICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgKippc0dDVGhyZWFkID0gdHJ1ZTsKK30KKworI3ByYWdtYSBt
ZXNzYWdlKCJteU1lc3NhZ2U6IG1haW50aHJlYWQuY3BwIF9fZW5hYmxlKHBhcmFsbGVsX2djKV9f
IERFRklORUQsIERFRklORUQhISEiKQorYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKK3sK
KyAgICBpZiAoaXNHQ1RocmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQorI2VuZGlmCisKIH0g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9N
YWluVGhyZWFkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaAppbmRl
eCBjMTUzZDFlLi4yZjNhYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L01haW5UaHJlYWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQu
aApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtLmgiCiAKICNpbmNsdWRlIDxz
dGRpbnQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KIAogbmFtZXNwYWNlIFdU
RiB7CiAKQEAgLTUzLDExICs1NCwxMiBAQCB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVz
ZWQoYm9vbCBwYXVzZWQpOwogCiBib29sIGlzTWFpblRocmVhZCgpOwogI2lmIEVOQUJMRShQQVJB
TExFTF9HQykKKyNwcmFnbWEgbWVzc2FnZSgibXlNZXNzYWdlOiBtYWludGhyZWFkLmggX19lbmFi
bGUocGFyYWxsZWxfZ2MpX18iKQordm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCk7CiB2b2lkIHJl
Z2lzdGVyR0NUaHJlYWQoKTsKIGJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpOwotI2VsaWYg
UExBVEZPUk0oTUFDKQotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7CiAjZWxzZQorI3By
YWdtYSBtZXNzYWdlKCJteU1lc3NhZ2U6IG1haW50aHJlYWQuaCBub3QhISEgX19lbmFibGUocGFy
YWxsZWxfZ2MpX18iKQogaW5saW5lIGJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpIHsgcmV0
dXJuIGlzTWFpblRocmVhZCgpOyB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvTnVtYmVyT2ZDb3Jlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ODJjMGI4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVt
YmVyT2ZDb3Jlcy5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0YgU1pFR0VEIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBTWkVHRUQgT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTnVtYmVyT2ZDb3Jlcy5oIgorCisjaWYgT1MoREFS
V0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCisjaW5jbHVkZSA8c3lzL3N5c2N0bC5o
PgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VsaWYgT1MoTElOVVgpIHx8IE9TKEFJWCkgfHwg
T1MoU09MQVJJUykKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbGlmIE9TKFdJTkRPV1MpCisjaW5j
bHVkZSA8V2luZG93cy5oPgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXVEYgeworCitpbnQgbnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpCit7CisgICAg
Y29uc3QgaW50IGRlZmF1bHRJZlVuYXZhaWxhYmxlID0gMTsKKyAgICBzdGF0aWMgaW50IHNfbnVt
YmVyT2ZDb3JlcyA9IC0xOworCisgICAgaWYgKHNfbnVtYmVyT2ZDb3JlcyA+IDApCisgICAgICAg
IHJldHVybiBzX251bWJlck9mQ29yZXM7CisKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5CU0Qp
IHx8IE9TKE5FVEJTRCkgfHwgT1MoRlJFRUJTRCkKKyAgICB1bnNpZ25lZCByZXN1bHQ7CisgICAg
c2l6ZV90IGxlbmd0aCA9IHNpemVvZihyZXN1bHQpOworICAgIGludCBuYW1lW10gPSB7CisgICAg
ICAgICAgICBDVExfSFcsCisgICAgICAgICAgICBIV19OQ1BVCisgICAgfTsKKyAgICBpbnQgc3lz
Y3RsUmVzdWx0ID0gc3lzY3RsKG5hbWUsIHNpemVvZihuYW1lKSAvIHNpemVvZihpbnQpLCAmcmVz
dWx0LCAmbGVuZ3RoLCAwLCAwKTsKKworICAgIHNfbnVtYmVyT2ZDb3JlcyA9IHN5c2N0bFJlc3Vs
dCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHJlc3VsdDsKKyNlbGlmIE9TKExJTlVYKSB8
fCBPUyhBSVgpIHx8IE9TKFNPTEFSSVMpCisgICAgbG9uZyBzeXNjb25mUmVzdWx0ID0gc3lzY29u
ZihfU0NfTlBST0NFU1NPUlNfT05MTik7CisKKyAgICBzX251bWJlck9mQ29yZXMgPSBzeXNjb25m
UmVzdWx0IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxhYmxlIDogc3RhdGljX2Nhc3Q8aW50PihzeXNj
b25mUmVzdWx0KTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRJ
ZlVuYXZhaWxhYmxlKTsKKyAgICBTWVNURU1fSU5GTyBzeXNJbmZvOworICAgIEdldFN5c3RlbUlu
Zm8oJnN5c0luZm8pOworCisgICAgc19udW1iZXJPZkNvcmVzID0gc3lzSW5mby5kd051bWJlck9m
UHJvY2Vzc29yczsKKyNlbHNlCisgICAgc19udW1iZXJPZkNvcmVzID0gZGVmYXVsdElmVW5hdmFp
bGFibGU7CisjZW5kaWYKKyAgICByZXR1cm4gc19udW1iZXJPZkNvcmVzOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjY2MGM3ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKworI2lmbmRlZiBOdW1iZXJPZkNvcmVzX2gKKyNkZWZpbmUgTnVtYmVyT2ZDb3Jlc19oCisK
K25hbWVzcGFjZSBXVEYgeworCitpbnQgbnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpOworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpv
YnNHZW5lcmljLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2Vu
ZXJpYy5jcHAKaW5kZXggYjYyMDdkYy4uMDZlNzk5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAK
ICNpbmNsdWRlICJQYXJhbGxlbEpvYnMuaCIKICNpbmNsdWRlICJVbnVzZWRQYXJhbS5oIgorI2lu
Y2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAKICNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5C
U0QpIHx8IE9TKE5FVEJTRCkKICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CkBAIC00NSwxOSArNDYs
MTYgQEAgbmFtZXNwYWNlIFdURiB7CiAKIFZlY3RvcjwgUmVmUHRyPFBhcmFsbGVsRW52aXJvbm1l
bnQ6OlRocmVhZFByaXZhdGU+ID4qIFBhcmFsbGVsRW52aXJvbm1lbnQ6OnNfdGhyZWFkUG9vbCA9
IDA7CiAKLWludCBQYXJhbGxlbEVudmlyb25tZW50OjpzX21heE51bWJlck9mUGFyYWxsZWxUaHJl
YWRzID0gLTE7Ci0KIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1lbnQoVGhy
ZWFkRnVuY3Rpb24gdGhyZWFkRnVuY3Rpb24sIHNpemVfdCBzaXplT2ZQYXJhbWV0ZXIsIGludCBy
ZXF1ZXN0ZWRKb2JOdW1iZXIpIDoKICAgICBtX3RocmVhZEZ1bmN0aW9uKHRocmVhZEZ1bmN0aW9u
KSwKICAgICBtX3NpemVPZlBhcmFtZXRlcihzaXplT2ZQYXJhbWV0ZXIpCiB7CiAgICAgQVNTRVJU
X0FSRyhyZXF1ZXN0ZWRKb2JOdW1iZXIsIHJlcXVlc3RlZEpvYk51bWJlciA+PSAxKTsKIAotICAg
IGlmIChzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID09IC0xKQotICAgICAgICBkZXRlcm1p
bmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpOworICAgIGludCBtYXhOdW1iZXJPZkNvcmVz
ID0gbnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpOwogCi0gICAgaWYgKCFyZXF1ZXN0ZWRKb2JOdW1i
ZXIgfHwgcmVxdWVzdGVkSm9iTnVtYmVyID4gc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcykK
LSAgICAgICAgcmVxdWVzdGVkSm9iTnVtYmVyID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNfbWF4
TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMpOworICAgIGlmICghcmVxdWVzdGVkSm9iTnVtYmVyIHx8
IHJlcXVlc3RlZEpvYk51bWJlciA+IG1heE51bWJlck9mQ29yZXMpCisgICAgICAgIHJlcXVlc3Rl
ZEpvYk51bWJlciA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZkNvcmVzKTsKIAog
ICAgIGlmICghc190aHJlYWRQb29sKQogICAgICAgICBzX3RocmVhZFBvb2wgPSBuZXcgVmVjdG9y
PCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPigpOwpAQCAtNjUsNyArNjMsNyBAQCBQYXJhbGxlbEVu
dmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25tZW50KFRocmVhZEZ1bmN0aW9uIHRocmVhZEZ1bmN0
aW9uLCBzaXplX3QgcwogICAgIC8vIFRoZSBtYWluIHRocmVhZCBzaG91bGQgYmUgYWxzbyBhIHdv
cmtlci4KICAgICBpbnQgbWF4TnVtYmVyT2ZOZXdUaHJlYWRzID0gcmVxdWVzdGVkSm9iTnVtYmVy
IC0gMTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhy
ZWFkcyAmJiBtX3RocmVhZHMuc2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heE51bWJl
ck9mTmV3VGhyZWFkcyk7ICsraSkgeworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWF4TnVtYmVy
T2ZDb3JlcyAmJiBtX3RocmVhZHMuc2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heE51
bWJlck9mTmV3VGhyZWFkcyk7ICsraSkgewogICAgICAgICBpZiAoc190aHJlYWRQb29sLT5zaXpl
KCkgPCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaSkgKyAxVSkKICAgICAgICAgICAgIHNfdGhyZWFk
UG9vbC0+YXBwZW5kKFRocmVhZFByaXZhdGU6OmNyZWF0ZSgpKTsKIApAQCAtOTMsMzIgKzkxLDYg
QEAgdm9pZCBQYXJhbGxlbEVudmlyb25tZW50OjpleGVjdXRlKHZvaWQqIHBhcmFtZXRlcnMpCiAg
ICAgICAgIG1fdGhyZWFkc1tpXS0+d2FpdEZvckZpbmlzaCgpOwogfQogCi12b2lkIFBhcmFsbGVs
RW52aXJvbm1lbnQ6OmRldGVybWluZU1heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKCkKLXsKLSAg
ICBjb25zdCBpbnQgZGVmYXVsdElmVW5hdmFpbGFibGUgPSAyOwotI2lmIE9TKERBUldJTikgfHwg
T1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQotICAgIHVuc2lnbmVkIHJlc3VsdDsKLSAgICBzaXpl
X3QgbGVuZ3RoID0gc2l6ZW9mKHJlc3VsdCk7Ci0gICAgaW50IG5hbWVbXSA9IHsKLSAgICAgICAg
Q1RMX0hXLAotICAgICAgICBIV19OQ1BVCi0gICAgfTsKLSAgICBpbnQgc3lzY3RsUmVzdWx0ID0g
c3lzY3RsKG5hbWUsIHNpemVvZihuYW1lKSAvIHNpemVvZihpbnQpLCAmcmVzdWx0LCAmbGVuZ3Ro
LCAwLCAwKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lzY3RsUmVzdWx0
IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxhYmxlIDogcmVzdWx0OwotI2VsaWYgT1MoTElOVVgpIHx8
IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKLSAgICBsb25nIHN5c2NvbmZSZXN1bHQgPSBzeXNjb25m
KF9TQ19OUFJPQ0VTU09SU19PTkxOKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRz
ID0gc3lzY29uZlJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0YXRpY19jYXN0
PGludD4oc3lzY29uZlJlc3VsdCk7Ci0jZWxpZiBPUyhXSU5ET1dTKQotICAgIFVOVVNFRF9QQVJB
TShkZWZhdWx0SWZVbmF2YWlsYWJsZSk7Ci0KLSAgICBTWVNURU1fSU5GTyBzeXNJbmZvOwotICAg
IEdldFN5c3RlbUluZm8oJnN5c0luZm8pOwotICAgIHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVh
ZHMgPSBzeXNJbmZvLmR3TnVtYmVyT2ZQcm9jZXNzb3JzOwotI2Vsc2UKLSAgICBzX21heE51bWJl
ck9mUGFyYWxsZWxUaHJlYWRzID0gZGVmYXVsdElmVW5hdmFpbGFibGU7Ci0jZW5kaWYKLX0KLQog
Ym9vbCBQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp0cnlMb2NrRm9yKFBhcmFs
bGVsRW52aXJvbm1lbnQqIHBhcmVudCkKIHsKICAgICBib29sIGxvY2tlZCA9IG1fbXV0ZXgudHJ5
TG9jaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpv
YnNHZW5lcmljLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVy
aWMuaAppbmRleCBkYWI2ZGQ5Li4xYzdkNjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaApAQCAtODQsMTUgKzg0LDEyIEBAIHB1YmxpYzoK
ICAgICB9OwogCiBwcml2YXRlOgotICAgIHN0YXRpYyB2b2lkIGRldGVybWluZU1heE51bWJlck9m
UGFyYWxsZWxUaHJlYWRzKCk7Ci0KICAgICBUaHJlYWRGdW5jdGlvbiBtX3RocmVhZEZ1bmN0aW9u
OwogICAgIHNpemVfdCBtX3NpemVPZlBhcmFtZXRlcjsKICAgICBpbnQgbV9udW1iZXJPZkpvYnM7
CiAKICAgICBWZWN0b3I8IFJlZlB0cjxUaHJlYWRQcml2YXRlPiA+IG1fdGhyZWFkczsKICAgICBz
dGF0aWMgVmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiogc190aHJlYWRQb29sOwotICAg
IHN0YXRpYyBpbnQgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9y
bS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGJiMTQ2MmUu
LmZiMWY5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKQEAgLTExMTYsNyAr
MTExNiw3IEBACiAjZGVmaW5lIEVOQUJMRV9DT01QQVJFX0FORF9TV0FQIDEKICNlbmRpZgogCi0j
aWYgIWRlZmluZWQoRU5BQkxFX1BBUkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFU
Rk9STShJT1MpKSAmJiBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKKyNpZiAhZGVmaW5lZChFTkFC
TEVfUEFSQUxMRUxfR0MpICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExB
VEZPUk0oUVQpKSAmJiBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKICNkZWZpbmUgRU5BQkxFX1BB
UkFMTEVMX0dDIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAKaW5kZXggOWU2NTkyYi4uNjhj
ZTJlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9jaHJvbWl1bS9NYWlu
VGhyZWFkQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvY2hyb21p
dW0vTWFpblRocmVhZENocm9taXVtLmNwcApAQCAtNjQsMTAgKzY0LDUgQEAgdm9pZCBzZXRNYWlu
VGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKLWJvb2wgaXNNYWluVGhyZWFkKCkKLXsKLSAgICByZXR1cm4gY3VycmVudFRocmVhZCgpID09
IG1haW5UaHJlYWRJZGVudGlmaWVyOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXVEYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KaW5kZXggZmJjNjI1
MC4uZDVkNWI2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFp
blRocmVhZE1hYy5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhy
ZWFkTWFjLm1tCkBAIC01OSwxNyArNTksNiBAQCBzdGF0aWMgYm9vbCBtYWluVGhyZWFkRXN0YWJs
aXNoZWRBc1B0aHJlYWRNYWluOwogc3RhdGljIHB0aHJlYWRfdCBtYWluVGhyZWFkUHRocmVhZDsK
IHN0YXRpYyBOU1RocmVhZCogbWFpblRocmVhZE5TVGhyZWFkOwogCi0jaWYgRU5BQkxFKFBBUkFM
TEVMX0dDKQotc3RhdGljIFRocmVhZFNwZWNpZmljPGJvb2w+KiBpc0dDVGhyZWFkOwotCi1zdGF0
aWMgdm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCkKLXsKLSAgICBpc0dDVGhyZWFkID0gbmV3IFRo
cmVhZFNwZWNpZmljPGJvb2w+KCk7Ci19Ci0jZWxzZQotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdD
VGhyZWFkcygpIHsgfQotI2VuZGlmCi0KIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9y
bSgpCiB7CiAgICAgQVNTRVJUKCFzdGF0aWNNYWluVGhyZWFkQ2FsbGVyKTsKQEAgLTE0NSwzMSAr
MTM0LDQgQEAgYm9vbCBpc01haW5UaHJlYWQoKQogICAgIHJldHVybiBwdGhyZWFkX2VxdWFsKHB0
aHJlYWRfc2VsZigpLCBtYWluVGhyZWFkUHRocmVhZCk7CiB9CiAKLSNpZiBFTkFCTEUoUEFSQUxM
RUxfR0MpCi12b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKQotewotICAgIGlmICghaXNHQ1RocmVhZCkg
ewotICAgICAgICAvLyBUaGlzIGhhcHBlbnMgaWYgd2UncmUgcnVubmluZyBpbiBhIHByb2Nlc3Mg
dGhhdCBkb2Vzbid0IGNhcmUgYWJvdXQKLSAgICAgICAgLy8gTWFpblRocmVhZC4KLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgICoqaXNHQ1RocmVhZCA9IHRydWU7Ci19Ci0KLWJvb2wgaXNN
YWluVGhyZWFkT3JHQ1RocmVhZCgpCi17Ci0gICAgaWYgKGlzR0NUaHJlYWQtPmlzU2V0KCkgJiYg
Kippc0dDVGhyZWFkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICByZXR1cm4gaXNN
YWluVGhyZWFkKCk7Ci19Ci0jZWxzZQotLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBKYXZh
U2NyaXB0Q29yZS5leHAgZG9lc24ndCBzdXBwb3J0IHByZXByb2Nlc3NvciBtYWNyb3MuCi1ib29s
IGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQotewotICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsK
LX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvd3RmLnBybyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnBy
bwppbmRleCAyMzQzNDhmLi5jN2Y4NjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL3d0Zi5wcm8KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvCkBA
IC04Nyw2ICs4Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIE5vbkNvcHlpbmdTb3J0LmggXAogICAg
IE5vdEZvdW5kLmggXAogICAgIE51bGxQdHIuaCBcCisgICAgTnVtYmVyT2ZDb3Jlcy5oIFwKICAg
ICBPU0FsbG9jYXRvci5oIFwKICAgICBPU1JhbmRvbVNvdXJjZS5oIFwKICAgICBPd25BcnJheVB0
ci5oIFwKQEAgLTE5Myw2ICsxOTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBNYWluVGhyZWFkLmNw
cCBcCiAgICAgTWV0YUFsbG9jYXRvci5jcHAgXAogICAgIE51bGxQdHIuY3BwIFwKKyAgICBOdW1i
ZXJPZkNvcmVzLmNwcCBcCiAgICAgT1NSYW5kb21Tb3VyY2UuY3BwIFwKICAgICBxdC9NYWluVGhy
ZWFkUXQuY3BwIFwKICAgICBxdC9TdHJpbmdRdC5jcHAgXAo=
</data>
<flag name="commit-queue"
          id="122696"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122221</attachid>
            <date>2012-01-12 05:42:02 -0800</date>
            <delta_ts>2012-01-13 02:35:42 -0800</delta_ts>
            <desc>fixed the unresolved external symbol problem</desc>
            <filename>Parallel_gc.diff</filename>
            <type>text/plain</type>
            <size>21938</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDBhNjExMTQuLjAyNTg1NTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTAxLTEyICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIFR3byBmaWxlcyBpcyBhZGRl
ZCB0byB0aGUgcHJvamVjdCwgbmFtZWx5IE51bWJlck9mQ29yZXMuaC9jcHAsIHRoYXQKKyAgICAg
ICAgaW5jbHVkZSBhIENQVSBjb3JlIG51bWJlciBkZXRlcm1pbmluZyBmdW5jdGlvbi4gSXQgdXNl
ZCB0byBiZSBpbgorICAgICAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmgvY3BwIGJlZm9yZS4KKwor
ICAgICAgICBNZWFzdXJlbWVudCByZXN1bHRzOgorICAgICAgICBWOCAgICAgICAgICAgc3BlZWQt
dXA6ICAxLjA3MXggYXMgZmFzdCAgW0Zyb206IDc0Ni4xbXMgIFRvOiA2OTYuNG1zIF0KKyAgICAg
ICAgV2luZFNjb3JwaW9uIHNwZWVkLXVwOiAgMS4wODJ4IGFzIGZhc3QgIFtGcm9tOiAzNDkwLjRt
cyBUbzogMzIyNi43bXNdCisgICAgICAgIFY4IFNwbGF5ICAgICBzcGVlZC11cDogIDEuMTU4eCBh
cyBmYXN0ICBbRnJvbTogMTQ1LjhtcyAgVG86IDEyNS45bXMgXQorCisgICAgICAgIFRlc3RlZCBv
biBJbnRlbChSKSBDb3JlKFRNKSBpNS0yMzIwIENQVSBAIDMuMDBHSHogd2l0aCA0LWNvcmUuCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
Lmd5cGk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUub3JkZXI6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNw
cDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6aW5pdGlhbGl6ZU9wdGlvbnMpOgorICAgICAgICAq
IHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAg
ICAgIChXVEY6OmluaXRpYWxpemVHQ1RocmVhZHMpOgorICAgICAgICAoV1RGOjpyZWdpc3RlckdD
VGhyZWFkKToKKyAgICAgICAgKFdURjo6aXNNYWluVGhyZWFkT3JHQ1RocmVhZCk6CisgICAgICAg
ICogd3RmL01haW5UaHJlYWQuaDoKKyAgICAgICAgKiB3dGYvTnVtYmVyT2ZDb3Jlcy5jcHA6IEFk
ZGVkLgorICAgICAgICAoV1RGOjpudW1iZXJPZlByb2Nlc3NvckNvcmVzKToKKyAgICAgICAgKiB3
dGYvTnVtYmVyT2ZDb3Jlcy5oOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvUGFyYWxsZWxKb2JzR2Vu
ZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52aXJvbm1lbnQ6OlBhcmFsbGVsRW52
aXJvbm1lbnQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmg6CisgICAgICAg
ICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAgICogd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tOgor
ICAgICAgICAqIHd0Zi93dGYucHJvOgorCiAyMDEyLTAxLTExICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CiAKICAgICAgICAgQ29kZUJsb2NrOjptX2V4ZWN1dGVDb3VudGVyIHNob3Vs
ZCBiZSByZW5hbWVkIHRvIENvZGVCbG9jazo6bV9qaXRFeGVjdXRlQ291bnRlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiMmZkMWQ1Li5iNDQ2NDU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNjE3LDYgKzYx
Nyw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvTm9uQ29weWluZ1NvcnQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Ob3RG
b3VuZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bGxQdHIuaCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcCBcCisJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
T1NBbGxvY2F0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJj
ZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuaCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCmluZGV4IGM5MzY3OTEuLjFk
YmJmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5n
eXBpCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC01
NzEsNiArNTcxLDggQEAKICAgICAgICAgICAgICd3dGYvTWFpblRocmVhZC5jcHAnLAogICAgICAg
ICAgICAgJ3d0Zi9NYWxsb2Nab25lU3VwcG9ydC5oJywKICAgICAgICAgICAgICd3dGYvTnVsbFB0
ci5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9OdW1iZXJPZkNvcmVzLmNwcCcsCisgICAgICAgICAg
ICAnd3RmL051bWJlck9mQ29yZXMuaCcsCiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yUG9z
aXguY3BwJywKICAgICAgICAgICAgICd3dGYvT1NBbGxvY2F0b3JXaW4uY3BwJywKICAgICAgICAg
ICAgICd3dGYvT1NSYW5kb21Tb3VyY2UuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlciBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5vcmRlcgppbmRleCAzY2VkYTY1Li40NjQzMDc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCkBAIC00MCw2ICs0MCw3IEBAIF9fWk4zV1RG
MTBTdHJpbmdJbXBsMTljcmVhdGVVbmluaXRpYWxpemVkRWpSUHQKIF9fWk4zV1RGNWVxdWFsRVBL
TlNfMTBTdHJpbmdJbXBsRVMyXwogX19aTjNXVEYxMFN0cmluZ0ltcGw2Y3JlYXRlRVBLdGoKIF9f
Wk4zV1RGMTJpc01haW5UaHJlYWRFdgorX19aTjNXVEYyMmlzTWFpblRocmVhZE9yR0NUaHJlYWRF
dgogX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2CiBfX1pOM1dURjEwU3RyaW5nSW1wbEQyRXYKIF9f
Wk4zV1RGNlN0cmluZzZudW1iZXJFeQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKaW5kZXggNmU4OWIwMS4u
ZjcyNjQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9XVEYvV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCkBAIC05NDksNiArOTQ5LDE0IEBACiAJCQk+
CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXE51bWJlck9m
Q29yZXMuY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4u
XC4uXHd0ZlxOdW1iZXJPZkNvcmVzLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJl
bGF0aXZlUGF0aD0iLi5cLi5cd3RmXE9TQWxsb2NhdG9yV2luLmNwcCIKIAkJCT4KIAkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNjc3YTIzLi40YzU2ODRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzI2LDYgKzcyNiw4IEBACiAJCUU0OURDMTZE
MTJFRjI5NTMwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5REMxNDkxMkVGMjYxQTAwMTg0
QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTREOENFRkIxMkZDNDM5NjAwQkM5RjVBIC8qIEJs
b29tRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNEQ4Q0U5QjEyRkM0MkUxMDBCQzlGNUEgLyogQmxvb21GaWx0ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGM0JEMzFFRDEyNjczNTc3MDA2
NTQ2N0YgLyogVGV4dFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGM0JEMzFEMDEyNjczMDE4MDA2NTQ2N0YgLyogVGV4dFBvc2l0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRjZFNEQz
NEYxNEJGMTE0NDAwRkQxNzIwIC8qIE51bWJlck9mQ29yZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjZFNEQzNEQxNEJGMTE0NDAwRkQxNzIwIC8q
IE51bWJlck9mQ29yZXMuY3BwICovOyB9OworCQlGNkU0RDM1MDE0QkYxMTQ0MDBGRDE3MjAgLyog
TnVtYmVyT2ZDb3Jlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjZFNEQzNEUxNEJGMTE0NDAwRkQxNzIwIC8qIE51bWJlck9mQ29yZXMuaCAqLzsgfTsK
IAkJRkRBMTVDMUUxMkIwMzA1QzAwM0E1ODNBIC8qIENvbXBsZXguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQTE1QzE2MTJCMDMwMjgwMDNBNTgzQSAv
KiBDb21wbGV4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRkUxQjQ0N0EwRUNDRDczQjAwNEY0REQxIC8qIFN0ZExpYkV4dHJhcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUxQjQ0NzkwRUNDRDczQjAw
NEY0REQxIC8qIFN0ZExpYkV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KQEAgLTE1MzUs
NiArMTUzNyw4IEBACiAJCUY2OTJBODg1MDI1NTU5N0QwMUZGNjBGNyAvKiBVU3RyaW5nLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVT
dHJpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCUY2
OTJBODg2MDI1NTU5N0QwMUZGNjBGNyAvKiBVU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVTdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQlGNjkyQTg4NzAyNTU1OTdEMDFGRjYwRjcgLyog
SlNWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB9OworCQlGNkU0RDM0RDE0QkYxMTQ0MDBGRDE3MjAgLyogTnVtYmVyT2ZDb3Jlcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOdW1iZXJPZkNvcmVzLmNwcDsg
cGF0aCA9IHd0Zi9OdW1iZXJPZkNvcmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjZFNEQzNEUxNEJGMTE0NDAwRkQxNzIwIC8qIE51bWJlck9mQ29yZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTnVtYmVyT2ZDb3Jlcy5oOyBwYXRoID0gd3RmL051bWJl
ck9mQ29yZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRBMTVDMTYxMkIwMzAy
ODAwM0E1ODNBIC8qIENvbXBsZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q29tcGxleC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTFCNDQ3OTBFQ0NENzNC
MDA0RjRERDEgLyogU3RkTGliRXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0ZExpYkV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBC
WEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwpAQCAtMTYxNSw2ICsxNjE5LDggQEAKIAkJMDg2N0Q2
OTFGRTg0MDI4RkMwMkFBQzA3IC8qIEphdmFTY3JpcHRDb3JlICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGNkU0RDM0RDE0QkYxMTQ0MDBGRDE3MjAgLyog
TnVtYmVyT2ZDb3Jlcy5jcHAgKi8sCisJCQkJRjZFNEQzNEUxNEJGMTE0NDAwRkQxNzIwIC8qIE51
bWJlck9mQ29yZXMuaCAqLywKIAkJCQk4NjA0RjRGMjE0M0E2QzQ0MDBCMjk1RjUgLyogQ2hhbmdl
TG9nICovLAogCQkJCUE3MThGODIxMTE3OEVCNEIwMDI0NjVBNyAvKiBjcmVhdGVfcmVnZXhfdGFi
bGVzICovLAogCQkJCTkzN0I2M0NDMDlFNzY2RDIwMEE2NzFERCAvKiBEZXJpdmVkU291cmNlcy5t
YWtlICovLApAQCAtMzAyNSw2ICszMDMxLDcgQEAKIAkJCQkwRjBCODNCNzE0QkNGOEUxMDA4ODVC
NEYgLyogR2xvYmFsUmVzb2x2ZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMEI4M0I5MTRC
Q0Y5NUYwMDg4NUI0RiAvKiBDYWxsUmV0dXJuT2Zmc2V0VG9CeXRlY29kZU9mZnNldC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYyMUMyNjgxNEJFNUY2ODAwQURDNjRCIC8qIEpJVERyaXZlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRjZFNEQzNTAxNEJGMTE0NDAwRkQxNzIwIC8qIE51bWJlck9mQ29y
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMzU2Miw2ICszNTY5LDcgQEAKIAkJCQkwRjQ2ODA4MzE0
QkE1NzMxMDBCRkUyNzIgLyogSklURXhjZXB0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjBCODNCMDE0QkNGNzE2MDA4ODVCNEYgLyogQ2FsbExpbmtJbmZvLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGMEI4M0I0MTRCQ0Y4NjAwMDg4NUI0RiAvKiBNZXRob2RDYWxsTGlua0luZm8uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjZFNEQzNEYxNEJGMTE0NDAwRkQxNzIwIC8qIE51bWJlck9m
Q29yZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnMuY3BwCmluZGV4IDY4ZDEwYjcuLmY2NjBjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiT3B0aW9u
cy5oIgogCiAjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+
CiAjaW5jbHVkZSA8d3RmL1BhZ2VCbG9jay5oPgogCiAjaWYgT1MoREFSV0lOKSAmJiBFTkFCTEUo
UEFSQUxMRUxfR0MpCkBAIC0xNzQsMTIgKzE3NSw4IEBAIHZvaWQgaW5pdGlhbGl6ZU9wdGlvbnMo
KQogICAgIFNFVChvcGFxdWVSb290TWVyZ2VUaHJlc2hvbGQsICAgICAgICAgICAgIDEwMDApOwog
CiAgICAgaW50IGNwdXNUb1VzZSA9IDE7Ci0jaWYgT1MoREFSV0lOKSAmJiBFTkFCTEUoUEFSQUxM
RUxfR0MpCi0gICAgaW50IG5hbWVbMl07Ci0gICAgc2l6ZV90IHZhbHVlU2l6ZSA9IHNpemVvZihj
cHVzVG9Vc2UpOwotICAgIG5hbWVbMF0gPSBDVExfSFc7Ci0gICAgbmFtZVsxXSA9IEhXX0FWQUlM
Q1BVOwotICAgIHN5c2N0bChuYW1lLCAyLCAmY3B1c1RvVXNlLCAmdmFsdWVTaXplLCAwLCAwKTsK
KyNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCisgICAgY3B1c1RvVXNlID0gV1RGOjpudW1iZXJPZlBy
b2Nlc3NvckNvcmVzKCk7CiAjZW5kaWYKICAgICAvLyBXZSBkb24ndCBzY2FsZSBzbyB3ZWxsIGJl
eW9uZCA0LgogICAgIGlmIChjcHVzVG9Vc2UgPiA0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
Q01ha2VMaXN0cy50eHQKaW5kZXggNTJkM2UzYy4uYzIyYWU1MSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC01Myw2ICs1Myw3IEBAIFNFVChXVEZfSEVBREVS
UwogICAgIE5vbmNvcHlhYmxlLmgKICAgICBOb3RGb3VuZC5oCiAgICAgTnVsbFB0ci5oCisgICAg
TnVtYmVyT2ZDb3Jlcy5oCiAgICAgT1NBbGxvY2F0b3IuaAogICAgIE9TUmFuZG9tU291cmNlLmgK
ICAgICBPd25BcnJheVB0ci5oCkBAIC0xNDYsNiArMTQ3LDcgQEAgU0VUKFdURl9TT1VSQ0VTCiAg
ICAgTWFpblRocmVhZC5jcHAKICAgICBNRDUuY3BwCiAgICAgT1NSYW5kb21Tb3VyY2UuY3BwCisg
ICAgTnVtYmVyT2ZDb3Jlcy5jcHAKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwCiAgICAg
UGFnZUJsb2NrLmNwcAogICAgIFBhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcAppbmRleCA5MTUxMjY1Li40ZjNkNmE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKQEAgLTI0OSw0ICsyNDksMzggQEAg
Ym9vbCBpc01haW5UaHJlYWQoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFSQUxMRUxfR0Mp
CitzdGF0aWMgVGhyZWFkU3BlY2lmaWM8Ym9vbD4qIGlzR0NUaHJlYWQ7CisKK3ZvaWQgaW5pdGlh
bGl6ZUdDVGhyZWFkcygpCit7CisgICAgaXNHQ1RocmVhZCA9IG5ldyBUaHJlYWRTcGVjaWZpYzxi
b29sPigpOworfQorCit2b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKQoreworICAgIGlmICghaXNHQ1Ro
cmVhZCkgeworICAgICAgICAvLyBUaGlzIGhhcHBlbnMgaWYgd2UncmUgcnVubmluZyBpbiBhIHBy
b2Nlc3MgdGhhdCBkb2Vzbid0IGNhcmUgYWJvdXQKKyAgICAgICAgLy8gTWFpblRocmVhZC4KKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgICoqaXNHQ1RocmVhZCA9IHRydWU7Cit9CisKK2Jv
b2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpCit7CisgICAgaWYgKGlzR0NUaHJlYWQtPmlzU2V0
KCkgJiYgKippc0dDVGhyZWFkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBp
c01haW5UaHJlYWQoKTsKK30KKyNlbHNlCisvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIEph
dmFTY3JpcHRDb3JlLmV4cCBkb2Vzbid0IHN1cHBvcnQgcHJlcHJvY2Vzc29yIG1hY3Jvcy4KK2Jv
b2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpCit7CisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgp
OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L01haW5UaHJlYWQuaAppbmRleCBjMTUzZDFlLi4zM2RjZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL01haW5UaHJlYWQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3Jt
LmgiCiAKICNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMu
aD4KIAogbmFtZXNwYWNlIFdURiB7CiAKQEAgLTUzLDEyICs1NCwxMSBAQCB2b2lkIHNldE1haW5U
aHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCBwYXVzZWQpOwogCiBib29sIGlzTWFpblRocmVhZCgp
OwogI2lmIEVOQUJMRShQQVJBTExFTF9HQykKK3ZvaWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpOwog
dm9pZCByZWdpc3RlckdDVGhyZWFkKCk7CiBib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsK
LSNlbGlmIFBMQVRGT1JNKE1BQykKLWJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpOwogI2Vs
c2UKLWlubGluZSBib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKSB7IHJldHVybiBpc01haW5U
aHJlYWQoKTsgfQorYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7CiAjZW5kaWYKIAogLy8g
Tk9URTogdGhlc2UgZnVuY3Rpb25zIGFyZSBpbnRlcm5hbCB0byB0aGUgY2FsbE9uTWFpblRocmVh
ZCBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
TnVtYmVyT2ZDb3Jlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29y
ZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyYzBiODAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuY3Bw
CkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBv
ZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIk51bWJlck9mQ29yZXMuaCIKKworI2lmIE9TKERBUldJTikgfHwgT1MoT1BF
TkJTRCkgfHwgT1MoTkVUQlNEKQorI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyNpbmNsdWRlIDxz
eXMvdHlwZXMuaD4KKyNlbGlmIE9TKExJTlVYKSB8fCBPUyhBSVgpIHx8IE9TKFNPTEFSSVMpCisj
aW5jbHVkZSA8dW5pc3RkLmg+CisjZWxpZiBPUyhXSU5ET1dTKQorI2luY2x1ZGUgPFdpbmRvd3Mu
aD4KKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV1RG
IHsKKworaW50IG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKQoreworICAgIGNvbnN0IGludCBkZWZh
dWx0SWZVbmF2YWlsYWJsZSA9IDE7CisgICAgc3RhdGljIGludCBzX251bWJlck9mQ29yZXMgPSAt
MTsKKworICAgIGlmIChzX251bWJlck9mQ29yZXMgPiAwKQorICAgICAgICByZXR1cm4gc19udW1i
ZXJPZkNvcmVzOworCisjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0Qp
IHx8IE9TKEZSRUVCU0QpCisgICAgdW5zaWduZWQgcmVzdWx0OworICAgIHNpemVfdCBsZW5ndGgg
PSBzaXplb2YocmVzdWx0KTsKKyAgICBpbnQgbmFtZVtdID0geworICAgICAgICAgICAgQ1RMX0hX
LAorICAgICAgICAgICAgSFdfTkNQVQorICAgIH07CisgICAgaW50IHN5c2N0bFJlc3VsdCA9IHN5
c2N0bChuYW1lLCBzaXplb2YobmFtZSkgLyBzaXplb2YoaW50KSwgJnJlc3VsdCwgJmxlbmd0aCwg
MCwgMCk7CisKKyAgICBzX251bWJlck9mQ29yZXMgPSBzeXNjdGxSZXN1bHQgPCAwID8gZGVmYXVs
dElmVW5hdmFpbGFibGUgOiByZXN1bHQ7CisjZWxpZiBPUyhMSU5VWCkgfHwgT1MoQUlYKSB8fCBP
UyhTT0xBUklTKQorICAgIGxvbmcgc3lzY29uZlJlc3VsdCA9IHN5c2NvbmYoX1NDX05QUk9DRVNT
T1JTX09OTE4pOworCisgICAgc19udW1iZXJPZkNvcmVzID0gc3lzY29uZlJlc3VsdCA8IDAgPyBk
ZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0YXRpY19jYXN0PGludD4oc3lzY29uZlJlc3VsdCk7Cisj
ZWxpZiBPUyhXSU5ET1dTKQorICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0SWZVbmF2YWlsYWJsZSk7
CisgICAgU1lTVEVNX0lORk8gc3lzSW5mbzsKKyAgICBHZXRTeXN0ZW1JbmZvKCZzeXNJbmZvKTsK
KworICAgIHNfbnVtYmVyT2ZDb3JlcyA9IHN5c0luZm8uZHdOdW1iZXJPZlByb2Nlc3NvcnM7Cisj
ZWxzZQorICAgIHNfbnVtYmVyT2ZDb3JlcyA9IGRlZmF1bHRJZlVuYXZhaWxhYmxlOworI2VuZGlm
CisgICAgcmV0dXJuIHNfbnVtYmVyT2ZDb3JlczsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL051bWJlck9mQ29yZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li42NjBjN2U3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9O
dW1iZXJPZkNvcmVzLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYg
TnVtYmVyT2ZDb3Jlc19oCisjZGVmaW5lIE51bWJlck9mQ29yZXNfaAorCituYW1lc3BhY2UgV1RG
IHsKKworaW50IG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsKKworfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCmluZGV4
IGI2MjA3ZGMuLjA2ZTc5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAiUGFy
YWxsZWxKb2JzLmgiCiAjaW5jbHVkZSAiVW51c2VkUGFyYW0uaCIKKyNpbmNsdWRlIDx3dGYvTnVt
YmVyT2ZDb3Jlcy5oPgogCiAjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRC
U0QpCiAjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgpAQCAtNDUsMTkgKzQ2LDE2IEBAIG5hbWVzcGFj
ZSBXVEYgewogCiBWZWN0b3I8IFJlZlB0cjxQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2
YXRlPiA+KiBQYXJhbGxlbEVudmlyb25tZW50OjpzX3RocmVhZFBvb2wgPSAwOwogCi1pbnQgUGFy
YWxsZWxFbnZpcm9ubWVudDo6c19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IC0xOwotCiBQ
YXJhbGxlbEVudmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25tZW50KFRocmVhZEZ1bmN0aW9uIHRo
cmVhZEZ1bmN0aW9uLCBzaXplX3Qgc2l6ZU9mUGFyYW1ldGVyLCBpbnQgcmVxdWVzdGVkSm9iTnVt
YmVyKSA6CiAgICAgbV90aHJlYWRGdW5jdGlvbih0aHJlYWRGdW5jdGlvbiksCiAgICAgbV9zaXpl
T2ZQYXJhbWV0ZXIoc2l6ZU9mUGFyYW1ldGVyKQogewogICAgIEFTU0VSVF9BUkcocmVxdWVzdGVk
Sm9iTnVtYmVyLCByZXF1ZXN0ZWRKb2JOdW1iZXIgPj0gMSk7CiAKLSAgICBpZiAoc19tYXhOdW1i
ZXJPZlBhcmFsbGVsVGhyZWFkcyA9PSAtMSkKLSAgICAgICAgZGV0ZXJtaW5lTWF4TnVtYmVyT2ZQ
YXJhbGxlbFRocmVhZHMoKTsKKyAgICBpbnQgbWF4TnVtYmVyT2ZDb3JlcyA9IG51bWJlck9mUHJv
Y2Vzc29yQ29yZXMoKTsKIAotICAgIGlmICghcmVxdWVzdGVkSm9iTnVtYmVyIHx8IHJlcXVlc3Rl
ZEpvYk51bWJlciA+IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMpCi0gICAgICAgIHJlcXVl
c3RlZEpvYk51bWJlciA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzX21heE51bWJlck9mUGFyYWxs
ZWxUaHJlYWRzKTsKKyAgICBpZiAoIXJlcXVlc3RlZEpvYk51bWJlciB8fCByZXF1ZXN0ZWRKb2JO
dW1iZXIgPiBtYXhOdW1iZXJPZkNvcmVzKQorICAgICAgICByZXF1ZXN0ZWRKb2JOdW1iZXIgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4TnVtYmVyT2ZDb3Jlcyk7CiAKICAgICBpZiAoIXNfdGhy
ZWFkUG9vbCkKICAgICAgICAgc190aHJlYWRQb29sID0gbmV3IFZlY3RvcjwgUmVmUHRyPFRocmVh
ZFByaXZhdGU+ID4oKTsKQEAgLTY1LDcgKzYzLDcgQEAgUGFyYWxsZWxFbnZpcm9ubWVudDo6UGFy
YWxsZWxFbnZpcm9ubWVudChUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgc2l6ZV90IHMK
ICAgICAvLyBUaGUgbWFpbiB0aHJlYWQgc2hvdWxkIGJlIGFsc28gYSB3b3JrZXIuCiAgICAgaW50
IG1heE51bWJlck9mTmV3VGhyZWFkcyA9IHJlcXVlc3RlZEpvYk51bWJlciAtIDE7CiAKLSAgICBm
b3IgKGludCBpID0gMDsgaSA8IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgJiYgbV90aHJl
YWRzLnNpemUoKSA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZk5ld1RocmVhZHMp
OyArK2kpIHsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heE51bWJlck9mQ29yZXMgJiYgbV90
aHJlYWRzLnNpemUoKSA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZk5ld1RocmVh
ZHMpOyArK2kpIHsKICAgICAgICAgaWYgKHNfdGhyZWFkUG9vbC0+c2l6ZSgpIDwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGkpICsgMVUpCiAgICAgICAgICAgICBzX3RocmVhZFBvb2wtPmFwcGVuZChU
aHJlYWRQcml2YXRlOjpjcmVhdGUoKSk7CiAKQEAgLTkzLDMyICs5MSw2IEBAIHZvaWQgUGFyYWxs
ZWxFbnZpcm9ubWVudDo6ZXhlY3V0ZSh2b2lkKiBwYXJhbWV0ZXJzKQogICAgICAgICBtX3RocmVh
ZHNbaV0tPndhaXRGb3JGaW5pc2goKTsKIH0KIAotdm9pZCBQYXJhbGxlbEVudmlyb25tZW50Ojpk
ZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpCi17Ci0gICAgY29uc3QgaW50IGRl
ZmF1bHRJZlVuYXZhaWxhYmxlID0gMjsKLSNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5CU0QpIHx8
IE9TKE5FVEJTRCkKLSAgICB1bnNpZ25lZCByZXN1bHQ7Ci0gICAgc2l6ZV90IGxlbmd0aCA9IHNp
emVvZihyZXN1bHQpOwotICAgIGludCBuYW1lW10gPSB7Ci0gICAgICAgIENUTF9IVywKLSAgICAg
ICAgSFdfTkNQVQotICAgIH07Ci0gICAgaW50IHN5c2N0bFJlc3VsdCA9IHN5c2N0bChuYW1lLCBz
aXplb2YobmFtZSkgLyBzaXplb2YoaW50KSwgJnJlc3VsdCwgJmxlbmd0aCwgMCwgMCk7Ci0gICAg
c19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5c2N0bFJlc3VsdCA8IDAgPyBkZWZhdWx0
SWZVbmF2YWlsYWJsZSA6IHJlc3VsdDsKLSNlbGlmIE9TKExJTlVYKSB8fCBPUyhBSVgpIHx8IE9T
KFNPTEFSSVMpCi0gICAgbG9uZyBzeXNjb25mUmVzdWx0ID0gc3lzY29uZihfU0NfTlBST0NFU1NP
UlNfT05MTik7Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5c2NvbmZSZXN1
bHQgPCAwID8gZGVmYXVsdElmVW5hdmFpbGFibGUgOiBzdGF0aWNfY2FzdDxpbnQ+KHN5c2NvbmZS
ZXN1bHQpOwotI2VsaWYgT1MoV0lORE9XUykKLSAgICBVTlVTRURfUEFSQU0oZGVmYXVsdElmVW5h
dmFpbGFibGUpOwotCi0gICAgU1lTVEVNX0lORk8gc3lzSW5mbzsKLSAgICBHZXRTeXN0ZW1JbmZv
KCZzeXNJbmZvKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lzSW5mby5k
d051bWJlck9mUHJvY2Vzc29yczsKLSNlbHNlCi0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhy
ZWFkcyA9IGRlZmF1bHRJZlVuYXZhaWxhYmxlOwotI2VuZGlmCi19Ci0KIGJvb2wgUGFyYWxsZWxF
bnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6dHJ5TG9ja0ZvcihQYXJhbGxlbEVudmlyb25tZW50
KiBwYXJlbnQpCiB7CiAgICAgYm9vbCBsb2NrZWQgPSBtX211dGV4LnRyeUxvY2soKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKaW5kZXggZGFi
NmRkOS4uMWM3ZDYzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJh
bGxlbEpvYnNHZW5lcmljLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxl
bEpvYnNHZW5lcmljLmgKQEAgLTg0LDE1ICs4NCwxMiBAQCBwdWJsaWM6CiAgICAgfTsKIAogcHJp
dmF0ZToKLSAgICBzdGF0aWMgdm9pZCBkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFk
cygpOwotCiAgICAgVGhyZWFkRnVuY3Rpb24gbV90aHJlYWRGdW5jdGlvbjsKICAgICBzaXplX3Qg
bV9zaXplT2ZQYXJhbWV0ZXI7CiAgICAgaW50IG1fbnVtYmVyT2ZKb2JzOwogCiAgICAgVmVjdG9y
PCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiBtX3RocmVhZHM7CiAgICAgc3RhdGljIFZlY3Rvcjwg
UmVmUHRyPFRocmVhZFByaXZhdGU+ID4qIHNfdGhyZWFkUG9vbDsKLSAgICBzdGF0aWMgaW50IHNf
bWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCBiYjE0NjJlLi5mYjFmOTI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTE2LDcgKzExMTYsNyBAQAogI2Rl
ZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVO
QUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSkgJiYg
RU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisjaWYgIWRlZmluZWQoRU5BQkxFX1BBUkFMTEVMX0dD
KSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFFUKSkgJiYg
RU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAjZGVmaW5lIEVOQUJMRV9QQVJBTExFTF9HQyAxCiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRo
cmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMu
bW0KaW5kZXggZmJjNjI1MC4uZDVkNWI2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBAIC01OSwxNyArNTksNiBAQCBzdGF0aWMgYm9vbCBt
YWluVGhyZWFkRXN0YWJsaXNoZWRBc1B0aHJlYWRNYWluOwogc3RhdGljIHB0aHJlYWRfdCBtYWlu
VGhyZWFkUHRocmVhZDsKIHN0YXRpYyBOU1RocmVhZCogbWFpblRocmVhZE5TVGhyZWFkOwogCi0j
aWYgRU5BQkxFKFBBUkFMTEVMX0dDKQotc3RhdGljIFRocmVhZFNwZWNpZmljPGJvb2w+KiBpc0dD
VGhyZWFkOwotCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCkKLXsKLSAgICBpc0dD
VGhyZWFkID0gbmV3IFRocmVhZFNwZWNpZmljPGJvb2w+KCk7Ci19Ci0jZWxzZQotc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZUdDVGhyZWFkcygpIHsgfQotI2VuZGlmCi0KIHZvaWQgaW5pdGlhbGl6ZU1h
aW5UaHJlYWRQbGF0Zm9ybSgpCiB7CiAgICAgQVNTRVJUKCFzdGF0aWNNYWluVGhyZWFkQ2FsbGVy
KTsKQEAgLTE0NSwzMSArMTM0LDQgQEAgYm9vbCBpc01haW5UaHJlYWQoKQogICAgIHJldHVybiBw
dGhyZWFkX2VxdWFsKHB0aHJlYWRfc2VsZigpLCBtYWluVGhyZWFkUHRocmVhZCk7CiB9CiAKLSNp
ZiBFTkFCTEUoUEFSQUxMRUxfR0MpCi12b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKQotewotICAgIGlm
ICghaXNHQ1RocmVhZCkgewotICAgICAgICAvLyBUaGlzIGhhcHBlbnMgaWYgd2UncmUgcnVubmlu
ZyBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0IGNhcmUgYWJvdXQKLSAgICAgICAgLy8gTWFpblRo
cmVhZC4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgICoqaXNHQ1RocmVhZCA9IHRydWU7
Ci19Ci0KLWJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpCi17Ci0gICAgaWYgKGlzR0NUaHJl
YWQtPmlzU2V0KCkgJiYgKippc0dDVGhyZWFkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAK
LSAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Ci19Ci0jZWxzZQotLy8gVGhpcyBpcyBuZWNlc3Nh
cnkgYmVjYXVzZSBKYXZhU2NyaXB0Q29yZS5leHAgZG9lc24ndCBzdXBwb3J0IHByZXByb2Nlc3Nv
ciBtYWNyb3MuCi1ib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQotewotICAgIHJldHVybiBp
c01haW5UaHJlYWQoKTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnBybyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvd3RmLnBybwppbmRleCAyMzQzNDhmLi5jN2Y4NjAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5wcm8KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi93dGYucHJvCkBAIC04Nyw2ICs4Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIE5vbkNvcHlp
bmdTb3J0LmggXAogICAgIE5vdEZvdW5kLmggXAogICAgIE51bGxQdHIuaCBcCisgICAgTnVtYmVy
T2ZDb3Jlcy5oIFwKICAgICBPU0FsbG9jYXRvci5oIFwKICAgICBPU1JhbmRvbVNvdXJjZS5oIFwK
ICAgICBPd25BcnJheVB0ci5oIFwKQEAgLTE5Myw2ICsxOTQsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBNYWluVGhyZWFkLmNwcCBcCiAgICAgTWV0YUFsbG9jYXRvci5jcHAgXAogICAgIE51bGxQdHIu
Y3BwIFwKKyAgICBOdW1iZXJPZkNvcmVzLmNwcCBcCiAgICAgT1NSYW5kb21Tb3VyY2UuY3BwIFwK
ICAgICBxdC9NYWluVGhyZWFkUXQuY3BwIFwKICAgICBxdC9TdHJpbmdRdC5jcHAgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122403</attachid>
            <date>2012-01-13 02:35:42 -0800</date>
            <delta_ts>2012-01-17 00:35:39 -0800</delta_ts>
            <desc>Fixed the &apos;Patch does not apply&apos; problem</desc>
            <filename>jsc.diff</filename>
            <type>text/plain</type>
            <size>22606</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDY2ZDYwOTAuLjE5MGNhZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTAxLTEzICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIFR3byBmaWxlcyBoYWQgYmVl
biBhZGRlZCB0byB0aGUgcHJvamVjdCwgbmFtZWx5IE51bWJlck9mQ29yZXMuaC9jcHAsCisgICAg
ICAgIHRoYXQgaW5jbHVkZSBhIENQVSBjb3JlIG51bWJlciBkZXRlcm1pbmluZyBmdW5jdGlvbi4g
SXQgdXNlZCB0byBiZQorICAgICAgICBpbiBQYXJhbGxlbEpvYnNHZW5lcmljLmgvY3BwIGJlZm9y
ZS4KKworICAgICAgICBNZWFzdXJlbWVudCByZXN1bHRzOgorICAgICAgICBWOCAgICAgICAgICAg
c3BlZWQtdXA6ICAxLjA3MXggYXMgZmFzdCAgW0Zyb206IDc0Ni4xbXMgIFRvOiA2OTYuNG1zIF0K
KyAgICAgICAgV2luZFNjb3JwaW9uIHNwZWVkLXVwOiAgMS4wODJ4IGFzIGZhc3QgIFtGcm9tOiAz
NDkwLjRtcyBUbzogMzIyNi43bXNdCisgICAgICAgIFY4IFNwbGF5ICAgICBzcGVlZC11cDogIDEu
MTU4eCBhcyBmYXN0ICBbRnJvbTogMTQ1LjhtcyAgVG86IDEyNS45bXMgXQorCisgICAgICAgIFRl
c3RlZCBvbiBJbnRlbChSKSBDb3JlKFRNKSBpNS0yMzIwIENQVSBAIDMuMDBHSHogd2l0aCA0LWNv
cmUuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLmd5cGk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUub3JkZXI6CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qOgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcnVudGltZS9PcHRp
b25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6aW5pdGlhbGl6ZU9wdGlvbnMpOgorICAg
ICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5jcHA6
CisgICAgICAgIChXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKToKKyAgICAgICAgKFdURjo6cmVn
aXN0ZXJHQ1RocmVhZCk6CisgICAgICAgIChXVEY6OmlzTWFpblRocmVhZE9yR0NUaHJlYWQpOgor
ICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6CisgICAgICAgICogd3RmL051bWJlck9mQ29yZXMu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3Jlcyk6CisgICAg
ICAgICogd3RmL051bWJlck9mQ29yZXMuaDogQWRkZWQuCisgICAgICAgICogd3RmL1BhcmFsbGVs
Sm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25tZW50OjpQYXJh
bGxlbEVudmlyb25tZW50KToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oOgor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9tYWMvTWFpblRocmVhZE1h
Yy5tbToKKwogMjAxMi0wMS0xMiAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBKYXZhU2NyaXB0Q29yZTogTWFyayBhbGwgZXhwb3J0ZWQgc3ltYm9scyBp
biB0aGUgaGVhZGVyIGZpbGUgYXV0b21hdGljYWxseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYjJmZDFkNS4uYjQ0NjQ1NCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYxNyw2ICs2MTcsOCBAQCBqYXZhc2Ny
aXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL05vbkNvcHlp
bmdTb3J0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTm90Rm91bmQuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdWxsUHRyLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVt
YmVyT2ZDb3Jlcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TQWxsb2NhdG9yLmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuY3BwIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQppbmRleCA4NDcwODA5Li43NDYxZWViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQpAQCAtNTcxLDYgKzU3MSw4IEBA
CiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuY3BwJywKICAgICAgICAgICAgICd3dGYvTWFs
bG9jWm9uZVN1cHBvcnQuaCcsCiAgICAgICAgICAgICAnd3RmL051bGxQdHIuY3BwJywKKyAgICAg
ICAgICAgICd3dGYvTnVtYmVyT2ZDb3Jlcy5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9OdW1iZXJP
ZkNvcmVzLmgnLAogICAgICAgICAgICAgJ3d0Zi9PU0FsbG9jYXRvclBvc2l4LmNwcCcsCiAgICAg
ICAgICAgICAnd3RmL09TQWxsb2NhdG9yV2luLmNwcCcsCiAgICAgICAgICAgICAnd3RmL09TUmFu
ZG9tU291cmNlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUub3JkZXIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3Jk
ZXIKaW5kZXggM2NlZGE2NS4uNDY0MzA3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5vcmRlcgpAQCAtNDAsNiArNDAsNyBAQCBfX1pOM1dURjEwU3RyaW5nSW1wbDE5
Y3JlYXRlVW5pbml0aWFsaXplZEVqUlB0CiBfX1pOM1dURjVlcXVhbEVQS05TXzEwU3RyaW5nSW1w
bEVTMl8KIF9fWk4zV1RGMTBTdHJpbmdJbXBsNmNyZWF0ZUVQS3RqCiBfX1pOM1dURjEyaXNNYWlu
VGhyZWFkRXYKK19fWk4zV1RGMjJpc01haW5UaHJlYWRPckdDVGhyZWFkRXYKIF9fWk4zV1RGMTBT
dHJpbmdJbXBsRDFFdgogX19aTjNXVEYxMFN0cmluZ0ltcGxEMkV2CiBfX1pOM1dURjZTdHJpbmc2
bnVtYmVyRXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovV1RGL1dURi52Y3Byb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCmluZGV4IDZlODliMDEuLmY3MjY0NmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dU
Ri52Y3Byb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
ai9XVEYvV1RGLnZjcHJvagpAQCAtOTQ5LDYgKzk0OSwxNCBAQAogCQkJPgogCQk8L0ZpbGU+CiAJ
CTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxOdW1iZXJPZkNvcmVzLmNwcCIKKwkJ
CT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcTnVtYmVy
T2ZDb3Jlcy5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJCQlSZWxhdGl2ZVBhdGg9Ii4u
XC4uXHd0ZlxPU0FsbG9jYXRvcldpbi5jcHAiCiAJCQk+CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYjY3N2EyMy4uNGM1Njg0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTcyNiw2ICs3MjYsOCBAQAogCQlFNDlEQzE2RDEyRUYyOTUzMDAxODRB
MUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURDMTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQ
cm92aWRlckNhY2hlSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUU0RDhDRUZCMTJGQzQzOTYwMEJDOUY1QSAvKiBCbG9vbUZpbHRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTREOENFOUIxMkZD
NDJFMTAwQkM5RjVBIC8qIEJsb29tRmlsdGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjNCRDMxRUQxMjY3MzU3NzAwNjU0NjdGIC8qIFRleHRQ
b3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjNCRDMxRDAxMjY3MzAxODAwNjU0NjdGIC8qIFRleHRQb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUY2RTREMzRGMTRCRjExNDQwMEZE
MTcyMCAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY2RTREMzREMTRCRjExNDQwMEZEMTcyMCAvKiBOdW1iZXJPZkNvcmVz
LmNwcCAqLzsgfTsKKwkJRjZFNEQzNTAxNEJGMTE0NDAwRkQxNzIwIC8qIE51bWJlck9mQ29yZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2RTREMzRF
MTRCRjExNDQwMEZEMTcyMCAvKiBOdW1iZXJPZkNvcmVzLmggKi87IH07CiAJCUZEQTE1QzFFMTJC
MDMwNUMwMDNBNTgzQSAvKiBDb21wbGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGREExNUMxNjEyQjAzMDI4MDAzQTU4M0EgLyogQ29tcGxleC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFMUI0NDdB
MEVDQ0Q3M0IwMDRGNEREMSAvKiBTdGRMaWJFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMUI0NDc5MEVDQ0Q3M0IwMDRGNEREMSAvKiBTdGRM
aWJFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCkBAIC0xNTM1LDYgKzE1MzcsOCBAQAog
CQlGNjkyQTg4NTAyNTU1OTdEMDFGRjYwRjcgLyogVVN0cmluZy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVU3RyaW5nLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQlGNjkyQTg4NjAyNTU1OTdE
MDFGRjYwRjcgLyogVVN0cmluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBVU3RyaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgfTsKIAkJRjY5MkE4ODcwMjU1NTk3RDAxRkY2MEY3IC8qIEpTVmFsdWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNW
YWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJRjZF
NEQzNEQxNEJGMTE0NDAwRkQxNzIwIC8qIE51bWJlck9mQ29yZXMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTnVtYmVyT2ZDb3Jlcy5jcHA7IHBhdGggPSB3dGYvTnVt
YmVyT2ZDb3Jlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY2RTREMzRFMTRC
RjExNDQwMEZEMTcyMCAvKiBOdW1iZXJPZkNvcmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE51bWJlck9mQ29yZXMuaDsgcGF0aCA9IHd0Zi9OdW1iZXJPZkNvcmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZEQTE1QzE2MTJCMDMwMjgwMDNBNTgzQSAvKiBD
b21wbGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbXBsZXguaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUxQjQ0NzkwRUNDRDczQjAwNEY0REQxIC8qIFN0
ZExpYkV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGRMaWJFeHRy
YXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNl
IHNlY3Rpb24gKi8KQEAgLTE2MTUsNiArMTYxOSw4IEBACiAJCTA4NjdENjkxRkU4NDAyOEZDMDJB
QUMwNyAvKiBKYXZhU2NyaXB0Q29yZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJRjZFNEQzNEQxNEJGMTE0NDAwRkQxNzIwIC8qIE51bWJlck9mQ29yZXMu
Y3BwICovLAorCQkJCUY2RTREMzRFMTRCRjExNDQwMEZEMTcyMCAvKiBOdW1iZXJPZkNvcmVzLmgg
Ki8sCiAJCQkJODYwNEY0RjIxNDNBNkM0NDAwQjI5NUY1IC8qIENoYW5nZUxvZyAqLywKIAkJCQlB
NzE4RjgyMTExNzhFQjRCMDAyNDY1QTcgLyogY3JlYXRlX3JlZ2V4X3RhYmxlcyAqLywKIAkJCQk5
MzdCNjNDQzA5RTc2NkQyMDBBNjcxREQgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKQEAgLTMw
MjUsNiArMzAzMSw3IEBACiAJCQkJMEYwQjgzQjcxNEJDRjhFMTAwODg1QjRGIC8qIEdsb2JhbFJl
c29sdmVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjBCODNCOTE0QkNGOTVGMDA4ODVCNEYg
LyogQ2FsbFJldHVybk9mZnNldFRvQnl0ZWNvZGVPZmZzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMjFDMjY4MTRCRTVGNjgwMEFEQzY0QiAvKiBKSVREcml2ZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCUY2RTREMzUwMTRCRjExNDQwMEZEMTcyMCAvKiBOdW1iZXJPZkNvcmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTM1NjIsNiArMzU2OSw3IEBACiAJCQkJMEY0NjgwODMxNEJBNTczMTAwQkZFMjcy
IC8qIEpJVEV4Y2VwdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYwQjgzQjAxNEJDRjcx
NjAwODg1QjRGIC8qIENhbGxMaW5rSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjBCODNC
NDE0QkNGODYwMDA4ODVCNEYgLyogTWV0aG9kQ2FsbExpbmtJbmZvLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUY2RTREMzRGMTRCRjExNDQwMEZEMTcyMCAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRl
eCA2OGQxMGI3Li5mNjYwYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogI2luY2x1
ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0
Zi9QYWdlQmxvY2suaD4KIAogI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVMX0dDKQpA
QCAtMTc0LDEyICsxNzUsOCBAQCB2b2lkIGluaXRpYWxpemVPcHRpb25zKCkKICAgICBTRVQob3Bh
cXVlUm9vdE1lcmdlVGhyZXNob2xkLCAgICAgICAgICAgICAxMDAwKTsKIAogICAgIGludCBjcHVz
VG9Vc2UgPSAxOwotI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVMX0dDKQotICAgIGlu
dCBuYW1lWzJdOwotICAgIHNpemVfdCB2YWx1ZVNpemUgPSBzaXplb2YoY3B1c1RvVXNlKTsKLSAg
ICBuYW1lWzBdID0gQ1RMX0hXOwotICAgIG5hbWVbMV0gPSBIV19BVkFJTENQVTsKLSAgICBzeXNj
dGwobmFtZSwgMiwgJmNwdXNUb1VzZSwgJnZhbHVlU2l6ZSwgMCwgMCk7CisjaWYgRU5BQkxFKFBB
UkFMTEVMX0dDKQorICAgIGNwdXNUb1VzZSA9IFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3Jlcygp
OwogI2VuZGlmCiAgICAgLy8gV2UgZG9uJ3Qgc2NhbGUgc28gd2VsbCBiZXlvbmQgNC4KICAgICBp
ZiAoY3B1c1RvVXNlID4gNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0
CmluZGV4IDUyZDNlM2MuLmMyMmFlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFr
ZUxpc3RzLnR4dApAQCAtNTMsNiArNTMsNyBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBOb25jb3B5
YWJsZS5oCiAgICAgTm90Rm91bmQuaAogICAgIE51bGxQdHIuaAorICAgIE51bWJlck9mQ29yZXMu
aAogICAgIE9TQWxsb2NhdG9yLmgKICAgICBPU1JhbmRvbVNvdXJjZS5oCiAgICAgT3duQXJyYXlQ
dHIuaApAQCAtMTQ2LDYgKzE0Nyw3IEBAIFNFVChXVEZfU09VUkNFUwogICAgIE1haW5UaHJlYWQu
Y3BwCiAgICAgTUQ1LmNwcAogICAgIE9TUmFuZG9tU291cmNlLmNwcAorICAgIE51bWJlck9mQ29y
ZXMuY3BwCiAgICAgUGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcAogICAgIFBhZ2VCbG9jay5jcHAK
ICAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFp
blRocmVhZC5jcHAKaW5kZXggOTE1MTI2NS4uNGVjNTY4NiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL01haW5UaHJlYWQuY3BwCkBAIC04Nyw5ICs4Nyw3IEBAIHN0YXRpYyBGdW5jdGlvblF1
ZXVlJiBmdW5jdGlvblF1ZXVlKCkKICAgICByZXR1cm4gc3RhdGljRnVuY3Rpb25RdWV1ZTsKIH0K
IAotCiAjaWYgIVBMQVRGT1JNKE1BQykKLQogdm9pZCBpbml0aWFsaXplTWFpblRocmVhZCgpCiB7
CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWRNYWluVGhyZWFkOwpAQCAtMTAyLDkgKzEwMCw3
IEBAIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWQoKQogICAgIG1haW5UaHJlYWRGdW5jdGlvblF1
ZXVlTXV0ZXgoKTsKICAgICBpbml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKCk7CiB9Ci0KICNl
bHNlCi0KIHN0YXRpYyBwdGhyZWFkX29uY2VfdCBpbml0aWFsaXplTWFpblRocmVhZEtleU9uY2Ug
PSBQVEhSRUFEX09OQ0VfSU5JVDsKIAogc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRP
bmNlKCkKQEAgLTI0OSw0ICsyNDUsMzMgQEAgYm9vbCBpc01haW5UaHJlYWQoKQogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCitzdGF0aWMgVGhyZWFkU3BlY2lmaWM8Ym9vbD4q
IGlzR0NUaHJlYWQ7CisKK3ZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpCit7CisgICAgaWYgKCFpc0dD
VGhyZWFkKSB7CisgICAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGluIGEg
cHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBhYm91dAorICAgICAgICAvLyBNYWluVGhyZWFkLgor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgKippc0dDVGhyZWFkID0gdHJ1ZTsKK30KKwor
Ym9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKK3sKKyAgICBpZiAoaXNHQ1RocmVhZC0+aXNT
ZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJu
IGlzTWFpblRocmVhZCgpOworfQorI2Vsc2UKKy8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ug
SmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgor
Ym9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKK3sKKyAgICByZXR1cm4gaXNNYWluVGhyZWFk
KCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvTWFpblRocmVhZC5oCmluZGV4IGZmNzZhNWYuLjRkOGExNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvTWFpblRocmVhZC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGxhdGZv
cm0uaCIKIAogI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZp
Yy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtNTIsMTMgKzUzLDEwIEBAIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGNhbGxPbk1haW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCAoKT4mKTsK
IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQoYm9v
bCBwYXVzZWQpOwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc01haW5UaHJlYWQoKTsKK1dU
Rl9FWFBPUlRfUFJJVkFURSBib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsKKwogI2lmIEVO
QUJMRShQQVJBTExFTF9HQykKIHZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpOwotV1RGX0VYUE9SVF9Q
UklWQVRFIGJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpOwotI2VsaWYgUExBVEZPUk0oTUFD
KQotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7Ci0jZWxzZQotaW5saW5lIGJvb2wgaXNN
YWluVGhyZWFkT3JHQ1RocmVhZCgpIHsgcmV0dXJuIGlzTWFpblRocmVhZCgpOyB9CiAjZW5kaWYK
IAogLy8gTk9URTogdGhlc2UgZnVuY3Rpb25zIGFyZSBpbnRlcm5hbCB0byB0aGUgY2FsbE9uTWFp
blRocmVhZCBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJl
ck9mQ29yZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyYzBiODAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29y
ZXMuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVy
c2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk51bWJlck9mQ29yZXMuaCIKKworI2lmIE9TKERBUldJTikgfHwg
T1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQorI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyNpbmNs
dWRlIDxzeXMvdHlwZXMuaD4KKyNlbGlmIE9TKExJTlVYKSB8fCBPUyhBSVgpIHx8IE9TKFNPTEFS
SVMpCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZWxpZiBPUyhXSU5ET1dTKQorI2luY2x1ZGUgPFdp
bmRvd3MuaD4KKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KKyNlbmRpZgorCituYW1lc3Bh
Y2UgV1RGIHsKKworaW50IG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKQoreworICAgIGNvbnN0IGlu
dCBkZWZhdWx0SWZVbmF2YWlsYWJsZSA9IDE7CisgICAgc3RhdGljIGludCBzX251bWJlck9mQ29y
ZXMgPSAtMTsKKworICAgIGlmIChzX251bWJlck9mQ29yZXMgPiAwKQorICAgICAgICByZXR1cm4g
c19udW1iZXJPZkNvcmVzOworCisjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhO
RVRCU0QpIHx8IE9TKEZSRUVCU0QpCisgICAgdW5zaWduZWQgcmVzdWx0OworICAgIHNpemVfdCBs
ZW5ndGggPSBzaXplb2YocmVzdWx0KTsKKyAgICBpbnQgbmFtZVtdID0geworICAgICAgICAgICAg
Q1RMX0hXLAorICAgICAgICAgICAgSFdfTkNQVQorICAgIH07CisgICAgaW50IHN5c2N0bFJlc3Vs
dCA9IHN5c2N0bChuYW1lLCBzaXplb2YobmFtZSkgLyBzaXplb2YoaW50KSwgJnJlc3VsdCwgJmxl
bmd0aCwgMCwgMCk7CisKKyAgICBzX251bWJlck9mQ29yZXMgPSBzeXNjdGxSZXN1bHQgPCAwID8g
ZGVmYXVsdElmVW5hdmFpbGFibGUgOiByZXN1bHQ7CisjZWxpZiBPUyhMSU5VWCkgfHwgT1MoQUlY
KSB8fCBPUyhTT0xBUklTKQorICAgIGxvbmcgc3lzY29uZlJlc3VsdCA9IHN5c2NvbmYoX1NDX05Q
Uk9DRVNTT1JTX09OTE4pOworCisgICAgc19udW1iZXJPZkNvcmVzID0gc3lzY29uZlJlc3VsdCA8
IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0YXRpY19jYXN0PGludD4oc3lzY29uZlJlc3Vs
dCk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0SWZVbmF2YWls
YWJsZSk7CisgICAgU1lTVEVNX0lORk8gc3lzSW5mbzsKKyAgICBHZXRTeXN0ZW1JbmZvKCZzeXNJ
bmZvKTsKKworICAgIHNfbnVtYmVyT2ZDb3JlcyA9IHN5c0luZm8uZHdOdW1iZXJPZlByb2Nlc3Nv
cnM7CisjZWxzZQorICAgIHNfbnVtYmVyT2ZDb3JlcyA9IGRlZmF1bHRJZlVuYXZhaWxhYmxlOwor
I2VuZGlmCisgICAgcmV0dXJuIHNfbnVtYmVyT2ZDb3JlczsKK30KKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42NjBjN2U3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9OdW1iZXJPZkNvcmVzLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNp
Zm5kZWYgTnVtYmVyT2ZDb3Jlc19oCisjZGVmaW5lIE51bWJlck9mQ29yZXNfaAorCituYW1lc3Bh
Y2UgV1RGIHsKKworaW50IG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJp
Yy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3Bw
CmluZGV4IGI2MjA3ZGMuLjA2ZTc5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVk
ZSAiUGFyYWxsZWxKb2JzLmgiCiAjaW5jbHVkZSAiVW51c2VkUGFyYW0uaCIKKyNpbmNsdWRlIDx3
dGYvTnVtYmVyT2ZDb3Jlcy5oPgogCiAjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBP
UyhORVRCU0QpCiAjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgpAQCAtNDUsMTkgKzQ2LDE2IEBAIG5h
bWVzcGFjZSBXVEYgewogCiBWZWN0b3I8IFJlZlB0cjxQYXJhbGxlbEVudmlyb25tZW50OjpUaHJl
YWRQcml2YXRlPiA+KiBQYXJhbGxlbEVudmlyb25tZW50OjpzX3RocmVhZFBvb2wgPSAwOwogCi1p
bnQgUGFyYWxsZWxFbnZpcm9ubWVudDo6c19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IC0x
OwotCiBQYXJhbGxlbEVudmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25tZW50KFRocmVhZEZ1bmN0
aW9uIHRocmVhZEZ1bmN0aW9uLCBzaXplX3Qgc2l6ZU9mUGFyYW1ldGVyLCBpbnQgcmVxdWVzdGVk
Sm9iTnVtYmVyKSA6CiAgICAgbV90aHJlYWRGdW5jdGlvbih0aHJlYWRGdW5jdGlvbiksCiAgICAg
bV9zaXplT2ZQYXJhbWV0ZXIoc2l6ZU9mUGFyYW1ldGVyKQogewogICAgIEFTU0VSVF9BUkcocmVx
dWVzdGVkSm9iTnVtYmVyLCByZXF1ZXN0ZWRKb2JOdW1iZXIgPj0gMSk7CiAKLSAgICBpZiAoc19t
YXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9PSAtMSkKLSAgICAgICAgZGV0ZXJtaW5lTWF4TnVt
YmVyT2ZQYXJhbGxlbFRocmVhZHMoKTsKKyAgICBpbnQgbWF4TnVtYmVyT2ZDb3JlcyA9IG51bWJl
ck9mUHJvY2Vzc29yQ29yZXMoKTsKIAotICAgIGlmICghcmVxdWVzdGVkSm9iTnVtYmVyIHx8IHJl
cXVlc3RlZEpvYk51bWJlciA+IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMpCi0gICAgICAg
IHJlcXVlc3RlZEpvYk51bWJlciA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzX21heE51bWJlck9m
UGFyYWxsZWxUaHJlYWRzKTsKKyAgICBpZiAoIXJlcXVlc3RlZEpvYk51bWJlciB8fCByZXF1ZXN0
ZWRKb2JOdW1iZXIgPiBtYXhOdW1iZXJPZkNvcmVzKQorICAgICAgICByZXF1ZXN0ZWRKb2JOdW1i
ZXIgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4TnVtYmVyT2ZDb3Jlcyk7CiAKICAgICBpZiAo
IXNfdGhyZWFkUG9vbCkKICAgICAgICAgc190aHJlYWRQb29sID0gbmV3IFZlY3RvcjwgUmVmUHRy
PFRocmVhZFByaXZhdGU+ID4oKTsKQEAgLTY1LDcgKzYzLDcgQEAgUGFyYWxsZWxFbnZpcm9ubWVu
dDo6UGFyYWxsZWxFbnZpcm9ubWVudChUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgc2l6
ZV90IHMKICAgICAvLyBUaGUgbWFpbiB0aHJlYWQgc2hvdWxkIGJlIGFsc28gYSB3b3JrZXIuCiAg
ICAgaW50IG1heE51bWJlck9mTmV3VGhyZWFkcyA9IHJlcXVlc3RlZEpvYk51bWJlciAtIDE7CiAK
LSAgICBmb3IgKGludCBpID0gMDsgaSA8IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgJiYg
bV90aHJlYWRzLnNpemUoKSA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZk5ld1Ro
cmVhZHMpOyArK2kpIHsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heE51bWJlck9mQ29yZXMg
JiYgbV90aHJlYWRzLnNpemUoKSA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZk5l
d1RocmVhZHMpOyArK2kpIHsKICAgICAgICAgaWYgKHNfdGhyZWFkUG9vbC0+c2l6ZSgpIDwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGkpICsgMVUpCiAgICAgICAgICAgICBzX3RocmVhZFBvb2wtPmFw
cGVuZChUaHJlYWRQcml2YXRlOjpjcmVhdGUoKSk7CiAKQEAgLTkzLDMyICs5MSw2IEBAIHZvaWQg
UGFyYWxsZWxFbnZpcm9ubWVudDo6ZXhlY3V0ZSh2b2lkKiBwYXJhbWV0ZXJzKQogICAgICAgICBt
X3RocmVhZHNbaV0tPndhaXRGb3JGaW5pc2goKTsKIH0KIAotdm9pZCBQYXJhbGxlbEVudmlyb25t
ZW50OjpkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpCi17Ci0gICAgY29uc3Qg
aW50IGRlZmF1bHRJZlVuYXZhaWxhYmxlID0gMjsKLSNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5C
U0QpIHx8IE9TKE5FVEJTRCkKLSAgICB1bnNpZ25lZCByZXN1bHQ7Ci0gICAgc2l6ZV90IGxlbmd0
aCA9IHNpemVvZihyZXN1bHQpOwotICAgIGludCBuYW1lW10gPSB7Ci0gICAgICAgIENUTF9IVywK
LSAgICAgICAgSFdfTkNQVQotICAgIH07Ci0gICAgaW50IHN5c2N0bFJlc3VsdCA9IHN5c2N0bChu
YW1lLCBzaXplb2YobmFtZSkgLyBzaXplb2YoaW50KSwgJnJlc3VsdCwgJmxlbmd0aCwgMCwgMCk7
Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5c2N0bFJlc3VsdCA8IDAgPyBk
ZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHJlc3VsdDsKLSNlbGlmIE9TKExJTlVYKSB8fCBPUyhBSVgp
IHx8IE9TKFNPTEFSSVMpCi0gICAgbG9uZyBzeXNjb25mUmVzdWx0ID0gc3lzY29uZihfU0NfTlBS
T0NFU1NPUlNfT05MTik7Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5c2Nv
bmZSZXN1bHQgPCAwID8gZGVmYXVsdElmVW5hdmFpbGFibGUgOiBzdGF0aWNfY2FzdDxpbnQ+KHN5
c2NvbmZSZXN1bHQpOwotI2VsaWYgT1MoV0lORE9XUykKLSAgICBVTlVTRURfUEFSQU0oZGVmYXVs
dElmVW5hdmFpbGFibGUpOwotCi0gICAgU1lTVEVNX0lORk8gc3lzSW5mbzsKLSAgICBHZXRTeXN0
ZW1JbmZvKCZzeXNJbmZvKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lz
SW5mby5kd051bWJlck9mUHJvY2Vzc29yczsKLSNlbHNlCi0gICAgc19tYXhOdW1iZXJPZlBhcmFs
bGVsVGhyZWFkcyA9IGRlZmF1bHRJZlVuYXZhaWxhYmxlOwotI2VuZGlmCi19Ci0KIGJvb2wgUGFy
YWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6dHJ5TG9ja0ZvcihQYXJhbGxlbEVudmly
b25tZW50KiBwYXJlbnQpCiB7CiAgICAgYm9vbCBsb2NrZWQgPSBtX211dGV4LnRyeUxvY2soKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJp
Yy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKaW5k
ZXggZGFiNmRkOS4uMWM3ZDYzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmgKQEAgLTg0LDE1ICs4NCwxMiBAQCBwdWJsaWM6CiAgICAgfTsK
IAogcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVs
VGhyZWFkcygpOwotCiAgICAgVGhyZWFkRnVuY3Rpb24gbV90aHJlYWRGdW5jdGlvbjsKICAgICBz
aXplX3QgbV9zaXplT2ZQYXJhbWV0ZXI7CiAgICAgaW50IG1fbnVtYmVyT2ZKb2JzOwogCiAgICAg
VmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiBtX3RocmVhZHM7CiAgICAgc3RhdGljIFZl
Y3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4qIHNfdGhyZWFkUG9vbDsKLSAgICBzdGF0aWMg
aW50IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCAyNTEyYWMzLi4yOGUwZGUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTE4LDcgKzExMTgsNyBA
QAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAjZW5kaWYKIAotI2lmICFkZWZp
bmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9T
KSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisjaWYgIWRlZmluZWQoRU5BQkxFX1BBUkFM
TEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFFU
KSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAjZGVmaW5lIEVOQUJMRV9QQVJBTExFTF9H
QyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMv
TWFpblRocmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJl
YWRNYWMubW0KaW5kZXggZmJjNjI1MC4uZWU1N2ZlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBAIC0xNDUsMzEgKzE0NSw0IEBAIGJvb2wg
aXNNYWluVGhyZWFkKCkKICAgICByZXR1cm4gcHRocmVhZF9lcXVhbChwdGhyZWFkX3NlbGYoKSwg
bWFpblRocmVhZFB0aHJlYWQpOwogfQogCi0jaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQotdm9pZCBy
ZWdpc3RlckdDVGhyZWFkKCkKLXsKLSAgICBpZiAoIWlzR0NUaHJlYWQpIHsKLSAgICAgICAgLy8g
VGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBwcm9jZXNzIHRoYXQgZG9lc24ndCBj
YXJlIGFib3V0Ci0gICAgICAgIC8vIE1haW5UaHJlYWQuCi0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOwotfQotCi1ib29sIGlzTWFpblRocmVhZE9yR0NU
aHJlYWQoKQotewotICAgIGlmIChpc0dDVGhyZWFkLT5pc1NldCgpICYmICoqaXNHQ1RocmVhZCkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOwot
fQotI2Vsc2UKLS8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhw
IGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgotYm9vbCBpc01haW5UaHJlYWRP
ckdDVGhyZWFkKCkKLXsKLSAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Ci19Ci0jZW5kaWYKLQog
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIyMTU0NzUuLjNlYzIxMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTItMDEtMTMgIFJvbGFuZCBUYWthY3MgIDx0YWthY3Mucm9sYW5kQHN0dWQudS1z
emVnZWQuaHU+CisKKyAgICAgICAgW1F0XSBHQyBzaG91bGQgYmUgcGFyYWxsZWwgb24gUXQgcGxh
dGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcz
MzA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHdv
IGZpbGVzIGhhZCBiZWVuIGFkZGVkIHRvIHRoZSBwcm9qZWN0IGZpbGUsIG5hbWVseSBOdW1iZXJP
ZkNvcmVzLmgvY3BwLCB0aGF0CisgICAgICAgIGluY2x1ZGUgYSBDUFUgY29yZSBudW1iZXIgZGV0
ZXJtaW5pbmcgZnVuY3Rpb24uIEl0IHVzZWQgdG8gYmUgaW4KKyAgICAgICAgUGFyYWxsZWxKb2Jz
R2VuZXJpYy5oL2NwcCBiZWZvcmUuCisKKyAgICAgICAgKiBXVEYucHJvOgorCiAyMDEyLTAxLTEy
ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBN
YWtlIHRoZSBuZXcgV1RGIG1vZHVsZSBidWlsZCBvbiBRdApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IGZjMWIwMjAuLmQ0YzUwNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAg
LTgyLDYgKzgyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgTm9uQ29weWluZ1NvcnQuaCBcCiAgICAg
Tm90Rm91bmQuaCBcCiAgICAgTnVsbFB0ci5oIFwKKyAgICBOdW1iZXJPZkNvcmVzLmggXAogICAg
IE9TQWxsb2NhdG9yLmggXAogICAgIE9TUmFuZG9tU291cmNlLmggXAogICAgIE93bkFycmF5UHRy
LmggXApAQCAtMTg3LDYgKzE4OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIE1haW5UaHJlYWQuY3Bw
IFwKICAgICBNZXRhQWxsb2NhdG9yLmNwcCBcCiAgICAgTnVsbFB0ci5jcHAgXAorICAgIE51bWJl
ck9mQ29yZXMuY3BwIFwKICAgICBPU1JhbmRvbVNvdXJjZS5jcHAgXAogICAgIHF0L01haW5UaHJl
YWRRdC5jcHAgXAogICAgIHF0L1N0cmluZ1F0LmNwcCBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122728</attachid>
            <date>2012-01-17 00:35:39 -0800</date>
            <delta_ts>2012-01-17 02:30:06 -0800</delta_ts>
            <desc>There is some change in xproj and NumberOfCores files</desc>
            <filename>__gc.diff</filename>
            <type>text/plain</type>
            <size>22846</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGRmOGZiMTMuLjY0YzcyOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTAxLTE3ICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIFR3byBmaWxlcyBoYWQgYmVl
biBhZGRlZCB0byB0aGUgcHJvamVjdCwgbmFtZWx5IE51bWJlck9mQ29yZXMuaC9jcHAsCisgICAg
ICAgIHRoYXQgaW5jbHVkZSBhIENQVSBjb3JlIG51bWJlciBkZXRlcm1pbmluZyBmdW5jdGlvbi4g
SXQgdXNlZCB0byBiZQorICAgICAgICBpbiBQYXJhbGxlbEpvYnNHZW5lcmljLmgvY3BwIGJlZm9y
ZS4KKworICAgICAgICBNZWFzdXJlbWVudCByZXN1bHRzOgorICAgICAgICBWOCAgICAgICAgICAg
c3BlZWQtdXA6ICAxLjA3MXggYXMgZmFzdCAgW0Zyb206IDc0Ni4xbXMgIFRvOiA2OTYuNG1zIF0K
KyAgICAgICAgV2luZFNjb3JwaW9uIHNwZWVkLXVwOiAgMS4wODJ4IGFzIGZhc3QgIFtGcm9tOiAz
NDkwLjRtcyBUbzogMzIyNi43bXNdCisgICAgICAgIFY4IFNwbGF5ICAgICBzcGVlZC11cDogIDEu
MTU4eCBhcyBmYXN0ICBbRnJvbTogMTQ1LjhtcyAgVG86IDEyNS45bXMgXQorCisgICAgICAgIFRl
c3RlZCBvbiBJbnRlbChSKSBDb3JlKFRNKSBpNS0yMzIwIENQVSBAIDMuMDBHSHogd2l0aCA0LWNv
cmUuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLmd5cGk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUub3JkZXI6CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qOgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcnVudGltZS9PcHRp
b25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6aW5pdGlhbGl6ZU9wdGlvbnMpOgorICAg
ICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5jcHA6
CisgICAgICAgIChXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKToKKyAgICAgICAgKFdURjo6cmVn
aXN0ZXJHQ1RocmVhZCk6CisgICAgICAgIChXVEY6OmlzTWFpblRocmVhZE9yR0NUaHJlYWQpOgor
ICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6CisgICAgICAgICogd3RmL051bWJlck9mQ29yZXMu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3Jlcyk6CisgICAg
ICAgICogd3RmL051bWJlck9mQ29yZXMuaDogQWRkZWQuCisgICAgICAgICogd3RmL1BhcmFsbGVs
Sm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25tZW50OjpQYXJh
bGxlbEVudmlyb25tZW50KToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oOgor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9tYWMvTWFpblRocmVhZE1h
Yy5tbToKKwogMjAxMi0wMS0xNiAgUGF2ZWwgSGVpbWxpY2ggIDx0cm9waWtoYWptYUBnbWFpbC5j
b20+CiAKICAgICAgICAgU29sYXJpcyBTdHVkaW8gc3VwcG9ydHMgYWxpZ25tZW50IG1hY3JvcyB0
b28KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMTkwNDE3
YS4uNTEwNDY4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTYxOCw2ICs2MTgsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL05vbkNvcHlpbmdTb3J0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvTm90Rm91bmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdWxsUHRy
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgXAorCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL09TQWxsb2NhdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
T1NSYW5kb21Tb3VyY2UuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9t
U291cmNlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmd5cGkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQppbmRl
eCBjOTM2NzkxLi4xZGJiZjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZ3lwaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZ3lwaQpAQCAtNTcxLDYgKzU3MSw4IEBACiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQu
Y3BwJywKICAgICAgICAgICAgICd3dGYvTWFsbG9jWm9uZVN1cHBvcnQuaCcsCiAgICAgICAgICAg
ICAnd3RmL051bGxQdHIuY3BwJywKKyAgICAgICAgICAgICd3dGYvTnVtYmVyT2ZDb3Jlcy5jcHAn
LAorICAgICAgICAgICAgJ3d0Zi9OdW1iZXJPZkNvcmVzLmgnLAogICAgICAgICAgICAgJ3d0Zi9P
U0FsbG9jYXRvclBvc2l4LmNwcCcsCiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yV2luLmNw
cCcsCiAgICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmNwcCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKaW5kZXggM2NlZGE2NS4uNDY0MzA3OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgpAQCAtNDAsNiArNDAs
NyBAQCBfX1pOM1dURjEwU3RyaW5nSW1wbDE5Y3JlYXRlVW5pbml0aWFsaXplZEVqUlB0CiBfX1pO
M1dURjVlcXVhbEVQS05TXzEwU3RyaW5nSW1wbEVTMl8KIF9fWk4zV1RGMTBTdHJpbmdJbXBsNmNy
ZWF0ZUVQS3RqCiBfX1pOM1dURjEyaXNNYWluVGhyZWFkRXYKK19fWk4zV1RGMjJpc01haW5UaHJl
YWRPckdDVGhyZWFkRXYKIF9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdgogX19aTjNXVEYxMFN0cmlu
Z0ltcGxEMkV2CiBfX1pOM1dURjZTdHJpbmc2bnVtYmVyRXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2ogYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCmlu
ZGV4IDZlODliMDEuLmY3MjY0NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagpAQCAtOTQ5LDYgKzk0
OSwxNCBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4u
XHd0ZlxOdW1iZXJPZkNvcmVzLmNwcCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlx3dGZcTnVtYmVyT2ZDb3Jlcy5oIgorCQkJPgorCQk8L0ZpbGU+CisJ
CTxGaWxlCiAJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxPU0FsbG9jYXRvcldpbi5jcHAiCiAJ
CQk+CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGI1M2NjMi4u
OWNlNWFiZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTczMCw2ICs3MzAsOCBA
QAogCQlFNDlEQzE2RDEyRUYyOTUzMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURDMTQ5
MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0RDhDRUZCMTJGQzQzOTYw
MEJDOUY1QSAvKiBCbG9vbUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTREOENFOUIxMkZDNDJFMTAwQkM5RjVBIC8qIEJsb29tRmlsdGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjNCRDMx
RUQxMjY3MzU3NzAwNjU0NjdGIC8qIFRleHRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNCRDMxRDAxMjY3MzAxODAwNjU0NjdGIC8qIFRl
eHRQb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUY2NkVCODU4MTRDNDdCRjMwMDk5MDQxNiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2NkVCODU2MTRDNDdC
RjMwMDk5MDQxNiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAqLzsgfTsKKwkJRjY2RUI4NTkxNEM0N0JG
MzAwOTkwNDE2IC8qIE51bWJlck9mQ29yZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY2NkVCODU3MTRDNDdCRjMwMDk5MDQxNiAvKiBOdW1iZXJPZkNv
cmVzLmggKi87IH07CiAJCUZEQTE1QzFFMTJCMDMwNUMwMDNBNTgzQSAvKiBDb21wbGV4LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREExNUMxNjEyQjAz
MDI4MDAzQTU4M0EgLyogQ29tcGxleC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUZFMUI0NDdBMEVDQ0Q3M0IwMDRGNEREMSAvKiBTdGRMaWJFeHRy
YXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMUI0
NDc5MEVDQ0Q3M0IwMDRGNEREMSAvKiBTdGRMaWJFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9u
ICovCkBAIC0xNTA5LDYgKzE1MTEsOCBAQAogCQlGM0JEMzFEMDEyNjczMDE4MDA2NTQ2N0YgLyog
VGV4dFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRleHRQb3Np
dGlvbi5oOyBwYXRoID0gdGV4dC9UZXh0UG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjVCQjJCQzUwMzBGNzcyMTAxRkNGRTFEIC8qIENvbXBsZXRpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGxldGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCUY1QzI5MEU2MDI4
NEY5OEUwMTg2MzVDQSAvKiBKYXZhU2NyaXB0Q29yZVByZWZpeC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q29yZVByZWZpeC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCUY2NkVCODU2MTRD
NDdCRjMwMDk5MDQxNiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IE51bWJlck9mQ29yZXMuY3BwOyBwYXRoID0gd3RmL051bWJlck9mQ29y
ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNjZFQjg1NzE0QzQ3QkYzMDA5
OTA0MTYgLyogTnVtYmVyT2ZDb3Jlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBOdW1iZXJPZkNvcmVzLmg7IHBhdGggPSB3dGYvTnVtYmVyT2ZDb3Jlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNjhFQkI4QzAyNTVENEM2MDFGRjYwRjcgLyogY29uZmlnLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZp
Zy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCUY2OTJBODRE
MDI1NTU5N0QwMUZGNjBGNyAvKiBBcnJheVByb3RvdHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcnJheVByb3RvdHlwZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJRjY5MkE4NEUwMjU1
NTk3RDAxRkY2MEY3IC8qIEFycmF5UHJvdG90eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5UHJvdG90eXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKQEAgLTE2MjAsNiArMTYyNCw4IEBACiAJCTA4
NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBKYXZhU2NyaXB0Q29yZSAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRjY2RUI4NTYxNEM0N0JGMzAwOTkwNDE2
IC8qIE51bWJlck9mQ29yZXMuY3BwICovLAorCQkJCUY2NkVCODU3MTRDNDdCRjMwMDk5MDQxNiAv
KiBOdW1iZXJPZkNvcmVzLmggKi8sCiAJCQkJODYwNEY0RjIxNDNBNkM0NDAwQjI5NUY1IC8qIENo
YW5nZUxvZyAqLywKIAkJCQlBNzE4RjgyMTExNzhFQjRCMDAyNDY1QTcgLyogY3JlYXRlX3JlZ2V4
X3RhYmxlcyAqLywKIAkJCQk5MzdCNjNDQzA5RTc2NkQyMDBBNjcxREQgLyogRGVyaXZlZFNvdXJj
ZXMubWFrZSAqLywKQEAgLTMwMzUsNiArMzA0MSw3IEBACiAJCQkJMEY3QjI5NEIxNEMzQ0QyRjAw
N0MzREIxIC8qIERGR0NhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3QjI5NEMx
NEMzQ0Q0MzAwN0MzREIxIC8qIERGR0J5dGVDb2RlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGN0IyOTREMTRDM0NENEMwMDdDM0RCMSAvKiBERkdDb21tb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCUY2NkVCODU5MTRDNDdCRjMwMDk5MDQxNiAvKiBOdW1iZXJPZkNvcmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTM1NzIsNiArMzU3OSw3IEBACiAJCQkJMEY0NjgwODMxNEJBNTczMTAwQkZFMjcy
IC8qIEpJVEV4Y2VwdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYwQjgzQjAxNEJDRjcx
NjAwODg1QjRGIC8qIENhbGxMaW5rSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjBCODNC
NDE0QkNGODYwMDA4ODVCNEYgLyogTWV0aG9kQ2FsbExpbmtJbmZvLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUY2NkVCODU4MTRDNDdCRjMwMDk5MDQxNiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRl
eCA2OGQxMGI3Li5mNjYwYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogI2luY2x1
ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0
Zi9QYWdlQmxvY2suaD4KIAogI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVMX0dDKQpA
QCAtMTc0LDEyICsxNzUsOCBAQCB2b2lkIGluaXRpYWxpemVPcHRpb25zKCkKICAgICBTRVQob3Bh
cXVlUm9vdE1lcmdlVGhyZXNob2xkLCAgICAgICAgICAgICAxMDAwKTsKIAogICAgIGludCBjcHVz
VG9Vc2UgPSAxOwotI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVMX0dDKQotICAgIGlu
dCBuYW1lWzJdOwotICAgIHNpemVfdCB2YWx1ZVNpemUgPSBzaXplb2YoY3B1c1RvVXNlKTsKLSAg
ICBuYW1lWzBdID0gQ1RMX0hXOwotICAgIG5hbWVbMV0gPSBIV19BVkFJTENQVTsKLSAgICBzeXNj
dGwobmFtZSwgMiwgJmNwdXNUb1VzZSwgJnZhbHVlU2l6ZSwgMCwgMCk7CisjaWYgRU5BQkxFKFBB
UkFMTEVMX0dDKQorICAgIGNwdXNUb1VzZSA9IFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3Jlcygp
OwogI2VuZGlmCiAgICAgLy8gV2UgZG9uJ3Qgc2NhbGUgc28gd2VsbCBiZXlvbmQgNC4KICAgICBp
ZiAoY3B1c1RvVXNlID4gNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0
CmluZGV4IDUyZDNlM2MuLmMyMmFlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFr
ZUxpc3RzLnR4dApAQCAtNTMsNiArNTMsNyBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBOb25jb3B5
YWJsZS5oCiAgICAgTm90Rm91bmQuaAogICAgIE51bGxQdHIuaAorICAgIE51bWJlck9mQ29yZXMu
aAogICAgIE9TQWxsb2NhdG9yLmgKICAgICBPU1JhbmRvbVNvdXJjZS5oCiAgICAgT3duQXJyYXlQ
dHIuaApAQCAtMTQ2LDYgKzE0Nyw3IEBAIFNFVChXVEZfU09VUkNFUwogICAgIE1haW5UaHJlYWQu
Y3BwCiAgICAgTUQ1LmNwcAogICAgIE9TUmFuZG9tU291cmNlLmNwcAorICAgIE51bWJlck9mQ29y
ZXMuY3BwCiAgICAgUGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcAogICAgIFBhZ2VCbG9jay5jcHAK
ICAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFp
blRocmVhZC5jcHAKaW5kZXggOTE1MTI2NS4uNGVjNTY4NiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL01haW5UaHJlYWQuY3BwCkBAIC04Nyw5ICs4Nyw3IEBAIHN0YXRpYyBGdW5jdGlvblF1
ZXVlJiBmdW5jdGlvblF1ZXVlKCkKICAgICByZXR1cm4gc3RhdGljRnVuY3Rpb25RdWV1ZTsKIH0K
IAotCiAjaWYgIVBMQVRGT1JNKE1BQykKLQogdm9pZCBpbml0aWFsaXplTWFpblRocmVhZCgpCiB7
CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWRNYWluVGhyZWFkOwpAQCAtMTAyLDkgKzEwMCw3
IEBAIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWQoKQogICAgIG1haW5UaHJlYWRGdW5jdGlvblF1
ZXVlTXV0ZXgoKTsKICAgICBpbml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKCk7CiB9Ci0KICNl
bHNlCi0KIHN0YXRpYyBwdGhyZWFkX29uY2VfdCBpbml0aWFsaXplTWFpblRocmVhZEtleU9uY2Ug
PSBQVEhSRUFEX09OQ0VfSU5JVDsKIAogc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRP
bmNlKCkKQEAgLTI0OSw0ICsyNDUsMzMgQEAgYm9vbCBpc01haW5UaHJlYWQoKQogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCitzdGF0aWMgVGhyZWFkU3BlY2lmaWM8Ym9vbD4q
IGlzR0NUaHJlYWQ7CisKK3ZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpCit7CisgICAgaWYgKCFpc0dD
VGhyZWFkKSB7CisgICAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGluIGEg
cHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBhYm91dAorICAgICAgICAvLyBNYWluVGhyZWFkLgor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgKippc0dDVGhyZWFkID0gdHJ1ZTsKK30KKwor
Ym9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKK3sKKyAgICBpZiAoaXNHQ1RocmVhZC0+aXNT
ZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJu
IGlzTWFpblRocmVhZCgpOworfQorI2Vsc2UKKy8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ug
SmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgor
Ym9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKK3sKKyAgICByZXR1cm4gaXNNYWluVGhyZWFk
KCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvTWFpblRocmVhZC5oCmluZGV4IGZmNzZhNWYuLjRkOGExNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvTWFpblRocmVhZC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGxhdGZv
cm0uaCIKIAogI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZp
Yy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtNTIsMTMgKzUzLDEwIEBAIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGNhbGxPbk1haW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCAoKT4mKTsK
IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQoYm9v
bCBwYXVzZWQpOwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc01haW5UaHJlYWQoKTsKK1dU
Rl9FWFBPUlRfUFJJVkFURSBib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsKKwogI2lmIEVO
QUJMRShQQVJBTExFTF9HQykKIHZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpOwotV1RGX0VYUE9SVF9Q
UklWQVRFIGJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpOwotI2VsaWYgUExBVEZPUk0oTUFD
KQotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7Ci0jZWxzZQotaW5saW5lIGJvb2wgaXNN
YWluVGhyZWFkT3JHQ1RocmVhZCgpIHsgcmV0dXJuIGlzTWFpblRocmVhZCgpOyB9CiAjZW5kaWYK
IAogLy8gTk9URTogdGhlc2UgZnVuY3Rpb25zIGFyZSBpbnRlcm5hbCB0byB0aGUgY2FsbE9uTWFp
blRocmVhZCBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJl
ck9mQ29yZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyYzBiODAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29y
ZXMuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgVW5pdmVy
c2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk51bWJlck9mQ29yZXMuaCIKKworI2lmIE9TKERBUldJTikgfHwg
T1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQorI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyNpbmNs
dWRlIDxzeXMvdHlwZXMuaD4KKyNlbGlmIE9TKExJTlVYKSB8fCBPUyhBSVgpIHx8IE9TKFNPTEFS
SVMpCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZWxpZiBPUyhXSU5ET1dTKQorI2luY2x1ZGUgPFdp
bmRvd3MuaD4KKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KKyNlbmRpZgorCituYW1lc3Bh
Y2UgV1RGIHsKKworaW50IG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKQoreworICAgIGNvbnN0IGlu
dCBkZWZhdWx0SWZVbmF2YWlsYWJsZSA9IDE7CisgICAgc3RhdGljIGludCBzX251bWJlck9mQ29y
ZXMgPSAtMTsKKworICAgIGlmIChzX251bWJlck9mQ29yZXMgPiAwKQorICAgICAgICByZXR1cm4g
c19udW1iZXJPZkNvcmVzOworCisjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhO
RVRCU0QpIHx8IE9TKEZSRUVCU0QpCisgICAgdW5zaWduZWQgcmVzdWx0OworICAgIHNpemVfdCBs
ZW5ndGggPSBzaXplb2YocmVzdWx0KTsKKyAgICBpbnQgbmFtZVtdID0geworICAgICAgICAgICAg
Q1RMX0hXLAorICAgICAgICAgICAgSFdfTkNQVQorICAgIH07CisgICAgaW50IHN5c2N0bFJlc3Vs
dCA9IHN5c2N0bChuYW1lLCBzaXplb2YobmFtZSkgLyBzaXplb2YoaW50KSwgJnJlc3VsdCwgJmxl
bmd0aCwgMCwgMCk7CisKKyAgICBzX251bWJlck9mQ29yZXMgPSBzeXNjdGxSZXN1bHQgPCAwID8g
ZGVmYXVsdElmVW5hdmFpbGFibGUgOiByZXN1bHQ7CisjZWxpZiBPUyhMSU5VWCkgfHwgT1MoQUlY
KSB8fCBPUyhTT0xBUklTKQorICAgIGxvbmcgc3lzY29uZlJlc3VsdCA9IHN5c2NvbmYoX1NDX05Q
Uk9DRVNTT1JTX09OTE4pOworCisgICAgc19udW1iZXJPZkNvcmVzID0gc3lzY29uZlJlc3VsdCA8
IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0YXRpY19jYXN0PGludD4oc3lzY29uZlJlc3Vs
dCk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0SWZVbmF2YWls
YWJsZSk7CisgICAgU1lTVEVNX0lORk8gc3lzSW5mbzsKKyAgICBHZXRTeXN0ZW1JbmZvKCZzeXNJ
bmZvKTsKKworICAgIHNfbnVtYmVyT2ZDb3JlcyA9IHN5c0luZm8uZHdOdW1iZXJPZlByb2Nlc3Nv
cnM7CisjZWxzZQorICAgIHNfbnVtYmVyT2ZDb3JlcyA9IGRlZmF1bHRJZlVuYXZhaWxhYmxlOwor
I2VuZGlmCisgICAgcmV0dXJuIHNfbnVtYmVyT2ZDb3JlczsKK30KKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42NjBjN2U3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9OdW1iZXJPZkNvcmVzLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNp
Zm5kZWYgTnVtYmVyT2ZDb3Jlc19oCisjZGVmaW5lIE51bWJlck9mQ29yZXNfaAorCituYW1lc3Bh
Y2UgV1RGIHsKKworaW50IG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJp
Yy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3Bw
CmluZGV4IGI2MjA3ZGMuLjA2ZTc5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVk
ZSAiUGFyYWxsZWxKb2JzLmgiCiAjaW5jbHVkZSAiVW51c2VkUGFyYW0uaCIKKyNpbmNsdWRlIDx3
dGYvTnVtYmVyT2ZDb3Jlcy5oPgogCiAjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBP
UyhORVRCU0QpCiAjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgpAQCAtNDUsMTkgKzQ2LDE2IEBAIG5h
bWVzcGFjZSBXVEYgewogCiBWZWN0b3I8IFJlZlB0cjxQYXJhbGxlbEVudmlyb25tZW50OjpUaHJl
YWRQcml2YXRlPiA+KiBQYXJhbGxlbEVudmlyb25tZW50OjpzX3RocmVhZFBvb2wgPSAwOwogCi1p
bnQgUGFyYWxsZWxFbnZpcm9ubWVudDo6c19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IC0x
OwotCiBQYXJhbGxlbEVudmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25tZW50KFRocmVhZEZ1bmN0
aW9uIHRocmVhZEZ1bmN0aW9uLCBzaXplX3Qgc2l6ZU9mUGFyYW1ldGVyLCBpbnQgcmVxdWVzdGVk
Sm9iTnVtYmVyKSA6CiAgICAgbV90aHJlYWRGdW5jdGlvbih0aHJlYWRGdW5jdGlvbiksCiAgICAg
bV9zaXplT2ZQYXJhbWV0ZXIoc2l6ZU9mUGFyYW1ldGVyKQogewogICAgIEFTU0VSVF9BUkcocmVx
dWVzdGVkSm9iTnVtYmVyLCByZXF1ZXN0ZWRKb2JOdW1iZXIgPj0gMSk7CiAKLSAgICBpZiAoc19t
YXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9PSAtMSkKLSAgICAgICAgZGV0ZXJtaW5lTWF4TnVt
YmVyT2ZQYXJhbGxlbFRocmVhZHMoKTsKKyAgICBpbnQgbWF4TnVtYmVyT2ZDb3JlcyA9IG51bWJl
ck9mUHJvY2Vzc29yQ29yZXMoKTsKIAotICAgIGlmICghcmVxdWVzdGVkSm9iTnVtYmVyIHx8IHJl
cXVlc3RlZEpvYk51bWJlciA+IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMpCi0gICAgICAg
IHJlcXVlc3RlZEpvYk51bWJlciA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzX21heE51bWJlck9m
UGFyYWxsZWxUaHJlYWRzKTsKKyAgICBpZiAoIXJlcXVlc3RlZEpvYk51bWJlciB8fCByZXF1ZXN0
ZWRKb2JOdW1iZXIgPiBtYXhOdW1iZXJPZkNvcmVzKQorICAgICAgICByZXF1ZXN0ZWRKb2JOdW1i
ZXIgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4TnVtYmVyT2ZDb3Jlcyk7CiAKICAgICBpZiAo
IXNfdGhyZWFkUG9vbCkKICAgICAgICAgc190aHJlYWRQb29sID0gbmV3IFZlY3RvcjwgUmVmUHRy
PFRocmVhZFByaXZhdGU+ID4oKTsKQEAgLTY1LDcgKzYzLDcgQEAgUGFyYWxsZWxFbnZpcm9ubWVu
dDo6UGFyYWxsZWxFbnZpcm9ubWVudChUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgc2l6
ZV90IHMKICAgICAvLyBUaGUgbWFpbiB0aHJlYWQgc2hvdWxkIGJlIGFsc28gYSB3b3JrZXIuCiAg
ICAgaW50IG1heE51bWJlck9mTmV3VGhyZWFkcyA9IHJlcXVlc3RlZEpvYk51bWJlciAtIDE7CiAK
LSAgICBmb3IgKGludCBpID0gMDsgaSA8IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgJiYg
bV90aHJlYWRzLnNpemUoKSA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZk5ld1Ro
cmVhZHMpOyArK2kpIHsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heE51bWJlck9mQ29yZXMg
JiYgbV90aHJlYWRzLnNpemUoKSA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZk5l
d1RocmVhZHMpOyArK2kpIHsKICAgICAgICAgaWYgKHNfdGhyZWFkUG9vbC0+c2l6ZSgpIDwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGkpICsgMVUpCiAgICAgICAgICAgICBzX3RocmVhZFBvb2wtPmFw
cGVuZChUaHJlYWRQcml2YXRlOjpjcmVhdGUoKSk7CiAKQEAgLTkzLDMyICs5MSw2IEBAIHZvaWQg
UGFyYWxsZWxFbnZpcm9ubWVudDo6ZXhlY3V0ZSh2b2lkKiBwYXJhbWV0ZXJzKQogICAgICAgICBt
X3RocmVhZHNbaV0tPndhaXRGb3JGaW5pc2goKTsKIH0KIAotdm9pZCBQYXJhbGxlbEVudmlyb25t
ZW50OjpkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpCi17Ci0gICAgY29uc3Qg
aW50IGRlZmF1bHRJZlVuYXZhaWxhYmxlID0gMjsKLSNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5C
U0QpIHx8IE9TKE5FVEJTRCkKLSAgICB1bnNpZ25lZCByZXN1bHQ7Ci0gICAgc2l6ZV90IGxlbmd0
aCA9IHNpemVvZihyZXN1bHQpOwotICAgIGludCBuYW1lW10gPSB7Ci0gICAgICAgIENUTF9IVywK
LSAgICAgICAgSFdfTkNQVQotICAgIH07Ci0gICAgaW50IHN5c2N0bFJlc3VsdCA9IHN5c2N0bChu
YW1lLCBzaXplb2YobmFtZSkgLyBzaXplb2YoaW50KSwgJnJlc3VsdCwgJmxlbmd0aCwgMCwgMCk7
Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5c2N0bFJlc3VsdCA8IDAgPyBk
ZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHJlc3VsdDsKLSNlbGlmIE9TKExJTlVYKSB8fCBPUyhBSVgp
IHx8IE9TKFNPTEFSSVMpCi0gICAgbG9uZyBzeXNjb25mUmVzdWx0ID0gc3lzY29uZihfU0NfTlBS
T0NFU1NPUlNfT05MTik7Ci0gICAgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyA9IHN5c2Nv
bmZSZXN1bHQgPCAwID8gZGVmYXVsdElmVW5hdmFpbGFibGUgOiBzdGF0aWNfY2FzdDxpbnQ+KHN5
c2NvbmZSZXN1bHQpOwotI2VsaWYgT1MoV0lORE9XUykKLSAgICBVTlVTRURfUEFSQU0oZGVmYXVs
dElmVW5hdmFpbGFibGUpOwotCi0gICAgU1lTVEVNX0lORk8gc3lzSW5mbzsKLSAgICBHZXRTeXN0
ZW1JbmZvKCZzeXNJbmZvKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lz
SW5mby5kd051bWJlck9mUHJvY2Vzc29yczsKLSNlbHNlCi0gICAgc19tYXhOdW1iZXJPZlBhcmFs
bGVsVGhyZWFkcyA9IGRlZmF1bHRJZlVuYXZhaWxhYmxlOwotI2VuZGlmCi19Ci0KIGJvb2wgUGFy
YWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6dHJ5TG9ja0ZvcihQYXJhbGxlbEVudmly
b25tZW50KiBwYXJlbnQpCiB7CiAgICAgYm9vbCBsb2NrZWQgPSBtX211dGV4LnRyeUxvY2soKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJp
Yy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKaW5k
ZXggZGFiNmRkOS4uMWM3ZDYzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmgKQEAgLTg0LDE1ICs4NCwxMiBAQCBwdWJsaWM6CiAgICAgfTsK
IAogcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVs
VGhyZWFkcygpOwotCiAgICAgVGhyZWFkRnVuY3Rpb24gbV90aHJlYWRGdW5jdGlvbjsKICAgICBz
aXplX3QgbV9zaXplT2ZQYXJhbWV0ZXI7CiAgICAgaW50IG1fbnVtYmVyT2ZKb2JzOwogCiAgICAg
VmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiBtX3RocmVhZHM7CiAgICAgc3RhdGljIFZl
Y3RvcjwgUmVmUHRyPFRocmVhZFByaXZhdGU+ID4qIHNfdGhyZWFkUG9vbDsKLSAgICBzdGF0aWMg
aW50IHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCAxNzBkOGMwLi41NjUwNzdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTIyLDcgKzExMjIsNyBA
QAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAjZW5kaWYKIAotI2lmICFkZWZp
bmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9T
KSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisjaWYgIWRlZmluZWQoRU5BQkxFX1BBUkFM
TEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFFU
KSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAjZGVmaW5lIEVOQUJMRV9QQVJBTExFTF9H
QyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMv
TWFpblRocmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJl
YWRNYWMubW0KaW5kZXggZmJjNjI1MC4uZWU1N2ZlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBAIC0xNDUsMzEgKzE0NSw0IEBAIGJvb2wg
aXNNYWluVGhyZWFkKCkKICAgICByZXR1cm4gcHRocmVhZF9lcXVhbChwdGhyZWFkX3NlbGYoKSwg
bWFpblRocmVhZFB0aHJlYWQpOwogfQogCi0jaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQotdm9pZCBy
ZWdpc3RlckdDVGhyZWFkKCkKLXsKLSAgICBpZiAoIWlzR0NUaHJlYWQpIHsKLSAgICAgICAgLy8g
VGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBwcm9jZXNzIHRoYXQgZG9lc24ndCBj
YXJlIGFib3V0Ci0gICAgICAgIC8vIE1haW5UaHJlYWQuCi0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOwotfQotCi1ib29sIGlzTWFpblRocmVhZE9yR0NU
aHJlYWQoKQotewotICAgIGlmIChpc0dDVGhyZWFkLT5pc1NldCgpICYmICoqaXNHQ1RocmVhZCkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOwot
fQotI2Vsc2UKLS8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhw
IGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgotYm9vbCBpc01haW5UaHJlYWRP
ckdDVGhyZWFkKCkKLXsKLSAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Ci19Ci0jZW5kaWYKLQog
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE0MjFhY2IuLjA5YWZlMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTItMDEtMTcgIFJvbGFuZCBUYWthY3MgIDx0YWthY3Mucm9sYW5kQHN0dWQudS1z
emVnZWQuaHU+CisKKyAgICAgICAgW1F0XSBHQyBzaG91bGQgYmUgcGFyYWxsZWwgb24gUXQgcGxh
dGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcz
MzA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHdv
IGZpbGVzIGhhZCBiZWVuIGFkZGVkIHRvIHRoZSBwcm9qZWN0LCBuYW1lbHkgTnVtYmVyT2ZDb3Jl
cy5oL2NwcCwKKyAgICAgICAgdGhhdCBpbmNsdWRlIGEgQ1BVIGNvcmUgbnVtYmVyIGRldGVybWlu
aW5nIGZ1bmN0aW9uLiBJdCB1c2VkIHRvIGJlCisgICAgICAgIGluIFBhcmFsbGVsSm9ic0dlbmVy
aWMuaC9jcHAgYmVmb3JlLgorCisgICAgICAgICogV1RGLnBybzoKKwogMjAxMi0wMS0xMyAgQWxl
eGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkIGJ1aWxkIGZpeCBmb3IgUXQgU25vd0xlb3BhcmQgYnVpbGQgYm90LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IGZjMWIwMjAu
LmQ0YzUwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RG
L1dURi5wcm8KQEAgLTgyLDYgKzgyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgTm9uQ29weWluZ1Nv
cnQuaCBcCiAgICAgTm90Rm91bmQuaCBcCiAgICAgTnVsbFB0ci5oIFwKKyAgICBOdW1iZXJPZkNv
cmVzLmggXAogICAgIE9TQWxsb2NhdG9yLmggXAogICAgIE9TUmFuZG9tU291cmNlLmggXAogICAg
IE93bkFycmF5UHRyLmggXApAQCAtMTg3LDYgKzE4OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIE1h
aW5UaHJlYWQuY3BwIFwKICAgICBNZXRhQWxsb2NhdG9yLmNwcCBcCiAgICAgTnVsbFB0ci5jcHAg
XAorICAgIE51bWJlck9mQ29yZXMuY3BwIFwKICAgICBPU1JhbmRvbVNvdXJjZS5jcHAgXAogICAg
IHF0L01haW5UaHJlYWRRdC5jcHAgXAogICAgIHF0L1N0cmluZ1F0LmNwcCBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122739</attachid>
            <date>2012-01-17 02:30:06 -0800</date>
            <delta_ts>2012-01-20 05:34:30 -0800</delta_ts>
            <desc>fixed the unresolved external symbol problem on Windows platform</desc>
            <filename>win_gc.diff</filename>
            <type>text/plain</type>
            <size>23637</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGRmOGZiMTMuLjY0YzcyOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTAxLTE3ICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIFR3byBmaWxlcyBoYWQgYmVl
biBhZGRlZCB0byB0aGUgcHJvamVjdCwgbmFtZWx5IE51bWJlck9mQ29yZXMuaC9jcHAsCisgICAg
ICAgIHRoYXQgaW5jbHVkZSBhIENQVSBjb3JlIG51bWJlciBkZXRlcm1pbmluZyBmdW5jdGlvbi4g
SXQgdXNlZCB0byBiZQorICAgICAgICBpbiBQYXJhbGxlbEpvYnNHZW5lcmljLmgvY3BwIGJlZm9y
ZS4KKworICAgICAgICBNZWFzdXJlbWVudCByZXN1bHRzOgorICAgICAgICBWOCAgICAgICAgICAg
c3BlZWQtdXA6ICAxLjA3MXggYXMgZmFzdCAgW0Zyb206IDc0Ni4xbXMgIFRvOiA2OTYuNG1zIF0K
KyAgICAgICAgV2luZFNjb3JwaW9uIHNwZWVkLXVwOiAgMS4wODJ4IGFzIGZhc3QgIFtGcm9tOiAz
NDkwLjRtcyBUbzogMzIyNi43bXNdCisgICAgICAgIFY4IFNwbGF5ICAgICBzcGVlZC11cDogIDEu
MTU4eCBhcyBmYXN0ICBbRnJvbTogMTQ1LjhtcyAgVG86IDEyNS45bXMgXQorCisgICAgICAgIFRl
c3RlZCBvbiBJbnRlbChSKSBDb3JlKFRNKSBpNS0yMzIwIENQVSBAIDMuMDBHSHogd2l0aCA0LWNv
cmUuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLmd5cGk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUub3JkZXI6CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qOgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcnVudGltZS9PcHRp
b25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6aW5pdGlhbGl6ZU9wdGlvbnMpOgorICAg
ICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5jcHA6
CisgICAgICAgIChXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKToKKyAgICAgICAgKFdURjo6cmVn
aXN0ZXJHQ1RocmVhZCk6CisgICAgICAgIChXVEY6OmlzTWFpblRocmVhZE9yR0NUaHJlYWQpOgor
ICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6CisgICAgICAgICogd3RmL051bWJlck9mQ29yZXMu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3Jlcyk6CisgICAg
ICAgICogd3RmL051bWJlck9mQ29yZXMuaDogQWRkZWQuCisgICAgICAgICogd3RmL1BhcmFsbGVs
Sm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25tZW50OjpQYXJh
bGxlbEVudmlyb25tZW50KToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oOgor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9tYWMvTWFpblRocmVhZE1h
Yy5tbToKKwogMjAxMi0wMS0xNiAgUGF2ZWwgSGVpbWxpY2ggIDx0cm9waWtoYWptYUBnbWFpbC5j
b20+CiAKICAgICAgICAgU29sYXJpcyBTdHVkaW8gc3VwcG9ydHMgYWxpZ25tZW50IG1hY3JvcyB0
b28KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMTkwNDE3
YS4uNTEwNDY4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTYxOCw2ICs2MTgsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL05vbkNvcHlpbmdTb3J0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvTm90Rm91bmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdWxsUHRy
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgXAorCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL09TQWxsb2NhdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
T1NSYW5kb21Tb3VyY2UuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9t
U291cmNlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmd5cGkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQppbmRl
eCBjOTM2NzkxLi4xZGJiZjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZ3lwaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZ3lwaQpAQCAtNTcxLDYgKzU3MSw4IEBACiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQu
Y3BwJywKICAgICAgICAgICAgICd3dGYvTWFsbG9jWm9uZVN1cHBvcnQuaCcsCiAgICAgICAgICAg
ICAnd3RmL051bGxQdHIuY3BwJywKKyAgICAgICAgICAgICd3dGYvTnVtYmVyT2ZDb3Jlcy5jcHAn
LAorICAgICAgICAgICAgJ3d0Zi9OdW1iZXJPZkNvcmVzLmgnLAogICAgICAgICAgICAgJ3d0Zi9P
U0FsbG9jYXRvclBvc2l4LmNwcCcsCiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yV2luLmNw
cCcsCiAgICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmNwcCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKaW5kZXggM2NlZGE2NS4uNDY0MzA3OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgpAQCAtNDAsNiArNDAs
NyBAQCBfX1pOM1dURjEwU3RyaW5nSW1wbDE5Y3JlYXRlVW5pbml0aWFsaXplZEVqUlB0CiBfX1pO
M1dURjVlcXVhbEVQS05TXzEwU3RyaW5nSW1wbEVTMl8KIF9fWk4zV1RGMTBTdHJpbmdJbXBsNmNy
ZWF0ZUVQS3RqCiBfX1pOM1dURjEyaXNNYWluVGhyZWFkRXYKK19fWk4zV1RGMjJpc01haW5UaHJl
YWRPckdDVGhyZWFkRXYKIF9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdgogX19aTjNXVEYxMFN0cmlu
Z0ltcGxEMkV2CiBfX1pOM1dURjZTdHJpbmc2bnVtYmVyRXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
ai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKaW5kZXggNjY5NDE3Ny4uMTg4M2Iz
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
ai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5kZWYKQEAgLTIzMiw2ICsyMzIsNyBAQCBFWFBPUlRTCiAgICAgP2lzRGF0YURlc2NyaXB0b3JA
UHJvcGVydHlEZXNjcmlwdG9yQEpTQ0BAUUJFX05YWgogICAgID9pc0hvc3RGdW5jdGlvbk5vbklu
bGluZUBKU0Z1bmN0aW9uQEpTQ0BAQUJFX05YWgogICAgID9pc01haW5UaHJlYWRAV1RGQEBZQV9O
WFoKKyAgICA/aXNNYWluVGhyZWFkT3JHQ1RocmVhZEBXVEZAQFlBX05YWgogICAgID9pc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290c0BXZWFrSGFuZGxlT3duZXJASlNDQEBVQUVfTlY/JEhhbmRsZUBX
NFVua25vd25ASlNDQEBAMkBQQVhBQVZTbG90VmlzaXRvckAyQEBaCiAgICAgP2lzVGVybWluYXRl
ZEV4ZWN1dGlvbkV4Y2VwdGlvbkBKU0NAQFlBX05WSlNWYWx1ZUAxQEBaCiAgICAgP2lzVmFsaWRB
bGxvY2F0aW9uQEhlYXBASlNDQEBBQUVfTklAWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvaiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKaW5kZXggNmU4
OWIwMS4uZjcyNjQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCkBAIC05NDksNiArOTQ5LDE0IEBA
CiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXE51
bWJlck9mQ29yZXMuY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBh
dGg9Ii4uXC4uXHd0ZlxOdW1iZXJPZkNvcmVzLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUK
IAkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXE9TQWxsb2NhdG9yV2luLmNwcCIKIAkJCT4KIAkJ
PC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4YjUzY2MyLi45Y2U1YWJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzMwLDYgKzczMCw4IEBACiAJCUU0
OURDMTZEMTJFRjI5NTMwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5REMxNDkxMkVGMjYx
QTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTREOENFRkIxMkZDNDM5NjAwQkM5RjVB
IC8qIEJsb29tRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNEQ4Q0U5QjEyRkM0MkUxMDBCQzlGNUEgLyogQmxvb21GaWx0ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGM0JEMzFFRDEyNjcz
NTc3MDA2NTQ2N0YgLyogVGV4dFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGM0JEMzFEMDEyNjczMDE4MDA2NTQ2N0YgLyogVGV4dFBvc2l0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
RjY2RUI4NTgxNEM0N0JGMzAwOTkwNDE2IC8qIE51bWJlck9mQ29yZXMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY2RUI4NTYxNEM0N0JGMzAwOTkw
NDE2IC8qIE51bWJlck9mQ29yZXMuY3BwICovOyB9OworCQlGNjZFQjg1OTE0QzQ3QkYzMDA5OTA0
MTYgLyogTnVtYmVyT2ZDb3Jlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjY2RUI4NTcxNEM0N0JGMzAwOTkwNDE2IC8qIE51bWJlck9mQ29yZXMuaCAq
LzsgfTsKIAkJRkRBMTVDMUUxMkIwMzA1QzAwM0E1ODNBIC8qIENvbXBsZXguaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQTE1QzE2MTJCMDMwMjgwMDNB
NTgzQSAvKiBDb21wbGV4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRkUxQjQ0N0EwRUNDRDczQjAwNEY0REQxIC8qIFN0ZExpYkV4dHJhcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUxQjQ0NzkwRUND
RDczQjAwNEY0REQxIC8qIFN0ZExpYkV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KQEAg
LTE1MDksNiArMTUxMSw4IEBACiAJCUYzQkQzMUQwMTI2NzMwMTgwMDY1NDY3RiAvKiBUZXh0UG9z
aXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4dFBvc2l0aW9uLmg7
IHBhdGggPSB0ZXh0L1RleHRQb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNUJCMkJDNTAzMEY3NzIxMDFGQ0ZFMUQgLyogQ29tcGxldGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wbGV0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJRjVDMjkwRTYwMjg0Rjk4RTAx
ODYzNUNBIC8qIEphdmFTY3JpcHRDb3JlUHJlZml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHRDb3JlUHJlZml4Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJRjY2RUI4NTYxNEM0N0JGMzAw
OTkwNDE2IC8qIE51bWJlck9mQ29yZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gTnVtYmVyT2ZDb3Jlcy5jcHA7IHBhdGggPSB3dGYvTnVtYmVyT2ZDb3Jlcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY2NkVCODU3MTRDNDdCRjMwMDk5MDQxNiAv
KiBOdW1iZXJPZkNvcmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE51bWJl
ck9mQ29yZXMuaDsgcGF0aCA9IHd0Zi9OdW1iZXJPZkNvcmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY2OEVCQjhDMDI1NUQ0QzYwMUZGNjBGNyAvKiBjb25maWcuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJRjY5MkE4NEQwMjU1NTk3
RDAxRkY2MEY3IC8qIEFycmF5UHJvdG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFycmF5UHJvdG90eXBlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQlGNjkyQTg0RTAyNTU1OTdEMDFG
RjYwRjcgLyogQXJyYXlQcm90b3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXJyYXlQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB9OwpAQCAtMTYyMCw2ICsxNjI0LDggQEAKIAkJMDg2N0Q2OTFG
RTg0MDI4RkMwMkFBQzA3IC8qIEphdmFTY3JpcHRDb3JlICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGNjZFQjg1NjE0QzQ3QkYzMDA5OTA0MTYgLyogTnVt
YmVyT2ZDb3Jlcy5jcHAgKi8sCisJCQkJRjY2RUI4NTcxNEM0N0JGMzAwOTkwNDE2IC8qIE51bWJl
ck9mQ29yZXMuaCAqLywKIAkJCQk4NjA0RjRGMjE0M0E2QzQ0MDBCMjk1RjUgLyogQ2hhbmdlTG9n
ICovLAogCQkJCUE3MThGODIxMTE3OEVCNEIwMDI0NjVBNyAvKiBjcmVhdGVfcmVnZXhfdGFibGVz
ICovLAogCQkJCTkzN0I2M0NDMDlFNzY2RDIwMEE2NzFERCAvKiBEZXJpdmVkU291cmNlcy5tYWtl
ICovLApAQCAtMzAzNSw2ICszMDQxLDcgQEAKIAkJCQkwRjdCMjk0QjE0QzNDRDJGMDA3QzNEQjEg
LyogREZHQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdCMjk0QzE0QzNDRDQz
MDA3QzNEQjEgLyogREZHQnl0ZUNvZGVDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3QjI5
NEQxNEMzQ0Q0QzAwN0MzREIxIC8qIERGR0NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjY2
RUI4NTkxNEM0N0JGMzAwOTkwNDE2IC8qIE51bWJlck9mQ29yZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtMzU3Miw2ICszNTc5LDcgQEAKIAkJCQkwRjQ2ODA4MzE0QkE1NzMxMDBCRkUyNzIgLyogSklU
RXhjZXB0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjBCODNCMDE0QkNGNzE2MDA4ODVC
NEYgLyogQ2FsbExpbmtJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMEI4M0I0MTRCQ0Y4
NjAwMDg4NUI0RiAvKiBNZXRob2RDYWxsTGlua0luZm8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RjY2RUI4NTgxNEM0N0JGMzAwOTkwNDE2IC8qIE51bWJlck9mQ29yZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCmluZGV4IDY4ZDEw
YjcuLmY2NjBjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3Bw
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogCiAjaW5jbHVkZSA8bGlt
aXRzPgorI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3RmL1BhZ2VC
bG9jay5oPgogCiAjaWYgT1MoREFSV0lOKSAmJiBFTkFCTEUoUEFSQUxMRUxfR0MpCkBAIC0xNzQs
MTIgKzE3NSw4IEBAIHZvaWQgaW5pdGlhbGl6ZU9wdGlvbnMoKQogICAgIFNFVChvcGFxdWVSb290
TWVyZ2VUaHJlc2hvbGQsICAgICAgICAgICAgIDEwMDApOwogCiAgICAgaW50IGNwdXNUb1VzZSA9
IDE7Ci0jaWYgT1MoREFSV0lOKSAmJiBFTkFCTEUoUEFSQUxMRUxfR0MpCi0gICAgaW50IG5hbWVb
Ml07Ci0gICAgc2l6ZV90IHZhbHVlU2l6ZSA9IHNpemVvZihjcHVzVG9Vc2UpOwotICAgIG5hbWVb
MF0gPSBDVExfSFc7Ci0gICAgbmFtZVsxXSA9IEhXX0FWQUlMQ1BVOwotICAgIHN5c2N0bChuYW1l
LCAyLCAmY3B1c1RvVXNlLCAmdmFsdWVTaXplLCAwLCAwKTsKKyNpZiBFTkFCTEUoUEFSQUxMRUxf
R0MpCisgICAgY3B1c1RvVXNlID0gV1RGOjpudW1iZXJPZlByb2Nlc3NvckNvcmVzKCk7CiAjZW5k
aWYKICAgICAvLyBXZSBkb24ndCBzY2FsZSBzbyB3ZWxsIGJleW9uZCA0LgogICAgIGlmIChjcHVz
VG9Vc2UgPiA0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXgg
NTJkM2UzYy4uYzIyYWU1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMu
dHh0CkBAIC01Myw2ICs1Myw3IEBAIFNFVChXVEZfSEVBREVSUwogICAgIE5vbmNvcHlhYmxlLmgK
ICAgICBOb3RGb3VuZC5oCiAgICAgTnVsbFB0ci5oCisgICAgTnVtYmVyT2ZDb3Jlcy5oCiAgICAg
T1NBbGxvY2F0b3IuaAogICAgIE9TUmFuZG9tU291cmNlLmgKICAgICBPd25BcnJheVB0ci5oCkBA
IC0xNDYsNiArMTQ3LDcgQEAgU0VUKFdURl9TT1VSQ0VTCiAgICAgTWFpblRocmVhZC5jcHAKICAg
ICBNRDUuY3BwCiAgICAgT1NSYW5kb21Tb3VyY2UuY3BwCisgICAgTnVtYmVyT2ZDb3Jlcy5jcHAK
ICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwCiAgICAgUGFnZUJsb2NrLmNwcAogICAgIFBh
cmFsbGVsSm9ic0dlbmVyaWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFk
LmNwcAppbmRleCA5MTUxMjY1Li40ZWM1Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
TWFpblRocmVhZC5jcHAKQEAgLTg3LDkgKzg3LDcgQEAgc3RhdGljIEZ1bmN0aW9uUXVldWUmIGZ1
bmN0aW9uUXVldWUoKQogICAgIHJldHVybiBzdGF0aWNGdW5jdGlvblF1ZXVlOwogfQogCi0KICNp
ZiAhUExBVEZPUk0oTUFDKQotCiB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkKCkKIHsKICAgICBz
dGF0aWMgYm9vbCBpbml0aWFsaXplZE1haW5UaHJlYWQ7CkBAIC0xMDIsOSArMTAwLDcgQEAgdm9p
ZCBpbml0aWFsaXplTWFpblRocmVhZCgpCiAgICAgbWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRl
eCgpOwogICAgIGluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKTsKIH0KLQogI2Vsc2UKLQog
c3RhdGljIHB0aHJlYWRfb25jZV90IGluaXRpYWxpemVNYWluVGhyZWFkS2V5T25jZSA9IFBUSFJF
QURfT05DRV9JTklUOwogCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZE9uY2UoKQpA
QCAtMjQ5LDQgKzI0NSwzMyBAQCBib29sIGlzTWFpblRocmVhZCgpCiB9CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShQQVJBTExFTF9HQykKK3N0YXRpYyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNHQ1Ro
cmVhZDsKKwordm9pZCByZWdpc3RlckdDVGhyZWFkKCkKK3sKKyAgICBpZiAoIWlzR0NUaHJlYWQp
IHsKKyAgICAgICAgLy8gVGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBwcm9jZXNz
IHRoYXQgZG9lc24ndCBjYXJlIGFib3V0CisgICAgICAgIC8vIE1haW5UaHJlYWQuCisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOworfQorCitib29sIGlz
TWFpblRocmVhZE9yR0NUaHJlYWQoKQoreworICAgIGlmIChpc0dDVGhyZWFkLT5pc1NldCgpICYm
ICoqaXNHQ1RocmVhZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gaXNNYWlu
VGhyZWFkKCk7Cit9CisjZWxzZQorLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBKYXZhU2Ny
aXB0Q29yZS5leHAgZG9lc24ndCBzdXBwb3J0IHByZXByb2Nlc3NvciBtYWNyb3MuCitib29sIGlz
TWFpblRocmVhZE9yR0NUaHJlYWQoKQoreworICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKK30K
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvTWFpblRocmVhZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWlu
VGhyZWFkLmgKaW5kZXggZmY3NmE1Zi4uNGQ4YTE1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9NYWluVGhyZWFkLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybS5oIgog
CiAjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CiAK
IG5hbWVzcGFjZSBXVEYgewogCkBAIC01MiwxMyArNTMsMTAgQEAgV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgY2FsbE9uTWFpblRocmVhZChjb25zdCBGdW5jdGlvbjx2b2lkICgpPiYpOwogV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgc2V0TWFpblRocmVhZENhbGxiYWNrc1BhdXNlZChib29sIHBhdXNl
ZCk7CiAKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzTWFpblRocmVhZCgpOworV1RGX0VYUE9S
VF9QUklWQVRFIGJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpOworCiAjaWYgRU5BQkxFKFBB
UkFMTEVMX0dDKQogdm9pZCByZWdpc3RlckdDVGhyZWFkKCk7Ci1XVEZfRVhQT1JUX1BSSVZBVEUg
Ym9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7Ci0jZWxpZiBQTEFURk9STShNQUMpCi1ib29s
IGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsKLSNlbHNlCi1pbmxpbmUgYm9vbCBpc01haW5UaHJl
YWRPckdDVGhyZWFkKCkgeyByZXR1cm4gaXNNYWluVGhyZWFkKCk7IH0KICNlbmRpZgogCiAvLyBO
T1RFOiB0aGVzZSBmdW5jdGlvbnMgYXJlIGludGVybmFsIHRvIHRoZSBjYWxsT25NYWluVGhyZWFk
IGltcGxlbWVudGF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9O
dW1iZXJPZkNvcmVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jl
cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJjMGI4MAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAK
QEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBVbml2ZXJzaXR5IG9m
IFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTnVtYmVyT2ZDb3Jlcy5oIgorCisjaWYgT1MoREFSV0lOKSB8fCBPUyhPUEVO
QlNEKSB8fCBPUyhORVRCU0QpCisjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgorI2luY2x1ZGUgPHN5
cy90eXBlcy5oPgorI2VsaWYgT1MoTElOVVgpIHx8IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKKyNp
bmNsdWRlIDx1bmlzdGQuaD4KKyNlbGlmIE9TKFdJTkRPV1MpCisjaW5jbHVkZSA8V2luZG93cy5o
PgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXVEYg
eworCitpbnQgbnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpCit7CisgICAgY29uc3QgaW50IGRlZmF1
bHRJZlVuYXZhaWxhYmxlID0gMTsKKyAgICBzdGF0aWMgaW50IHNfbnVtYmVyT2ZDb3JlcyA9IC0x
OworCisgICAgaWYgKHNfbnVtYmVyT2ZDb3JlcyA+IDApCisgICAgICAgIHJldHVybiBzX251bWJl
ck9mQ29yZXM7CisKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5CU0QpIHx8IE9TKE5FVEJTRCkg
fHwgT1MoRlJFRUJTRCkKKyAgICB1bnNpZ25lZCByZXN1bHQ7CisgICAgc2l6ZV90IGxlbmd0aCA9
IHNpemVvZihyZXN1bHQpOworICAgIGludCBuYW1lW10gPSB7CisgICAgICAgICAgICBDVExfSFcs
CisgICAgICAgICAgICBIV19OQ1BVCisgICAgfTsKKyAgICBpbnQgc3lzY3RsUmVzdWx0ID0gc3lz
Y3RsKG5hbWUsIHNpemVvZihuYW1lKSAvIHNpemVvZihpbnQpLCAmcmVzdWx0LCAmbGVuZ3RoLCAw
LCAwKTsKKworICAgIHNfbnVtYmVyT2ZDb3JlcyA9IHN5c2N0bFJlc3VsdCA8IDAgPyBkZWZhdWx0
SWZVbmF2YWlsYWJsZSA6IHJlc3VsdDsKKyNlbGlmIE9TKExJTlVYKSB8fCBPUyhBSVgpIHx8IE9T
KFNPTEFSSVMpCisgICAgbG9uZyBzeXNjb25mUmVzdWx0ID0gc3lzY29uZihfU0NfTlBST0NFU1NP
UlNfT05MTik7CisKKyAgICBzX251bWJlck9mQ29yZXMgPSBzeXNjb25mUmVzdWx0IDwgMCA/IGRl
ZmF1bHRJZlVuYXZhaWxhYmxlIDogc3RhdGljX2Nhc3Q8aW50PihzeXNjb25mUmVzdWx0KTsKKyNl
bGlmIE9TKFdJTkRPV1MpCisgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRJZlVuYXZhaWxhYmxlKTsK
KyAgICBTWVNURU1fSU5GTyBzeXNJbmZvOworICAgIEdldFN5c3RlbUluZm8oJnN5c0luZm8pOwor
CisgICAgc19udW1iZXJPZkNvcmVzID0gc3lzSW5mby5kd051bWJlck9mUHJvY2Vzc29yczsKKyNl
bHNlCisgICAgc19udW1iZXJPZkNvcmVzID0gZGVmYXVsdElmVW5hdmFpbGFibGU7CisjZW5kaWYK
KyAgICByZXR1cm4gc19udW1iZXJPZkNvcmVzOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvTnVtYmVyT2ZDb3Jlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjY2MGM3ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051
bWJlck9mQ29yZXMuaApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBO
dW1iZXJPZkNvcmVzX2gKKyNkZWZpbmUgTnVtYmVyT2ZDb3Jlc19oCisKK25hbWVzcGFjZSBXVEYg
eworCitpbnQgbnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpOworCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKaW5kZXgg
YjYyMDdkYy4uMDZlNzk5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bh
cmFsbGVsSm9ic0dlbmVyaWMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJQYXJh
bGxlbEpvYnMuaCIKICNpbmNsdWRlICJVbnVzZWRQYXJhbS5oIgorI2luY2x1ZGUgPHd0Zi9OdW1i
ZXJPZkNvcmVzLmg+CiAKICNpZiBPUyhEQVJXSU4pIHx8IE9TKE9QRU5CU0QpIHx8IE9TKE5FVEJT
RCkKICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CkBAIC00NSwxOSArNDYsMTYgQEAgbmFtZXNwYWNl
IFdURiB7CiAKIFZlY3RvcjwgUmVmUHRyPFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZh
dGU+ID4qIFBhcmFsbGVsRW52aXJvbm1lbnQ6OnNfdGhyZWFkUG9vbCA9IDA7CiAKLWludCBQYXJh
bGxlbEVudmlyb25tZW50OjpzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gLTE7Ci0KIFBh
cmFsbGVsRW52aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1lbnQoVGhyZWFkRnVuY3Rpb24gdGhy
ZWFkRnVuY3Rpb24sIHNpemVfdCBzaXplT2ZQYXJhbWV0ZXIsIGludCByZXF1ZXN0ZWRKb2JOdW1i
ZXIpIDoKICAgICBtX3RocmVhZEZ1bmN0aW9uKHRocmVhZEZ1bmN0aW9uKSwKICAgICBtX3NpemVP
ZlBhcmFtZXRlcihzaXplT2ZQYXJhbWV0ZXIpCiB7CiAgICAgQVNTRVJUX0FSRyhyZXF1ZXN0ZWRK
b2JOdW1iZXIsIHJlcXVlc3RlZEpvYk51bWJlciA+PSAxKTsKIAotICAgIGlmIChzX21heE51bWJl
ck9mUGFyYWxsZWxUaHJlYWRzID09IC0xKQotICAgICAgICBkZXRlcm1pbmVNYXhOdW1iZXJPZlBh
cmFsbGVsVGhyZWFkcygpOworICAgIGludCBtYXhOdW1iZXJPZkNvcmVzID0gbnVtYmVyT2ZQcm9j
ZXNzb3JDb3JlcygpOwogCi0gICAgaWYgKCFyZXF1ZXN0ZWRKb2JOdW1iZXIgfHwgcmVxdWVzdGVk
Sm9iTnVtYmVyID4gc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcykKLSAgICAgICAgcmVxdWVz
dGVkSm9iTnVtYmVyID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNfbWF4TnVtYmVyT2ZQYXJhbGxl
bFRocmVhZHMpOworICAgIGlmICghcmVxdWVzdGVkSm9iTnVtYmVyIHx8IHJlcXVlc3RlZEpvYk51
bWJlciA+IG1heE51bWJlck9mQ29yZXMpCisgICAgICAgIHJlcXVlc3RlZEpvYk51bWJlciA9IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZkNvcmVzKTsKIAogICAgIGlmICghc190aHJl
YWRQb29sKQogICAgICAgICBzX3RocmVhZFBvb2wgPSBuZXcgVmVjdG9yPCBSZWZQdHI8VGhyZWFk
UHJpdmF0ZT4gPigpOwpAQCAtNjUsNyArNjMsNyBAQCBQYXJhbGxlbEVudmlyb25tZW50OjpQYXJh
bGxlbEVudmlyb25tZW50KFRocmVhZEZ1bmN0aW9uIHRocmVhZEZ1bmN0aW9uLCBzaXplX3Qgcwog
ICAgIC8vIFRoZSBtYWluIHRocmVhZCBzaG91bGQgYmUgYWxzbyBhIHdvcmtlci4KICAgICBpbnQg
bWF4TnVtYmVyT2ZOZXdUaHJlYWRzID0gcmVxdWVzdGVkSm9iTnVtYmVyIC0gMTsKIAotICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcyAmJiBtX3RocmVh
ZHMuc2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heE51bWJlck9mTmV3VGhyZWFkcyk7
ICsraSkgeworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWF4TnVtYmVyT2ZDb3JlcyAmJiBtX3Ro
cmVhZHMuc2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heE51bWJlck9mTmV3VGhyZWFk
cyk7ICsraSkgewogICAgICAgICBpZiAoc190aHJlYWRQb29sLT5zaXplKCkgPCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oaSkgKyAxVSkKICAgICAgICAgICAgIHNfdGhyZWFkUG9vbC0+YXBwZW5kKFRo
cmVhZFByaXZhdGU6OmNyZWF0ZSgpKTsKIApAQCAtOTMsMzIgKzkxLDYgQEAgdm9pZCBQYXJhbGxl
bEVudmlyb25tZW50OjpleGVjdXRlKHZvaWQqIHBhcmFtZXRlcnMpCiAgICAgICAgIG1fdGhyZWFk
c1tpXS0+d2FpdEZvckZpbmlzaCgpOwogfQogCi12b2lkIFBhcmFsbGVsRW52aXJvbm1lbnQ6OmRl
dGVybWluZU1heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKCkKLXsKLSAgICBjb25zdCBpbnQgZGVm
YXVsdElmVW5hdmFpbGFibGUgPSAyOwotI2lmIE9TKERBUldJTikgfHwgT1MoT1BFTkJTRCkgfHwg
T1MoTkVUQlNEKQotICAgIHVuc2lnbmVkIHJlc3VsdDsKLSAgICBzaXplX3QgbGVuZ3RoID0gc2l6
ZW9mKHJlc3VsdCk7Ci0gICAgaW50IG5hbWVbXSA9IHsKLSAgICAgICAgQ1RMX0hXLAotICAgICAg
ICBIV19OQ1BVCi0gICAgfTsKLSAgICBpbnQgc3lzY3RsUmVzdWx0ID0gc3lzY3RsKG5hbWUsIHNp
emVvZihuYW1lKSAvIHNpemVvZihpbnQpLCAmcmVzdWx0LCAmbGVuZ3RoLCAwLCAwKTsKLSAgICBz
X21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lzY3RsUmVzdWx0IDwgMCA/IGRlZmF1bHRJ
ZlVuYXZhaWxhYmxlIDogcmVzdWx0OwotI2VsaWYgT1MoTElOVVgpIHx8IE9TKEFJWCkgfHwgT1Mo
U09MQVJJUykKLSAgICBsb25nIHN5c2NvbmZSZXN1bHQgPSBzeXNjb25mKF9TQ19OUFJPQ0VTU09S
U19PTkxOKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lzY29uZlJlc3Vs
dCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0YXRpY19jYXN0PGludD4oc3lzY29uZlJl
c3VsdCk7Ci0jZWxpZiBPUyhXSU5ET1dTKQotICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0SWZVbmF2
YWlsYWJsZSk7Ci0KLSAgICBTWVNURU1fSU5GTyBzeXNJbmZvOwotICAgIEdldFN5c3RlbUluZm8o
JnN5c0luZm8pOwotICAgIHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMgPSBzeXNJbmZvLmR3
TnVtYmVyT2ZQcm9jZXNzb3JzOwotI2Vsc2UKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJl
YWRzID0gZGVmYXVsdElmVW5hdmFpbGFibGU7Ci0jZW5kaWYKLX0KLQogYm9vbCBQYXJhbGxlbEVu
dmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp0cnlMb2NrRm9yKFBhcmFsbGVsRW52aXJvbm1lbnQq
IHBhcmVudCkKIHsKICAgICBib29sIGxvY2tlZCA9IG1fbXV0ZXgudHJ5TG9jaygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaAppbmRleCBkYWI2
ZGQ5Li4xYzdkNjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFs
bGVsSm9ic0dlbmVyaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVs
Sm9ic0dlbmVyaWMuaApAQCAtODQsMTUgKzg0LDEyIEBAIHB1YmxpYzoKICAgICB9OwogCiBwcml2
YXRlOgotICAgIHN0YXRpYyB2b2lkIGRldGVybWluZU1heE51bWJlck9mUGFyYWxsZWxUaHJlYWRz
KCk7Ci0KICAgICBUaHJlYWRGdW5jdGlvbiBtX3RocmVhZEZ1bmN0aW9uOwogICAgIHNpemVfdCBt
X3NpemVPZlBhcmFtZXRlcjsKICAgICBpbnQgbV9udW1iZXJPZkpvYnM7CiAKICAgICBWZWN0b3I8
IFJlZlB0cjxUaHJlYWRQcml2YXRlPiA+IG1fdGhyZWFkczsKICAgICBzdGF0aWMgVmVjdG9yPCBS
ZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiogc190aHJlYWRQb29sOwotICAgIHN0YXRpYyBpbnQgc19t
YXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDE3MGQ4YzAuLjU2NTA3N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKQEAgLTExMjIsNyArMTEyMiw3IEBACiAjZGVm
aW5lIEVOQUJMRV9DT01QQVJFX0FORF9TV0FQIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5B
QkxFX1BBUkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpKSAmJiBF
TkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKKyNpZiAhZGVmaW5lZChFTkFCTEVfUEFSQUxMRUxfR0Mp
ICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oUVQpKSAmJiBF
TkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKICNkZWZpbmUgRU5BQkxFX1BBUkFMTEVMX0dDIDEKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhy
ZWFkTWFjLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5t
bQppbmRleCBmYmM2MjUwLi5lZTU3ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvbWFjL01haW5UaHJlYWRNYWMubW0KQEAgLTE0NSwzMSArMTQ1LDQgQEAgYm9vbCBpc01haW5U
aHJlYWQoKQogICAgIHJldHVybiBwdGhyZWFkX2VxdWFsKHB0aHJlYWRfc2VsZigpLCBtYWluVGhy
ZWFkUHRocmVhZCk7CiB9CiAKLSNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCi12b2lkIHJlZ2lzdGVy
R0NUaHJlYWQoKQotewotICAgIGlmICghaXNHQ1RocmVhZCkgewotICAgICAgICAvLyBUaGlzIGhh
cHBlbnMgaWYgd2UncmUgcnVubmluZyBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0IGNhcmUgYWJv
dXQKLSAgICAgICAgLy8gTWFpblRocmVhZC4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
ICoqaXNHQ1RocmVhZCA9IHRydWU7Ci19Ci0KLWJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgp
Ci17Ci0gICAgaWYgKGlzR0NUaHJlYWQtPmlzU2V0KCkgJiYgKippc0dDVGhyZWFkKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Ci19Ci0jZWxz
ZQotLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBKYXZhU2NyaXB0Q29yZS5leHAgZG9lc24n
dCBzdXBwb3J0IHByZXByb2Nlc3NvciBtYWNyb3MuCi1ib29sIGlzTWFpblRocmVhZE9yR0NUaHJl
YWQoKQotewotICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKLX0KLSNlbmRpZgotCiB9IC8vIG5h
bWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKaW5kZXggYTQyMWFjYi4uMDlhZmUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxMi0wMS0xNyAgUm9sYW5kIFRha2FjcyAgPHRha2Fjcy5yb2xhbmRAc3R1ZC51LXN6ZWdlZC5o
dT4KKworICAgICAgICBbUXRdIEdDIHNob3VsZCBiZSBwYXJhbGxlbCBvbiBRdCBwbGF0Zm9ybQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUd28gZmlsZXMg
aGFkIGJlZW4gYWRkZWQgdG8gdGhlIHByb2plY3QsIG5hbWVseSBOdW1iZXJPZkNvcmVzLmgvY3Bw
LAorICAgICAgICB0aGF0IGluY2x1ZGUgYSBDUFUgY29yZSBudW1iZXIgZGV0ZXJtaW5pbmcgZnVu
Y3Rpb24uIEl0IHVzZWQgdG8gYmUKKyAgICAgICAgaW4gUGFyYWxsZWxKb2JzR2VuZXJpYy5oL2Nw
cCBiZWZvcmUuCisKKyAgICAgICAgKiBXVEYucHJvOgorCiAyMDEyLTAxLTEzICBBbGV4aXMgTWVu
YXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
YnVpbGQgZml4IGZvciBRdCBTbm93TGVvcGFyZCBidWlsZCBib3QuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXggZmMxYjAyMC4uZDRjNTA1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBy
bwpAQCAtODIsNiArODIsNyBAQCBIRUFERVJTICs9IFwKICAgICBOb25Db3B5aW5nU29ydC5oIFwK
ICAgICBOb3RGb3VuZC5oIFwKICAgICBOdWxsUHRyLmggXAorICAgIE51bWJlck9mQ29yZXMuaCBc
CiAgICAgT1NBbGxvY2F0b3IuaCBcCiAgICAgT1NSYW5kb21Tb3VyY2UuaCBcCiAgICAgT3duQXJy
YXlQdHIuaCBcCkBAIC0xODcsNiArMTg4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgTWFpblRocmVh
ZC5jcHAgXAogICAgIE1ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBOdWxsUHRyLmNwcCBcCisgICAg
TnVtYmVyT2ZDb3Jlcy5jcHAgXAogICAgIE9TUmFuZG9tU291cmNlLmNwcCBcCiAgICAgcXQvTWFp
blRocmVhZFF0LmNwcCBcCiAgICAgcXQvU3RyaW5nUXQuY3BwIFwK
</data>
<flag name="review"
          id="123600"
          type_id="1"
          status="-"
          setter="zherczeg"
    />
    <flag name="commit-queue"
          id="123601"
          type_id="3"
          status="-"
          setter="rtakacs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122934</attachid>
            <date>2012-01-18 08:20:26 -0800</date>
            <delta_ts>2012-01-20 05:34:30 -0800</delta_ts>
            <desc>This patch do the parallel gc only</desc>
            <filename>PATCH_3_final.diff</filename>
            <type>text/plain</type>
            <size>6235</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDk1N2RlMDAuLmRjZTFmZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAxLTE4ICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIAorICAgICAgICBNZWFzdXJl
bWVudCByZXN1bHRzOgorICAgICAgICBWOCAgICAgICAgICAgc3BlZWQtdXA6ICAxLjA3MXggYXMg
ZmFzdCAgW0Zyb206IDc0Ni4xbXMgIFRvOiA2OTYuNG1zIF0KKyAgICAgICAgV2luZFNjb3JwaW9u
IHNwZWVkLXVwOiAgMS4wODJ4IGFzIGZhc3QgIFtGcm9tOiAzNDkwLjRtcyBUbzogMzIyNi43bXNd
CisgICAgICAgIFY4IFNwbGF5ICAgICBzcGVlZC11cDogIDEuMTU4eCBhcyBmYXN0ICBbRnJvbTog
MTQ1LjhtcyAgVG86IDEyNS45bXMgXQorCisgICAgICAgIFRlc3RlZCBvbiBJbnRlbChSKSBDb3Jl
KFRNKSBpNS0yMzIwIENQVSBAIDMuMDBHSHogd2l0aCA0LWNvcmUuCisKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS5vcmRlcjoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmOgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmNw
cDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQpOgorICAgICAgICAoV1RGOjpy
ZWdpc3RlckdDVGhyZWFkKToKKyAgICAgICAgKFdURjo6aXNNYWluVGhyZWFkT3JHQ1RocmVhZCk6
CisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoK
KyAgICAgICAgKiB3dGYvbWFjL01haW5UaHJlYWRNYWMubW06CisKIDIwMTItMDEtMTggIENzYWJh
IE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBDcm9zcy1wbGF0Zm9y
bSBwcm9jZXNzb3IgY29yZSBjb3VudGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUub3JkZXIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUub3JkZXIKaW5kZXggM2NlZGE2NS4uNDY0MzA3OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgpAQCAtNDAsNiArNDAsNyBAQCBfX1pOM1dURjEwU3Ry
aW5nSW1wbDE5Y3JlYXRlVW5pbml0aWFsaXplZEVqUlB0CiBfX1pOM1dURjVlcXVhbEVQS05TXzEw
U3RyaW5nSW1wbEVTMl8KIF9fWk4zV1RGMTBTdHJpbmdJbXBsNmNyZWF0ZUVQS3RqCiBfX1pOM1dU
RjEyaXNNYWluVGhyZWFkRXYKK19fWk4zV1RGMjJpc01haW5UaHJlYWRPckdDVGhyZWFkRXYKIF9f
Wk4zV1RGMTBTdHJpbmdJbXBsRDFFdgogX19aTjNXVEYxMFN0cmluZ0ltcGxEMkV2CiBfX1pOM1dU
RjZTdHJpbmc2bnVtYmVyRXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5kZWYKaW5kZXggMzgyNzgxNS4uYzVjYTFiMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTIzMiw2ICsy
MzIsNyBAQCBFWFBPUlRTCiAgICAgP2lzRGF0YURlc2NyaXB0b3JAUHJvcGVydHlEZXNjcmlwdG9y
QEpTQ0BAUUJFX05YWgogICAgID9pc0hvc3RGdW5jdGlvbk5vbklubGluZUBKU0Z1bmN0aW9uQEpT
Q0BAQUJFX05YWgogICAgID9pc01haW5UaHJlYWRAV1RGQEBZQV9OWFoKKyAgICA/aXNNYWluVGhy
ZWFkT3JHQ1RocmVhZEBXVEZAQFlBX05YWgogICAgID9pc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
c0BXZWFrSGFuZGxlT3duZXJASlNDQEBVQUVfTlY/JEhhbmRsZUBXNFVua25vd25ASlNDQEBAMkBQ
QVhBQVZTbG90VmlzaXRvckAyQEBaCiAgICAgP2lzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlv
bkBKU0NAQFlBX05WSlNWYWx1ZUAxQEBaCiAgICAgP2lzVmFsaWRBbGxvY2F0aW9uQEhlYXBASlND
QEBBQUVfTklAWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhy
ZWFkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKaW5kZXgg
OTE1MTI2NS4uNGVjNTY4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9N
YWluVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQu
Y3BwCkBAIC04Nyw5ICs4Nyw3IEBAIHN0YXRpYyBGdW5jdGlvblF1ZXVlJiBmdW5jdGlvblF1ZXVl
KCkKICAgICByZXR1cm4gc3RhdGljRnVuY3Rpb25RdWV1ZTsKIH0KIAotCiAjaWYgIVBMQVRGT1JN
KE1BQykKLQogdm9pZCBpbml0aWFsaXplTWFpblRocmVhZCgpCiB7CiAgICAgc3RhdGljIGJvb2wg
aW5pdGlhbGl6ZWRNYWluVGhyZWFkOwpAQCAtMTAyLDkgKzEwMCw3IEBAIHZvaWQgaW5pdGlhbGl6
ZU1haW5UaHJlYWQoKQogICAgIG1haW5UaHJlYWRGdW5jdGlvblF1ZXVlTXV0ZXgoKTsKICAgICBp
bml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKCk7CiB9Ci0KICNlbHNlCi0KIHN0YXRpYyBwdGhy
ZWFkX29uY2VfdCBpbml0aWFsaXplTWFpblRocmVhZEtleU9uY2UgPSBQVEhSRUFEX09OQ0VfSU5J
VDsKIAogc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRPbmNlKCkKQEAgLTI0OSw0ICsy
NDUsMzMgQEAgYm9vbCBpc01haW5UaHJlYWQoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFS
QUxMRUxfR0MpCitzdGF0aWMgVGhyZWFkU3BlY2lmaWM8Ym9vbD4qIGlzR0NUaHJlYWQ7CisKK3Zv
aWQgcmVnaXN0ZXJHQ1RocmVhZCgpCit7CisgICAgaWYgKCFpc0dDVGhyZWFkKSB7CisgICAgICAg
IC8vIFRoaXMgaGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNu
J3QgY2FyZSBhYm91dAorICAgICAgICAvLyBNYWluVGhyZWFkLgorICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgKippc0dDVGhyZWFkID0gdHJ1ZTsKK30KKworYm9vbCBpc01haW5UaHJlYWRP
ckdDVGhyZWFkKCkKK3sKKyAgICBpZiAoaXNHQ1RocmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJl
YWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOwor
fQorI2Vsc2UKKy8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhw
IGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgorYm9vbCBpc01haW5UaHJlYWRP
ckdDVGhyZWFkKCkKK3sKKyAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Cit9CisjZW5kaWYKKwog
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L01haW5UaHJlYWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCmlu
ZGV4IGZmNzZhNWYuLjRkOGExNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvTWFpblRocmVhZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVh
ZC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm0uaCIKIAogI2luY2x1ZGUg
PHN0ZGludC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogCiBuYW1lc3BhY2Ug
V1RGIHsKIApAQCAtNTIsMTMgKzUzLDEwIEBAIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGNhbGxP
bk1haW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCAoKT4mKTsKIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCBwYXVzZWQpOwogCiBXVEZf
RVhQT1JUX1BSSVZBVEUgYm9vbCBpc01haW5UaHJlYWQoKTsKK1dURl9FWFBPUlRfUFJJVkFURSBi
b29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsKKwogI2lmIEVOQUJMRShQQVJBTExFTF9HQykK
IHZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpOwotV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNNYWlu
VGhyZWFkT3JHQ1RocmVhZCgpOwotI2VsaWYgUExBVEZPUk0oTUFDKQotYm9vbCBpc01haW5UaHJl
YWRPckdDVGhyZWFkKCk7Ci0jZWxzZQotaW5saW5lIGJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVh
ZCgpIHsgcmV0dXJuIGlzTWFpblRocmVhZCgpOyB9CiAjZW5kaWYKIAogLy8gTk9URTogdGhlc2Ug
ZnVuY3Rpb25zIGFyZSBpbnRlcm5hbCB0byB0aGUgY2FsbE9uTWFpblRocmVhZCBpbXBsZW1lbnRh
dGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCAzZTVjOTBmLi44OWQz
ZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTE4LDcgKzExMTgs
NyBAQAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAjZW5kaWYKIAotI2lmICFk
ZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0o
SU9TKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisjaWYgIWRlZmluZWQoRU5BQkxFX1BB
UkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JN
KFFUKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAjZGVmaW5lIEVOQUJMRV9QQVJBTExF
TF9HQyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9t
YWMvTWFpblRocmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5U
aHJlYWRNYWMubW0KaW5kZXggZmJjNjI1MC4uZWU1N2ZlZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBAIC0xNDUsMzEgKzE0NSw0IEBAIGJv
b2wgaXNNYWluVGhyZWFkKCkKICAgICByZXR1cm4gcHRocmVhZF9lcXVhbChwdGhyZWFkX3NlbGYo
KSwgbWFpblRocmVhZFB0aHJlYWQpOwogfQogCi0jaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQotdm9p
ZCByZWdpc3RlckdDVGhyZWFkKCkKLXsKLSAgICBpZiAoIWlzR0NUaHJlYWQpIHsKLSAgICAgICAg
Ly8gVGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBwcm9jZXNzIHRoYXQgZG9lc24n
dCBjYXJlIGFib3V0Ci0gICAgICAgIC8vIE1haW5UaHJlYWQuCi0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOwotfQotCi1ib29sIGlzTWFpblRocmVhZE9y
R0NUaHJlYWQoKQotewotICAgIGlmIChpc0dDVGhyZWFkLT5pc1NldCgpICYmICoqaXNHQ1RocmVh
ZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgcmV0dXJuIGlzTWFpblRocmVhZCgp
OwotfQotI2Vsc2UKLS8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUu
ZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgotYm9vbCBpc01haW5UaHJl
YWRPckdDVGhyZWFkKCkKLXsKLSAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Ci19Ci0jZW5kaWYK
LQogfSAvLyBuYW1lc3BhY2UgV1RGCg==
</data>
<flag name="review"
          id="123867"
          type_id="1"
          status="-"
          setter="kbalazs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123295</attachid>
            <date>2012-01-20 05:34:30 -0800</date>
            <delta_ts>2012-01-20 06:52:19 -0800</delta_ts>
            <desc>I did the modifications requested by Zoltan Herczeg and Balazs Kelemen</desc>
            <filename>PATCH_3.1_final.diff</filename>
            <type>text/plain</type>
            <size>6229</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDk1N2RlMDAuLmZiYzkzNTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAxLTIwICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIEkgaW5zZXJ0ZWQgdGhlICJp
c01haW5UaHJlYWRPckdDVGhyZWFkIiBmdW5jdGlvbidzIHN5bWJvbCB0byB0aGUgLm9yZGVyCisg
ICAgICAgIGFuZCAuZGVmIGZpbGVzIHRvIGJ1aWxkIGNvcnJlY3RseSBvbiBXaW5kb3dzIHBsYXRm
b3JtLgorICAgICAgICBGdXJ0aGVybW9yZSBJIG1vdmVkICJyZWdpc3RlckdDVGhyZWFkIiBhbmQg
ImlzTWFpblRocmVhZE9yR0NUaHJlYWQiCisgICAgICAgIGltcGxlbWVudGF0aW9ucyBmcm9tIHRo
ZSBNYWluVGhyZWFkTWFjLm1tIHRvIE1haW5UaHJlYWQuY3BwIHRvIG1ha2UKKyAgICAgICAgcGFy
YWxsZWwgR0MgYXZhaWxhYmxlIG5vdCBvbmx5IG9uIE1BQyBwbGF0Zm9ybS4KKyAgICAgICAgRmlu
YWxseSBJIGFkZGVkIGEgcGx1cyBleHByZXNzaW9uIHRvIHRoZSBwYXJhbGxlbCBHQyBsaWNlbnNl
ciBtYWNybworICAgICAgICB0aGF0IGVuYWJsZXMgcGFyYWxsZWwgZ2Mgb24gUXQgcG9ydC4gCisK
KyAgICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAgIHNwZWVk
LXVwOiAgMS4wNzF4IGFzIGZhc3QgIFtGcm9tOiA3NDYuMW1zICBUbzogNjk2LjRtcyBdCisgICAg
ICAgIFdpbmRTY29ycGlvbiBzcGVlZC11cDogIDEuMDgyeCBhcyBmYXN0ICBbRnJvbTogMzQ5MC40
bXMgVG86IDMyMjYuN21zXQorICAgICAgICBWOCBTcGxheSAgICAgc3BlZWQtdXA6ICAxLjE1OHgg
YXMgZmFzdCAgW0Zyb206IDE0NS44bXMgIFRvOiAxMjUuOW1zIF0KKworICAgICAgICBUZXN0ZWQg
b24gSW50ZWwoUikgQ29yZShUTSkgaTUtMjMyMCBDUFUgQCAzLjAwR0h6IHdpdGggNC1jb3JlLgor
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUub3JkZXI6CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKyAgICAgICAgKiB3
dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAgIChXVEY6OnJlZ2lzdGVyR0NUaHJlYWQpOgorICAg
ICAgICAoV1RGOjppc01haW5UaHJlYWRPckdDVGhyZWFkKToKKyAgICAgICAgKiB3dGYvTWFpblRo
cmVhZC5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9tYWMvTWFp
blRocmVhZE1hYy5tbToKKwogMjAxMi0wMS0xOCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgogCiAgICAgICAgIENyb3NzLXBsYXRmb3JtIHByb2Nlc3NvciBjb3JlIGNvdW50
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRl
ciBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgppbmRleCAzY2Vk
YTY1Li40NjQzMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUub3JkZXIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9y
ZGVyCkBAIC00MCw2ICs0MCw3IEBAIF9fWk4zV1RGMTBTdHJpbmdJbXBsMTljcmVhdGVVbmluaXRp
YWxpemVkRWpSUHQKIF9fWk4zV1RGNWVxdWFsRVBLTlNfMTBTdHJpbmdJbXBsRVMyXwogX19aTjNX
VEYxMFN0cmluZ0ltcGw2Y3JlYXRlRVBLdGoKIF9fWk4zV1RGMTJpc01haW5UaHJlYWRFdgorX19a
TjNXVEYyMmlzTWFpblRocmVhZE9yR0NUaHJlYWRFdgogX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2
CiBfX1pOM1dURjEwU3RyaW5nSW1wbEQyRXYKIF9fWk4zV1RGNlN0cmluZzZudW1iZXJFeQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRl
eCAzODI3ODE1Li5jNWNhMWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMjMyLDYgKzIzMiw3IEBAIEVYUE9SVFMKICAgICA/
aXNEYXRhRGVzY3JpcHRvckBQcm9wZXJ0eURlc2NyaXB0b3JASlNDQEBRQkVfTlhaCiAgICAgP2lz
SG9zdEZ1bmN0aW9uTm9uSW5saW5lQEpTRnVuY3Rpb25ASlNDQEBBQkVfTlhaCiAgICAgP2lzTWFp
blRocmVhZEBXVEZAQFlBX05YWgorICAgID9pc01haW5UaHJlYWRPckdDVGhyZWFkQFdURkBAWUFf
TlhaCiAgICAgP2lzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzQFdlYWtIYW5kbGVPd25lckBKU0NA
QFVBRV9OVj8kSGFuZGxlQFc0VW5rbm93bkBKU0NAQEAyQFBBWEFBVlNsb3RWaXNpdG9yQDJAQFoK
ICAgICA/aXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uQEpTQ0BAWUFfTlZKU1ZhbHVlQDFA
QFoKICAgICA/aXNWYWxpZEFsbG9jYXRpb25ASGVhcEBKU0NAQEFBRV9OSUBaCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcAppbmRleCA5MTUxMjY1Li5iMDEzYzZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKQEAgLTI0OSw0ICsyNDksMzMg
QEAgYm9vbCBpc01haW5UaHJlYWQoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFSQUxMRUxf
R0MpCitzdGF0aWMgVGhyZWFkU3BlY2lmaWM8Ym9vbD4qIGlzR0NUaHJlYWQ7CisKK3ZvaWQgcmVn
aXN0ZXJHQ1RocmVhZCgpCit7CisgICAgaWYgKCFpc0dDVGhyZWFkKSB7CisgICAgICAgIC8vIFRo
aXMgaGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2Fy
ZSBhYm91dAorICAgICAgICAvLyBNYWluVGhyZWFkLgorICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgKippc0dDVGhyZWFkID0gdHJ1ZTsKK30KKworYm9vbCBpc01haW5UaHJlYWRPckdDVGhy
ZWFkKCkKK3sKKyAgICBpZiAoaXNHQ1RocmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQorI2Vs
c2UKKy8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRvZXNu
J3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgorYm9vbCBpc01haW5UaHJlYWRPckdDVGhy
ZWFkKCkKK3sKKyAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Cit9CisjZW5kaWYKKwogfSAvLyBu
YW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5U
aHJlYWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCmluZGV4IGZm
NzZhNWYuLjRkOGExNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFp
blRocmVhZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm0uaCIKIAogI2luY2x1ZGUgPHN0ZGlu
dC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogCiBuYW1lc3BhY2UgV1RGIHsK
IApAQCAtNTIsMTMgKzUzLDEwIEBAIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGNhbGxPbk1haW5U
aHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCAoKT4mKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCBwYXVzZWQpOwogCiBXVEZfRVhQT1JU
X1BSSVZBVEUgYm9vbCBpc01haW5UaHJlYWQoKTsKK1dURl9FWFBPUlRfUFJJVkFURSBib29sIGlz
TWFpblRocmVhZE9yR0NUaHJlYWQoKTsKKwogI2lmIEVOQUJMRShQQVJBTExFTF9HQykKIHZvaWQg
cmVnaXN0ZXJHQ1RocmVhZCgpOwotV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNNYWluVGhyZWFk
T3JHQ1RocmVhZCgpOwotI2VsaWYgUExBVEZPUk0oTUFDKQotYm9vbCBpc01haW5UaHJlYWRPckdD
VGhyZWFkKCk7Ci0jZWxzZQotaW5saW5lIGJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpIHsg
cmV0dXJuIGlzTWFpblRocmVhZCgpOyB9CiAjZW5kaWYKIAogLy8gTk9URTogdGhlc2UgZnVuY3Rp
b25zIGFyZSBpbnRlcm5hbCB0byB0aGUgY2FsbE9uTWFpblRocmVhZCBpbXBsZW1lbnRhdGlvbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCAzZTVjOTBmLi44OWQzZTI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTE4LDcgKzExMTgsNyBAQAog
I2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSkg
JiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisjaWYgIWRlZmluZWQoRU5BQkxFX1BBUkFMTEVM
X0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFFUKSkg
JiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAjZGVmaW5lIEVOQUJMRV9QQVJBTExFTF9HQyAx
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFp
blRocmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRN
YWMubW0KaW5kZXggZmJjNjI1MC4uZWU1N2ZlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBAIC0xNDUsMzEgKzE0NSw0IEBAIGJvb2wgaXNN
YWluVGhyZWFkKCkKICAgICByZXR1cm4gcHRocmVhZF9lcXVhbChwdGhyZWFkX3NlbGYoKSwgbWFp
blRocmVhZFB0aHJlYWQpOwogfQogCi0jaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQotdm9pZCByZWdp
c3RlckdDVGhyZWFkKCkKLXsKLSAgICBpZiAoIWlzR0NUaHJlYWQpIHsKLSAgICAgICAgLy8gVGhp
cyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBwcm9jZXNzIHRoYXQgZG9lc24ndCBjYXJl
IGFib3V0Ci0gICAgICAgIC8vIE1haW5UaHJlYWQuCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOwotfQotCi1ib29sIGlzTWFpblRocmVhZE9yR0NUaHJl
YWQoKQotewotICAgIGlmIChpc0dDVGhyZWFkLT5pc1NldCgpICYmICoqaXNHQ1RocmVhZCkKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOwotfQot
I2Vsc2UKLS8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRv
ZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgotYm9vbCBpc01haW5UaHJlYWRPckdD
VGhyZWFkKCkKLXsKLSAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Ci19Ci0jZW5kaWYKLQogfSAv
LyBuYW1lc3BhY2UgV1RGCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123308</attachid>
            <date>2012-01-20 06:52:19 -0800</date>
            <delta_ts>2012-01-20 07:22:38 -0800</delta_ts>
            <desc>final update</desc>
            <filename>PATCH_3.4_final.diff</filename>
            <type>text/plain</type>
            <size>5562</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA5ZGNlYTUuLjM1ZDM3NjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAxLTIwICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIEkgaW5zZXJ0ZWQgdGhlICJp
c01haW5UaHJlYWRPckdDVGhyZWFkIiBmdW5jdGlvbidzIHN5bWJvbCB0byB0aGUgLm9yZGVyCisg
ICAgICAgIGFuZCAuZGVmIGZpbGVzIHRvIGJ1aWxkIGNvcnJlY3RseSBvbiBXaW5kb3dzIHBsYXRm
b3JtLgorICAgICAgICBGdXJ0aGVybW9yZSBJIG1vdmVkICJyZWdpc3RlckdDVGhyZWFkIiBhbmQg
ImlzTWFpblRocmVhZE9yR0NUaHJlYWQiCisgICAgICAgIGltcGxlbWVudGF0aW9ucyBmcm9tIHRo
ZSBNYWluVGhyZWFkTWFjLm1tIHRvIE1haW5UaHJlYWQuY3BwIHRvIG1ha2UKKyAgICAgICAgcGFy
YWxsZWwgR0MgYXZhaWxhYmxlIG5vdCBvbmx5IG9uIE1BQyBwbGF0Zm9ybS4KKworICAgICAgICBN
ZWFzdXJlbWVudCByZXN1bHRzOgorICAgICAgICBWOCAgICAgICAgICAgc3BlZWQtdXA6ICAxLjA3
MXggYXMgZmFzdCAgW0Zyb206IDc0Ni4xbXMgIFRvOiA2OTYuNG1zIF0KKyAgICAgICAgV2luZFNj
b3JwaW9uIHNwZWVkLXVwOiAgMS4wODJ4IGFzIGZhc3QgIFtGcm9tOiAzNDkwLjRtcyBUbzogMzIy
Ni43bXNdCisgICAgICAgIFY4IFNwbGF5ICAgICBzcGVlZC11cDogIDEuMTU4eCBhcyBmYXN0ICBb
RnJvbTogMTQ1LjhtcyAgVG86IDEyNS45bXMgXQorCisgICAgICAgIFRlc3RlZCBvbiBJbnRlbChS
KSBDb3JlKFRNKSBpNS0yMzIwIENQVSBAIDMuMDBHSHogd2l0aCA0LWNvcmUuCisKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmOgorICAgICAgICAqIHd0Zi9NYWluVGhy
ZWFkLmNwcDoKKyAgICAgICAgKFdURjo6cmVnaXN0ZXJHQ1RocmVhZCk6CisgICAgICAgIChXVEY6
OmlzTWFpblRocmVhZE9yR0NUaHJlYWQpOgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6Cisg
ICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAgICogd3RmL21hYy9NYWluVGhyZWFkTWFj
Lm1tOgorCiAyMDEyLTAxLTIwICBDaGFuZ1Nlb2sgT2ggIDxzaGl2YW1pZG93QGdtYWlsLmNvbT4K
IAogICAgICAgICB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIHN5bWJvbCBlaW5hX21vZHVsZV9mcmVl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKaW5kZXggM2NlZGE2
NS4uNDY0MzA3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLm9yZGVyCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRl
cgpAQCAtNDAsNiArNDAsNyBAQCBfX1pOM1dURjEwU3RyaW5nSW1wbDE5Y3JlYXRlVW5pbml0aWFs
aXplZEVqUlB0CiBfX1pOM1dURjVlcXVhbEVQS05TXzEwU3RyaW5nSW1wbEVTMl8KIF9fWk4zV1RG
MTBTdHJpbmdJbXBsNmNyZWF0ZUVQS3RqCiBfX1pOM1dURjEyaXNNYWluVGhyZWFkRXYKK19fWk4z
V1RGMjJpc01haW5UaHJlYWRPckdDVGhyZWFkRXYKIF9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdgog
X19aTjNXVEYxMFN0cmluZ0ltcGxEMkV2CiBfX1pOM1dURjZTdHJpbmc2bnVtYmVyRXkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKaW5kZXgg
MzgyNzgxNS4uYzVjYTFiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTIzMiw2ICsyMzIsNyBAQCBFWFBPUlRTCiAgICAgP2lz
RGF0YURlc2NyaXB0b3JAUHJvcGVydHlEZXNjcmlwdG9yQEpTQ0BAUUJFX05YWgogICAgID9pc0hv
c3RGdW5jdGlvbk5vbklubGluZUBKU0Z1bmN0aW9uQEpTQ0BAQUJFX05YWgogICAgID9pc01haW5U
aHJlYWRAV1RGQEBZQV9OWFoKKyAgICA/aXNNYWluVGhyZWFkT3JHQ1RocmVhZEBXVEZAQFlBX05Y
WgogICAgID9pc1JlYWNoYWJsZUZyb21PcGFxdWVSb290c0BXZWFrSGFuZGxlT3duZXJASlNDQEBV
QUVfTlY/JEhhbmRsZUBXNFVua25vd25ASlNDQEBAMkBQQVhBQVZTbG90VmlzaXRvckAyQEBaCiAg
ICAgP2lzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbkBKU0NAQFlBX05WSlNWYWx1ZUAxQEBa
CiAgICAgP2lzVmFsaWRBbGxvY2F0aW9uQEhlYXBASlNDQEBBQUVfTklAWgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKaW5kZXggOTE1MTI2NS4uMWMwZDFiNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCkBAIC0yNDksNCArMjQ5LDI3IEBA
IGJvb2wgaXNNYWluVGhyZWFkKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBBUkFMTEVMX0dD
KQorc3RhdGljIFRocmVhZFNwZWNpZmljPGJvb2w+KiBpc0dDVGhyZWFkOworCit2b2lkIHJlZ2lz
dGVyR0NUaHJlYWQoKQoreworICAgIGlmICghaXNHQ1RocmVhZCkgeworICAgICAgICAvLyBUaGlz
IGhhcHBlbnMgaWYgd2UncmUgcnVubmluZyBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0IGNhcmUg
YWJvdXQKKyAgICAgICAgLy8gTWFpblRocmVhZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgICoqaXNHQ1RocmVhZCA9IHRydWU7Cit9CisKK2Jvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVh
ZCgpCit7CisgICAgaWYgKGlzR0NUaHJlYWQtPmlzU2V0KCkgJiYgKippc0dDVGhyZWFkKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKK30KKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvTWFpblRocmVhZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFk
LmgKaW5kZXggZmY3NmE1Zi4uNDVhMGVmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9NYWluVGhyZWFkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWlu
VGhyZWFkLmgKQEAgLTU1LDggKzU1LDYgQEAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNNYWlu
VGhyZWFkKCk7CiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQogdm9pZCByZWdpc3RlckdDVGhyZWFk
KCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7Ci0j
ZWxpZiBQTEFURk9STShNQUMpCi1ib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsKICNlbHNl
CiBpbmxpbmUgYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkgeyByZXR1cm4gaXNNYWluVGhy
ZWFkKCk7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
bGF0Zm9ybS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDNl
NWM5MGYuLjg5ZDNlMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxh
dGZvcm0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKQEAgLTEx
MTgsNyArMTExOCw3IEBACiAjZGVmaW5lIEVOQUJMRV9DT01QQVJFX0FORF9TV0FQIDEKICNlbmRp
ZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BBUkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8
fCBQTEFURk9STShJT1MpKSAmJiBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfUEFSQUxMRUxfR0MpICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykg
fHwgUExBVEZPUk0oUVQpKSAmJiBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKICNkZWZpbmUgRU5B
QkxFX1BBUkFMTEVMX0dDIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9tYWMvTWFpblRocmVhZE1hYy5tbQppbmRleCBmYmM2MjUwLi5lZTU3ZmVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KQEAgLTE0NSwzMSAr
MTQ1LDQgQEAgYm9vbCBpc01haW5UaHJlYWQoKQogICAgIHJldHVybiBwdGhyZWFkX2VxdWFsKHB0
aHJlYWRfc2VsZigpLCBtYWluVGhyZWFkUHRocmVhZCk7CiB9CiAKLSNpZiBFTkFCTEUoUEFSQUxM
RUxfR0MpCi12b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKQotewotICAgIGlmICghaXNHQ1RocmVhZCkg
ewotICAgICAgICAvLyBUaGlzIGhhcHBlbnMgaWYgd2UncmUgcnVubmluZyBpbiBhIHByb2Nlc3Mg
dGhhdCBkb2Vzbid0IGNhcmUgYWJvdXQKLSAgICAgICAgLy8gTWFpblRocmVhZC4KLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgICoqaXNHQ1RocmVhZCA9IHRydWU7Ci19Ci0KLWJvb2wgaXNN
YWluVGhyZWFkT3JHQ1RocmVhZCgpCi17Ci0gICAgaWYgKGlzR0NUaHJlYWQtPmlzU2V0KCkgJiYg
Kippc0dDVGhyZWFkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICByZXR1cm4gaXNN
YWluVGhyZWFkKCk7Ci19Ci0jZWxzZQotLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBKYXZh
U2NyaXB0Q29yZS5leHAgZG9lc24ndCBzdXBwb3J0IHByZXByb2Nlc3NvciBtYWNyb3MuCi1ib29s
IGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQotewotICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsK
LX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXVEYK
</data>
<flag name="review"
          id="124345"
          type_id="1"
          status="-"
          setter="rtakacs"
    />
    <flag name="commit-queue"
          id="124346"
          type_id="3"
          status="-"
          setter="rtakacs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123312</attachid>
            <date>2012-01-20 07:22:38 -0800</date>
            <delta_ts>2012-01-22 23:24:58 -0800</delta_ts>
            <desc>Final update</desc>
            <filename>PATCH_3.5_final.diff</filename>
            <type>text/plain</type>
            <size>5530</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA5ZGNlYTUuLmI4YmNhYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAxLTIwICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIEkgaW5zZXJ0ZWQgdGhlICJp
c01haW5UaHJlYWRPckdDVGhyZWFkIiBmdW5jdGlvbidzIHN5bWJvbCB0byB0aGUgLm9yZGVyCisg
ICAgICAgIGFuZCAuZGVmIGZpbGVzIHRvIGJ1aWxkIGNvcnJlY3RseSBvbiBXaW5kb3dzIHBsYXRm
b3JtLgorICAgICAgICBGdXJ0aGVybW9yZSBJIG1vdmVkICJyZWdpc3RlckdDVGhyZWFkIiBhbmQg
ImlzTWFpblRocmVhZE9yR0NUaHJlYWQiCisgICAgICAgIGltcGxlbWVudGF0aW9ucyBmcm9tIHRo
ZSBNYWluVGhyZWFkTWFjLm1tIHRvIE1haW5UaHJlYWQuY3BwIHRvIG1ha2UKKyAgICAgICAgcGFy
YWxsZWwgR0MgYXZhaWxhYmxlIG5vdCBvbmx5IG9uIE1BQyBwbGF0Zm9ybS4KKworICAgICAgICBN
ZWFzdXJlbWVudCByZXN1bHRzOgorICAgICAgICBWOCAgICAgICAgICAgc3BlZWQtdXA6ICAxLjA3
MXggYXMgZmFzdCAgW0Zyb206IDc0Ni4xbXMgIFRvOiA2OTYuNG1zIF0KKyAgICAgICAgV2luZFNj
b3JwaW9uIHNwZWVkLXVwOiAgMS4wODJ4IGFzIGZhc3QgIFtGcm9tOiAzNDkwLjRtcyBUbzogMzIy
Ni43bXNdCisgICAgICAgIFY4IFNwbGF5ICAgICBzcGVlZC11cDogIDEuMTU4eCBhcyBmYXN0ICBb
RnJvbTogMTQ1LjhtcyAgVG86IDEyNS45bXMgXQorCisgICAgICAgIFRlc3RlZCBvbiBJbnRlbChS
KSBDb3JlKFRNKSBpNS0yMzIwIENQVSBAIDMuMDBHSHogd2l0aCA0LWNvcmUuCisKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmOgorICAgICAgICAqIHd0Zi9NYWluVGhy
ZWFkLmNwcDoKKyAgICAgICAgKFdURjo6cmVnaXN0ZXJHQ1RocmVhZCk6CisgICAgICAgIChXVEY6
OmlzTWFpblRocmVhZE9yR0NUaHJlYWQpOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAg
ICAgICAqIHd0Zi9tYWMvTWFpblRocmVhZE1hYy5tbToKKwogMjAxMi0wMS0yMCAgQ2hhbmdTZW9r
IE9oICA8c2hpdmFtaWRvd0BnbWFpbC5jb20+CiAKICAgICAgICAgdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBzeW1ib2wgZWluYV9tb2R1bGVfZnJlZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLm9yZGVyCmluZGV4IDNjZWRhNjUuLjQ2NDMwNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKQEAgLTQwLDYgKzQwLDcgQEAgX19aTjNXVEYx
MFN0cmluZ0ltcGwxOWNyZWF0ZVVuaW5pdGlhbGl6ZWRFalJQdAogX19aTjNXVEY1ZXF1YWxFUEtO
U18xMFN0cmluZ0ltcGxFUzJfCiBfX1pOM1dURjEwU3RyaW5nSW1wbDZjcmVhdGVFUEt0agogX19a
TjNXVEYxMmlzTWFpblRocmVhZEV2CitfX1pOM1dURjIyaXNNYWluVGhyZWFkT3JHQ1RocmVhZEV2
CiBfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYKIF9fWk4zV1RGMTBTdHJpbmdJbXBsRDJFdgogX19a
TjNXVEY2U3RyaW5nNm51bWJlckV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IDM4Mjc4MTUuLmM1Y2ExYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCkBAIC0yMzIs
NiArMjMyLDcgQEAgRVhQT1JUUwogICAgID9pc0RhdGFEZXNjcmlwdG9yQFByb3BlcnR5RGVzY3Jp
cHRvckBKU0NAQFFCRV9OWFoKICAgICA/aXNIb3N0RnVuY3Rpb25Ob25JbmxpbmVASlNGdW5jdGlv
bkBKU0NAQEFCRV9OWFoKICAgICA/aXNNYWluVGhyZWFkQFdURkBAWUFfTlhaCisgICAgP2lzTWFp
blRocmVhZE9yR0NUaHJlYWRAV1RGQEBZQV9OWFoKICAgICA/aXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHNAV2Vha0hhbmRsZU93bmVyQEpTQ0BAVUFFX05WPyRIYW5kbGVAVzRVbmtub3duQEpTQ0BA
QDJAUEFYQUFWU2xvdFZpc2l0b3JAMkBAWgogICAgID9pc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNl
cHRpb25ASlNDQEBZQV9OVkpTVmFsdWVAMUBAWgogICAgID9pc1ZhbGlkQWxsb2NhdGlvbkBIZWFw
QEpTQ0BAQUFFX05JQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFp
blRocmVhZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCmlu
ZGV4IDkxNTEyNjUuLjBmNjAyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvTWFpblRocmVhZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhy
ZWFkLmNwcApAQCAtMjQ5LDQgKzI0OSwzMyBAQCBib29sIGlzTWFpblRocmVhZCgpCiB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShQQVJBTExFTF9HQykKK3N0YXRpYyBUaHJlYWRTcGVjaWZpYzxib29s
PiogaXNHQ1RocmVhZDsKKwordm9pZCByZWdpc3RlckdDVGhyZWFkKCkKK3sKKyAgICBpZiAoIWlz
R0NUaHJlYWQpIHsKKyAgICAgICAgLy8gVGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4g
YSBwcm9jZXNzIHRoYXQgZG9lc24ndCBjYXJlIGFib3V0CisgICAgICAgIC8vIE1haW5UaHJlYWQu
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOworfQor
Citib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQoreworICAgIGlmIChpc0dDVGhyZWFkLT5p
c1NldCgpICYmICoqaXNHQ1RocmVhZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1
cm4gaXNNYWluVGhyZWFkKCk7Cit9CisjZWxpZiBQTEFURk9STShNQUMpCisvLyBUaGlzIGlzIG5l
Y2Vzc2FyeSBiZWNhdXNlIEphdmFTY3JpcHRDb3JlLmV4cCBkb2Vzbid0IHN1cHBvcnQgcHJlcHJv
Y2Vzc29yIG1hY3Jvcy4KK2Jvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpCit7CisgICAgcmV0
dXJuIGlzTWFpblRocmVhZCgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaAppbmRleCBmZjc2YTVmLi40MGI2NmUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaApAQCAtMzMsNiArMzMsNyBAQAog
I2luY2x1ZGUgIlBsYXRmb3JtLmgiCiAKICNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU3BlY2lmaWMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvUGxhdGZvcm0uaAppbmRleCAzZTVjOTBmLi44OWQzZTI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTE4LDcgKzExMTgsNyBAQAogI2RlZmluZSBFTkFCTEVf
Q09NUEFSRV9BTkRfU1dBUCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExF
TF9HQykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSkgJiYgRU5BQkxFKENPTVBB
UkVfQU5EX1NXQVApCisjaWYgIWRlZmluZWQoRU5BQkxFX1BBUkFMTEVMX0dDKSAmJiAoUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFFUKSkgJiYgRU5BQkxFKENPTVBB
UkVfQU5EX1NXQVApCiAjZGVmaW5lIEVOQUJMRV9QQVJBTExFTF9HQyAxCiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KaW5kZXggZmJj
NjI1MC4uZWU1N2ZlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMv
TWFpblRocmVhZE1hYy5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWlu
VGhyZWFkTWFjLm1tCkBAIC0xNDUsMzEgKzE0NSw0IEBAIGJvb2wgaXNNYWluVGhyZWFkKCkKICAg
ICByZXR1cm4gcHRocmVhZF9lcXVhbChwdGhyZWFkX3NlbGYoKSwgbWFpblRocmVhZFB0aHJlYWQp
OwogfQogCi0jaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQotdm9pZCByZWdpc3RlckdDVGhyZWFkKCkK
LXsKLSAgICBpZiAoIWlzR0NUaHJlYWQpIHsKLSAgICAgICAgLy8gVGhpcyBoYXBwZW5zIGlmIHdl
J3JlIHJ1bm5pbmcgaW4gYSBwcm9jZXNzIHRoYXQgZG9lc24ndCBjYXJlIGFib3V0Ci0gICAgICAg
IC8vIE1haW5UaHJlYWQuCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAqKmlzR0NUaHJl
YWQgPSB0cnVlOwotfQotCi1ib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQotewotICAgIGlm
IChpc0dDVGhyZWFkLT5pc1NldCgpICYmICoqaXNHQ1RocmVhZCkKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgCi0gICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOwotfQotI2Vsc2UKLS8vIFRoaXMg
aXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qgc3VwcG9ydCBw
cmVwcm9jZXNzb3IgbWFjcm9zLgotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKLXsKLSAg
ICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV1RG
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123523</attachid>
            <date>2012-01-22 23:24:58 -0800</date>
            <delta_ts>2012-01-24 23:59:48 -0800</delta_ts>
            <desc>working progress test</desc>
            <filename>PATCH_3.3_test.diff</filename>
            <type>text/plain</type>
            <size>4328</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlciBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgppbmRleCAzY2VkYTY1
Li40NjQzMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUub3JkZXIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVy
CkBAIC00MCw2ICs0MCw3IEBAIF9fWk4zV1RGMTBTdHJpbmdJbXBsMTljcmVhdGVVbmluaXRpYWxp
emVkRWpSUHQKIF9fWk4zV1RGNWVxdWFsRVBLTlNfMTBTdHJpbmdJbXBsRVMyXwogX19aTjNXVEYx
MFN0cmluZ0ltcGw2Y3JlYXRlRVBLdGoKIF9fWk4zV1RGMTJpc01haW5UaHJlYWRFdgorX19aTjNX
VEYyMmlzTWFpblRocmVhZE9yR0NUaHJlYWRFdgogX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2CiBf
X1pOM1dURjEwU3RyaW5nSW1wbEQyRXYKIF9fWk4zV1RGNlN0cmluZzZudW1iZXJFeQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCA3
Y2M0MWNkLi41YTcwODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMjMyLDYgKzIzMiw3IEBAIEVYUE9SVFMKICAgICA/aXNE
YXRhRGVzY3JpcHRvckBQcm9wZXJ0eURlc2NyaXB0b3JASlNDQEBRQkVfTlhaCiAgICAgP2lzSG9z
dEZ1bmN0aW9uTm9uSW5saW5lQEpTRnVuY3Rpb25ASlNDQEBBQkVfTlhaCiAgICAgP2lzTWFpblRo
cmVhZEBXVEZAQFlBX05YWgorICAgID9pc01haW5UaHJlYWRPckdDVGhyZWFkQFdURkBAWUFfTlha
CiAgICAgP2lzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzQFdlYWtIYW5kbGVPd25lckBKU0NAQFVB
RV9OVj8kSGFuZGxlQFc0VW5rbm93bkBKU0NAQEAyQFBBWEFBVlNsb3RWaXNpdG9yQDJAQFoKICAg
ICA/aXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uQEpTQ0BAWUFfTlZKU1ZhbHVlQDFAQFoK
ICAgICA/aXNWYWxpZEFsbG9jYXRpb25ASGVhcEBKU0NAQEFBRV9OSUBaCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcAppbmRleCA5MTUxMjY1Li4wZjYwMjgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKQEAgLTI0OSw0ICsyNDksMzMgQEAg
Ym9vbCBpc01haW5UaHJlYWQoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFSQUxMRUxfR0Mp
CitzdGF0aWMgVGhyZWFkU3BlY2lmaWM8Ym9vbD4qIGlzR0NUaHJlYWQ7CisKK3ZvaWQgcmVnaXN0
ZXJHQ1RocmVhZCgpCit7CisgICAgaWYgKCFpc0dDVGhyZWFkKSB7CisgICAgICAgIC8vIFRoaXMg
aGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBh
Ym91dAorICAgICAgICAvLyBNYWluVGhyZWFkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgKippc0dDVGhyZWFkID0gdHJ1ZTsKK30KKworYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFk
KCkKK3sKKyAgICBpZiAoaXNHQ1RocmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQorI2VsaWYg
UExBVEZPUk0oTUFDKQorLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBKYXZhU2NyaXB0Q29y
ZS5leHAgZG9lc24ndCBzdXBwb3J0IHByZXByb2Nlc3NvciBtYWNyb3MuCitib29sIGlzTWFpblRo
cmVhZE9yR0NUaHJlYWQoKQoreworICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKK30KKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvTWFpblRocmVhZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFk
LmgKaW5kZXggZmY3NmE1Zi4uODBhNTZjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9NYWluVGhyZWFkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWlu
VGhyZWFkLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybS5oIgogCiAjaW5j
bHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CiAKIG5hbWVz
cGFjZSBXVEYgewogCkBAIC01OCw3ICs1OSw3IEBAIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlz
TWFpblRocmVhZE9yR0NUaHJlYWQoKTsKICNlbGlmIFBMQVRGT1JNKE1BQykKIGJvb2wgaXNNYWlu
VGhyZWFkT3JHQ1RocmVhZCgpOwogI2Vsc2UKLWlubGluZSBib29sIGlzTWFpblRocmVhZE9yR0NU
aHJlYWQoKSB7IHJldHVybiBpc01haW5UaHJlYWQoKTsgfQorV1RGX0VYUE9SVF9QUklWQVRFIGlu
bGluZSBib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKSB7IHJldHVybiBpc01haW5UaHJlYWQo
KTsgfQogI2VuZGlmCiAKIC8vIE5PVEU6IHRoZXNlIGZ1bmN0aW9ucyBhcmUgaW50ZXJuYWwgdG8g
dGhlIGNhbGxPbk1haW5UaHJlYWQgaW1wbGVtZW50YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L1BsYXRmb3JtLmgKaW5kZXggM2U1YzkwZi4uODlkM2UyNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvUGxhdGZvcm0uaApAQCAtMTExOCw3ICsxMTE4LDcgQEAKICNkZWZpbmUgRU5BQkxFX0NPTVBB
UkVfQU5EX1NXQVAgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfUEFSQUxMRUxfR0Mp
ICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykpICYmIEVOQUJMRShDT01QQVJFX0FO
RF9TV0FQKQorI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRGT1JNKE1B
QykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShRVCkpICYmIEVOQUJMRShDT01QQVJFX0FO
RF9TV0FQKQogI2RlZmluZSBFTkFCTEVfUEFSQUxMRUxfR0MgMQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCmluZGV4IGZiYzYyNTAu
LmVlNTdmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5U
aHJlYWRNYWMubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVh
ZE1hYy5tbQpAQCAtMTQ1LDMxICsxNDUsNCBAQCBib29sIGlzTWFpblRocmVhZCgpCiAgICAgcmV0
dXJuIHB0aHJlYWRfZXF1YWwocHRocmVhZF9zZWxmKCksIG1haW5UaHJlYWRQdGhyZWFkKTsKIH0K
IAotI2lmIEVOQUJMRShQQVJBTExFTF9HQykKLXZvaWQgcmVnaXN0ZXJHQ1RocmVhZCgpCi17Ci0g
ICAgaWYgKCFpc0dDVGhyZWFkKSB7Ci0gICAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiB3ZSdyZSBy
dW5uaW5nIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBhYm91dAotICAgICAgICAvLyBN
YWluVGhyZWFkLgotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgKippc0dDVGhyZWFkID0g
dHJ1ZTsKLX0KLQotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKLXsKLSAgICBpZiAoaXNH
Q1RocmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCi0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIAotICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKLX0KLSNlbHNlCi0vLyBUaGlzIGlzIG5l
Y2Vzc2FyeSBiZWNhdXNlIEphdmFTY3JpcHRDb3JlLmV4cCBkb2Vzbid0IHN1cHBvcnQgcHJlcHJv
Y2Vzc29yIG1hY3Jvcy4KLWJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpCi17Ci0gICAgcmV0
dXJuIGlzTWFpblRocmVhZCgpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123529</attachid>
            <date>2012-01-23 01:42:34 -0800</date>
            <delta_ts>2012-01-24 23:59:48 -0800</delta_ts>
            <desc>working progress test</desc>
            <filename>PATCH_3.6_test.diff</filename>
            <type>text/plain</type>
            <size>4585</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlciBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgppbmRleCAzY2VkYTY1
Li40NjQzMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUub3JkZXIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVy
CkBAIC00MCw2ICs0MCw3IEBAIF9fWk4zV1RGMTBTdHJpbmdJbXBsMTljcmVhdGVVbmluaXRpYWxp
emVkRWpSUHQKIF9fWk4zV1RGNWVxdWFsRVBLTlNfMTBTdHJpbmdJbXBsRVMyXwogX19aTjNXVEYx
MFN0cmluZ0ltcGw2Y3JlYXRlRVBLdGoKIF9fWk4zV1RGMTJpc01haW5UaHJlYWRFdgorX19aTjNX
VEYyMmlzTWFpblRocmVhZE9yR0NUaHJlYWRFdgogX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2CiBf
X1pOM1dURjEwU3RyaW5nSW1wbEQyRXYKIF9fWk4zV1RGNlN0cmluZzZudW1iZXJFeQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCA3
Y2M0MWNkLi41YTcwODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMjMyLDYgKzIzMiw3IEBAIEVYUE9SVFMKICAgICA/aXNE
YXRhRGVzY3JpcHRvckBQcm9wZXJ0eURlc2NyaXB0b3JASlNDQEBRQkVfTlhaCiAgICAgP2lzSG9z
dEZ1bmN0aW9uTm9uSW5saW5lQEpTRnVuY3Rpb25ASlNDQEBBQkVfTlhaCiAgICAgP2lzTWFpblRo
cmVhZEBXVEZAQFlBX05YWgorICAgID9pc01haW5UaHJlYWRPckdDVGhyZWFkQFdURkBAWUFfTlha
CiAgICAgP2lzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzQFdlYWtIYW5kbGVPd25lckBKU0NAQFVB
RV9OVj8kSGFuZGxlQFc0VW5rbm93bkBKU0NAQEAyQFBBWEFBVlNsb3RWaXNpdG9yQDJAQFoKICAg
ICA/aXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uQEpTQ0BAWUFfTlZKU1ZhbHVlQDFAQFoK
ICAgICA/aXNWYWxpZEFsbG9jYXRpb25ASGVhcEBKU0NAQEFBRV9OSUBaCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcAppbmRleCA5MTUxMjY1Li5iMDEzYzZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKQEAgLTI0OSw0ICsyNDksMzMgQEAg
Ym9vbCBpc01haW5UaHJlYWQoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFSQUxMRUxfR0Mp
CitzdGF0aWMgVGhyZWFkU3BlY2lmaWM8Ym9vbD4qIGlzR0NUaHJlYWQ7CisKK3ZvaWQgcmVnaXN0
ZXJHQ1RocmVhZCgpCit7CisgICAgaWYgKCFpc0dDVGhyZWFkKSB7CisgICAgICAgIC8vIFRoaXMg
aGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBh
Ym91dAorICAgICAgICAvLyBNYWluVGhyZWFkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgKippc0dDVGhyZWFkID0gdHJ1ZTsKK30KKworYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFk
KCkKK3sKKyAgICBpZiAoaXNHQ1RocmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQorI2Vsc2UK
Ky8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qg
c3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgorYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFk
KCkKK3sKKyAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJl
YWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCmluZGV4IGZmNzZh
NWYuLjc1NzRkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRo
cmVhZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm0uaCIKIAogI2luY2x1ZGUgPHN0ZGludC5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApA
QCAtNTAsMTUgKzUxLDE1IEBAIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBGdW5jdGlvbjsKIFdU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkIGNhbGxPbk1haW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9p
ZCAoKT4mKTsKICAgICAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNldE1haW5UaHJlYWRDYWxs
YmFja3NQYXVzZWQoYm9vbCBwYXVzZWQpOwotCiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc01h
aW5UaHJlYWQoKTsKICNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCiB2b2lkIHJlZ2lzdGVyR0NUaHJl
YWQoKTsKLVdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKTsK
LSNlbGlmIFBMQVRGT1JNKE1BQykKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQogYm9vbCBp
c01haW5UaHJlYWRPckdDVGhyZWFkKCk7CiAjZWxzZQotaW5saW5lIGJvb2wgaXNNYWluVGhyZWFk
T3JHQ1RocmVhZCgpIHsgcmV0dXJuIGlzTWFpblRocmVhZCgpOyB9CitXVEZfRVhQT1JUX1BSSVZB
VEUgYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7CiAjZW5kaWYKIAogLy8gTk9URTogdGhl
c2UgZnVuY3Rpb25zIGFyZSBpbnRlcm5hbCB0byB0aGUgY2FsbE9uTWFpblRocmVhZCBpbXBsZW1l
bnRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCAzZTVjOTBmLi44
OWQzZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTE4LDcgKzEx
MTgsNyBAQAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAjZW5kaWYKIAotI2lm
ICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZP
Uk0oSU9TKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisjaWYgIWRlZmluZWQoRU5BQkxF
X1BBUkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRG
T1JNKFFUKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAjZGVmaW5lIEVOQUJMRV9QQVJB
TExFTF9HQyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9tYWMvTWFpblRocmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01h
aW5UaHJlYWRNYWMubW0KaW5kZXggZmJjNjI1MC4uZWU1N2ZlZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBAIC0xNDUsMzEgKzE0NSw0IEBA
IGJvb2wgaXNNYWluVGhyZWFkKCkKICAgICByZXR1cm4gcHRocmVhZF9lcXVhbChwdGhyZWFkX3Nl
bGYoKSwgbWFpblRocmVhZFB0aHJlYWQpOwogfQogCi0jaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQot
dm9pZCByZWdpc3RlckdDVGhyZWFkKCkKLXsKLSAgICBpZiAoIWlzR0NUaHJlYWQpIHsKLSAgICAg
ICAgLy8gVGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBwcm9jZXNzIHRoYXQgZG9l
c24ndCBjYXJlIGFib3V0Ci0gICAgICAgIC8vIE1haW5UaHJlYWQuCi0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOwotfQotCi1ib29sIGlzTWFpblRocmVh
ZE9yR0NUaHJlYWQoKQotewotICAgIGlmIChpc0dDVGhyZWFkLT5pc1NldCgpICYmICoqaXNHQ1Ro
cmVhZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgcmV0dXJuIGlzTWFpblRocmVh
ZCgpOwotfQotI2Vsc2UKLS8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlwdENv
cmUuZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgotYm9vbCBpc01haW5U
aHJlYWRPckdDVGhyZWFkKCkKLXsKLSAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Ci19Ci0jZW5k
aWYKLQogfSAvLyBuYW1lc3BhY2UgV1RGCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123893</attachid>
            <date>2012-01-24 23:59:48 -0800</date>
            <delta_ts>2012-01-25 02:21:15 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>PATCH_3.5_final.diff</filename>
            <type>text/plain</type>
            <size>2665</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCmluZGV4IDkxNTEyNjUuLjBm
NjAyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcApAQCAtMjQ5
LDQgKzI0OSwzMyBAQCBib29sIGlzTWFpblRocmVhZCgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShQQVJBTExFTF9HQykKK3N0YXRpYyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNHQ1RocmVhZDsK
Kwordm9pZCByZWdpc3RlckdDVGhyZWFkKCkKK3sKKyAgICBpZiAoIWlzR0NUaHJlYWQpIHsKKyAg
ICAgICAgLy8gVGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBwcm9jZXNzIHRoYXQg
ZG9lc24ndCBjYXJlIGFib3V0CisgICAgICAgIC8vIE1haW5UaHJlYWQuCisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOworfQorCitib29sIGlzTWFpblRo
cmVhZE9yR0NUaHJlYWQoKQoreworICAgIGlmIChpc0dDVGhyZWFkLT5pc1NldCgpICYmICoqaXNH
Q1RocmVhZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gaXNNYWluVGhyZWFk
KCk7Cit9CisjZWxpZiBQTEFURk9STShNQUMpCisvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNl
IEphdmFTY3JpcHRDb3JlLmV4cCBkb2Vzbid0IHN1cHBvcnQgcHJlcHJvY2Vzc29yIG1hY3Jvcy4K
K2Jvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpCit7CisgICAgcmV0dXJuIGlzTWFpblRocmVh
ZCgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL01haW5UaHJlYWQuaAppbmRleCBmZjc2YTVmLi40MGI2NmUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL01haW5UaHJlYWQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlBsYXRm
b3JtLmgiCiAKICNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lm
aWMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0u
aAppbmRleCAzZTVjOTBmLi44OWQzZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9y
bS5oCkBAIC0xMTE4LDcgKzExMTgsNyBAQAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dB
UCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRG
T1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisj
aWYgIWRlZmluZWQoRU5BQkxFX1BBUkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFU
Rk9STShJT1MpIHx8IFBMQVRGT1JNKFFUKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAj
ZGVmaW5lIEVOQUJMRV9QQVJBTExFTF9HQyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KaW5kZXggZmJjNjI1MC4uZWU1N2ZlZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5t
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBA
IC0xNDUsMzEgKzE0NSw0IEBAIGJvb2wgaXNNYWluVGhyZWFkKCkKICAgICByZXR1cm4gcHRocmVh
ZF9lcXVhbChwdGhyZWFkX3NlbGYoKSwgbWFpblRocmVhZFB0aHJlYWQpOwogfQogCi0jaWYgRU5B
QkxFKFBBUkFMTEVMX0dDKQotdm9pZCByZWdpc3RlckdDVGhyZWFkKCkKLXsKLSAgICBpZiAoIWlz
R0NUaHJlYWQpIHsKLSAgICAgICAgLy8gVGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4g
YSBwcm9jZXNzIHRoYXQgZG9lc24ndCBjYXJlIGFib3V0Ci0gICAgICAgIC8vIE1haW5UaHJlYWQu
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOwotfQot
Ci1ib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQotewotICAgIGlmIChpc0dDVGhyZWFkLT5p
c1NldCgpICYmICoqaXNHQ1RocmVhZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAg
cmV0dXJuIGlzTWFpblRocmVhZCgpOwotfQotI2Vsc2UKLS8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJl
Y2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFj
cm9zLgotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKLXsKLSAgICByZXR1cm4gaXNNYWlu
VGhyZWFkKCk7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV1RGCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123903</attachid>
            <date>2012-01-25 02:21:15 -0800</date>
            <delta_ts>2012-01-26 00:44:52 -0800</delta_ts>
            <desc>FINAL PATCH</desc>
            <filename>PATCH_3.8.1_Final.diff</filename>
            <type>text/plain</type>
            <size>4209</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDVlMTg5ZjMuLjFlZjNmN2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAxLTI1ICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlv
biBvZiAicmVnaXN0ZXJHQ1RocmVhZCIgYW5kICJpc01haW5UaHJlYWRPckdDVGhyZWFkIgorICAg
ICAgICBpcyBtb3ZlZCBmcm9tIE1haW5UaHJlYWRNYWMubW0gdG8gdGhlIGNvbW1vbiBNYWluVGhy
ZWFkLmNwcCB0byBtYWtlCisgICAgICAgIHRoZW0gYXZhaWxhYmxlIGZvciBvdGhlciBwbGF0Zm9y
bXMuCisKKyAgICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAg
IHNwZWVkLXVwOiAgMS4wNzF4IGFzIGZhc3QgIFtGcm9tOiA3NDYuMW1zICBUbzogNjk2LjRtcyBd
CisgICAgICAgIFdpbmRTY29ycGlvbiBzcGVlZC11cDogIDEuMDgyeCBhcyBmYXN0ICBbRnJvbTog
MzQ5MC40bXMgVG86IDMyMjYuN21zXQorICAgICAgICBWOCBTcGxheSAgICAgc3BlZWQtdXA6ICAx
LjE1OHggYXMgZmFzdCAgW0Zyb206IDE0NS44bXMgIFRvOiAxMjUuOW1zIF0KKworICAgICAgICBU
ZXN0ZWQgb24gSW50ZWwoUikgQ29yZShUTSkgaTUtMjMyMCBDUFUgQCAzLjAwR0h6IHdpdGggNC1j
b3JlLgorCisgICAgICAgICogd3RmL01haW5UaHJlYWQuY3BwOgorICAgICAgICAoV1RGKToKKyAg
ICAgICAgKFdURjo6cmVnaXN0ZXJHQ1RocmVhZCk6CisgICAgICAgIChXVEY6OmlzTWFpblRocmVh
ZE9yR0NUaHJlYWQpOgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6CisgICAgICAgICogd3Rm
L1BsYXRmb3JtLmg6CisgICAgICAgICogd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tOgorCiAyMDEy
LTAxLTI0ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4NTUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCmluZGV4IDkxNTEyNjUuLjBmNjAyODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcApAQCAtMjQ5LDQgKzI0
OSwzMyBAQCBib29sIGlzTWFpblRocmVhZCgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQQVJB
TExFTF9HQykKK3N0YXRpYyBUaHJlYWRTcGVjaWZpYzxib29sPiogaXNHQ1RocmVhZDsKKwordm9p
ZCByZWdpc3RlckdDVGhyZWFkKCkKK3sKKyAgICBpZiAoIWlzR0NUaHJlYWQpIHsKKyAgICAgICAg
Ly8gVGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBwcm9jZXNzIHRoYXQgZG9lc24n
dCBjYXJlIGFib3V0CisgICAgICAgIC8vIE1haW5UaHJlYWQuCisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOworfQorCitib29sIGlzTWFpblRocmVhZE9y
R0NUaHJlYWQoKQoreworICAgIGlmIChpc0dDVGhyZWFkLT5pc1NldCgpICYmICoqaXNHQ1RocmVh
ZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Cit9
CisjZWxpZiBQTEFURk9STShNQUMpCisvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIEphdmFT
Y3JpcHRDb3JlLmV4cCBkb2Vzbid0IHN1cHBvcnQgcHJlcHJvY2Vzc29yIG1hY3Jvcy4KK2Jvb2wg
aXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpCit7CisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOwor
fQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01h
aW5UaHJlYWQuaAppbmRleCBmZjc2YTVmLi40MGI2NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL01haW5UaHJlYWQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtLmgi
CiAKICNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4K
IAogbmFtZXNwYWNlIFdURiB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRl
eCAzZTVjOTBmLi44OWQzZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBA
IC0xMTE4LDcgKzExMTgsNyBAQAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAj
ZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRGT1JNKE1B
QykgfHwgUExBVEZPUk0oSU9TKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisjaWYgIWRl
ZmluZWQoRU5BQkxFX1BBUkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJ
T1MpIHx8IFBMQVRGT1JNKFFUKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAjZGVmaW5l
IEVOQUJMRV9QQVJBTExFTF9HQyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KaW5kZXggZmJjNjI1MC4uNTVkOTM0OSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBAIC0zNSw3
ICszNSw2IEBACiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0hhc2hT
ZXQuaD4KICNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4KLSNpbXBvcnQgPHd0Zi9UaHJlYWRTcGVj
aWZpYy5oPgogCiBAaW50ZXJmYWNlIEpTV1RGTWFpblRocmVhZENhbGxlciA6IE5TT2JqZWN0IHsK
IH0KQEAgLTE0NSwzMSArMTQ0LDQgQEAgYm9vbCBpc01haW5UaHJlYWQoKQogICAgIHJldHVybiBw
dGhyZWFkX2VxdWFsKHB0aHJlYWRfc2VsZigpLCBtYWluVGhyZWFkUHRocmVhZCk7CiB9CiAKLSNp
ZiBFTkFCTEUoUEFSQUxMRUxfR0MpCi12b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKQotewotICAgIGlm
ICghaXNHQ1RocmVhZCkgewotICAgICAgICAvLyBUaGlzIGhhcHBlbnMgaWYgd2UncmUgcnVubmlu
ZyBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0IGNhcmUgYWJvdXQKLSAgICAgICAgLy8gTWFpblRo
cmVhZC4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgICoqaXNHQ1RocmVhZCA9IHRydWU7
Ci19Ci0KLWJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpCi17Ci0gICAgaWYgKGlzR0NUaHJl
YWQtPmlzU2V0KCkgJiYgKippc0dDVGhyZWFkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAK
LSAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Ci19Ci0jZWxzZQotLy8gVGhpcyBpcyBuZWNlc3Nh
cnkgYmVjYXVzZSBKYXZhU2NyaXB0Q29yZS5leHAgZG9lc24ndCBzdXBwb3J0IHByZXByb2Nlc3Nv
ciBtYWNyb3MuCi1ib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQotewotICAgIHJldHVybiBp
c01haW5UaHJlYWQoKTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXVEYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124070</attachid>
            <date>2012-01-26 00:44:52 -0800</date>
            <delta_ts>2012-02-03 03:21:39 -0800</delta_ts>
            <desc>Final update</desc>
            <filename>PATCH_3.8.2_Final.diff</filename>
            <type>text/plain</type>
            <size>3919</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGY0ZDhhMGUuLjAwZDIwOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAxLTI2ICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlv
biBvZiAicmVnaXN0ZXJHQ1RocmVhZCIgYW5kICJpc01haW5UaHJlYWRPckdDVGhyZWFkIgorICAg
ICAgICBpcyBtb3ZlZCBmcm9tIE1haW5UaHJlYWRNYWMubW0gdG8gdGhlIGNvbW1vbiBNYWluVGhy
ZWFkLmNwcCB0byBtYWtlCisgICAgICAgIHRoZW0gYXZhaWxhYmxlIGZvciBvdGhlciBwbGF0Zm9y
bXMuCisKKyAgICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAgICAg
IHNwZWVkLXVwOiAgMS4wNzF4IGFzIGZhc3QgIFtGcm9tOiA3NDYuMW1zICBUbzogNjk2LjRtcyBd
CisgICAgICAgIFdpbmRTY29ycGlvbiBzcGVlZC11cDogIDEuMDgyeCBhcyBmYXN0ICBbRnJvbTog
MzQ5MC40bXMgVG86IDMyMjYuN21zXQorICAgICAgICBWOCBTcGxheSAgICAgc3BlZWQtdXA6ICAx
LjE1OHggYXMgZmFzdCAgW0Zyb206IDE0NS44bXMgIFRvOiAxMjUuOW1zIF0KKworICAgICAgICBU
ZXN0ZWQgb24gSW50ZWwoUikgQ29yZShUTSkgaTUtMjMyMCBDUFUgQCAzLjAwR0h6IHdpdGggNC1j
b3JlLgorCisgICAgICAgICogd3RmL01haW5UaHJlYWQuY3BwOgorICAgICAgICAoV1RGKToKKyAg
ICAgICAgKFdURjo6cmVnaXN0ZXJHQ1RocmVhZCk6CisgICAgICAgIChXVEY6OmlzTWFpblRocmVh
ZE9yR0NUaHJlYWQpOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9t
YWMvTWFpblRocmVhZE1hYy5tbToKKwogMjAxMi0wMS0yNiAgQW5keSBFc3RlcyAgPGFlc3Rlc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEwNTU1NSk6IEluY29ycmVjdCB1c2Ug
b2YgT1MoKSBtYWNybyBicmVha3MgT3duUHRyIHdoZW4gdXNlZCB3aXRoIFdpbjMyIGRhdGEgdHlw
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCmluZGV4IDkxNTEyNjUu
LmNjOGM2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVh
ZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkZ1bmN0aW9uYWwuaCIKICNpbmNsdWRlICJTdGRMaWJF
eHRyYXMuaCIKICNpbmNsdWRlICJUaHJlYWRpbmcuaCIKKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3Bl
Y2lmaWMuaD4KIAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogI2Vycm9yIENocm9taXVtIHVzZXMg
YSBkaWZmZXJlbnQgbWFpbiB0aHJlYWQgaW1wbGVtZW50YXRpb24KQEAgLTI0OSw0ICsyNTAsMzMg
QEAgYm9vbCBpc01haW5UaHJlYWQoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFSQUxMRUxf
R0MpCitzdGF0aWMgVGhyZWFkU3BlY2lmaWM8Ym9vbD4qIGlzR0NUaHJlYWQ7CisKK3ZvaWQgcmVn
aXN0ZXJHQ1RocmVhZCgpCit7CisgICAgaWYgKCFpc0dDVGhyZWFkKSB7CisgICAgICAgIC8vIFRo
aXMgaGFwcGVucyBpZiB3ZSdyZSBydW5uaW5nIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2Fy
ZSBhYm91dAorICAgICAgICAvLyBNYWluVGhyZWFkLgorICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgKippc0dDVGhyZWFkID0gdHJ1ZTsKK30KKworYm9vbCBpc01haW5UaHJlYWRPckdDVGhy
ZWFkKCkKK3sKKyAgICBpZiAoaXNHQ1RocmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworfQorI2Vs
aWYgUExBVEZPUk0oTUFDKQorLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBKYXZhU2NyaXB0
Q29yZS5leHAgZG9lc24ndCBzdXBwb3J0IHByZXByb2Nlc3NvciBtYWNyb3MuCitib29sIGlzTWFp
blRocmVhZE9yR0NUaHJlYWQoKQoreworICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKK30KKyNl
bmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0u
aAppbmRleCA5MGRlYmQ5Li4yNmUzYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9y
bS5oCkBAIC0xMTIwLDcgKzExMjAsNyBAQAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dB
UCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRG
T1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisj
aWYgIWRlZmluZWQoRU5BQkxFX1BBUkFMTEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFU
Rk9STShJT1MpIHx8IFBMQVRGT1JNKFFUKSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAj
ZGVmaW5lIEVOQUJMRV9QQVJBTExFTF9HQyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KaW5kZXggZmJjNjI1MC4uZWU1N2ZlZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5t
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBA
IC0xNDUsMzEgKzE0NSw0IEBAIGJvb2wgaXNNYWluVGhyZWFkKCkKICAgICByZXR1cm4gcHRocmVh
ZF9lcXVhbChwdGhyZWFkX3NlbGYoKSwgbWFpblRocmVhZFB0aHJlYWQpOwogfQogCi0jaWYgRU5B
QkxFKFBBUkFMTEVMX0dDKQotdm9pZCByZWdpc3RlckdDVGhyZWFkKCkKLXsKLSAgICBpZiAoIWlz
R0NUaHJlYWQpIHsKLSAgICAgICAgLy8gVGhpcyBoYXBwZW5zIGlmIHdlJ3JlIHJ1bm5pbmcgaW4g
YSBwcm9jZXNzIHRoYXQgZG9lc24ndCBjYXJlIGFib3V0Ci0gICAgICAgIC8vIE1haW5UaHJlYWQu
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAqKmlzR0NUaHJlYWQgPSB0cnVlOwotfQot
Ci1ib29sIGlzTWFpblRocmVhZE9yR0NUaHJlYWQoKQotewotICAgIGlmIChpc0dDVGhyZWFkLT5p
c1NldCgpICYmICoqaXNHQ1RocmVhZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAg
cmV0dXJuIGlzTWFpblRocmVhZCgpOwotfQotI2Vsc2UKLS8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJl
Y2F1c2UgSmF2YVNjcmlwdENvcmUuZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFj
cm9zLgotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKLXsKLSAgICByZXR1cm4gaXNNYWlu
VGhyZWFkKCk7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV1RGCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125302</attachid>
            <date>2012-02-03 03:21:39 -0800</date>
            <delta_ts>2012-02-10 02:49:05 -0800</delta_ts>
            <desc>Final update</desc>
            <filename>PATCH_GC_FINAL.diff</filename>
            <type>text/plain</type>
            <size>6335</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGM1ZTYzMjMuLjFkZjA5MmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTAzICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gR0Mgc2hv
dWxkIGJlIHBhcmFsbGVsIG9uIFF0IHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgbWFkZSB0aGUgcGFyYWxsZWwgZ2Mg
ZmVhdHVyZSBhdmFpbGFibGUgZm9yIFF0IHBvcnQuCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlv
biBvZiAicmVnaXN0ZXJHQ1RocmVhZCIgYW5kICJpc01haW5UaHJlYWRPckdDVGhyZWFkIiwKKyAg
ICAgICAgYW5kIGEgbG9jYWwgc3RhdGljIGZ1bmN0aW9uIFtpbml0aWFsaXplR0NUaHJlYWRzXSBp
cyBtb3ZlZCBmcm9tCisgICAgICAgIE1haW5UaHJlYWRNYWMubW0gdG8gdGhlIGNvbW1vbiBNYWlu
VGhyZWFkLmNwcCB0byBtYWtlIHRoZW0gYXZhaWxhYmxlCisgICAgICAgIGZvciBvdGhlciBwbGF0
Zm9ybXMuCisKKyAgICAgICAgTWVhc3VyZW1lbnQgcmVzdWx0czoKKyAgICAgICAgVjggICAgICAg
ICAgIHNwZWVkLXVwOiAgMS4wMjV4IGFzIGZhc3QgIFtGcm9tOiA2NjMuNG1zICBUbzogNjQ3LjBt
cyBdCisgICAgICAgIFY4IFNwbGF5ICAgICBzcGVlZC11cDogIDEuMTg1eCBhcyBmYXN0ICBbRnJv
bTogMTM4LjRtcyAgVG86IDExNi44bXMgXQorCisgICAgICAgIFRlc3RlZCBvbiBJbnRlbChSKSBD
b3JlKFRNKSBpNS0yMzIwIENQVSBAIDMuMDBHSHogd2l0aCA0LWNvcmUuCisKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAg
ICAgIChXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKToKKyAgICAgICAgKFdURik6CisgICAgICAg
IChXVEY6OmluaXRpYWxpemVHQ1RocmVhZHMpOgorICAgICAgICAoV1RGOjpyZWdpc3RlckdDVGhy
ZWFkKToKKyAgICAgICAgKFdURjo6aXNNYWluVGhyZWFkT3JHQ1RocmVhZCk6CisgICAgICAgICog
d3RmL01haW5UaHJlYWQuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgICogd3RmL1BsYXRmb3Jt
Lmg6CisgICAgICAgICogd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tOgorICAgICAgICAoV1RGKToK
KwogMjAxMi0wMi0wMiAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByZW1vdmluZyBhbiB1bm5lY2Vzc2FyaWx5IEpTX1BSSVZBVEVf
RVhQT1JUIGFubm90YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUub3JkZXIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
b3JkZXIKaW5kZXggZDg1MTNkMC4uNmZiY2E3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5vcmRlcgpAQCAtMTE0NCw2ICsxMTQ0LDcgQEAgX19aTkszSlNDOEpTU3Ry
aW5nOHRvTnVtYmVyRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxMGpzVG9OdW1iZXJFUktOU183
VVN0cmluZ0UKIF9fWk4zSlNDTDE5anNTdHJEZWNpbWFsTGl0ZXJhbEVSUEt0UzFfCiBfX1pOM1dU
RjIyY2FuY2VsQ2FsbE9uTWFpblRocmVhZEVQRnZQdkVTMF8KK19fWk4zV1RGMjJpc01haW5UaHJl
YWRPckdDVGhyZWFkRXYKIF9fWk5LM0pTQzhKU1N0cmluZzl0b0Jvb2xlYW5FUE5TXzlFeGVjU3Rh
dGVFCiBfX1pOM1dURjEwU3RyaW5nSW1wbDRmaW5kRVBGYnRFagogX19aTjNXVEYxMFN0cmluZ0lt
cGw0ZmluZEVQS2NqCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5U
aHJlYWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcAppbmRl
eCA5MTUxMjY1Li40YWM5ZjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L01haW5UaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVh
ZC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGdW5jdGlvbmFsLmgiCiAjaW5jbHVk
ZSAiU3RkTGliRXh0cmFzLmgiCiAjaW5jbHVkZSAiVGhyZWFkaW5nLmgiCisjaW5jbHVkZSA8d3Rm
L1RocmVhZFNwZWNpZmljLmg+CiAKICNpZiBQTEFURk9STShDSFJPTUlVTSkKICNlcnJvciBDaHJv
bWl1bSB1c2VzIGEgZGlmZmVyZW50IG1haW4gdGhyZWFkIGltcGxlbWVudGF0aW9uCkBAIC0xMDEs
NiArMTAyLDcgQEAgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZCgpCiAKICAgICBtYWluVGhyZWFk
RnVuY3Rpb25RdWV1ZU11dGV4KCk7CiAgICAgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgp
OworICAgIGluaXRpYWxpemVHQ1RocmVhZHMoKTsKIH0KIAogI2Vsc2UKQEAgLTI0OSw0ICsyNTEs
NDIgQEAgYm9vbCBpc01haW5UaHJlYWQoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFSQUxM
RUxfR0MpCitzdGF0aWMgVGhyZWFkU3BlY2lmaWM8Ym9vbD4qIGlzR0NUaHJlYWQ7CisjZW5kaWYK
Kwordm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCkKK3sKKyNpZiBFTkFCTEUoUEFSQUxMRUxfR0Mp
CisgICAgaXNHQ1RocmVhZCA9IG5ldyBUaHJlYWRTcGVjaWZpYzxib29sPigpOworI2VuZGlmCit9
CisKKyNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCit2b2lkIHJlZ2lzdGVyR0NUaHJlYWQoKQorewor
ICAgIGlmICghaXNHQ1RocmVhZCkgeworICAgICAgICAvLyBUaGlzIGhhcHBlbnMgaWYgd2UncmUg
cnVubmluZyBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0IGNhcmUgYWJvdXQKKyAgICAgICAgLy8g
TWFpblRocmVhZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgICoqaXNHQ1RocmVhZCA9
IHRydWU7Cit9CisKK2Jvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpCit7CisgICAgaWYgKGlz
R0NUaHJlYWQtPmlzU2V0KCkgJiYgKippc0dDVGhyZWFkKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKK30KKyNlbGlmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oV0lORE9XUykKKy8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgSmF2YVNjcmlw
dENvcmUuZXhwIGRvZXNuJ3Qgc3VwcG9ydCBwcmVwcm9jZXNzb3IgbWFjcm9zLgorYm9vbCBpc01h
aW5UaHJlYWRPckdDVGhyZWFkKCkKK3sKKyAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7Cit9Cisj
ZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL01haW5UaHJlYWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRo
cmVhZC5oCmluZGV4IGZmNzZhNWYuLjJjNmU5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvTWFpblRocmVhZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
TWFpblRocmVhZC5oCkBAIC01MiwxMSArNTIsMTQgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
Y2FsbE9uTWFpblRocmVhZChjb25zdCBGdW5jdGlvbjx2b2lkICgpPiYpOwogV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgc2V0TWFpblRocmVhZENhbGxiYWNrc1BhdXNlZChib29sIHBhdXNlZCk7CiAK
IFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzTWFpblRocmVhZCgpOworCit2b2lkIGluaXRpYWxp
emVHQ1RocmVhZHMoKTsKKwogI2lmIEVOQUJMRShQQVJBTExFTF9HQykKIHZvaWQgcmVnaXN0ZXJH
Q1RocmVhZCgpOwogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVh
ZCgpOwotI2VsaWYgUExBVEZPUk0oTUFDKQotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7
CisjZWxpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdJTkRPV1MpCitXVEZfRVhQT1JUX1BS
SVZBVEUgYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCk7CiAjZWxzZQogaW5saW5lIGJvb2wg
aXNNYWluVGhyZWFkT3JHQ1RocmVhZCgpIHsgcmV0dXJuIGlzTWFpblRocmVhZCgpOyB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCBiYzZlOTExLi40NmUxOGI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTI3LDcgKzExMjcsNyBA
QAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAjZW5kaWYKIAotI2lmICFkZWZp
bmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9T
KSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisjaWYgIWRlZmluZWQoRU5BQkxFX1BBUkFM
TEVMX0dDKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFFU
KSkgJiYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAjZGVmaW5lIEVOQUJMRV9QQVJBTExFTF9H
QyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9tYWMv
TWFpblRocmVhZE1hYy5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJl
YWRNYWMubW0KaW5kZXggZmJjNjI1MC4uNWE4MmY0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCkBAIC0zNSw3ICszNSw2IEBACiAjaW1wb3J0
IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0
Zi9UaHJlYWRpbmcuaD4KLSNpbXBvcnQgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogCiBAaW50ZXJm
YWNlIEpTV1RGTWFpblRocmVhZENhbGxlciA6IE5TT2JqZWN0IHsKIH0KQEAgLTU5LDE3ICs1OCw2
IEBAIHN0YXRpYyBib29sIG1haW5UaHJlYWRFc3RhYmxpc2hlZEFzUHRocmVhZE1haW47CiBzdGF0
aWMgcHRocmVhZF90IG1haW5UaHJlYWRQdGhyZWFkOwogc3RhdGljIE5TVGhyZWFkKiBtYWluVGhy
ZWFkTlNUaHJlYWQ7CiAKLSNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCi1zdGF0aWMgVGhyZWFkU3Bl
Y2lmaWM8Ym9vbD4qIGlzR0NUaHJlYWQ7Ci0KLXN0YXRpYyB2b2lkIGluaXRpYWxpemVHQ1RocmVh
ZHMoKQotewotICAgIGlzR0NUaHJlYWQgPSBuZXcgVGhyZWFkU3BlY2lmaWM8Ym9vbD4oKTsKLX0K
LSNlbHNlCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplR0NUaHJlYWRzKCkgeyB9Ci0jZW5kaWYKLQog
dm9pZCBpbml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKCkKIHsKICAgICBBU1NFUlQoIXN0YXRp
Y01haW5UaHJlYWRDYWxsZXIpOwpAQCAtMTQ1LDMxICsxMzMsNCBAQCBib29sIGlzTWFpblRocmVh
ZCgpCiAgICAgcmV0dXJuIHB0aHJlYWRfZXF1YWwocHRocmVhZF9zZWxmKCksIG1haW5UaHJlYWRQ
dGhyZWFkKTsKIH0KIAotI2lmIEVOQUJMRShQQVJBTExFTF9HQykKLXZvaWQgcmVnaXN0ZXJHQ1Ro
cmVhZCgpCi17Ci0gICAgaWYgKCFpc0dDVGhyZWFkKSB7Ci0gICAgICAgIC8vIFRoaXMgaGFwcGVu
cyBpZiB3ZSdyZSBydW5uaW5nIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgY2FyZSBhYm91dAot
ICAgICAgICAvLyBNYWluVGhyZWFkLgotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgKipp
c0dDVGhyZWFkID0gdHJ1ZTsKLX0KLQotYm9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKLXsK
LSAgICBpZiAoaXNHQ1RocmVhZC0+aXNTZXQoKSAmJiAqKmlzR0NUaHJlYWQpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIAotICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKLX0KLSNlbHNlCi0v
LyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIEphdmFTY3JpcHRDb3JlLmV4cCBkb2Vzbid0IHN1
cHBvcnQgcHJlcHJvY2Vzc29yIG1hY3Jvcy4KLWJvb2wgaXNNYWluVGhyZWFkT3JHQ1RocmVhZCgp
Ci17Ci0gICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNw
YWNlIFdURgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>