<?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>105796</bug_id>
          
          <creation_ts>2012-12-27 04:30:29 -0800</creation_ts>
          <short_desc>Web Inspector: plumb trace events to Timeline agent</short_desc>
          <delta_ts>2013-02-26 08:30:53 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>105851</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>keishi</cc>
    
    <cc>levin+threading</cc>
    
    <cc>loislo</cc>
    
    <cc>peter+ews</cc>
    
    <cc>pfeldman</cc>
    
    <cc>philn</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>797513</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-12-27 04:30:29 -0800</bug_when>
    <thetext>Some of the events that we want to display in Timeline panel are not convenient to plumb using present instrumentation interfaces. This adds support for handling trace events in Timeline panel and uses it to instrument deferred painting of layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797515</commentid>
    <comment_count>1</comment_count>
      <attachid>180791</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-12-27 04:37:40 -0800</bug_when>
    <thetext>Created attachment 180791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797518</commentid>
    <comment_count>2</comment_count>
      <attachid>180791</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-12-27 04:58:12 -0800</bug_when>
    <thetext>Comment on attachment 180791
Patch

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

&gt; Source/WebCore/inspector/InspectorInstrumentation.h:122
&gt; +    static void didReportTraceEvent(Page*, char phase, const char* categoryName, const char* name, unsigned long long id,

traceEvent ?

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:117
&gt; +        : m_size(numArguments), m_argumentNames(argumentNames), m_argumentTypes(argumentTypes), m_argumentValues(argumentValues)

stack these please.
who owns the argumentNames?

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:123
&gt; +    bool getBool(const char* name) const { return getParameter(name, TRACE_VALUE_TYPE_BOOL).m_bool; }

Place block on its own lines. asBool(const char* name).

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:140
&gt; +    const TraceValueUnion&amp; getParameter(const char* name, char expectedType) const

parameter(

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:226
&gt; +        m_client-&gt;enableTraceEventsReporting(true);

setReportTraceEvents

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:243
&gt; +    m_deferredPaintLayerId = 0;

Lets split these.

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:378
&gt; +    TraceEventHandler handler = m_traceEventHandlers.get(name);

Lets make name+phase a key.

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:385
&gt; +const char kLayerId[] = &quot;layerId&quot;;

anonymous namespace for this one?

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:692
&gt; +    m_traceEventHandlers.set(&quot;Instrumentation::DeferPaint&quot;, &amp;InspectorTimelineAgent::onDeferPaint);

I would whitelist the ones we want to expose + handle specifics using switch. Or lets introduce generic fallback handler. Or rename to onTraceEventDeferPaint

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:725
&gt; +void InspectorTimelineAgent::pushSkippedRecord(const String&amp; type)

mute? Can we also land this as a separate patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797890</commentid>
    <comment_count>3</comment_count>
      <attachid>180876</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-12-28 08:00:15 -0800</bug_when>
    <thetext>Created attachment 180876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797891</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-28 08:06:08 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797893</commentid>
    <comment_count>5</comment_count>
      <attachid>180876</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-28 08:07:08 -0800</bug_when>
    <thetext>Comment on attachment 180876
Patch

Attachment 180876 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15549833</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797895</commentid>
    <comment_count>6</comment_count>
      <attachid>180876</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-28 08:07:43 -0800</bug_when>
    <thetext>Comment on attachment 180876
Patch

Attachment 180876 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15557772</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797896</commentid>
    <comment_count>7</comment_count>
      <attachid>180876</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-28 08:08:25 -0800</bug_when>
    <thetext>Comment on attachment 180876
Patch

Attachment 180876 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15545874</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797897</commentid>
    <comment_count>8</comment_count>
      <attachid>180876</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-12-28 08:08:59 -0800</bug_when>
    <thetext>Comment on attachment 180876
Patch

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

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:200
&gt; +        ASSERT_NOT_REACHED();

That should be fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797899</commentid>
    <comment_count>9</comment_count>
      <attachid>180876</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-28 08:09:53 -0800</bug_when>
    <thetext>Comment on attachment 180876
Patch

Attachment 180876 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15549836</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797917</commentid>
    <comment_count>10</comment_count>
      <attachid>180881</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-12-28 08:56:02 -0800</bug_when>
    <thetext>Created attachment 180881
Patch

Trying on bots..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797919</commentid>
    <comment_count>11</comment_count>
      <attachid>180881</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-28 09:01:15 -0800</bug_when>
    <thetext>Comment on attachment 180881
Patch

Attachment 180881 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15582050</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797923</commentid>
    <comment_count>12</comment_count>
      <attachid>180876</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-12-28 09:11:09 -0800</bug_when>
    <thetext>Comment on attachment 180876
Patch

Attachment 180876 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/15549854</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798075</commentid>
    <comment_count>13</comment_count>
      <attachid>180922</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-12-29 00:48:50 -0800</bug_when>
    <thetext>Created attachment 180922
Patch

Another try on bots..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798109</commentid>
    <comment_count>14</comment_count>
      <attachid>180932</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-12-29 04:12:12 -0800</bug_when>
    <thetext>Created attachment 180932
Patch

Rebased, trying on bots again..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822577</commentid>
    <comment_count>15</comment_count>
      <attachid>186000</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-02-01 03:21:54 -0800</bug_when>
    <thetext>Created attachment 186000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822583</commentid>
    <comment_count>16</comment_count>
      <attachid>186000</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-01 03:38:12 -0800</bug_when>
    <thetext>Comment on attachment 186000
Patch

Attachment 186000 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16308579</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822584</commentid>
    <comment_count>17</comment_count>
      <attachid>186000</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-01 03:40:15 -0800</bug_when>
    <thetext>Comment on attachment 186000
Patch

Attachment 186000 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16305575</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822598</commentid>
    <comment_count>18</comment_count>
      <attachid>186000</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-01 04:08:15 -0800</bug_when>
    <thetext>Comment on attachment 186000
Patch

Attachment 186000 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16293592</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822604</commentid>
    <comment_count>19</comment_count>
      <attachid>186000</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 04:12:45 -0800</bug_when>
    <thetext>Comment on attachment 186000
Patch

Attachment 186000 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16301628</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822616</commentid>
    <comment_count>20</comment_count>
      <attachid>186000</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 04:30:17 -0800</bug_when>
    <thetext>Comment on attachment 186000
Patch

Attachment 186000 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16298575</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822630</commentid>
    <comment_count>21</comment_count>
      <attachid>186000</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 04:47:09 -0800</bug_when>
    <thetext>Comment on attachment 186000
Patch

Attachment 186000 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16301636</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822643</commentid>
    <comment_count>22</comment_count>
      <attachid>186015</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-02-01 05:03:34 -0800</bug_when>
    <thetext>Created attachment 186015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822655</commentid>
    <comment_count>23</comment_count>
      <attachid>186015</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-01 05:15:37 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

Attachment 186015 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16301659</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822657</commentid>
    <comment_count>24</comment_count>
      <attachid>186015</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-01 05:17:06 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

Attachment 186015 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16301660</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822658</commentid>
    <comment_count>25</comment_count>
      <attachid>186015</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-01 05:17:07 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

Attachment 186015 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16297656</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822668</commentid>
    <comment_count>26</comment_count>
      <attachid>186015</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 05:31:11 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

Attachment 186015 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16297661</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822671</commentid>
    <comment_count>27</comment_count>
      <attachid>186015</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 05:37:20 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

Attachment 186015 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16297666</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822673</commentid>
    <comment_count>28</comment_count>
      <attachid>186015</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 05:39:38 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

Attachment 186015 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16300602</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822686</commentid>
    <comment_count>29</comment_count>
      <attachid>186015</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-02-01 05:56:17 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

Attachment 186015 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/16301671</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822689</commentid>
    <comment_count>30</comment_count>
      <attachid>186015</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 06:01:14 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

Attachment 186015 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16297675</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822692</commentid>
    <comment_count>31</comment_count>
      <attachid>186015</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-02-01 06:03:58 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

Attachment 186015 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/16305620</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822824</commentid>
    <comment_count>32</comment_count>
      <attachid>186015</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-01 08:47:33 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

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

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:175
&gt; +    if (m_client &amp;&amp; m_pageAgent)

// Workers case.

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:2
&gt; +* Copyright (C) 2012 Google Inc. All rights reserved.

2013</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822966</commentid>
    <comment_count>33</comment_count>
      <attachid>186015</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 10:55:14 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

Attachment 186015 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16293892</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824237</commentid>
    <comment_count>34</comment_count>
      <attachid>186015</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-04 04:19:27 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

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

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:57
&gt; +        return &amp;instance;

Is it supposed to be called only on the main thread? If no, the initialization should be guarded with a mutex.

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:78
&gt; +        m_processors[index] = m_processors.last();

I don&apos;t think this place will be a bottleneck and would probably just call remove(index) here.

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:142
&gt; +    HashMap&lt;String, EventTypeEntry&gt;::iterator it = m_handlersByType.find(name);

How do you know that the processor is not destroyed when processEventOnAnyThread is called from another thread?

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.h:69
&gt; +        bool m_bool;

Add default constructor.

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.h:90
&gt; +            : m_argumentCount(0)

Initialize other parameters?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824253</commentid>
    <comment_count>35</comment_count>
      <attachid>186015</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-04 04:46:10 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

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

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:92
&gt; +        Vector&lt;RefPtr&lt;TimelineTraceEventProcessor&gt; &gt; processors;

Consider passing inlineCapacity = 2

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:123
&gt; +    static TraceValueUnion missingValue;

const

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:190
&gt; +    Vector&lt;TraceEvent&gt; events;

ASSERT(isMainThread())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824373</commentid>
    <comment_count>36</comment_count>
      <attachid>186381</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-02-04 08:24:22 -0800</bug_when>
    <thetext>Created attachment 186381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824382</commentid>
    <comment_count>37</comment_count>
      <attachid>186384</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-02-04 08:29:07 -0800</bug_when>
    <thetext>Created attachment 186384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824395</commentid>
    <comment_count>38</comment_count>
      <attachid>186015</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-02-04 08:38:14 -0800</bug_when>
    <thetext>Comment on attachment 186015
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:175
&gt;&gt; +    if (m_client &amp;&amp; m_pageAgent)
&gt; 
&gt; // Workers case.

done.

&gt;&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:2
&gt;&gt; +* Copyright (C) 2012 Google Inc. All rights reserved.
&gt; 
&gt; 2013

done

&gt;&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:57
&gt;&gt; +        return &amp;instance;
&gt; 
&gt; Is it supposed to be called only on the main thread? If no, the initialization should be guarded with a mutex.

It&apos;s guaranteed to be _first_ called on the main thread (we would only subscribe from the main thread).

&gt;&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:78
&gt;&gt; +        m_processors[index] = m_processors.last();
&gt; 
&gt; I don&apos;t think this place will be a bottleneck and would probably just call remove(index) here.

done.

&gt;&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:92
&gt;&gt; +        Vector&lt;RefPtr&lt;TimelineTraceEventProcessor&gt; &gt; processors;
&gt; 
&gt; Consider passing inlineCapacity = 2

done.

&gt;&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:123
&gt;&gt; +    static TraceValueUnion missingValue;
&gt; 
&gt; const

done.

&gt;&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:142
&gt;&gt; +    HashMap&lt;String, EventTypeEntry&gt;::iterator it = m_handlersByType.find(name);
&gt; 
&gt; How do you know that the processor is not destroyed when processEventOnAnyThread is called from another thread?

It&apos;s reference counted and one of the copies is held by the caller.

&gt;&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:190
&gt;&gt; +    Vector&lt;TraceEvent&gt; events;
&gt; 
&gt; ASSERT(isMainThread())

done

&gt;&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.h:69
&gt;&gt; +        bool m_bool;
&gt; 
&gt; Add default constructor.

done

&gt;&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.h:90
&gt;&gt; +            : m_argumentCount(0)
&gt; 
&gt; Initialize other parameters?

Also done for m_name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824396</commentid>
    <comment_count>39</comment_count>
      <attachid>186389</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-02-04 08:38:45 -0800</bug_when>
    <thetext>Created attachment 186389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824415</commentid>
    <comment_count>40</comment_count>
      <attachid>186389</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-04 09:03:26 -0800</bug_when>
    <thetext>Comment on attachment 186389
Patch

Attachment 186389 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16370264</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824418</commentid>
    <comment_count>41</comment_count>
      <attachid>186389</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-04 09:09:14 -0800</bug_when>
    <thetext>Comment on attachment 186389
Patch

Attachment 186389 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16377159</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824424</commentid>
    <comment_count>42</comment_count>
      <attachid>186389</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 09:13:26 -0800</bug_when>
    <thetext>Comment on attachment 186389
Patch

Attachment 186389 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16371296</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824426</commentid>
    <comment_count>43</comment_count>
      <attachid>186389</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-04 09:16:02 -0800</bug_when>
    <thetext>Comment on attachment 186389
Patch

Attachment 186389 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16379161</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824453</commentid>
    <comment_count>44</comment_count>
      <attachid>186389</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 09:35:30 -0800</bug_when>
    <thetext>Comment on attachment 186389
Patch

Attachment 186389 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16375254</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824465</commentid>
    <comment_count>45</comment_count>
      <attachid>186389</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 09:44:04 -0800</bug_when>
    <thetext>Comment on attachment 186389
Patch

Attachment 186389 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16369290</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824469</commentid>
    <comment_count>46</comment_count>
      <attachid>186389</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 09:47:29 -0800</bug_when>
    <thetext>Comment on attachment 186389
Patch

Attachment 186389 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16378177</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824514</commentid>
    <comment_count>47</comment_count>
      <attachid>186389</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-02-04 10:22:07 -0800</bug_when>
    <thetext>Comment on attachment 186389
Patch

Attachment 186389 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/16375262</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824621</commentid>
    <comment_count>48</comment_count>
      <attachid>186389</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 11:49:37 -0800</bug_when>
    <thetext>Comment on attachment 186389
Patch

Attachment 186389 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16374283</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841892</commentid>
    <comment_count>49</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-02-26 04:55:27 -0800</bug_when>
    <thetext>Committed r144041: &lt;http://trac.webkit.org/changeset/144041&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841944</commentid>
    <comment_count>50</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-02-26 06:24:45 -0800</bug_when>
    <thetext>Reverted r144041 for reason:

Broke build

Committed r144053: &lt;http://trac.webkit.org/changeset/144053&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841966</commentid>
    <comment_count>51</comment_count>
      <attachid>190277</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-02-26 07:02:16 -0800</bug_when>
    <thetext>Created attachment 190277
EWS run</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842037</commentid>
    <comment_count>52</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-02-26 08:30:53 -0800</bug_when>
    <thetext>Committed r144062: &lt;http://trac.webkit.org/changeset/144062&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180791</attachid>
            <date>2012-12-27 04:37:40 -0800</date>
            <delta_ts>2012-12-28 08:00:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105796-20121227163451.patch</filename>
            <type>text/plain</type>
            <size>31023</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWIzNWYyOTgzMGNkNTQ4
NzM4YmM2ODcxMWJjYjM2YjJlMDQyZjQxNS4uNDI3OTc0YTdjOGU5NjY2ZmY3MmIyOWUyZGVjNzdl
MmQxNzk3MWE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTEyLTI3ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHJlcG9ydCB0cmFjZSBldmVudHMgdG8g
VGltZWxpbmUgYWdlbnQ7CisgICAgICAgIC0gdXNlIHRyYWNlIGV2ZW50cyB0byBpbnN0cnVtZW50
IGRlZmVycmVkIHBhaW50aW5nIG9mIGEgbGF5ZXI7CisgICAgICAgIC0gcmVwb3J0IG90aGVyIGxv
dy1sZXZlbCBldmVudHMgZnJvbSB3aXRoaW4gZGVmZXJyZWQgcGFpbnRpbmcgKHNvIHdlIGdldCBp
bWFnZSBkZWNvZGUvcmVzaXplKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6ZW5hYmxlVHJhY2VFdmVu
dHNSZXBvcnRpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFJlcG9ydFRyYWNlRXZlbnRJbXBsKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRSZXBvcnRUcmFjZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFRpbWVsaW5lUmVj
b3JkVHlwZSk6CisgICAgICAgIChUcmFjZUV2ZW50QXJndW1lbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlRyYWNlRXZlbnRBcmd1bWVudHM6OlRyYWNlRXZlbnRBcmd1bWVudHMpOgorICAgICAgICAo
V2ViQ29yZTo6VHJhY2VFdmVudEFyZ3VtZW50czo6c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpU
cmFjZUV2ZW50QXJndW1lbnRzOjpnZXRCb29sKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNlRXZl
bnRBcmd1bWVudHM6OmdldEludCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJndW1l
bnRzOjpnZXRVSW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNlRXZlbnRBcmd1bWVudHM6Omdl
dERvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJndW1lbnRzOjpnZXRTdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2VFdmVudEFyZ3VtZW50czo6Z2V0UGFyYW1ldGVy
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxs
UGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVw
b3J0VHJhY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpvbkRlZmVyUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6b25QZXJmb3JtRGVmZXJyZWRQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpvblJlbGVhc2VMYXllcklkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaFNr
aXBwZWRSZWNvcmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qczoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5faW5pdFJlY29y
ZFN0eWxlcyk6CisKIDIwMTItMTItMjYgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcHJlcGFyZSBIZWFwU25hcHNob3QuanMg
Zm9yIHVzZSB3aXRoIG5hdGl2ZSBoZWFwIHNuYXBzaG90CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDdlNWIwY2NkNzZmM2RkMjg3YzA2MDEzYWU4OTYyMmU5OTg5OTg0MDguLjNkMmE2YTlm
NGQ4NDZiZWE5ZmZhMmIxMmExYTc2MzhkNWU5NzZjNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTItMjcgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2Vx
QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBwbHVtYiB0cmFjZSBldmVu
dHMgdG8gVGltZWxpbmUgYWdlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNTc5NgorCisgICAgICAgIC0gcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFdl
YkNvcmUgaW5zcGVjdG9yOworICAgICAgICAtIG9ubHkgcmVwb3J0IGV2ZW50cyBjb21pbmcgZnJv
bSBtYWluIHRocmVhZCBzbyBmYXIuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRGV2VG9vbHNBZ2Vu
dC5oOgorICAgICAgICAoV2ViRGV2VG9vbHNBZ2VudCk6CisgICAgICAgICogcHVibGljL1dlYkRl
dlRvb2xzQWdlbnRDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudENs
aWVudDo6ZW5hYmxlVHJhY2VFdmVudHNSZXBvcnRpbmcpOgorICAgICAgICAqIHNyYy9JbnNwZWN0
b3JDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50SW1wbDo6
ZW5hYmxlVHJhY2VFdmVudHNSZXBvcnRpbmcpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoSW5zcGVjdG9yQ2xpZW50SW1w
bCk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OmVuYWJsZVRyYWNlRXZlbnRzUmVwb3J0aW5nKToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBs
OjpyZXBvcnRUcmFjZUV2ZW50T25BbnlUaHJlYWQpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29s
c0FnZW50SW1wbC5oOgorICAgICAgICAoV2ViRGV2VG9vbHNBZ2VudEltcGwpOgorCiAyMDEyLTEy
LTIxICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W0Nocm9taXVtLUFuZHJvaWRdIFVzZSBoYXJmYnV6ei1uZyBpbnN0ZWFkIG9mIGhhcmZidXp6LW9s
ZCBvbiBBbmRyb2lkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgK
aW5kZXggOTQ4ZGYwMjhjYjc2OWEzNDMxYTYxMjFlYmI5ODMwNzNjMGIwNWI5Ny4uMmExZWQ0MTJl
NWEzNjg4ZmM0MjJmYjQyYTE4NzhhN2NlZjg2OTg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDbGllbnQuaApAQCAtNTgsNiArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGNhbkNsZWFyQnJvd3NlckNvb2tpZXMoKSB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBjbGVhckJyb3dzZXJDb29raWVzKCkgeyB9CiAgICAgdmlydHVhbCBib29s
IGNhbk1vbml0b3JNYWluVGhyZWFkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZW5hYmxlVHJhY2VFdmVudHNSZXBvcnRpbmcoYm9vbCkgeyB9CiAKICAgICB2aXJ0dWFsIGJv
b2wgY2FuT3ZlcnJpZGVEZXZpY2VNZXRyaWNzKCkgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cAppbmRleCAzMzkzNjZhMmEzYjg1OGRmYjI5MDdjYjQzYmE2ZGNkNTkwNjdmMGE4Li4wNTgzNWVm
MzhkZTU4YzgxMjMyYWRkNGE5ODk1MDQ3M2JhOTUwZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMzIyLDYg
KzMyMiwxNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVtb3ZlVGltZXJJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbgogICAgICAgICB0aW1lbGluZUFnZW50
LT5kaWRSZW1vdmVUaW1lcih0aW1lcklkLCBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
Y29udGV4dCkpOwogfQogCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVwb3J0
VHJhY2VFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywK
KyAgICBjaGFyIHBoYXNlLCBjb25zdCBjaGFyKiBjYXRlZ29yeU5hbWUsIGNvbnN0IGNoYXIqIG5h
bWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICBpbnQgbnVtQXJndW1lbnRzLCBjb25zdCBj
aGFyKiBjb25zdCogYXJndW1lbnROYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJndW1lbnRU
eXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmd1bWVudFZhbHVlcywKKyAgICB1bnNp
Z25lZCBjaGFyIGZsYWdzKSAKK3sKKyAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGlt
ZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQo
KSkgeworICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRSZXBvcnRUcmFjZUV2ZW50KHN0YXRpY19j
YXN0PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OlRyYWNlRXZlbnRQaGFzZT4ocGhhc2UpLAorICAg
ICAgICAgICAgY2F0ZWdvcnlOYW1lLCBuYW1lLCBpZCwgbnVtQXJndW1lbnRzLCBhcmd1bWVudE5h
bWVzLCBhcmd1bWVudFR5cGVzLCBhcmd1bWVudFZhbHVlcywgZmxhZ3MpOworICAgIH0KK30KKwog
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbENhbGxGdW5jdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBpbnQgdGltZWxpbmVBZ2VudElkID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaAppbmRleCA2MTYyNDk5MjMxZGRiZjJkNTQ0NmUyODkwNmM4ZTFhZjI3MGE0OTRkLi4zZmEy
ODRjYzJiNzBmMDFjMzA3YTcwZmY1ZDZjNjY0NDFjYWUwMmRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0xMTksNiAr
MTE5LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkaWRJbnN0YWxsVGltZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGludCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVT
aG90KTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZW1vdmVUaW1lcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgaW50IHRpbWVySWQpOwogCisgICAgc3RhdGljIHZvaWQgZGlkUmVwb3J0VHJhY2VFdmVu
dChQYWdlKiwgY2hhciBwaGFzZSwgY29uc3QgY2hhciogY2F0ZWdvcnlOYW1lLCBjb25zdCBjaGFy
KiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgaWQsCisgICAgICAgIGludCBudW1Bcmd1bWVudHMs
IGNvbnN0IGNoYXIqIGNvbnN0KiBhcmd1bWVudE5hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBh
cmd1bWVudFR5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIGFyZ3VtZW50VmFsdWVzLAor
ICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdzKTsKKwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgd2lsbENhbGxGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CiAgICAgc3RhdGlj
IHZvaWQgZGlkQ2FsbEZ1bmN0aW9uKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSYpOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbERpc3Bh
dGNoWEhSUmVhZHlTdGF0ZUNoYW5nZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBYTUxI
dHRwUmVxdWVzdCopOwpAQCAtMzE3LDYgKzMyMSwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2
b2lkIGRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCB0aW1lcklk
LCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CiAgICAgc3RhdGljIHZvaWQgZGlkUmVtb3ZlVGltZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBpbnQgdGltZXJJZCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCisgICAgc3RhdGljIHZv
aWQgZGlkUmVwb3J0VHJhY2VFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGNoYXIgcGhh
c2UsIGNvbnN0IGNoYXIqIGNhdGVnb3J5TmFtZSwgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQg
bG9uZyBsb25nIGlkLAorICAgICAgICBpbnQgbnVtQXJndW1lbnRzLCBjb25zdCBjaGFyKiBjb25z
dCogYXJndW1lbnROYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJndW1lbnRUeXBlcywgY29u
c3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmd1bWVudFZhbHVlcywKKyAgICAgICAgdW5zaWduZWQg
Y2hhciBmbGFncyk7CisKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
IHdpbGxDYWxsRnVuY3Rpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcm
IHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkQ2FsbEZ1bmN0aW9uSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIHdpbGxEaXNwYXRjaFhIUlJlYWR5U3RhdGVDaGFuZ2VFdmVudEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIFhNTEh0dHBSZXF1ZXN0KiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwpAQCAt
NzgyLDYgKzc5MCwxOCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFJlbW92ZVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbgogI2VuZGlmCiB9CiAKK2lu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVwb3J0VHJhY2VFdmVudChQ
YWdlKiBwYWdlLAorICAgIGNoYXIgcGhhc2UsIGNvbnN0IGNoYXIqIGNhdGVnb3J5TmFtZSwgY29u
c3QgY2hhciogbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAorICAgIGludCBudW1Bcmd1bWVu
dHMsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmd1bWVudE5hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFy
KiBhcmd1bWVudFR5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIGFyZ3VtZW50VmFsdWVz
LAorICAgIHVuc2lnbmVkIGNoYXIgZmxhZ3MpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAg
ICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JQ
YWdlKHBhZ2UpKQorICAgICAgICBkaWRSZXBvcnRUcmFjZUV2ZW50SW1wbChpbnN0cnVtZW50aW5n
QWdlbnRzLCBwaGFzZSwgY2F0ZWdvcnlOYW1lLCBuYW1lLCBpZCwgbnVtQXJndW1lbnRzLCBhcmd1
bWVudE5hbWVzLCBhcmd1bWVudFR5cGVzLCBhcmd1bWVudFZhbHVlcywgZmxhZ3MpOworI2VuZGlm
Cit9CisKIGlubGluZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsQ2FsbEZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpCiB7CiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBhYzdhZGNiMGFhMzU2ZmU3NzBjZGZmYzMwMzk2
OTI1NjY1NzhhMjU3Li44N2NlMDc3YjM2MTZjNzI1MjY3MDI4ZjQwMDRlNjZlMTUwNGE2ZDYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtNzMsNiArNzMsNyBAQCBzdGF0aWMgY29uc3QgY2hhciBSZWNhbGN1bGF0ZVN0eWxlc1tdID0g
IlJlY2FsY3VsYXRlU3R5bGVzIjsKIHN0YXRpYyBjb25zdCBjaGFyIEludmFsaWRhdGVMYXlvdXRb
XSA9ICJJbnZhbGlkYXRlTGF5b3V0IjsKIHN0YXRpYyBjb25zdCBjaGFyIExheW91dFtdID0gIkxh
eW91dCI7CiBzdGF0aWMgY29uc3QgY2hhciBQYWludFtdID0gIlBhaW50IjsKK3N0YXRpYyBjb25z
dCBjaGFyIERlZmVycmVkUGFpbnRbXSA9ICJEZWZlcnJlZFBhaW50IjsKIHN0YXRpYyBjb25zdCBj
aGFyIFNjcm9sbExheWVyW10gPSAiU2Nyb2xsTGF5ZXIiOwogc3RhdGljIGNvbnN0IGNoYXIgRGVj
b2RlSW1hZ2VbXSA9ICJEZWNvZGVJbWFnZSI7CiBzdGF0aWMgY29uc3QgY2hhciBSZXNpemVJbWFn
ZVtdID0gIlJlc2l6ZUltYWdlIjsKQEAgLTExMCw2ICsxMTEsNTYgQEAgc3RhdGljIGNvbnN0IGNo
YXIgQ2FuY2VsQW5pbWF0aW9uRnJhbWVbXSA9ICJDYW5jZWxBbmltYXRpb25GcmFtZSI7CiBzdGF0
aWMgY29uc3QgY2hhciBGaXJlQW5pbWF0aW9uRnJhbWVbXSA9ICJGaXJlQW5pbWF0aW9uRnJhbWUi
OwogfQogCitjbGFzcyBUcmFjZUV2ZW50QXJndW1lbnRzIHsKK3B1YmxpYzoKKyAgICBUcmFjZUV2
ZW50QXJndW1lbnRzKGludCBudW1Bcmd1bWVudHMsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmd1bWVu
dE5hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmd1bWVudFR5cGVzLCBjb25zdCB1bnNpZ25l
ZCBsb25nIGxvbmcqIGFyZ3VtZW50VmFsdWVzKQorICAgICAgICA6IG1fc2l6ZShudW1Bcmd1bWVu
dHMpLCBtX2FyZ3VtZW50TmFtZXMoYXJndW1lbnROYW1lcyksIG1fYXJndW1lbnRUeXBlcyhhcmd1
bWVudFR5cGVzKSwgbV9hcmd1bWVudFZhbHVlcyhhcmd1bWVudFZhbHVlcykKKyAgICB7CisgICAg
fQorCisgICAgaW50IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KKworICAgIGJvb2wg
Z2V0Qm9vbChjb25zdCBjaGFyKiBuYW1lKSBjb25zdCB7IHJldHVybiBnZXRQYXJhbWV0ZXIobmFt
ZSwgVFJBQ0VfVkFMVUVfVFlQRV9CT09MKS5tX2Jvb2w7IH0KKyAgICBsb25nIGxvbmcgZ2V0SW50
KGNvbnN0IGNoYXIqIG5hbWUpIGNvbnN0IHsgcmV0dXJuIGdldFBhcmFtZXRlcihuYW1lLCBUUkFD
RV9WQUxVRV9UWVBFX0lOVCkubV9pbnQ7IH0KKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgZ2V0VUlu
dChjb25zdCBjaGFyKiBuYW1lKSBjb25zdCB7IHJldHVybiBnZXRQYXJhbWV0ZXIobmFtZSwgVFJB
Q0VfVkFMVUVfVFlQRV9VSU5UKS5tX3VpbnQ7IH0KKyAgICBkb3VibGUgZ2V0RG91YmxlKGNvbnN0
IGNoYXIqIG5hbWUpIGNvbnN0IHsgcmV0dXJuIGdldFBhcmFtZXRlcihuYW1lLCBUUkFDRV9WQUxV
RV9UWVBFX0RPVUJMRSkubV9kb3VibGU7IH0KKyAgICBjb25zdCBjaGFyKiBnZXRTdHJpbmcoY29u
c3QgY2hhciogbmFtZSkgY29uc3QgeyByZXR1cm4gZ2V0UGFyYW1ldGVyKG5hbWUsIFRSQUNFX1ZB
TFVFX1RZUEVfU1RSSU5HKS5tX3N0cmluZzsgfQorCitwcml2YXRlOgorICAgIC8vIEZJWE1FOiB1
c2UgdGhlIGRlZmluaXRpb24gaW4gVHJhY2VFdmVudC5oIG9uY2Ugd2UgZXhwb3NlIHRoZSBsYXR0
ZXIgdG8gYWxsIHBsYWZvcm1zLgorICAgIHVuaW9uIFRyYWNlVmFsdWVVbmlvbiB7CisgICAgICAg
IGJvb2wgbV9ib29sOworICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbV91aW50OworICAgICAg
ICBsb25nIGxvbmcgbV9pbnQ7CisgICAgICAgIGRvdWJsZSBtX2RvdWJsZTsKKyAgICAgICAgY29u
c3Qgdm9pZCogbV9wb2ludGVyOworICAgICAgICBjb25zdCBjaGFyKiBtX3N0cmluZzsKKyAgICB9
OworCisgICAgY29uc3QgVHJhY2VWYWx1ZVVuaW9uJiBnZXRQYXJhbWV0ZXIoY29uc3QgY2hhciog
bmFtZSwgY2hhciBleHBlY3RlZFR5cGUpIGNvbnN0CisgICAgeworICAgICAgICBzdGF0aWMgVHJh
Y2VWYWx1ZVVuaW9uIG1pc3NpbmdWYWx1ZTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8
IG1fc2l6ZTsgKytpKSB7CisgICAgICAgICAgICBpZiAoIXN0cmNtcChuYW1lLCBtX2FyZ3VtZW50
TmFtZXNbaV0pKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fYXJndW1lbnRUeXBlc1tpXSAhPSBl
eHBlY3RlZFR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtaXNzaW5nVmFsdWU7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCBUcmFj
ZVZhbHVlVW5pb24qPihtX2FyZ3VtZW50VmFsdWVzICsgaSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBtaXNz
aW5nVmFsdWU7CisgICAgfQorCisgICAgaW50IG1fc2l6ZTsKKyAgICBjb25zdCBjaGFyKiBjb25z
dCogbV9hcmd1bWVudE5hbWVzOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG1fYXJndW1lbnRU
eXBlczsKKyAgICBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIG1fYXJndW1lbnRWYWx1ZXM7Cit9
OworCisKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEdDRXZlbnRSZWNvcmRzKCkK
IHsKICAgICBpZiAoIW1fZ2NFdmVudHMuc2l6ZSgpKQpAQCAtMTcxLDYgKzIyMiw4IEBAIHZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnQoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIG1h
eENhbGxTdGFja0RlcHRoKQogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9y
VGltZWxpbmVBZ2VudCh0aGlzKTsKICAgICBTY3JpcHRHQ0V2ZW50OjphZGRFdmVudExpc3RlbmVy
KHRoaXMpOwogICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oVGltZWxpbmVBZ2VudFN0YXRlOjp0aW1l
bGluZUFnZW50RW5hYmxlZCwgdHJ1ZSk7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2Ns
aWVudC0+ZW5hYmxlVHJhY2VFdmVudHNSZXBvcnRpbmcodHJ1ZSk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6c3RvcChFcnJvclN0cmluZyopCkBAIC0xNzgsNiArMjMxLDggQEAg
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdG9wKEVycm9yU3RyaW5nKikKICAgICBpZiAo
IW1fc3RhdGUtPmdldEJvb2xlYW4oVGltZWxpbmVBZ2VudFN0YXRlOjp0aW1lbGluZUFnZW50RW5h
YmxlZCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9j
bGllbnQtPmVuYWJsZVRyYWNlRXZlbnRzUmVwb3J0aW5nKGZhbHNlKTsKICAgICBtX2luc3RydW1l
bnRpbmdBZ2VudHMtPnNldEluc3BlY3RvclRpbWVsaW5lQWdlbnQoMCk7CiAgICAgU2NyaXB0R0NF
dmVudDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzKTsKIApAQCAtMTg1LDYgKzI0MCw4IEBAIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcChFcnJvclN0cmluZyopCiAgICAgbV9nY0V2
ZW50cy5jbGVhcigpOwogCiAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihUaW1lbGluZUFnZW50U3Rh
dGU6OnRpbWVsaW5lQWdlbnRFbmFibGVkLCBmYWxzZSk7CisgICAgbV9kZWZlcnJlZFBhaW50TGF5
ZXJJZCA9IDA7CisgICAgbV9rbm93bkxheWVycy5jbGVhcigpOwogfQogCiB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnNldEluY2x1ZGVNZW1vcnlEZXRhaWxzKEVycm9yU3RyaW5nKiwgYm9v
bCB2YWx1ZSkKQEAgLTI3MCw2ICszMjcsOCBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFJlY2FsY3VsYXRlU3R5bGUoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Ondp
bGxQYWludChGcmFtZSogZnJhbWUpCiB7CisgICAgaWYgKG1fZGVmZXJyZWRQYWludExheWVySWQp
CisgICAgICAgIG1fa25vd25MYXllcnMuYWRkKG1fZGVmZXJyZWRQYWludExheWVySWQpOwogICAg
IHB1c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVj
b3JkVHlwZTo6UGFpbnQsIHRydWUsIGZyYW1lLCB0cnVlKTsKIH0KIApAQCAtMzExLDYgKzM3MCw2
MiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlc2l6ZUltYWdlKCkKICAgICBk
aWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpSZXNpemVJbWFnZSk7
CiB9CiAKKwordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZXBvcnRUcmFjZUV2ZW50
KFRyYWNlRXZlbnRQaGFzZSBwaGFzZSwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqIG5hbWUsIHVu
c2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICBpbnQgbnVtQXJncywgY29uc3QgY2hhciogY29uc3Qq
IGFyZ05hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5zaWduZWQg
bG9uZyBsb25nKiBhcmdWYWx1ZXMsCisgICAgdW5zaWduZWQgY2hhciBmbGFncykKK3sKKyAgICBU
cmFjZUV2ZW50SGFuZGxlciBoYW5kbGVyID0gbV90cmFjZUV2ZW50SGFuZGxlcnMuZ2V0KG5hbWUp
OworICAgIGlmICghaGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworICAgIFRyYWNlRXZlbnRBcmd1
bWVudHMgYXJndW1lbnRzKG51bUFyZ3MsIGFyZ05hbWVzLCBhcmdUeXBlcywgYXJnVmFsdWVzKTsK
KyAgICAodGhpcy0+KmhhbmRsZXIpKG5hbWUsIHBoYXNlLCBhcmd1bWVudHMpOworfQorCitjb25z
dCBjaGFyIGtMYXllcklkW10gPSAibGF5ZXJJZCI7CisKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6b25EZWZlclBhaW50KGNvbnN0IGNoYXIqLCBUcmFjZUV2ZW50UGhhc2UgcGhhc2UsIGNv
bnN0IFRyYWNlRXZlbnRBcmd1bWVudHMmIGFyZ3VtZW50cykKK3sKKyAgICBzd2l0Y2ggKHBoYXNl
KSB7CisgICAgY2FzZSBUcmFjZVBoYXNlQmVnaW46CisgICAgICAgIG1fZGVmZXJyZWRQYWludExh
eWVySWQgPSBhcmd1bWVudHMuZ2V0VUludChrTGF5ZXJJZCk7CisgICAgICAgIEFTU0VSVChtX2Rl
ZmVycmVkUGFpbnRMYXllcklkKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUcmFjZVBoYXNl
RW5kOgorICAgICAgICBtX2RlZmVycmVkUGFpbnRMYXllcklkID0gMDsKKyAgICAgICAgYnJlYWs7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQor
Cit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Om9uUGVyZm9ybURlZmVycmVkUGFpbnQoY29u
c3QgY2hhciogbmFtZSwgVHJhY2VFdmVudFBoYXNlIHBoYXNlLCBjb25zdCBUcmFjZUV2ZW50QXJn
dW1lbnRzJiBhcmd1bWVudHMpCit7CisgICAgc3dpdGNoIChwaGFzZSkgeworICAgIGNhc2UgVHJh
Y2VQaGFzZUJlZ2luOiB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBsYXllcklkID0gYXJn
dW1lbnRzLmdldFVJbnQoa0xheWVySWQpOworICAgICAgICBBU1NFUlQobGF5ZXJJZCk7CisgICAg
ICAgIGlmIChtX2tub3duTGF5ZXJzLmNvbnRhaW5zKGxheWVySWQpKQorICAgICAgICAgICAgcHVz
aEN1cnJlbnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgVGltZWxpbmVSZWNvcmRU
eXBlOjpEZWZlcnJlZFBhaW50LCBmYWxzZSwgMCwgdHJ1ZSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHB1c2hTa2lwcGVkUmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6RGVmZXJyZWRQYWlu
dCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFRyYWNlUGhhc2VFbmQ6CisgICAg
ICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OkRlZmVycmVk
UGFpbnQpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6b25S
ZWxlYXNlTGF5ZXJJZChjb25zdCBjaGFyKiwgVHJhY2VFdmVudFBoYXNlLCBjb25zdCBUcmFjZUV2
ZW50QXJndW1lbnRzJiBhcmd1bWVudHMpCit7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGlkID0g
YXJndW1lbnRzLmdldFVJbnQoa0xheWVySWQpOworICAgIEFTU0VSVChpZCk7CisgICAgbV9rbm93
bkxheWVycy5yZW1vdmUoaWQpOworfQorCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Ondp
bGxDb21wb3NpdGUoKQogewogICAgIHB1c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6
Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6Q29tcG9zaXRlTGF5ZXJzLCBmYWxzZSwgMCk7
CkBAIC00ODUsNiArNjAwLDggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRQcm9j
ZXNzVGFzaygpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1l
bGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkLCBjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkKIHsKKyAgICBpZiAoIW1fcmVjb3JkU3RhY2suaXNF
bXB0eSgpICYmICFtX3JlY29yZFN0YWNrLmxhc3QoKS5yZWNvcmQpCisgICAgICAgIHJldHVybjsK
ICAgICBjb21taXRGcmFtZVJlY29yZCgpOwogICAgIGlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShy
ZWNvcmQsIHR5cGUsIGZyYW1lSWQpOwogfQpAQCAtNTM0LDI0ICs2NTEsMzAgQEAgdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoY29uc3QgU3RyaW5n
JiB0eXBlKQogewogICAgIC8vIEFuIGVtcHR5IHN0YWNrIGNvdWxkIG1lcmVseSBtZWFuIHRoYXQg
dGhlIHRpbWVsaW5lIGFnZW50IHdhcyB0dXJuZWQgb24gaW4gdGhlIG1pZGRsZSBvZgogICAgIC8v
IGFuIGV2ZW50LiAgRG9uJ3QgdHJlYXQgYXMgYW4gZXJyb3IuCi0gICAgaWYgKCFtX3JlY29yZFN0
YWNrLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAobV9wbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNs
aWVudEluc3RhbGxlZEF0U3RhY2tEZXB0aCA9PSBtX3JlY29yZFN0YWNrLnNpemUoKSkgewotICAg
ICAgICAgICAgbV9wbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudEluc3RhbGxlZEF0U3RhY2tE
ZXB0aCA9IDA7Ci0gICAgICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6c2V0Q2xpZW50
KDApOwotICAgICAgICB9CisgICAgaWYgKG1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgICAgIFRpbWVs
aW5lUmVjb3JkRW50cnkgZW50cnkgPSBtX3JlY29yZFN0YWNrLmxhc3QoKTsKKyAgICBpZiAobV9w
bGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudEluc3RhbGxlZEF0U3RhY2tEZXB0aCA9PSBtX3Jl
Y29yZFN0YWNrLnNpemUoKSkgeworICAgICAgICBtX3BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xp
ZW50SW5zdGFsbGVkQXRTdGFja0RlcHRoID0gMDsKKyAgICAgICAgUGxhdGZvcm1JbnN0cnVtZW50
YXRpb246OnNldENsaWVudCgwKTsKKyAgICB9CisKKyAgICBUaW1lbGluZVJlY29yZEVudHJ5IGVu
dHJ5ID0gbV9yZWNvcmRTdGFjay5sYXN0KCk7CisgICAgQVNTRVJUKGVudHJ5LnR5cGUgPT0gdHlw
ZSk7CisgICAgaWYgKCFlbnRyeS5yZWNvcmQpIHsKICAgICAgICAgbV9yZWNvcmRTdGFjay5yZW1v
dmVMYXN0KCk7Ci0gICAgICAgIEFTU0VSVChlbnRyeS50eXBlID09IHR5cGUpOwotICAgICAgICBl
bnRyeS5yZWNvcmQtPnNldE9iamVjdCgiZGF0YSIsIGVudHJ5LmRhdGEpOwotICAgICAgICBlbnRy
eS5yZWNvcmQtPnNldEFycmF5KCJjaGlsZHJlbiIsIGVudHJ5LmNoaWxkcmVuKTsKLSAgICAgICAg
ZW50cnkucmVjb3JkLT5zZXROdW1iZXIoImVuZFRpbWUiLCB0aW1lc3RhbXAoKSk7Ci0gICAgICAg
IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0YSA9IGdldFVzZWRIZWFwU2l6ZSgpIC0gZW50cnkudXNl
ZEhlYXBTaXplQXRTdGFydDsKLSAgICAgICAgaWYgKHVzZWRIZWFwU2l6ZURlbHRhKQotICAgICAg
ICAgICAgZW50cnkucmVjb3JkLT5zZXROdW1iZXIoInVzZWRIZWFwU2l6ZURlbHRhIiwgdXNlZEhl
YXBTaXplRGVsdGEpOwotICAgICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKGVudHJ5LnJlY29yZCwg
dHlwZSwgZW50cnkuZnJhbWVJZCk7CisgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBwdXNo
R0NFdmVudFJlY29yZHMoKTsKKyAgICBtX3JlY29yZFN0YWNrLnJlbW92ZUxhc3QoKTsKKyAgICBl
bnRyeS5yZWNvcmQtPnNldE9iamVjdCgiZGF0YSIsIGVudHJ5LmRhdGEpOworICAgIGVudHJ5LnJl
Y29yZC0+c2V0QXJyYXkoImNoaWxkcmVuIiwgZW50cnkuY2hpbGRyZW4pOworICAgIGVudHJ5LnJl
Y29yZC0+c2V0TnVtYmVyKCJlbmRUaW1lIiwgdGltZXN0YW1wKCkpOworICAgIHNpemVfdCB1c2Vk
SGVhcFNpemVEZWx0YSA9IGdldFVzZWRIZWFwU2l6ZSgpIC0gZW50cnkudXNlZEhlYXBTaXplQXRT
dGFydDsKKyAgICBpZiAodXNlZEhlYXBTaXplRGVsdGEpCisgICAgICAgIGVudHJ5LnJlY29yZC0+
c2V0TnVtYmVyKCJ1c2VkSGVhcFNpemVEZWx0YSIsIHVzZWRIZWFwU2l6ZURlbHRhKTsKKyAgICBh
ZGRSZWNvcmRUb1RpbWVsaW5lKGVudHJ5LnJlY29yZCwgdHlwZSwgZW50cnkuZnJhbWVJZCk7CiB9
CiAKIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBw
YWdlQWdlbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yVHlwZSB0
eXBlLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKQEAgLTU2NCw3ICs2ODcsMTIgQEAgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW4KICAgICAsIG1fcGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnRJ
bnN0YWxsZWRBdFN0YWNrRGVwdGgoMCkKICAgICAsIG1faW5zcGVjdG9yVHlwZSh0eXBlKQogICAg
ICwgbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9kZWZlcnJlZFBhaW50TGF5ZXJJZCgwKQogewor
ICAgIG1fdHJhY2VFdmVudEhhbmRsZXJzLnNldCgiSW5zdHJ1bWVudGF0aW9uOjpEZWZlclBhaW50
IiwgJkluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Om9uRGVmZXJQYWludCk7CisgICAgbV90cmFjZUV2
ZW50SGFuZGxlcnMuc2V0KCJJbnN0cnVtZW50YXRpb246OlBlcmZvcm1EZWZlcnJlZFBhaW50Iiwg
Jkluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Om9uUGVyZm9ybURlZmVycmVkUGFpbnQpOworICAgIG1f
dHJhY2VFdmVudEhhbmRsZXJzLnNldCgiSW5zdHJ1bWVudGF0aW9uOjpSZWxlYXNlTGF5ZXJJZCIs
ICZJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpvblJlbGVhc2VMYXllcklkKTsKKyAgICAKIH0KIAog
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphcHBlbmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0
YWNrLCBGcmFtZSogZnJhbWUpCkBAIC01OTQsNiArNzIyLDExIEBAIHZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGRhdGEsCiAgICAgfQogfQogCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hTa2lw
cGVkUmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBtX3JlY29yZFN0YWNrLmFwcGVu
ZChUaW1lbGluZVJlY29yZEVudHJ5KFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PigpLCBQYXNz
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4oKSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4oKSwg
dHlwZSwgIiIsIDApKTsKK30KKwogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpjb21taXRG
cmFtZVJlY29yZCgpCiB7CiAgICAgaWYgKCFtX3BlbmRpbmdGcmFtZVJlY29yZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IGU3
MDYyYTExODE4OGZhY2RkNTQzNGExMjExZDNjN2ZjNWYwNmU5NjYuLmFmZWQ4ZmRkYTY3YzcyYTVi
MGIxYTQ5MjIxODMyMjI0ZWZmMWViZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUg
IlBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0R0NFdmVudC5oIgog
I2luY2x1ZGUgIlNjcmlwdEdDRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKQEAgLTU1LDYgKzU2LDcgQEAgY2xhc3MgSW50UmVjdDsKIGNsYXNzIFJlbmRlck9iamVjdDsK
IGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBU
cmFjZUV2ZW50QXJndW1lbnRzOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIApAQCAt
NjcsNiArNjksMTMgQEAgY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudAogcHVibGljOgogICAg
IGVudW0gSW5zcGVjdG9yVHlwZSB7IFBhZ2VJbnNwZWN0b3IsIFdvcmtlckluc3BlY3RvciB9Owog
CisgICAgLy8gRklYTUU6IHJlLXVzZSBkZWZpbml0aW9ucyBpbiBUcmFjZUV2ZW50Lmggb25jZSBp
dCdzIHByb21vdGVkIHRvIGFsbCBwbGF0Zm9ybXMuCisgICAgZW51bSBUcmFjZUV2ZW50UGhhc2Ug
eworICAgICAgICBUcmFjZVBoYXNlQmVnaW4gPSAnQicsCisgICAgICAgIFRyYWNlUGhhc2VFbmQg
PSAnRScsCisgICAgICAgIFRyYWNlUGhhc2VJbnN0YW50ID0gJ0knCisgICAgfTsKKwogICAgIHN0
YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VB
Z2VudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JUeXBlIHR5cGUs
IEluc3BlY3RvckNsaWVudCogY2xpZW50KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBJbnNwZWN0b3JUaW1lbGluZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2VBZ2Vu
dCwgc3RhdGUsIHR5cGUsIGNsaWVudCkpOwpAQCAtMTY1LDYgKzE3NCwxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxSZXNpemVJbWFnZShib29sIHNob3VsZENhY2hlKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzaXplSW1hZ2UoKSBPVkVSUklERTsKIAorICAgIHZv
aWQgZGlkUmVwb3J0VHJhY2VFdmVudChUcmFjZUV2ZW50UGhhc2UsIGNvbnN0IGNoYXIqIGNhdGVn
b3J5X25hbWUsIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAg
ICAgaW50IG51bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWdu
ZWQgY2hhciogYXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAor
ICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdzKTsKKyAgICAKIHByaXZhdGU6CiAgICAgc3RydWN0
IFRpbWVsaW5lUmVjb3JkRW50cnkgewogICAgICAgICBUaW1lbGluZVJlY29yZEVudHJ5KFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQsIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBkYXRhLCBQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBjaGlsZHJlbiwgY29uc3QgU3RyaW5n
JiB0eXBlLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIHNpemVfdCB1c2VkSGVhcFNpemVBdFN0YXJ0
KQpAQCAtMTc5LDkgKzE5MiwxMyBAQCBwcml2YXRlOgogICAgICAgICBzaXplX3QgdXNlZEhlYXBT
aXplQXRTdGFydDsKICAgICB9OwogICAgICAgICAKKyAgICB0eXBlZGVmIHZvaWQgKEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OipUcmFjZUV2ZW50SGFuZGxlcikoY29uc3QgY2hhciogbmFtZSwgVHJh
Y2VFdmVudFBoYXNlLCBjb25zdCBUcmFjZUV2ZW50QXJndW1lbnRzJik7CisKICAgICBJbnNwZWN0
b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQq
LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluc3BlY3RvclR5cGUsIEluc3BlY3RvckNsaWVu
dCopOwogCiAgICAgdm9pZCBwdXNoQ3VycmVudFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4sIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSos
IGJvb2wgaGFzTG93TGV2ZWxEZXRhaWxzID0gZmFsc2UpOworICAgIHZvaWQgcHVzaFNraXBwZWRS
ZWNvcmQoY29uc3QgU3RyaW5nJiB0eXBlKTsKKwogICAgIHZvaWQgc2V0SGVhcFNpemVTdGF0aXN0
aWNzKEluc3BlY3Rvck9iamVjdCogcmVjb3JkKTsKIAogICAgIHZvaWQgZGlkQ29tcGxldGVDdXJy
ZW50UmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSk7CkBAIC0xOTYsNiArMjEzLDEwIEBAIHByaXZh
dGU6CiAgICAgZG91YmxlIHRpbWVzdGFtcCgpOwogICAgIGRvdWJsZSB0aW1lc3RhbXBGcm9tTWlj
cm9zZWNvbmRzKGRvdWJsZSBtaWNyb3NlY29uZHMpOwogCisgICAgdm9pZCBvbkRlZmVyUGFpbnQo
Y29uc3QgY2hhciogbmFtZSwgVHJhY2VFdmVudFBoYXNlLCBjb25zdCBUcmFjZUV2ZW50QXJndW1l
bnRzJik7CisgICAgdm9pZCBvblBlcmZvcm1EZWZlcnJlZFBhaW50KGNvbnN0IGNoYXIqIG5hbWUs
IFRyYWNlRXZlbnRQaGFzZSwgY29uc3QgVHJhY2VFdmVudEFyZ3VtZW50cyYpOworICAgIHZvaWQg
b25SZWxlYXNlTGF5ZXJJZChjb25zdCBjaGFyKiBuYW1lLCBUcmFjZUV2ZW50UGhhc2UsIGNvbnN0
IFRyYWNlRXZlbnRBcmd1bWVudHMmKTsKKwogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdl
QWdlbnQ7CiAKICAgICBJbnNwZWN0b3JGcm9udGVuZDo6VGltZWxpbmUqIG1fZnJvbnRlbmQ7CkBA
IC0yMjAsNiArMjQxLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
bV9wZW5kaW5nRnJhbWVSZWNvcmQ7CiAgICAgSW5zcGVjdG9yVHlwZSBtX2luc3BlY3RvclR5cGU7
CiAgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2NsaWVudDsKKyAgICAKKyAgICBIYXNoTWFwPFN0cmlu
ZywgVHJhY2VFdmVudEhhbmRsZXI+IG1fdHJhY2VFdmVudEhhbmRsZXJzOworICAgIEhhc2hTZXQ8
dW5zaWduZWQgbG9uZyBsb25nPiBtX2tub3duTGF5ZXJzOworICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyBtX2RlZmVycmVkUGFpbnRMYXllcklkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1v
ZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVs
LmpzCmluZGV4IGQ3MjljNWNlY2U1ODMwYWRhOGFmZWQxNmIyZWQxYjE3YjBhZGJhZmQuLmU3Mzk2
MzEwZGMyMjk1YTcwZDJkOTI1MmY2ZjI2ZTcyNjZmYjFjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMKQEAgLTU2LDYgKzU2
LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZSA9IHsKICAgICBJbnZh
bGlkYXRlTGF5b3V0OiAiSW52YWxpZGF0ZUxheW91dCIsCiAgICAgTGF5b3V0OiAiTGF5b3V0IiwK
ICAgICBQYWludDogIlBhaW50IiwKKyAgICBEZWZlcnJlZFBhaW50OiAiRGVmZXJyZWRQYWludCIs
CiAgICAgU2Nyb2xsTGF5ZXI6ICJTY3JvbGxMYXllciIsCiAgICAgRGVjb2RlSW1hZ2U6ICJEZWNv
ZGVJbWFnZSIsCiAgICAgUmVzaXplSW1hZ2U6ICJSZXNpemVJbWFnZSIsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9k
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2Vu
dGF0aW9uTW9kZWwuanMKaW5kZXggYzEwMjgwNTNlZTk4ZjRkOWIwYTk0YTRkM2MzMTIwMTUxMTBm
NzkwOS4uNDY4MzIzNjQ1MWQ0NDczMzViOGQyNmEzZDY4OTMyM2M1Zjk4ODAyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlv
bk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtNzYsNiArNzYsNyBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5faW5pdFJlY29yZFN0eWxlcyA9IGZ1bmN0aW9uKCkKICAg
ICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuSW52YWxpZGF0ZUxheW91dF0gPSB7IHRpdGxlOiBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkludmFsaWRhdGUgTGF5b3V0IiksIGNhdGVnb3J5OiBjYXRl
Z29yaWVzWyJyZW5kZXJpbmciXSB9OwogICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5MYXlv
dXRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMYXlvdXQiKSwgY2F0ZWdvcnk6
IGNhdGVnb3JpZXNbInJlbmRlcmluZyJdIH07CiAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVz
LlBhaW50XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUGFpbnQiKSwgY2F0ZWdv
cnk6IGNhdGVnb3JpZXNbInBhaW50aW5nIl0gfTsKKyAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlw
ZXMuRGVmZXJyZWRQYWludF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRlZmVy
cmVkUGFpbnQiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInBhaW50aW5nIl0gfTsKICAgICByZWNv
cmRTdHlsZXNbcmVjb3JkVHlwZXMuU2Nyb2xsTGF5ZXJdID0geyB0aXRsZTogV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJTY3JvbGwiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInBhaW50aW5nIl0gfTsK
ICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuRGVjb2RlSW1hZ2VdID0geyB0aXRsZTogV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJJbWFnZSBEZWNvZGUiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNb
InBhaW50aW5nIl0gfTsKICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUmVzaXplSW1hZ2Vd
ID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJJbWFnZSBSZXNpemUiKSwgY2F0ZWdv
cnk6IGNhdGVnb3JpZXNbInBhaW50aW5nIl0gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaAppbmRleCBlOTdiOTAyZDE4NDk5YjU4ZDM4ODJl
ZGZlMTIzNGYwNjUyM2U2MDQ3Li5hNzhiZWFlZWQ4NWMwZDJiMWNmMzc5ZGNmMGYxM2FjMTI1YTFh
ZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29s
c0FnZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNB
Z2VudC5oCkBAIC03MSw2ICs3MSw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNw
ZWN0RWxlbWVudEF0KGNvbnN0IFdlYlBvaW50JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQ
cm9jZXNzSWQobG9uZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRUcmFjZUV2ZW50T25B
bnlUaHJlYWQoY2hhciBwaGFzZSwgY29uc3QgY2hhciogY2F0ZWdvcnlOYW1lLCBjb25zdCBjaGFy
KiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgaWQsCisgICAgICAgIGludCBudW1Bcmd1bWVudHMs
IGNvbnN0IGNoYXIqIGNvbnN0KiBhcmd1bWVudE5hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBh
cmd1bWVudFR5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIGFyZ3VtZW50VmFsdWVzLAor
ICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdzKSA9IDA7CiAKICAgICAvLyBFeHBvc2VkIGZvciBU
ZXN0UnVubmVyLgogICAgIHZpcnR1YWwgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcg
Y2FsbElkLCBjb25zdCBXZWJTdHJpbmcmIHNjcmlwdCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oCmluZGV4IGJl
YjNlODMyZjk3NDgyNzVmNGJlYmNhMDVjZjQxZWE3Njc0OTA3MGEuLmUyYzZmOTZmOTNlYWIyZmQ1
NTc0MzU3MGRhODJlYTFhOTE4NjUyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xpZW50LmgKQEAgLTc2LDYgKzc2LDcgQEAg
cHVibGljOgogICAgICAgICB2aXJ0dWFsIH5JbnN0cnVtZW50ZWRPYmplY3RTaXplUHJvdmlkZXIo
KSB7IH0KICAgICB9OwogICAgIHZpcnR1YWwgdm9pZCBkdW1wVW5jb3VudGVkQWxsb2NhdGVkT2Jq
ZWN0cyhjb25zdCBJbnN0cnVtZW50ZWRPYmplY3RTaXplUHJvdmlkZXIqKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZW5hYmxlVHJhY2VFdmVudHNSZXBvcnRpbmcoYm9vbCBlbmFibGUpIHsgfQogCiBw
cm90ZWN0ZWQ6CiAgICAgfldlYkRldlRvb2xzQWdlbnRDbGllbnQoKSB7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAKaW5kZXggYmFi
NTgxNmJmZDY5MDhlZmEwZjhjMTY5ZjBjODAxYTI0Yzg3OTI0Ni4uOGJhNjEwNTJmMWU4NTEyY2M5
ZDgzYmJkOGExY2UwMTllNmYyNTA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAKQEAgLTE5Niw2ICsxOTYsMTIgQEAgYm9vbCBJ
bnNwZWN0b3JDbGllbnRJbXBsOjpjYXB0dXJlU2NyZWVuc2hvdChTdHJpbmcqIGRhdGEpCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCit2b2lkIEluc3BlY3RvckNsaWVudEltcGw6OmVuYWJsZVRyYWNl
RXZlbnRzUmVwb3J0aW5nKGJvb2wgZW5hYmxlKQoreworICAgIGlmIChXZWJEZXZUb29sc0FnZW50
SW1wbCogYWdlbnQgPSBkZXZUb29sc0FnZW50KCkpCisgICAgICAgIGFnZW50LT5lbmFibGVUcmFj
ZUV2ZW50c1JlcG9ydGluZyhlbmFibGUpOworfQorCiBXZWJEZXZUb29sc0FnZW50SW1wbCogSW5z
cGVjdG9yQ2xpZW50SW1wbDo6ZGV2VG9vbHNBZ2VudCgpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFdlYkRldlRvb2xzQWdlbnRJbXBsKj4obV9pbnNwZWN0ZWRXZWJWaWV3LT5kZXZUb29sc0Fn
ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9y
Q2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50
SW1wbC5oCmluZGV4IDIwMzNlM2Y2OTA5OGJiMDk2ZDA1MDBmOTUxMWMwNGZhMmRmZDc3NDkuLjZm
NmQ4Y2QwODg4YTlhNDU2N2Q1NThjMjJkYzUyZmNhNjVlNzZmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmgKQEAgLTg1LDYgKzg1LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkdW1wVW5jb3VudGVkQWxsb2NhdGVkT2JqZWN0
cyhjb25zdCBIYXNoTWFwPGNvbnN0IHZvaWQqLCBzaXplX3Q+Jik7CiAKICAgICB2aXJ0dWFsIGJv
b2wgY2FwdHVyZVNjcmVlbnNob3QoV1RGOjpTdHJpbmcqIGRhdGEpOworICAgIHZpcnR1YWwgdm9p
ZCBlbmFibGVUcmFjZUV2ZW50c1JlcG9ydGluZyhib29sKTsKIAogcHJpdmF0ZToKICAgICBXZWJE
ZXZUb29sc0FnZW50SW1wbCogZGV2VG9vbHNBZ2VudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCmluZGV4IGI1OGNmNjFiNGQw
MDVmMjJlZGEyOWMyYzdiYTVjNTUyNGMzMWUxMzUuLjMwZmM4ODI3ZmQzY2FiZjM0NWU0NTQzODQ3
YjQ2NzE1NjRlNDI4ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkRldlRvb2xzQWdlbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkluc3BlY3RvclByb3RvY29sVmVyc2lvbi5oIgog
I2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCkBA
IC01ODAsNiArNTgxLDExIEBAIGJvb2wgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmNhcHR1cmVTY3Jl
ZW5zaG90KFdURjo6U3RyaW5nKiBkYXRhKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFdl
YkRldlRvb2xzQWdlbnRJbXBsOjplbmFibGVUcmFjZUV2ZW50c1JlcG9ydGluZyhib29sIGVuYWJs
ZSkKK3sKKyAgICBtX2NsaWVudC0+ZW5hYmxlVHJhY2VFdmVudHNSZXBvcnRpbmcoZW5hYmxlKTsK
K30KKwogdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6ZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tl
bmQoY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGluc3BlY3RvckNvbnRyb2xsZXIo
KS0+ZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKG1lc3NhZ2UpOwpAQCAtNzAwLDYgKzcwNiwx
NiBAQCB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpzZXRQcm9jZXNzSWQobG9uZyBwcm9jZXNz
SWQpCiAgICAgaW5zcGVjdG9yQ29udHJvbGxlcigpLT5zZXRQcm9jZXNzSWQocHJvY2Vzc0lkKTsK
IH0KIAordm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6cmVwb3J0VHJhY2VFdmVudE9uQW55VGhy
ZWFkKGNoYXIgcGhhc2UsIGNvbnN0IGNoYXIqIGNhdGVnb3J5TmFtZSwgY29uc3QgY2hhciogbmFt
ZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAorICAgIGludCBudW1Bcmd1bWVudHMsIGNvbnN0IGNo
YXIqIGNvbnN0KiBhcmd1bWVudE5hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmd1bWVudFR5
cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIGFyZ3VtZW50VmFsdWVzLAorICAgIHVuc2ln
bmVkIGNoYXIgZmxhZ3MpCit7CisgICAgaWYgKCFpc01haW5UaHJlYWQoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmIChQYWdlKiBwYWdlID0gbV93ZWJWaWV3SW1wbC0+cGFnZSgpKQorICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlcG9ydFRyYWNlRXZlbnQocGFnZSwgcGhh
c2UsIGNhdGVnb3J5TmFtZSwgbmFtZSwgaWQsIG51bUFyZ3VtZW50cywgYXJndW1lbnROYW1lcywg
YXJndW1lbnRUeXBlcywgYXJndW1lbnRWYWx1ZXMsIGZsYWdzKTsKK30KKwogdm9pZCBXZWJEZXZU
b29sc0FnZW50SW1wbDo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJZCwgY29uc3Qg
V2ViU3RyaW5nJiBzY3JpcHQpCiB7CiAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogaWMgPSBpbnNw
ZWN0b3JDb250cm9sbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJEZXZUb29sc0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RGV2VG9vbHNBZ2VudEltcGwuaAppbmRleCBlMGYyYjE0YWJiNTcyYmIzMzhhYTQ1ZWIzYmMyYzhh
NGY4MzY5YTFiLi45ZDNiMTBmNjFiZjlkNzc2YTRlODlmZTc1MmQ4MWZmNzRhZjJiMDYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgK
QEAgLTg4LDYgKzg4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0RWxlbWVu
dEF0KGNvbnN0IFdlYlBvaW50JiBwb2ludCk7CiAgICAgdmlydHVhbCB2b2lkIGV2YWx1YXRlSW5X
ZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQsIGNvbnN0IFdlYlN0cmluZyYgc2NyaXB0KTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0UHJvY2Vzc0lkKGxvbmcpOworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRU
cmFjZUV2ZW50T25BbnlUaHJlYWQoY2hhciBwaGFzZSwgY29uc3QgY2hhciogY2F0ZWdvcnlOYW1l
LCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgaWQsCisgICAgICAgIGludCBu
dW1Bcmd1bWVudHMsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmd1bWVudE5hbWVzLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiBhcmd1bWVudFR5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIGFyZ3Vt
ZW50VmFsdWVzLAorICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdzKTsKIAogICAgIC8vIEluc3Bl
Y3RvckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdG9yRGVz
dHJveWVkKCk7CkBAIC0xMDksNiArMTEyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IGdldEFsbG9jYXRlZE9iamVjdHMoSGFzaFNldDxjb25zdCB2b2lkKj4mKTsKICAgICB2aXJ0dWFs
IHZvaWQgZHVtcFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMoY29uc3QgSGFzaE1hcDxjb25zdCB2
b2lkKiwgc2l6ZV90PiYpOworICAgIHZpcnR1YWwgdm9pZCBlbmFibGVUcmFjZUV2ZW50c1JlcG9y
dGluZyhib29sKTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYXB0dXJlU2NyZWVuc2hvdChXVEY6OlN0
cmluZyogZGF0YSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180876</attachid>
            <date>2012-12-28 08:00:15 -0800</date>
            <delta_ts>2013-02-01 03:21:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105796-20121228195725.patch</filename>
            <type>text/plain</type>
            <size>26654</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWIzNWYyOTgzMGNkNTQ4
NzM4YmM2ODcxMWJjYjM2YjJlMDQyZjQxNS4uY2FlZjU1MWY3MGU1MmY0YzQ1YzAyYjkwYmM0YjQz
ZTBkNTMzMGMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTEyLTI4ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGV4cG9zZXMgYSBjYWxsYmFjayB0
byBlbWJlZGRlciB0byBhbGxvdyBmZWVkaW5nIG9mIHRyYWNlIGV2ZW50cyB0byBUaW1lbGluZSBh
Z2VudC4KKyAgICAgICAgU29tZSBldmVudHMgd2lsbCBiZSBzcGVjaWFsbHkgcHJvY2Vzc2VkIHRv
IGV4dHJhY3QgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGJlIHByZXNlbnRlZAorICAgICAgICBvbiB0
aW1lbGluZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRlZCBUaW1lbGluZVRyYWNl
RXZlbnRSZXBvcnRlci57aCxjcHB9CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogZGl0
dG8uCisgICAgICAgICogVGFyZ2V0LnByaTogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBp
OiBkaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogZGl0dG8u
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDogZGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oOgorICAgICAgICAoSW5zcGVjdG9yQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6c2V0VHJhY2VFdmVudENh
bGxiYWNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydCk6IEVuYWJs
ZSB0cmFjZSBldmVudHMgY29sbGVjdGlvbiBvbiBzdGFydC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3ApOiBEaXNhYmxlIHRyYWNlIGV2ZW50cyBjb2xsZWN0
aW9uIG9uIHN0b3AuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1Rp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHA6IEFkZGVkLgorICAgICAgICAoVHJhY2VFdmVu
dEFyZ3VtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJndW1lbnRzOjpUcmFj
ZUV2ZW50QXJndW1lbnRzKTogQSBoZWxwZXIgdG8gZXh0cmFjdCBhcmd1bWVudHMgZnJvbSB0cmFj
ZSBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRyYWNlRXZlbnRBcmd1bWVudHM6OnNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhY2VFdmVudEFyZ3VtZW50czo6YXNCb29sKToKKyAgICAgICAg
KFdlYkNvcmU6OlRyYWNlRXZlbnRBcmd1bWVudHM6OmFzSW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlRyYWNlRXZlbnRBcmd1bWVudHM6OmFzVUludCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2
ZW50QXJndW1lbnRzOjphc0RvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJn
dW1lbnRzOjphc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJndW1lbnRz
OjpwYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6On5UaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yOjpwcm9jZXNzRXZlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3I6OkV2ZW50VHlwZUVudHJ5OjpFdmVudFR5cGVFbnRyeSk6Cisg
ICAgICAgIChFdmVudFR5cGVFbnRyeSk6CisKIDIwMTItMTItMjYgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcHJlcGFyZSBI
ZWFwU25hcHNob3QuanMgZm9yIHVzZSB3aXRoIG5hdGl2ZSBoZWFwIHNuYXBzaG90CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IDdlNWIwY2NkNzZmM2RkMjg3YzA2MDEzYWU4OTYyMmU5OTg5
OTg0MDguLjEyOTVmYWRlZTBkM2UzYTE2Y2E3OGUyNzk4OWYxODg3ZGFiY2RjYjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTItMjggIEFuZHJleSBL
b3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBw
bHVtYiB0cmFjZSBldmVudHMgdG8gVGltZWxpbmUgYWdlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTc5NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gUGx1bWIgZW5hYmxpbmcgb2YgdHJhY2UgZXZl
bnRzIHRvIGVtYmVkZGVyCisgICAgICAgICAgKGFkZGVkIHNldFRyYWNlRXZlbnRDYWxsYmFjayB0
byBJbnNwZWN0b3JDbGllbnQgLi4gV2ViRGV2VG9vbHNBZ2VudENsaWVudCkKKworICAgICAgICAq
IHB1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xpZW50Lmg6CisgICAgICAgIChXZWJEZXZUb29sc0Fn
ZW50Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudENsaWVudDo6c2V0
VHJhY2VFdmVudENhbGxiYWNrKToKKyAgICAgICAgKiBzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudEltcGw6OnNldFRyYWNlRXZlbnRD
YWxsYmFjayk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9JbnNwZWN0b3JDbGll
bnRJbXBsLmg6CisgICAgICAgIChJbnNwZWN0b3JDbGllbnRJbXBsKToKKyAgICAgICAgKiBzcmMv
V2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0Fn
ZW50SW1wbDo6c2V0VHJhY2VFdmVudENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmg6CisgICAgICAgIChXZWJEZXZUb29sc0Fn
ZW50SW1wbCk6CisKIDIwMTItMTItMjEgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW0tQW5kcm9pZF0gVXNlIGhhcmZidXp6LW5nIGlu
c3RlYWQgb2YgaGFyZmJ1enotb2xkIG9uIEFuZHJvaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
ODRhZTlhMWRhM2ZkODFjMGQyMWIwNjkyZDExOWIyN2IzYmEwMTFmNC4uZTdkM2YyNzJlYTUzOWI2
MTZmNTM4YWUxYmQ0NzFlZDk2M2IyYTkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2MzIs
NiArMTYzMiw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBpbnNwZWN0b3IvU2NyaXB0Q2Fs
bEZyYW1lLmNwcAogICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suY3BwCiAgICAgaW5zcGVj
dG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKKyAgICBpbnNwZWN0b3IvVGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yLmNwcAogICAgIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3Bw
CiAgICAgaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCAyZjc0ZDg4ZmNiMjFkMjc0MTAxNGQ1NDVjNzM0NmQ2ODIzN2UyODVmLi5jNzQ0MzcwM2Q1
ZDg4NWMxNTBmZWEwMGM5OTkwZmYxOTExM2NjYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTM4MTQsNiArMzgxNCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMGI3Njg1M2MzYmZj
NzkwZjgwNjA4MjI2YmQ0ODk4YjdjNGZkM2RjMS4uNTQwYzM2Y2ViNGYyOWNkNTRlNTVlN2QyZDBm
MWU0MTEzNjRjYjY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC03OTUsNiArNzk1LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgaW5zcGVjdG9yL1NjcmlwdENhbGxGcmFtZS5jcHAgXAogICAgIGluc3BlY3Rvci9T
Y3JpcHRDYWxsU3RhY2suY3BwIFwKICAgICBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcCBcCisgICAgaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgXAog
ICAgIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvV29y
a2VyRGVidWdnZXJBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2Y5YmJhMWI5ZjA2ODE5NzJmZmNjNTFm
OTk2NWM2ZjE4N2QzYWM3ZC4uY2FkNzhjYWYzMjdiMzQ0NzVjYTdhOWJlNWY0YjAyYmY5N2VjM2Vh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTg4OCw2ICsxODg4LDggQEAKICAgICAgICAgICAgICdp
bnNwZWN0b3IvU2NyaXB0R0NFdmVudExpc3RlbmVyLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9UaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Xb3JrZXJDb25z
b2xlQWdlbnQuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50
LmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDI4MjBk
NWUxYThiYzE5ZDIwN2ZjZTBmYTg0OTg2NTAwYTIyYzBlM2MuLmNhMjlhMmM1ODZjNjAxNmJhMmM0
OGE0N2Q3ZGU0N2E3ZTdhNmI5YWIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC03NjE3OCw2ICs3NjE3OCwzMCBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcVGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5caW5zcGVjdG9yXFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3Jc
V29ya2VyQ29uc29sZUFnZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAppbmRleCA5
YzlmZjIwODU5YzJkOGNiODU2MzQ3ZDY3YjgxMTMxYTdiYjg5ZWJmLi5iMTEzZGQ5ZWQyZjI2ZDdj
ZDg0MjY0ZjEyZDU0NGQ0M2FkMzU0NzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKQEAgLTgzLDYgKzgzLDcgQEAKICNpbmNsdWRlICJTY3Jp
cHRDYWxsRnJhbWUuY3BwIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5jcHAiCiAjaW5jbHVk
ZSAiVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCIKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3IuY3BwIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVBZ2VudC5jcHAiCiAjaW5j
bHVkZSAiV29ya2VyRGVidWdnZXJBZ2VudC5jcHAiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50
LmgKaW5kZXggOTQ4ZGYwMjhjYjc2OWEzNDMxYTYxMjFlYmI5ODMwNzNjMGIwNWI5Ny4uNWQ2NTQ2
YTlkMjFiNzg4MjlhNTI0ZDMxMDAyOTEzNTIwZjNjMWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaApAQCAtNTksNiArNTksMTEgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBjbGVhckJyb3dzZXJDb29raWVzKCkgeyB9CiAgICAgdmlydHVhbCBib29s
IGNhbk1vbml0b3JNYWluVGhyZWFkKCkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHR5cGVkZWYg
dm9pZCAoKlRyYWNlRXZlbnRDYWxsYmFjaykoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQgY2hh
ciosIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50
IG51bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hh
ciogYXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAg
ICB1bnNpZ25lZCBjaGFyIGZsYWdzKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVudENh
bGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjaykgeyB9CisKICAgICB2aXJ0dWFsIGJvb2wgY2FuT3Zl
cnJpZGVEZXZpY2VNZXRyaWNzKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBvdmVycmlkZURldmljZU1ldHJpY3MoaW50IC8qd2lkdGgqLywgaW50IC8qaGVpZ2h0Ki8sIGZs
b2F0IC8qZm9udFNjYWxlRmFjdG9yKi8sIGJvb2wgLypmaXRXaW5kb3cqLykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBh
YzdhZGNiMGFhMzU2ZmU3NzBjZGZmYzMwMzk2OTI1NjY1NzhhMjU3Li5mYjllOTRjYzUxY2Y1MTNi
MmFjNzM5OTVlMzdiYzQwYjk3NWZjZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSog
Q29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRl
ICJUaW1lbGluZVJlY29yZEZhY3RvcnkuaCIKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3IuaCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCkBAIC0xNzEsNiAr
MTcyLDggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydChFcnJvclN0cmluZyos
IGNvbnN0IGludCogbWF4Q2FsbFN0YWNrRGVwdGgpCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRz
LT5zZXRJbnNwZWN0b3JUaW1lbGluZUFnZW50KHRoaXMpOwogICAgIFNjcmlwdEdDRXZlbnQ6OmFk
ZEV2ZW50TGlzdGVuZXIodGhpcyk7CiAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihUaW1lbGluZUFn
ZW50U3RhdGU6OnRpbWVsaW5lQWdlbnRFbmFibGVkLCB0cnVlKTsKKyAgICBpZiAobV9jbGllbnQp
CisgICAgICAgIG1fdHJhY2VFdmVudFByb2Nlc3NvciA9IGFkb3B0UHRyKG5ldyBUaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IodGhpcywgbV9jbGllbnQpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpzdG9wKEVycm9yU3RyaW5nKikKQEAgLTE3OCw2ICsxODEsNyBAQCB2b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3AoRXJyb3JTdHJpbmcqKQogICAgIGlmICghbV9z
dGF0ZS0+Z2V0Qm9vbGVhbihUaW1lbGluZUFnZW50U3RhdGU6OnRpbWVsaW5lQWdlbnRFbmFibGVk
KSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV90cmFjZUV2ZW50UHJvY2Vzc29yLmNsZWFyKCk7
CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JUaW1lbGluZUFnZW50KDAp
OwogICAgIFNjcmlwdEdDRXZlbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4
IGU3MDYyYTExODE4OGZhY2RkNTQzNGExMjExZDNjN2ZjNWYwNmU5NjYuLmIzYmQwMDgwZjhlY2Nm
ZjM5YzA2ZWRkYTY3NzA1YzlkMjcyOGEwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNTUsNiArNTUsNyBAQCBjbGFzcyBJ
bnRSZWN0OwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xh
c3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcjsK
IAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKQEAgLTE2Niw2ICsxNjcsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc2l6ZUltYWdlKCkgT1ZFUlJJREU7CiAKIHByaXZh
dGU6CisgICAgZnJpZW5kIGNsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcjsKKwogICAg
IHN0cnVjdCBUaW1lbGluZVJlY29yZEVudHJ5IHsKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRy
eShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkLCBQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gZGF0YSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW4sIGNvbnN0
IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBzaXplX3QgdXNlZEhlYXBTaXpl
QXRTdGFydCkKICAgICAgICAgICAgIDogcmVjb3JkKHJlY29yZCksIGRhdGEoZGF0YSksIGNoaWxk
cmVuKGNoaWxkcmVuKSwgdHlwZSh0eXBlKSwgZnJhbWVJZChmcmFtZUlkKSwgdXNlZEhlYXBTaXpl
QXRTdGFydCh1c2VkSGVhcFNpemVBdFN0YXJ0KQpAQCAtMjIwLDYgKzIyMyw3IEBAIHByaXZhdGU6
CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbV9wZW5kaW5nRnJhbWVSZWNvcmQ7CiAgICAg
SW5zcGVjdG9yVHlwZSBtX2luc3BlY3RvclR5cGU7CiAgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2Ns
aWVudDsKKyAgICBPd25QdHI8VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yPiBtX3RyYWNlRXZl
bnRQcm9jZXNzb3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjUyYjNjNzJiNjFjOGZiM2ZjYWJlMGQ1NzU4MGVmMmNjNTVkNjg2OWQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2
ZW50UHJvY2Vzc29yLmNwcApAQCAtMCwwICsxLDIwOSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisqIG1ldDoKKyoKKyogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorKiBkaXN0cmlidXRpb24uCisqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2lu
Y2x1ZGUgIlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIgorCisjaW5jbHVkZSAiSW5zcGVj
dG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgorCisjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgVHJhY2VFdmVudERpc3BhdGNo
ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNlRXZlbnREaXNwYXRjaGVyKTsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgVHJhY2VFdmVudERpc3BhdGNoZXIqIGluc3RhbmNlKCkKKyAgICB7
CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoVHJhY2VFdmVudERpc3BhdGNoZXIsIGluc3Rh
bmNlLCAoKSk7CisgICAgICAgIHJldHVybiAmaW5zdGFuY2U7CisgICAgfQorICAgIAorICAgIHZv
aWQgYWRkUHJvY2Vzc29yKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvciogcHJvY2Vzc29yLCBJ
bnNwZWN0b3JDbGllbnQqIGNsaWVudCkKKyAgICB7CisgICAgICAgIG1fcHJvY2Vzc29ycy5hcHBl
bmQocHJvY2Vzc29yKTsKKyAgICAgICAgaWYgKG1fcHJvY2Vzc29ycy5zaXplKCkgPT0gMSkKKyAg
ICAgICAgICAgIGNsaWVudC0+c2V0VHJhY2VFdmVudENhbGxiYWNrKGRpc3BhdGNoRXZlbnQpOwor
ICAgIH0KKworICAgIHZvaWQgcmVtb3ZlUHJvY2Vzc29yKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3NvciogcHJvY2Vzc29yLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKKyAgICB7CisgICAgICAg
IHNpemVfdCBpbmRleCA9IG1fcHJvY2Vzc29ycy5maW5kKHByb2Nlc3Nvcik7CisgICAgICAgIGlm
IChpbmRleCA9PSBub3RGb3VuZCkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9wcm9jZXNzb3JzW2lu
ZGV4XSA9IG1fcHJvY2Vzc29ycy5sYXN0KCk7CisgICAgICAgIG1fcHJvY2Vzc29ycy5yZW1vdmVM
YXN0KCk7CisgICAgICAgIGlmIChtX3Byb2Nlc3NvcnMuaXNFbXB0eSgpKQorICAgICAgICAgICAg
Y2xpZW50LT5zZXRUcmFjZUV2ZW50Q2FsbGJhY2soMCk7CisgICAgfQorCitwcml2YXRlOgorICAg
IFRyYWNlRXZlbnREaXNwYXRjaGVyKCkgeyB9CisKKyAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaEV2
ZW50KGNoYXIgcGhhc2UsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBjb25zdCBjaGFyKiBuYW1lLCB1
bnNpZ25lZCBsb25nIGxvbmcgaWQsCisgICAgICAgIGludCBudW1BcmdzLCBjb25zdCBjaGFyKiBj
b25zdCogYXJnTmFtZXMsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ1R5cGVzLCBjb25zdCB1bnNp
Z25lZCBsb25nIGxvbmcqIGFyZ1ZhbHVlcywKKyAgICAgICAgdW5zaWduZWQgY2hhciBmbGFncykK
KyAgICB7CisgICAgICAgIGlmICghaXNNYWluVGhyZWFkKCkpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgVmVjdG9yPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcio+JiBwcm9jZXNz
b3JzID0gaW5zdGFuY2UoKS0+bV9wcm9jZXNzb3JzOworICAgICAgICBmb3IgKGludCBpID0gMCwg
c2l6ZSA9IHByb2Nlc3NvcnMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICBw
cm9jZXNzb3JzW2ldLT5wcm9jZXNzRXZlbnQoc3RhdGljX2Nhc3Q8VGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yOjpUcmFjZUV2ZW50UGhhc2U+KHBoYXNlKSwKKyAgICAgICAgICAgICAgICBuYW1l
LCBpZCwgbnVtQXJncywgYXJnTmFtZXMsIGFyZ1R5cGVzLCBhcmdWYWx1ZXMsIGZsYWdzKTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIFZlY3RvcjxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3Iq
PiBtX3Byb2Nlc3NvcnM7Cit9OworCit9IC8vIG5hbWVzcGNlCisKK2NsYXNzIFRyYWNlRXZlbnRB
cmd1bWVudHMgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNlRXZlbnRBcmd1bWVudHMp
OworcHVibGljOgorICAgIFRyYWNlRXZlbnRBcmd1bWVudHMoaW50IG51bUFyZ3VtZW50cywgY29u
c3QgY2hhciogY29uc3QqIGFyZ3VtZW50TmFtZXMsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ3Vt
ZW50VHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJndW1lbnRWYWx1ZXMpCisgICAg
ICAgIDogbV9zaXplKG51bUFyZ3VtZW50cykKKyAgICAgICAgLCBtX2FyZ3VtZW50TmFtZXMoYXJn
dW1lbnROYW1lcykKKyAgICAgICAgLCBtX2FyZ3VtZW50VHlwZXMoYXJndW1lbnRUeXBlcykKKyAg
ICAgICAgLCBtX2FyZ3VtZW50VmFsdWVzKGFyZ3VtZW50VmFsdWVzKQorICAgIHsKKyAgICB9CisK
KyAgICBpbnQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCisgICAgYm9vbCBhc0Jv
b2woY29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAgICB7IAorICAgICAgICByZXR1cm4gcGFyYW1l
dGVyKG5hbWUsIFRSQUNFX1ZBTFVFX1RZUEVfQk9PTCkubV9ib29sOworICAgIH0KKyAgICBsb25n
IGxvbmcgYXNJbnQoY29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAgICB7IAorICAgICAgICByZXR1
cm4gcGFyYW1ldGVyKG5hbWUsIFRSQUNFX1ZBTFVFX1RZUEVfSU5UKS5tX2ludDsKKyAgICB9Cisg
ICAgdW5zaWduZWQgbG9uZyBsb25nIGFzVUludChjb25zdCBjaGFyKiBuYW1lKSBjb25zdCAKKyAg
ICB7IAorICAgICAgICByZXR1cm4gcGFyYW1ldGVyKG5hbWUsIFRSQUNFX1ZBTFVFX1RZUEVfVUlO
VCkubV91aW50OworICAgIH0KKyAgICBkb3VibGUgYXNEb3VibGUoY29uc3QgY2hhciogbmFtZSkg
Y29uc3QKKyAgICB7IAorICAgICAgICByZXR1cm4gcGFyYW1ldGVyKG5hbWUsIFRSQUNFX1ZBTFVF
X1RZUEVfRE9VQkxFKS5tX2RvdWJsZTsKKyAgICB9CisgICAgY29uc3QgY2hhciogYXNTdHJpbmco
Y29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBwYXJhbWV0ZXIo
bmFtZSwgVFJBQ0VfVkFMVUVfVFlQRV9TVFJJTkcpLm1fc3RyaW5nOworICAgIH0KKworcHJpdmF0
ZToKKyAgICAvLyBGSVhNRTogdXNlIHRoZSBkZWZpbml0aW9uIGluIFRyYWNlRXZlbnQuaCBvbmNl
IHdlIGV4cG9zZSB0aGUgbGF0dGVyIHRvIGFsbCBwbGFmb3Jtcy4KKyAgICB1bmlvbiBUcmFjZVZh
bHVlVW5pb24geworICAgICAgICBib29sIG1fYm9vbDsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBs
b25nIG1fdWludDsKKyAgICAgICAgbG9uZyBsb25nIG1faW50OworICAgICAgICBkb3VibGUgbV9k
b3VibGU7CisgICAgICAgIGNvbnN0IHZvaWQqIG1fcG9pbnRlcjsKKyAgICAgICAgY29uc3QgY2hh
ciogbV9zdHJpbmc7CisgICAgfTsKKworICAgIGNvbnN0IFRyYWNlVmFsdWVVbmlvbiYgcGFyYW1l
dGVyKGNvbnN0IGNoYXIqIG5hbWUsIGNoYXIgZXhwZWN0ZWRUeXBlKSBjb25zdAorICAgIHsKKyAg
ICAgICAgc3RhdGljIFRyYWNlVmFsdWVVbmlvbiBtaXNzaW5nVmFsdWU7CisKKyAgICAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBtX3NpemU7ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjbXAo
bmFtZSwgbV9hcmd1bWVudE5hbWVzW2ldKSkgeworICAgICAgICAgICAgICAgIGlmIChtX2FyZ3Vt
ZW50VHlwZXNbaV0gIT0gZXhwZWN0ZWRUeXBlKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWlzc2luZ1ZhbHVl
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gKnJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgVHJhY2VWYWx1ZVVuaW9uKj4obV9hcmd1bWVudFZhbHVlcyArIGkpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm4gbWlzc2luZ1ZhbHVlOworICAgIH0KKworICAgIGludCBtX3NpemU7CisgICAg
Y29uc3QgY2hhciogY29uc3QqIG1fYXJndW1lbnROYW1lczsKKyAgICBjb25zdCB1bnNpZ25lZCBj
aGFyKiBtX2FyZ3VtZW50VHlwZXM7CisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBtX2Fy
Z3VtZW50VmFsdWVzOworfTsKKworVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3IoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2Vu
dCwgSW5zcGVjdG9yQ2xpZW50ICpjbGllbnQpCisgICAgOiBtX3RpbWVsaW5lQWdlbnQodGltZWxp
bmVBZ2VudCkKKyAgICAsIG1faW5zcGVjdG9yQ2xpZW50KGNsaWVudCkKK3sKKyAgICBUcmFjZUV2
ZW50RGlzcGF0Y2hlcjo6aW5zdGFuY2UoKS0+YWRkUHJvY2Vzc29yKHRoaXMsIG1faW5zcGVjdG9y
Q2xpZW50KTsKK30KKworVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjp+VGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yKCkKK3sKKyAgICBUcmFjZUV2ZW50RGlzcGF0Y2hlcjo6aW5zdGFuY2Uo
KS0+cmVtb3ZlUHJvY2Vzc29yKHRoaXMsIG1faW5zcGVjdG9yQ2xpZW50KTsKK30KKwordm9pZCBU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NFdmVudChUcmFjZUV2ZW50UGhhc2Ug
cGhhc2UsIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICBpbnQg
bnVtQXJncywgY29uc3QgY2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFy
KiBhcmdUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMsCisgICAgdW5z
aWduZWQgY2hhciBmbGFncykKK3sKKyAgICBIYXNoTWFwPFN0cmluZywgRXZlbnRUeXBlRW50cnk+
OjppdGVyYXRvciBpdCA9IG1faGFuZGxlcnNCeVR5cGUuZmluZChuYW1lKTsKKyAgICBpZiAoaXQg
PT0gbV9oYW5kbGVyc0J5VHlwZS5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFRyYWNlRXZl
bnRIYW5kbGVyIGhhbmRsZXIgPSAwOworICAgIHN3aXRjaCAocGhhc2UpIHsKKyAgICBjYXNlIFRy
YWNlUGhhc2VCZWdpbjoKKyAgICAgICAgaGFuZGxlciA9IGl0LT52YWx1ZS5tX2JlZ2luOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFRyYWNlUGhhc2VFbmQ6CisgICAgICAgIGhhbmRsZXIgPSBp
dC0+dmFsdWUubV9lbmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHJhY2VQaGFzZUluc3Rh
bnQ6CisgICAgICAgIGhhbmRsZXIgPSBpdC0+dmFsdWUubV9pbnN0YW50OworICAgICAgICBicmVh
azsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cisg
ICAgaWYgKCFoYW5kbGVyKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIFRyYWNlRXZlbnRBcmd1bWVudHMgYXJndW1lbnRzKG51bUFy
Z3MsIGFyZ05hbWVzLCBhcmdUeXBlcywgYXJnVmFsdWVzKTsKKyAgICAodGhpcy0+KmhhbmRsZXIp
KG5hbWUsIHBoYXNlLCBhcmd1bWVudHMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiYWI1
MWM3NGY2MTdhZjBkMTVkNTgxODM4MjY4NWFkYWVmN2E3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgKQEAg
LTAsMCArMSwxMDAgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorKiBtZXQ6
CisqCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyogZGlzdHJpYnV0aW9uLgorKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisqCisqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpZm5kZWYgVGltZWxp
bmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gKKyNkZWZpbmUgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vz
c29yX2gKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEluc3BlY3RvckNsaWVudDsK
K2NsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7CitjbGFzcyBUcmFjZUV2ZW50QXJndW1lbnRz
OworCitjbGFzcyBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IgeworcHVibGljOgorICAgIC8v
IEZJWE1FOiByZS11c2UgZGVmaW5pdGlvbnMgaW4gVHJhY2VFdmVudC5oIG9uY2UgaXQncyBwcm9t
b3RlZCB0byBhbGwgcGxhdGZvcm1zLgorICAgIGVudW0gVHJhY2VFdmVudFBoYXNlIHsKKyAgICAg
ICAgVHJhY2VQaGFzZUJlZ2luID0gJ0InLAorICAgICAgICBUcmFjZVBoYXNlRW5kID0gJ0UnLAor
ICAgICAgICBUcmFjZVBoYXNlSW5zdGFudCA9ICdJJworICAgIH07CisKKyAgICBUaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCosIEluc3BlY3RvckNsaWVu
dCopOworICAgIH5UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IoKTsKKworICAgIHZvaWQgcHJv
Y2Vzc0V2ZW50KFRyYWNlRXZlbnRQaGFzZSwgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbG9u
ZyBsb25nIGlkLAorICAgICAgICBpbnQgbnVtQXJncywgY29uc3QgY2hhciogY29uc3QqIGFyZ05h
bWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBs
b25nKiBhcmdWYWx1ZXMsCisgICAgICAgIHVuc2lnbmVkIGNoYXIgZmxhZ3MpOworICAgIAorcHJp
dmF0ZToKKyAgICB0eXBlZGVmIHZvaWQgKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6KlRy
YWNlRXZlbnRIYW5kbGVyKShjb25zdCBjaGFyKiBuYW1lLCBUcmFjZUV2ZW50UGhhc2UsIGNvbnN0
IFRyYWNlRXZlbnRBcmd1bWVudHMmKTsKKworICAgIHN0cnVjdCBFdmVudFR5cGVFbnRyeSB7Cisg
ICAgICAgIEV2ZW50VHlwZUVudHJ5KCkKKyAgICAgICAgICAgIDogbV9iZWdpbigwKQorICAgICAg
ICAgICAgLCBtX2VuZCgwKQorICAgICAgICAgICAgLCBtX2luc3RhbnQoMCkKKyAgICAgICAgewor
ICAgICAgICB9CisgICAgICAgIGV4cGxpY2l0IEV2ZW50VHlwZUVudHJ5KFRyYWNlRXZlbnRIYW5k
bGVyIGluc3RhbnQpCisgICAgICAgICAgICA6IG1fYmVnaW4oMCkKKyAgICAgICAgICAgICwgbV9l
bmQoMCkKKyAgICAgICAgICAgICwgbV9pbnN0YW50KGluc3RhbnQpCisgICAgICAgIHsKKyAgICAg
ICAgfTsKKyAgICAgICAgRXZlbnRUeXBlRW50cnkoVHJhY2VFdmVudEhhbmRsZXIgYmVnaW4sIFRy
YWNlRXZlbnRIYW5kbGVyIGVuZCkKKyAgICAgICAgICAgIDogbV9iZWdpbihiZWdpbikKKyAgICAg
ICAgICAgICwgbV9lbmQoZW5kKQorICAgICAgICAgICAgLCBtX2luc3RhbnQoMCkKKyAgICAgICAg
eworICAgICAgICB9OworCisgICAgICAgIFRyYWNlRXZlbnRIYW5kbGVyIG1fYmVnaW47CisgICAg
ICAgIFRyYWNlRXZlbnRIYW5kbGVyIG1fZW5kOworICAgICAgICBUcmFjZUV2ZW50SGFuZGxlciBt
X2luc3RhbnQ7CisgICAgfTsKKworICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIG1fdGltZWxp
bmVBZ2VudDsKKyAgICBJbnNwZWN0b3JDbGllbnQqIG1faW5zcGVjdG9yQ2xpZW50OworCisgICAg
SGFzaE1hcDxTdHJpbmcsIEV2ZW50VHlwZUVudHJ5PiBtX2hhbmRsZXJzQnlUeXBlOworfTsKKwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQor
I2VuZGlmIC8vICFkZWZpbmVkKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcl9oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVu
dC5oCmluZGV4IGJlYjNlODMyZjk3NDgyNzVmNGJlYmNhMDVjZjQxZWE3Njc0OTA3MGEuLmE1MTNj
OTM2ODJmNDZiYjhkZmJlNWRjMzIyYTYzNGI1NjQ5MjdlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xpZW50LmgKQEAgLTc3
LDYgKzc3LDEyIEBAIHB1YmxpYzoKICAgICB9OwogICAgIHZpcnR1YWwgdm9pZCBkdW1wVW5jb3Vu
dGVkQWxsb2NhdGVkT2JqZWN0cyhjb25zdCBJbnN0cnVtZW50ZWRPYmplY3RTaXplUHJvdmlkZXIq
KSB7IH0KIAorICAgIHR5cGVkZWYgdm9pZCAoKlRyYWNlRXZlbnRDYWxsYmFjaykoY2hhciBwaGFz
ZSwgY29uc3QgdW5zaWduZWQgY2hhciosIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcg
bG9uZyBpZCwKKyAgICAgICAgaW50IG51bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1l
cywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9u
ZyogYXJnVmFsdWVzLAorICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdzKTsKKworICAgIHZpcnR1
YWwgdm9pZCBzZXRUcmFjZUV2ZW50Q2FsbGJhY2soVHJhY2VFdmVudENhbGxiYWNrKSB7IH0KKwog
cHJvdGVjdGVkOgogICAgIH5XZWJEZXZUb29sc0FnZW50Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcAppbmRl
eCBiYWI1ODE2YmZkNjkwOGVmYTBmOGMxNjlmMGM4MDFhMjRjODc5MjQ2Li5mYmNjY2Q3ZTFmOGY2
NmMyYWUwYzJlNWIyMmU4YTY3ODE5ZDY2ODMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcApAQCAtMTk2LDYgKzE5NiwxMiBAQCBi
b29sIEluc3BlY3RvckNsaWVudEltcGw6OmNhcHR1cmVTY3JlZW5zaG90KFN0cmluZyogZGF0YSkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ2xpZW50SW1wbDo6c2V0VHJh
Y2VFdmVudENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBpZiAo
V2ViRGV2VG9vbHNBZ2VudEltcGwqIGFnZW50ID0gZGV2VG9vbHNBZ2VudCgpKQorICAgICAgICBh
Z2VudC0+c2V0VHJhY2VFdmVudENhbGxiYWNrKGNhbGxiYWNrKTsKK30KKwogV2ViRGV2VG9vbHNB
Z2VudEltcGwqIEluc3BlY3RvckNsaWVudEltcGw6OmRldlRvb2xzQWdlbnQoKQogewogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxXZWJEZXZUb29sc0FnZW50SW1wbCo+KG1faW5zcGVjdGVkV2ViVmll
dy0+ZGV2VG9vbHNBZ2VudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0luc3BlY3RvckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lu
c3BlY3RvckNsaWVudEltcGwuaAppbmRleCAyMDMzZTNmNjkwOThiYjA5NmQwNTAwZjk1MTFjMDRm
YTJkZmQ3NzQ5Li45NGEzN2Y2ZDM5OGZmOGI2NDAxMDMyYzczYjdhNGU0NzQ4YzRjZDQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oCkBA
IC04NSw2ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcFVuY291bnRlZEFs
bG9jYXRlZE9iamVjdHMoY29uc3QgSGFzaE1hcDxjb25zdCB2b2lkKiwgc2l6ZV90PiYpOwogCiAg
ICAgdmlydHVhbCBib29sIGNhcHR1cmVTY3JlZW5zaG90KFdURjo6U3RyaW5nKiBkYXRhKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVudENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjayk7
CiAKIHByaXZhdGU6CiAgICAgV2ViRGV2VG9vbHNBZ2VudEltcGwqIGRldlRvb2xzQWdlbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmNwcAppbmRleCBiNThjZjYxYjRkMDA1ZjIyZWRhMjljMmM3YmE1YzU1MjRjMzFlMTM1Li44M2E3
NzA5OTNiZGI1MjdmMGJkOTYyN2ZlMmY3Yjk5ZTQ0YjkyYmFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC01ODAsNiAr
NTgwLDExIEBAIGJvb2wgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmNhcHR1cmVTY3JlZW5zaG90KFdU
Rjo6U3RyaW5nKiBkYXRhKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFdlYkRldlRvb2xz
QWdlbnRJbXBsOjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2soVHJhY2VFdmVudENhbGxiYWNrIGNhbGxi
YWNrKQoreworICAgIG1fY2xpZW50LT5zZXRUcmFjZUV2ZW50Q2FsbGJhY2soY2FsbGJhY2spOwor
fQorCiB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2Vu
ZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaW5zcGVjdG9yQ29udHJvbGxlcigp
LT5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQobWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaAppbmRleCBlMGYyYjE0YWJi
NTcyYmIzMzhhYTQ1ZWIzYmMyYzhhNGY4MzY5YTFiLi5iZmQ3YjcwOTQ3NDQ3YzVjOGIyNjhmYTJm
OTUxMjJiZjQ3NjE4YzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJEZXZUb29sc0FnZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkRldlRvb2xzQWdlbnRJbXBsLmgKQEAgLTEwOSw2ICsxMDksNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0QWxsb2NhdGVkT2JqZWN0cyhIYXNoU2V0PGNvbnN0IHZvaWQqPiYpOwog
ICAgIHZpcnR1YWwgdm9pZCBkdW1wVW5jb3VudGVkQWxsb2NhdGVkT2JqZWN0cyhjb25zdCBIYXNo
TWFwPGNvbnN0IHZvaWQqLCBzaXplX3Q+Jik7CisgICAgdmlydHVhbCB2b2lkIHNldFRyYWNlRXZl
bnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJhY2spOwogCiAgICAgdmlydHVhbCBib29sIGNhcHR1
cmVTY3JlZW5zaG90KFdURjo6U3RyaW5nKiBkYXRhKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180881</attachid>
            <date>2012-12-28 08:56:02 -0800</date>
            <delta_ts>2012-12-29 04:12:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105796-20121228205312.patch</filename>
            <type>text/plain</type>
            <size>31367</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTI1YjA2YmE0MzE1YWNi
NjYzZmNmNjQ5ODI3OTdlMDRlYjFkNWZiMC4uOTA5N2YxYWY2Yjg2ZWU4YWZhMzc5ODI2ZTVlODM5
NzQ1YmVkODAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTEyLTI4ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGV4cG9zZXMgYSBjYWxsYmFjayB0
byBlbWJlZGRlciB0byBhbGxvdyBmZWVkaW5nIG9mIHRyYWNlIGV2ZW50cyB0byBUaW1lbGluZSBh
Z2VudC4KKyAgICAgICAgU29tZSBldmVudHMgd2lsbCBiZSBzcGVjaWFsbHkgcHJvY2Vzc2VkIHRv
IGV4dHJhY3QgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGJlIHByZXNlbnRlZAorICAgICAgICBvbiB0
aW1lbGluZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRlZCBUaW1lbGluZVRyYWNl
RXZlbnRSZXBvcnRlci57aCxjcHB9CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogZGl0
dG8uCisgICAgICAgICogVGFyZ2V0LnByaTogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBp
OiBkaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogZGl0dG8u
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDogZGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oOgorICAgICAgICAoSW5zcGVjdG9yQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6c2V0VHJhY2VFdmVudENh
bGxiYWNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydCk6IEVuYWJs
ZSB0cmFjZSBldmVudHMgY29sbGVjdGlvbiBvbiBzdGFydC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3ApOiBEaXNhYmxlIHRyYWNlIGV2ZW50cyBjb2xsZWN0
aW9uIG9uIHN0b3AuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1Rp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHA6IEFkZGVkLgorICAgICAgICAoVHJhY2VFdmVu
dEFyZ3VtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJndW1lbnRzOjpUcmFj
ZUV2ZW50QXJndW1lbnRzKTogQSBoZWxwZXIgdG8gZXh0cmFjdCBhcmd1bWVudHMgZnJvbSB0cmFj
ZSBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRyYWNlRXZlbnRBcmd1bWVudHM6OnNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhY2VFdmVudEFyZ3VtZW50czo6YXNCb29sKToKKyAgICAgICAg
KFdlYkNvcmU6OlRyYWNlRXZlbnRBcmd1bWVudHM6OmFzSW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlRyYWNlRXZlbnRBcmd1bWVudHM6OmFzVUludCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2
ZW50QXJndW1lbnRzOjphc0RvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJn
dW1lbnRzOjphc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJndW1lbnRz
OjpwYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6On5UaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yOjpwcm9jZXNzRXZlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3I6OkV2ZW50VHlwZUVudHJ5OjpFdmVudFR5cGVFbnRyeSk6Cisg
ICAgICAgIChFdmVudFR5cGVFbnRyeSk6CisKIDIwMTItMTItMjggIFJhZmFlbCBXZWluc3RlaW4g
IDxyYWZhZWx3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBIZWFwLXVzZS1hZnRlci1mcmVlIGlu
IFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjptZXJnZUF0dHJpYnV0ZXNGcm9tVG9rZW5J
bnRvRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBjMjdlZjhiZmNlYmVkZjE4
MWJmZTYwZTI1ZTVjODA3M2I2Mzk5ZjEwLi4zNzQ1NGE2YWNjNzJkYzk5MjZkNzM5ZmYwN2M0MmZi
ZjM4OTllNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisy
MDEyLTEyLTI4ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIFBsdW1iIGVu
YWJsaW5nIG9mIHRyYWNlIGV2ZW50cyB0byBlbWJlZGRlcgorICAgICAgICAgIChhZGRlZCBzZXRU
cmFjZUV2ZW50Q2FsbGJhY2sgdG8gSW5zcGVjdG9yQ2xpZW50IC4uIFdlYkRldlRvb2xzQWdlbnRD
bGllbnQpCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oOgorICAg
ICAgICAoV2ViRGV2VG9vbHNBZ2VudENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRv
b2xzQWdlbnRDbGllbnQ6OnNldFRyYWNlRXZlbnRDYWxsYmFjayk6CisgICAgICAgICogc3JjL0lu
c3BlY3RvckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnRJ
bXBsOjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoSW5zcGVjdG9yQ2xpZW50SW1w
bCk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OnNldFRyYWNlRXZlbnRDYWxsYmFjayk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oOgorICAg
ICAgICAoV2ViRGV2VG9vbHNBZ2VudEltcGwpOgorCiAyMDEyLTEyLTI2ICBOaWNvIFdlYmVyICA8
dGhha2lzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIERpc2FibGUgdW5wcmVm
aXhlZCBjc3MgdHJhbnNpdGlvbnMgdW50aWwgdGhleSdyZSBmdW5jdGlvbmFsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQ5NDNmZTY2ZTI3YzFlYzlmZjgyMGZlMDNiYTNkNmZlNWQzYjUwNmUuLjFh
MTUwY2I2MjA5Mjg1MGE4ZTg0YjhiMWMwZTQzYzI1MmJhZWE3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xNjMzLDYgKzE2MzMsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVj
dG9yL1NjcmlwdENhbGxGcmFtZS5jcHAKICAgICBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmNw
cAogICAgIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCisgICAgaW5zcGVjdG9y
L1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKICAgICBpbnNwZWN0b3IvV29ya2VyQ29u
c29sZUFnZW50LmNwcAogICAgIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAogICAg
IGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggZTBjOTAzNWEyY2M2MWZmOTQwNTI0OTBlZmNiNThlMWEzMDgwNjkz
Zi4uMTAzZGJhYzVjZWJjZWNiODkwMDE5ODJiN2M4ZWIxZWQyNWFlYjE4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODE2LDYgKzM4MTYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRHQ0V2ZW50TGlzdGVuZXIuaCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaCBcCisJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBcCiAJU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4
IGIyNDA2ODcwZWQyMDExNTgzNjlmZDIxZWFiZWI5NzRkZjQxNmI1MDMuLjA1NzAzZjU5MDExMDFk
MjlhNDQ3OGVkY2JhYTc2MTk1NmUwZWYyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNzk2LDYgKzc5Niw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsRnJhbWUuY3BwIFwKICAg
ICBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmNwcCBcCiAgICAgaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5jcHAgXAorICAgIGluc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuY3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCBcCiAgICAg
aW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDczOWJjMGJjOTQy
YmViNDZiNDhkODZkOWYxYTIwMDM3ZGVhOTNmNTUuLjA4NGI2ODIyZjE5Mzg2NDYxNWMxOGMyYzVm
ZWMwZGJiMjQ4NDY2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4ODgsNiArMTg4OCw4IEBACiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5oJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCcsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oJywKKyAgICAgICAgICAgICdpbnNwZWN0
b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCcsCisgICAgICAgICAgICAnaW5zcGVj
dG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oJywKICAgICAgICAgICAgICdpbnNwZWN0
b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL1dvcmtl
ckNvbnNvbGVBZ2VudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJB
Z2VudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agppbmRleCBjMTYzMDhkYmI3ZjNjYTMyNDM4MjVkZjQ5YjQ0MWQ3MWMwZDUxNjRhLi4xNGU1ZDI5
NDNhN2NiMTc1YjNmOGQ2NjQ0NWNhNTM4NDExOGJmMDZjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzYxNzgsNiArNzYxNzgsMzAgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9y
XFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5caW5zcGVjdG9yXFdvcmtlckNvbnNvbGVBZ2VudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGZlNGI5OWFkYzEwYWIxNmI2ZjdkZTkxNDkyMzA5YTExN2RiYTBiODcu
LmZiZGE2OWU1ZTc3Yzg1ZmY3MzEzYmYxYWFkNWIwMGExZTA5MTQzMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNzgsNiAr
MTI3OCw4IEBACiAJCTQ2RjlENURGMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5w
bmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RjlE
NURDMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgKi87IH07CiAJCTQ5MDcw
N0U2MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNDEyMTlDMDQzMDBEOTBF
NTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovOyB9OwogCQk0OTA3MDdFNzEyMTlDMDQzMDBE
OTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktp
dEJyaWRnZS5oICovOyB9OworCQk0OTE0MDI1NjE2OEUwMkU4MDAyRDZDNkEgLyogVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5MTQwMjU0MTY4RTAyQjQwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3IuY3BwICovOyB9OworCQk0OTE0MDI1NzE2OEUwMkVDMDAyRDZDNkEgLyogVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTE0MDI1NTE2OEUwMkI0MDAyRDZDNkEgLyogVGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yLmggKi87IH07CiAJCTQ5MTgyQjUyMTVEQ0U2RjAwMDU0ODQxOCAvKiBQ
bGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTE4MkI1MDE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0
cnVtZW50YXRpb24uY3BwICovOyB9OwogCQk0OTE4MkI1MzE1RENFNkYwMDA1NDg0MTggLyogUGxh
dGZvcm1JbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5MTgyQjUxMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1l
bnRhdGlvbi5oICovOyB9OwogCQk0OTI4NjM5OTEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3VyY2VM
b2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDkyODYzOTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODU0NCw2ICs4NTQ2LDgg
QEAKIAkJNDZGOUQ1REMwQjBENjAxNzAwMjhFRTM2IC8qIHByb2dyZXNzQ3Vyc29yLnBuZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsg
cGF0aCA9IHByb2dyZXNzQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFO
R0xFV2ViS2l0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFOR0xF
V2ViS2l0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5MTQwMjU0MTY4
RTAyQjQwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDkxNDAyNTUxNjhFMDJCNDAwMkQ2
QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDkxODJCNTAxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5z
dHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBs
YXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDkxODJCNTExNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5Mjg2Mzk4MTI1M0I4RkMwMEY3OTJENiAv
KiBSZXNvdXJjZUxvYWRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
c291cmNlTG9hZEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MDIyLDYg
KzE1MDI2LDggQEAKIAkJCQk5RkEzN0VGMDExNzJGRDQxMDBDNENENTUgLyogU2NyaXB0UHJvZmls
ZU5vZGUuaWRsICovLAogCQkJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwICovLAogCQkJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1l
bGluZVJlY29yZEZhY3RvcnkuaCAqLywKKwkJCQk0OTE0MDI1NDE2OEUwMkI0MDAyRDZDNkEgLyog
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCAqLywKKwkJCQk0OTE0MDI1NTE2OEUwMkI0
MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggKi8sCiAJCQkJRjM4MjA4
OEUxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgKi8sCiAJCQkJRjM4
MjA4OEYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5oICovLAogCQkJCUYz
NDc0MkRFMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCAqLywKQEAg
LTI1OTk5LDYgKzI2MDA1LDcgQEAKIAkJCQlFMTNFRjM0NDE2ODRFQ0Y0MDAzNEM4M0YgLyogTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTUwNzE1ODE2ODUwNjcz
MDBDM0M3QjMgLyogU2VsZWN0b3JGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUJDMkRG
MTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0OTE0MDI1NzE2OEUwMkVDMDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI5MTIwLDYgKzI5MTI3LDcgQEAKIAkJCQlFMTNFRjM0OTE2
ODUwQzQ3MDAzNEM4M0YgLyogTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDE1MDcxNTcxNjg1MDY3MzAwQzNDN0IzIC8qIFNlbGVjdG9yRmlsdGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQxOUJDMkRFMTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVk
TGlua1N0YXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5MTQwMjU2MTY4RTAyRTgwMDJENkM2
QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAppbmRleCA5Yzlm
ZjIwODU5YzJkOGNiODU2MzQ3ZDY3YjgxMTMxYTdiYjg5ZWJmLi5iMTEzZGQ5ZWQyZjI2ZDdjZDg0
MjY0ZjEyZDU0NGQ0M2FkMzU0NzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBbGxJbk9uZS5jcHAKQEAgLTgzLDYgKzgzLDcgQEAKICNpbmNsdWRlICJTY3JpcHRD
YWxsRnJhbWUuY3BwIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5jcHAiCiAjaW5jbHVkZSAi
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCIKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3IuY3BwIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVBZ2VudC5jcHAiCiAjaW5jbHVk
ZSAiV29ya2VyRGVidWdnZXJBZ2VudC5jcHAiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgK
aW5kZXggOTQ4ZGYwMjhjYjc2OWEzNDMxYTYxMjFlYmI5ODMwNzNjMGIwNWI5Ny4uNWQ2NTQ2YTlk
MjFiNzg4MjlhNTI0ZDMxMDAyOTEzNTIwZjNjMWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDbGllbnQuaApAQCAtNTksNiArNTksMTEgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBjbGVhckJyb3dzZXJDb29raWVzKCkgeyB9CiAgICAgdmlydHVhbCBib29sIGNh
bk1vbml0b3JNYWluVGhyZWFkKCkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHR5cGVkZWYgdm9p
ZCAoKlRyYWNlRXZlbnRDYWxsYmFjaykoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQgY2hhcios
IGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51
bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciog
YXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1
bnNpZ25lZCBjaGFyIGZsYWdzKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVudENhbGxi
YWNrKFRyYWNlRXZlbnRDYWxsYmFjaykgeyB9CisKICAgICB2aXJ0dWFsIGJvb2wgY2FuT3ZlcnJp
ZGVEZXZpY2VNZXRyaWNzKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBv
dmVycmlkZURldmljZU1ldHJpY3MoaW50IC8qd2lkdGgqLywgaW50IC8qaGVpZ2h0Ki8sIGZsb2F0
IC8qZm9udFNjYWxlRmFjdG9yKi8sIGJvb2wgLypmaXRXaW5kb3cqLykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBhYzdh
ZGNiMGFhMzU2ZmU3NzBjZGZmYzMwMzk2OTI1NjY1NzhhMjU3Li5mYjllOTRjYzUxY2Y1MTNiMmFj
NzM5OTVlMzdiYzQwYjk3NWZjZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJU
aW1lbGluZVJlY29yZEZhY3RvcnkuaCIKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuaCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCkBAIC0xNzEsNiArMTcy
LDggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydChFcnJvclN0cmluZyosIGNv
bnN0IGludCogbWF4Q2FsbFN0YWNrRGVwdGgpCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5z
ZXRJbnNwZWN0b3JUaW1lbGluZUFnZW50KHRoaXMpOwogICAgIFNjcmlwdEdDRXZlbnQ6OmFkZEV2
ZW50TGlzdGVuZXIodGhpcyk7CiAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihUaW1lbGluZUFnZW50
U3RhdGU6OnRpbWVsaW5lQWdlbnRFbmFibGVkLCB0cnVlKTsKKyAgICBpZiAobV9jbGllbnQpCisg
ICAgICAgIG1fdHJhY2VFdmVudFByb2Nlc3NvciA9IGFkb3B0UHRyKG5ldyBUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3IodGhpcywgbV9jbGllbnQpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpzdG9wKEVycm9yU3RyaW5nKikKQEAgLTE3OCw2ICsxODEsNyBAQCB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3AoRXJyb3JTdHJpbmcqKQogICAgIGlmICghbV9zdGF0
ZS0+Z2V0Qm9vbGVhbihUaW1lbGluZUFnZW50U3RhdGU6OnRpbWVsaW5lQWdlbnRFbmFibGVkKSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgbV90cmFjZUV2ZW50UHJvY2Vzc29yLmNsZWFyKCk7CiAg
ICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JUaW1lbGluZUFnZW50KDApOwog
ICAgIFNjcmlwdEdDRXZlbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IGU3
MDYyYTExODE4OGZhY2RkNTQzNGExMjExZDNjN2ZjNWYwNmU5NjYuLmIzYmQwMDgwZjhlY2NmZjM5
YzA2ZWRkYTY3NzA1YzlkMjcyOGEwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNTUsNiArNTUsNyBAQCBjbGFzcyBJbnRS
ZWN0OwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3Mg
UmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcjsKIAog
dHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKQEAgLTE2Niw2ICsxNjcsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc2l6ZUltYWdlKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcjsKKwogICAgIHN0
cnVjdCBUaW1lbGluZVJlY29yZEVudHJ5IHsKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gZGF0YSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW4sIGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBzaXplX3QgdXNlZEhlYXBTaXplQXRT
dGFydCkKICAgICAgICAgICAgIDogcmVjb3JkKHJlY29yZCksIGRhdGEoZGF0YSksIGNoaWxkcmVu
KGNoaWxkcmVuKSwgdHlwZSh0eXBlKSwgZnJhbWVJZChmcmFtZUlkKSwgdXNlZEhlYXBTaXplQXRT
dGFydCh1c2VkSGVhcFNpemVBdFN0YXJ0KQpAQCAtMjIwLDYgKzIyMyw3IEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbV9wZW5kaW5nRnJhbWVSZWNvcmQ7CiAgICAgSW5z
cGVjdG9yVHlwZSBtX2luc3BlY3RvclR5cGU7CiAgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2NsaWVu
dDsKKyAgICBPd25QdHI8VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yPiBtX3RyYWNlRXZlbnRQ
cm9jZXNzb3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjczYTE2Y2Y0NzBhNzJiOTE3OWNkMjBkZTEzNmYwZTZjNmM3NDYwNzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yLmNwcApAQCAtMCwwICsxLDIxOSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisqIG1ldDoKKyoKKyogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorKiBkaXN0cmlidXRpb24uCisqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1
ZGUgIlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIgorCisjaW5jbHVkZSAiSW5zcGVjdG9y
Q2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgorCisjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgVHJhY2VFdmVudERpc3BhdGNoZXIg
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNlRXZlbnREaXNwYXRjaGVyKTsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgVHJhY2VFdmVudERpc3BhdGNoZXIqIGluc3RhbmNlKCkKKyAgICB7Cisg
ICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoVHJhY2VFdmVudERpc3BhdGNoZXIsIGluc3RhbmNl
LCAoKSk7CisgICAgICAgIHJldHVybiAmaW5zdGFuY2U7CisgICAgfQorICAgIAorICAgIHZvaWQg
YWRkUHJvY2Vzc29yKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvciogcHJvY2Vzc29yLCBJbnNw
ZWN0b3JDbGllbnQqIGNsaWVudCkKKyAgICB7CisgICAgICAgIG1fcHJvY2Vzc29ycy5hcHBlbmQo
cHJvY2Vzc29yKTsKKyAgICAgICAgaWYgKG1fcHJvY2Vzc29ycy5zaXplKCkgPT0gMSkKKyAgICAg
ICAgICAgIGNsaWVudC0+c2V0VHJhY2VFdmVudENhbGxiYWNrKGRpc3BhdGNoRXZlbnQpOworICAg
IH0KKworICAgIHZvaWQgcmVtb3ZlUHJvY2Vzc29yKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nv
ciogcHJvY2Vzc29yLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKKyAgICB7CisgICAgICAgIHNp
emVfdCBpbmRleCA9IG1fcHJvY2Vzc29ycy5maW5kKHByb2Nlc3Nvcik7CisgICAgICAgIGlmIChp
bmRleCA9PSBub3RGb3VuZCkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9wcm9jZXNzb3JzW2luZGV4
XSA9IG1fcHJvY2Vzc29ycy5sYXN0KCk7CisgICAgICAgIG1fcHJvY2Vzc29ycy5yZW1vdmVMYXN0
KCk7CisgICAgICAgIGlmIChtX3Byb2Nlc3NvcnMuaXNFbXB0eSgpKQorICAgICAgICAgICAgY2xp
ZW50LT5zZXRUcmFjZUV2ZW50Q2FsbGJhY2soMCk7CisgICAgfQorCitwcml2YXRlOgorICAgIFRy
YWNlRXZlbnREaXNwYXRjaGVyKCkgeyB9CisKKyAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaEV2ZW50
KGNoYXIgcGhhc2UsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNp
Z25lZCBsb25nIGxvbmcgaWQsCisgICAgICAgIGludCBudW1BcmdzLCBjb25zdCBjaGFyKiBjb25z
dCogYXJnTmFtZXMsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ1R5cGVzLCBjb25zdCB1bnNpZ25l
ZCBsb25nIGxvbmcqIGFyZ1ZhbHVlcywKKyAgICAgICAgdW5zaWduZWQgY2hhciBmbGFncykKKyAg
ICB7CisgICAgICAgIGlmICghaXNNYWluVGhyZWFkKCkpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgVmVjdG9yPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcio+JiBwcm9jZXNzb3Jz
ID0gaW5zdGFuY2UoKS0+bV9wcm9jZXNzb3JzOworICAgICAgICBmb3IgKGludCBpID0gMCwgc2l6
ZSA9IHByb2Nlc3NvcnMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICBwcm9j
ZXNzb3JzW2ldLT5wcm9jZXNzRXZlbnQoc3RhdGljX2Nhc3Q8VGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yOjpUcmFjZUV2ZW50UGhhc2U+KHBoYXNlKSwKKyAgICAgICAgICAgICAgICBuYW1lLCBp
ZCwgbnVtQXJncywgYXJnTmFtZXMsIGFyZ1R5cGVzLCBhcmdWYWx1ZXMsIGZsYWdzKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIFZlY3RvcjxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IqPiBt
X3Byb2Nlc3NvcnM7Cit9OworCit9IC8vIG5hbWVzcGNlCisKK2NsYXNzIFRyYWNlRXZlbnRBcmd1
bWVudHMgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNlRXZlbnRBcmd1bWVudHMpOwor
cHVibGljOgorICAgIFRyYWNlRXZlbnRBcmd1bWVudHMoaW50IG51bUFyZ3VtZW50cywgY29uc3Qg
Y2hhciogY29uc3QqIGFyZ3VtZW50TmFtZXMsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ3VtZW50
VHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJndW1lbnRWYWx1ZXMpCisgICAgICAg
IDogbV9zaXplKG51bUFyZ3VtZW50cykKKyAgICAgICAgLCBtX2FyZ3VtZW50TmFtZXMoYXJndW1l
bnROYW1lcykKKyAgICAgICAgLCBtX2FyZ3VtZW50VHlwZXMoYXJndW1lbnRUeXBlcykKKyAgICAg
ICAgLCBtX2FyZ3VtZW50VmFsdWVzKGFyZ3VtZW50VmFsdWVzKQorICAgIHsKKyAgICB9CisKKyAg
ICBpbnQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCisgICAgYm9vbCBhc0Jvb2wo
Y29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAgICB7IAorICAgICAgICByZXR1cm4gcGFyYW1ldGVy
KG5hbWUsIFR5cGVCb29sKS5tX2Jvb2w7CisgICAgfQorICAgIGxvbmcgbG9uZyBhc0ludChjb25z
dCBjaGFyKiBuYW1lKSBjb25zdAorICAgIHsgCisgICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFt
ZSwgVHlwZUludCkubV9pbnQ7CisgICAgfQorICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhc1VJbnQo
Y29uc3QgY2hhciogbmFtZSkgY29uc3QgCisgICAgeyAKKyAgICAgICAgcmV0dXJuIHBhcmFtZXRl
cihuYW1lLCBUeXBlVUludCkubV91aW50OworICAgIH0KKyAgICBkb3VibGUgYXNEb3VibGUoY29u
c3QgY2hhciogbmFtZSkgY29uc3QKKyAgICB7IAorICAgICAgICByZXR1cm4gcGFyYW1ldGVyKG5h
bWUsIFR5cGVEb3VibGUpLm1fZG91YmxlOworICAgIH0KKyAgICBjb25zdCBjaGFyKiBhc1N0cmlu
Zyhjb25zdCBjaGFyKiBuYW1lKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtZXRl
cihuYW1lLCBUeXBlU3RyaW5nKS5tX3N0cmluZzsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8g
RklYTUU6IHVzZSB0aGUgZGVmaW5pdGlvbiBpbiBUcmFjZUV2ZW50Lmggb25jZSB3ZSBleHBvc2Ug
dGhlIGxhdHRlciB0byBhbGwgcGxhZm9ybXMuCisgICAgdW5pb24gVHJhY2VWYWx1ZVVuaW9uIHsK
KyAgICAgICAgYm9vbCBtX2Jvb2w7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3VpbnQ7
CisgICAgICAgIGxvbmcgbG9uZyBtX2ludDsKKyAgICAgICAgZG91YmxlIG1fZG91YmxlOworICAg
ICAgICBjb25zdCB2b2lkKiBtX3BvaW50ZXI7CisgICAgICAgIGNvbnN0IGNoYXIqIG1fc3RyaW5n
OworICAgIH07CisKKyAgICBlbnVtIFRyYWNlVmFsdWVUeXBlcyB7CisgICAgICAgIFR5cGVCb29s
ID0gMSwKKyAgICAgICAgVHlwZVVJbnQgPSAyLAorICAgICAgICBUeXBlSW50ID0gMywKKyAgICAg
ICAgVHlwZURvdWJsZSA9IDQsCisgICAgICAgIFR5cGVQb2ludGVyID0gNSwKKyAgICAgICAgVHlw
ZVN0cmluZyA9IDYsCisgICAgICAgIFR5cGVDb3B5U3RyaW5nID0gNworICAgIH07CisKKyAgICBj
b25zdCBUcmFjZVZhbHVlVW5pb24mIHBhcmFtZXRlcihjb25zdCBjaGFyKiBuYW1lLCBUcmFjZVZh
bHVlVHlwZXMgZXhwZWN0ZWRUeXBlKSBjb25zdAorICAgIHsKKyAgICAgICAgc3RhdGljIFRyYWNl
VmFsdWVVbmlvbiBtaXNzaW5nVmFsdWU7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBt
X3NpemU7ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjbXAobmFtZSwgbV9hcmd1bWVudE5h
bWVzW2ldKSkgeworICAgICAgICAgICAgICAgIGlmIChtX2FyZ3VtZW50VHlwZXNbaV0gIT0gZXhw
ZWN0ZWRUeXBlKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWlzc2luZ1ZhbHVlOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVHJhY2VW
YWx1ZVVuaW9uKj4obV9hcmd1bWVudFZhbHVlcyArIGkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gbWlzc2lu
Z1ZhbHVlOworICAgIH0KKworICAgIGludCBtX3NpemU7CisgICAgY29uc3QgY2hhciogY29uc3Qq
IG1fYXJndW1lbnROYW1lczsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBtX2FyZ3VtZW50VHlw
ZXM7CisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBtX2FyZ3VtZW50VmFsdWVzOworfTsK
KworVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNz
b3IoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCwgSW5zcGVjdG9yQ2xpZW50
ICpjbGllbnQpCisgICAgOiBtX3RpbWVsaW5lQWdlbnQodGltZWxpbmVBZ2VudCkKKyAgICAsIG1f
aW5zcGVjdG9yQ2xpZW50KGNsaWVudCkKK3sKKyAgICBUcmFjZUV2ZW50RGlzcGF0Y2hlcjo6aW5z
dGFuY2UoKS0+YWRkUHJvY2Vzc29yKHRoaXMsIG1faW5zcGVjdG9yQ2xpZW50KTsKK30KKworVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjp+VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKCkK
K3sKKyAgICBUcmFjZUV2ZW50RGlzcGF0Y2hlcjo6aW5zdGFuY2UoKS0+cmVtb3ZlUHJvY2Vzc29y
KHRoaXMsIG1faW5zcGVjdG9yQ2xpZW50KTsKK30KKwordm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3I6OnByb2Nlc3NFdmVudChUcmFjZUV2ZW50UGhhc2UgcGhhc2UsIGNvbnN0IGNoYXIq
IG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICBpbnQgbnVtQXJncywgY29uc3QgY2hh
ciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3Qg
dW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMsCisgICAgdW5zaWduZWQgY2hhciBmbGFncykK
K3sKKyAgICBIYXNoTWFwPFN0cmluZywgRXZlbnRUeXBlRW50cnk+OjppdGVyYXRvciBpdCA9IG1f
aGFuZGxlcnNCeVR5cGUuZmluZChuYW1lKTsKKyAgICBpZiAoaXQgPT0gbV9oYW5kbGVyc0J5VHlw
ZS5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFRyYWNlRXZlbnRIYW5kbGVyIGhhbmRsZXIg
PSAwOworICAgIHN3aXRjaCAocGhhc2UpIHsKKyAgICBjYXNlIFRyYWNlUGhhc2VCZWdpbjoKKyAg
ICAgICAgaGFuZGxlciA9IGl0LT52YWx1ZS5tX2JlZ2luOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFRyYWNlUGhhc2VFbmQ6CisgICAgICAgIGhhbmRsZXIgPSBpdC0+dmFsdWUubV9lbmQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgVHJhY2VQaGFzZUluc3RhbnQ6CisgICAgICAgIGhhbmRs
ZXIgPSBpdC0+dmFsdWUubV9pbnN0YW50OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgaWYgKCFoYW5kbGVyKSB7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIFRyYWNlRXZlbnRBcmd1bWVudHMgYXJndW1lbnRzKG51bUFyZ3MsIGFyZ05hbWVzLCBhcmdU
eXBlcywgYXJnVmFsdWVzKTsKKyAgICAodGhpcy0+KmhhbmRsZXIpKG5hbWUsIHBoYXNlLCBhcmd1
bWVudHMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
SU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiYWI1MWM3NGY2MTdhZjBkMTVkNTgx
ODM4MjY4NWFkYWVmN2E3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8q
CisqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
KgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorKiBtZXQ6CisqCisqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyogZGlzdHJpYnV0aW9u
LgorKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpZm5kZWYgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vz
c29yX2gKKyNkZWZpbmUgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gKKworI2lmIEVOQUJM
RShJTlNQRUNUT1IpCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEluc3BlY3RvckNsaWVudDsKK2NsYXNzIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ7CitjbGFzcyBUcmFjZUV2ZW50QXJndW1lbnRzOworCitjbGFzcyBUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3IgeworcHVibGljOgorICAgIC8vIEZJWE1FOiByZS11c2UgZGVm
aW5pdGlvbnMgaW4gVHJhY2VFdmVudC5oIG9uY2UgaXQncyBwcm9tb3RlZCB0byBhbGwgcGxhdGZv
cm1zLgorICAgIGVudW0gVHJhY2VFdmVudFBoYXNlIHsKKyAgICAgICAgVHJhY2VQaGFzZUJlZ2lu
ID0gJ0InLAorICAgICAgICBUcmFjZVBoYXNlRW5kID0gJ0UnLAorICAgICAgICBUcmFjZVBoYXNl
SW5zdGFudCA9ICdJJworICAgIH07CisKKyAgICBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3Io
SW5zcGVjdG9yVGltZWxpbmVBZ2VudCosIEluc3BlY3RvckNsaWVudCopOworICAgIH5UaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3IoKTsKKworICAgIHZvaWQgcHJvY2Vzc0V2ZW50KFRyYWNlRXZl
bnRQaGFzZSwgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAorICAgICAg
ICBpbnQgbnVtQXJncywgY29uc3QgY2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNpZ25l
ZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMsCisg
ICAgICAgIHVuc2lnbmVkIGNoYXIgZmxhZ3MpOworICAgIAorcHJpdmF0ZToKKyAgICB0eXBlZGVm
IHZvaWQgKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6KlRyYWNlRXZlbnRIYW5kbGVyKShj
b25zdCBjaGFyKiBuYW1lLCBUcmFjZUV2ZW50UGhhc2UsIGNvbnN0IFRyYWNlRXZlbnRBcmd1bWVu
dHMmKTsKKworICAgIHN0cnVjdCBFdmVudFR5cGVFbnRyeSB7CisgICAgICAgIEV2ZW50VHlwZUVu
dHJ5KCkKKyAgICAgICAgICAgIDogbV9iZWdpbigwKQorICAgICAgICAgICAgLCBtX2VuZCgwKQor
ICAgICAgICAgICAgLCBtX2luc3RhbnQoMCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAg
IGV4cGxpY2l0IEV2ZW50VHlwZUVudHJ5KFRyYWNlRXZlbnRIYW5kbGVyIGluc3RhbnQpCisgICAg
ICAgICAgICA6IG1fYmVnaW4oMCkKKyAgICAgICAgICAgICwgbV9lbmQoMCkKKyAgICAgICAgICAg
ICwgbV9pbnN0YW50KGluc3RhbnQpCisgICAgICAgIHsKKyAgICAgICAgfTsKKyAgICAgICAgRXZl
bnRUeXBlRW50cnkoVHJhY2VFdmVudEhhbmRsZXIgYmVnaW4sIFRyYWNlRXZlbnRIYW5kbGVyIGVu
ZCkKKyAgICAgICAgICAgIDogbV9iZWdpbihiZWdpbikKKyAgICAgICAgICAgICwgbV9lbmQoZW5k
KQorICAgICAgICAgICAgLCBtX2luc3RhbnQoMCkKKyAgICAgICAgeworICAgICAgICB9OworCisg
ICAgICAgIFRyYWNlRXZlbnRIYW5kbGVyIG1fYmVnaW47CisgICAgICAgIFRyYWNlRXZlbnRIYW5k
bGVyIG1fZW5kOworICAgICAgICBUcmFjZUV2ZW50SGFuZGxlciBtX2luc3RhbnQ7CisgICAgfTsK
KworICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIG1fdGltZWxpbmVBZ2VudDsKKyAgICBJbnNw
ZWN0b3JDbGllbnQqIG1faW5zcGVjdG9yQ2xpZW50OworCisgICAgSGFzaE1hcDxTdHJpbmcsIEV2
ZW50VHlwZUVudHJ5PiBtX2hhbmRsZXJzQnlUeXBlOworfTsKKworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQorI2VuZGlmIC8vICFkZWZpbmVk
KFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcl9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oCmluZGV4IGJlYjNlODMy
Zjk3NDgyNzVmNGJlYmNhMDVjZjQxZWE3Njc0OTA3MGEuLmE1MTNjOTM2ODJmNDZiYjhkZmJlNWRj
MzIyYTYzNGI1NjQ5MjdlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xpZW50LmgKQEAgLTc3LDYgKzc3LDEyIEBAIHB1Ymxp
YzoKICAgICB9OwogICAgIHZpcnR1YWwgdm9pZCBkdW1wVW5jb3VudGVkQWxsb2NhdGVkT2JqZWN0
cyhjb25zdCBJbnN0cnVtZW50ZWRPYmplY3RTaXplUHJvdmlkZXIqKSB7IH0KIAorICAgIHR5cGVk
ZWYgdm9pZCAoKlRyYWNlRXZlbnRDYWxsYmFjaykoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQg
Y2hhciosIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAg
aW50IG51bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQg
Y2hhciogYXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAg
ICAgICB1bnNpZ25lZCBjaGFyIGZsYWdzKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFjZUV2
ZW50Q2FsbGJhY2soVHJhY2VFdmVudENhbGxiYWNrKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5X
ZWJEZXZUb29sc0FnZW50Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcAppbmRleCBiYWI1ODE2YmZkNjkwOGVm
YTBmOGMxNjlmMGM4MDFhMjRjODc5MjQ2Li5mYmNjY2Q3ZTFmOGY2NmMyYWUwYzJlNWIyMmU4YTY3
ODE5ZDY2ODMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0
b3JDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0
b3JDbGllbnRJbXBsLmNwcApAQCAtMTk2LDYgKzE5NiwxMiBAQCBib29sIEluc3BlY3RvckNsaWVu
dEltcGw6OmNhcHR1cmVTY3JlZW5zaG90KFN0cmluZyogZGF0YSkKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ2xpZW50SW1wbDo6c2V0VHJhY2VFdmVudENhbGxiYWNrKFRy
YWNlRXZlbnRDYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBpZiAoV2ViRGV2VG9vbHNBZ2VudElt
cGwqIGFnZW50ID0gZGV2VG9vbHNBZ2VudCgpKQorICAgICAgICBhZ2VudC0+c2V0VHJhY2VFdmVu
dENhbGxiYWNrKGNhbGxiYWNrKTsKK30KKwogV2ViRGV2VG9vbHNBZ2VudEltcGwqIEluc3BlY3Rv
ckNsaWVudEltcGw6OmRldlRvb2xzQWdlbnQoKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxX
ZWJEZXZUb29sc0FnZW50SW1wbCo+KG1faW5zcGVjdGVkV2ViVmlldy0+ZGV2VG9vbHNBZ2VudCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVu
dEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwu
aAppbmRleCAyMDMzZTNmNjkwOThiYjA5NmQwNTAwZjk1MTFjMDRmYTJkZmQ3NzQ5Li45NGEzN2Y2
ZDM5OGZmOGI2NDAxMDMyYzczYjdhNGU0NzQ4YzRjZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oCkBAIC04NSw2ICs4NSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMoY29u
c3QgSGFzaE1hcDxjb25zdCB2b2lkKiwgc2l6ZV90PiYpOwogCiAgICAgdmlydHVhbCBib29sIGNh
cHR1cmVTY3JlZW5zaG90KFdURjo6U3RyaW5nKiBkYXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VHJhY2VFdmVudENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjayk7CiAKIHByaXZhdGU6CiAgICAg
V2ViRGV2VG9vbHNBZ2VudEltcGwqIGRldlRvb2xzQWdlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCBiNThjZjYx
YjRkMDA1ZjIyZWRhMjljMmM3YmE1YzU1MjRjMzFlMTM1Li44M2E3NzA5OTNiZGI1MjdmMGJkOTYy
N2ZlMmY3Yjk5ZTQ0YjkyYmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC01ODAsNiArNTgwLDExIEBAIGJvb2wgV2Vi
RGV2VG9vbHNBZ2VudEltcGw6OmNhcHR1cmVTY3JlZW5zaG90KFdURjo6U3RyaW5nKiBkYXRhKQog
ICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpzZXRUcmFj
ZUV2ZW50Q2FsbGJhY2soVHJhY2VFdmVudENhbGxiYWNrIGNhbGxiYWNrKQoreworICAgIG1fY2xp
ZW50LT5zZXRUcmFjZUV2ZW50Q2FsbGJhY2soY2FsbGJhY2spOworfQorCiB2b2lkIFdlYkRldlRv
b2xzQWdlbnRJbXBsOjpkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcm
IG1lc3NhZ2UpCiB7CiAgICAgaW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNwYXRjaE1lc3NhZ2VG
cm9tRnJvbnRlbmQobWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRGV2VG9vbHNBZ2VudEltcGwuaAppbmRleCBlMGYyYjE0YWJiNTcyYmIzMzhhYTQ1ZWIzYmMy
YzhhNGY4MzY5YTFiLi5iZmQ3YjcwOTQ3NDQ3YzVjOGIyNjhmYTJmOTUxMjJiZjQ3NjE4YzNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmgKQEAgLTEwOSw2ICsxMDksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0QWxs
b2NhdGVkT2JqZWN0cyhIYXNoU2V0PGNvbnN0IHZvaWQqPiYpOwogICAgIHZpcnR1YWwgdm9pZCBk
dW1wVW5jb3VudGVkQWxsb2NhdGVkT2JqZWN0cyhjb25zdCBIYXNoTWFwPGNvbnN0IHZvaWQqLCBz
aXplX3Q+Jik7CisgICAgdmlydHVhbCB2b2lkIHNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2
ZW50Q2FsbGJhY2spOwogCiAgICAgdmlydHVhbCBib29sIGNhcHR1cmVTY3JlZW5zaG90KFdURjo6
U3RyaW5nKiBkYXRhKTsKIAo=
</data>
<flag name="commit-queue"
          id="198300"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180922</attachid>
            <date>2012-12-29 00:48:50 -0800</date>
            <delta_ts>2012-12-29 04:13:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105796-20121229124559.patch</filename>
            <type>text/plain</type>
            <size>31358</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTI1YjA2YmE0MzE1YWNi
NjYzZmNmNjQ5ODI3OTdlMDRlYjFkNWZiMC4uOTA5N2YxYWY2Yjg2ZWU4YWZhMzc5ODI2ZTVlODM5
NzQ1YmVkODAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTEyLTI4ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGV4cG9zZXMgYSBjYWxsYmFjayB0
byBlbWJlZGRlciB0byBhbGxvdyBmZWVkaW5nIG9mIHRyYWNlIGV2ZW50cyB0byBUaW1lbGluZSBh
Z2VudC4KKyAgICAgICAgU29tZSBldmVudHMgd2lsbCBiZSBzcGVjaWFsbHkgcHJvY2Vzc2VkIHRv
IGV4dHJhY3QgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGJlIHByZXNlbnRlZAorICAgICAgICBvbiB0
aW1lbGluZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRlZCBUaW1lbGluZVRyYWNl
RXZlbnRSZXBvcnRlci57aCxjcHB9CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogZGl0
dG8uCisgICAgICAgICogVGFyZ2V0LnByaTogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBp
OiBkaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogZGl0dG8u
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDogZGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oOgorICAgICAgICAoSW5zcGVjdG9yQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6c2V0VHJhY2VFdmVudENh
bGxiYWNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydCk6IEVuYWJs
ZSB0cmFjZSBldmVudHMgY29sbGVjdGlvbiBvbiBzdGFydC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3ApOiBEaXNhYmxlIHRyYWNlIGV2ZW50cyBjb2xsZWN0
aW9uIG9uIHN0b3AuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1Rp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHA6IEFkZGVkLgorICAgICAgICAoVHJhY2VFdmVu
dEFyZ3VtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJndW1lbnRzOjpUcmFj
ZUV2ZW50QXJndW1lbnRzKTogQSBoZWxwZXIgdG8gZXh0cmFjdCBhcmd1bWVudHMgZnJvbSB0cmFj
ZSBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRyYWNlRXZlbnRBcmd1bWVudHM6OnNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhY2VFdmVudEFyZ3VtZW50czo6YXNCb29sKToKKyAgICAgICAg
KFdlYkNvcmU6OlRyYWNlRXZlbnRBcmd1bWVudHM6OmFzSW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlRyYWNlRXZlbnRBcmd1bWVudHM6OmFzVUludCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2
ZW50QXJndW1lbnRzOjphc0RvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJn
dW1lbnRzOjphc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJndW1lbnRz
OjpwYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6On5UaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yOjpwcm9jZXNzRXZlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3I6OkV2ZW50VHlwZUVudHJ5OjpFdmVudFR5cGVFbnRyeSk6Cisg
ICAgICAgIChFdmVudFR5cGVFbnRyeSk6CisKIDIwMTItMTItMjggIFJhZmFlbCBXZWluc3RlaW4g
IDxyYWZhZWx3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBIZWFwLXVzZS1hZnRlci1mcmVlIGlu
IFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjptZXJnZUF0dHJpYnV0ZXNGcm9tVG9rZW5J
bnRvRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBjMjdlZjhiZmNlYmVkZjE4
MWJmZTYwZTI1ZTVjODA3M2I2Mzk5ZjEwLi4zNzQ1NGE2YWNjNzJkYzk5MjZkNzM5ZmYwN2M0MmZi
ZjM4OTllNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisy
MDEyLTEyLTI4ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIFBsdW1iIGVu
YWJsaW5nIG9mIHRyYWNlIGV2ZW50cyB0byBlbWJlZGRlcgorICAgICAgICAgIChhZGRlZCBzZXRU
cmFjZUV2ZW50Q2FsbGJhY2sgdG8gSW5zcGVjdG9yQ2xpZW50IC4uIFdlYkRldlRvb2xzQWdlbnRD
bGllbnQpCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oOgorICAg
ICAgICAoV2ViRGV2VG9vbHNBZ2VudENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRv
b2xzQWdlbnRDbGllbnQ6OnNldFRyYWNlRXZlbnRDYWxsYmFjayk6CisgICAgICAgICogc3JjL0lu
c3BlY3RvckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnRJ
bXBsOjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoSW5zcGVjdG9yQ2xpZW50SW1w
bCk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OnNldFRyYWNlRXZlbnRDYWxsYmFjayk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oOgorICAg
ICAgICAoV2ViRGV2VG9vbHNBZ2VudEltcGwpOgorCiAyMDEyLTEyLTI2ICBOaWNvIFdlYmVyICA8
dGhha2lzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIERpc2FibGUgdW5wcmVm
aXhlZCBjc3MgdHJhbnNpdGlvbnMgdW50aWwgdGhleSdyZSBmdW5jdGlvbmFsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQ5NDNmZTY2ZTI3YzFlYzlmZjgyMGZlMDNiYTNkNmZlNWQzYjUwNmUuLjFh
MTUwY2I2MjA5Mjg1MGE4ZTg0YjhiMWMwZTQzYzI1MmJhZWE3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xNjMzLDYgKzE2MzMsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVj
dG9yL1NjcmlwdENhbGxGcmFtZS5jcHAKICAgICBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmNw
cAogICAgIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCisgICAgaW5zcGVjdG9y
L1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKICAgICBpbnNwZWN0b3IvV29ya2VyQ29u
c29sZUFnZW50LmNwcAogICAgIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAogICAg
IGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggZTBjOTAzNWEyY2M2MWZmOTQwNTI0OTBlZmNiNThlMWEzMDgwNjkz
Zi4uMTAzZGJhYzVjZWJjZWNiODkwMDE5ODJiN2M4ZWIxZWQyNWFlYjE4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODE2LDYgKzM4MTYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRHQ0V2ZW50TGlzdGVuZXIuaCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaCBcCisJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBcCiAJU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4
IGIyNDA2ODcwZWQyMDExNTgzNjlmZDIxZWFiZWI5NzRkZjQxNmI1MDMuLjA1NzAzZjU5MDExMDFk
MjlhNDQ3OGVkY2JhYTc2MTk1NmUwZWYyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNzk2LDYgKzc5Niw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsRnJhbWUuY3BwIFwKICAg
ICBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmNwcCBcCiAgICAgaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5jcHAgXAorICAgIGluc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuY3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCBcCiAgICAg
aW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDczOWJjMGJjOTQy
YmViNDZiNDhkODZkOWYxYTIwMDM3ZGVhOTNmNTUuLjA4NGI2ODIyZjE5Mzg2NDYxNWMxOGMyYzVm
ZWMwZGJiMjQ4NDY2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4ODgsNiArMTg4OCw4IEBACiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5oJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCcsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oJywKKyAgICAgICAgICAgICdpbnNwZWN0
b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCcsCisgICAgICAgICAgICAnaW5zcGVj
dG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oJywKICAgICAgICAgICAgICdpbnNwZWN0
b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL1dvcmtl
ckNvbnNvbGVBZ2VudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJB
Z2VudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agppbmRleCBjMTYzMDhkYmI3ZjNjYTMyNDM4MjVkZjQ5YjQ0MWQ3MWMwZDUxNjRhLi4xNGU1ZDI5
NDNhN2NiMTc1YjNmOGQ2NjQ0NWNhNTM4NDExOGJmMDZjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzYxNzgsNiArNzYxNzgsMzAgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9y
XFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5caW5zcGVjdG9yXFdvcmtlckNvbnNvbGVBZ2VudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGZlNGI5OWFkYzEwYWIxNmI2ZjdkZTkxNDkyMzA5YTExN2RiYTBiODcu
LmZiZGE2OWU1ZTc3Yzg1ZmY3MzEzYmYxYWFkNWIwMGExZTA5MTQzMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNzgsNiAr
MTI3OCw4IEBACiAJCTQ2RjlENURGMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5w
bmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RjlE
NURDMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgKi87IH07CiAJCTQ5MDcw
N0U2MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNDEyMTlDMDQzMDBEOTBF
NTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovOyB9OwogCQk0OTA3MDdFNzEyMTlDMDQzMDBE
OTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktp
dEJyaWRnZS5oICovOyB9OworCQk0OTE0MDI1NjE2OEUwMkU4MDAyRDZDNkEgLyogVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5MTQwMjU0MTY4RTAyQjQwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3IuY3BwICovOyB9OworCQk0OTE0MDI1NzE2OEUwMkVDMDAyRDZDNkEgLyogVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTE0MDI1NTE2OEUwMkI0MDAyRDZDNkEgLyogVGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yLmggKi87IH07CiAJCTQ5MTgyQjUyMTVEQ0U2RjAwMDU0ODQxOCAvKiBQ
bGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTE4MkI1MDE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0
cnVtZW50YXRpb24uY3BwICovOyB9OwogCQk0OTE4MkI1MzE1RENFNkYwMDA1NDg0MTggLyogUGxh
dGZvcm1JbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5MTgyQjUxMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1l
bnRhdGlvbi5oICovOyB9OwogCQk0OTI4NjM5OTEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3VyY2VM
b2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDkyODYzOTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODU0NCw2ICs4NTQ2LDgg
QEAKIAkJNDZGOUQ1REMwQjBENjAxNzAwMjhFRTM2IC8qIHByb2dyZXNzQ3Vyc29yLnBuZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsg
cGF0aCA9IHByb2dyZXNzQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFO
R0xFV2ViS2l0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFOR0xF
V2ViS2l0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5MTQwMjU0MTY4
RTAyQjQwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDkxNDAyNTUxNjhFMDJCNDAwMkQ2
QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDkxODJCNTAxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5z
dHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBs
YXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDkxODJCNTExNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5Mjg2Mzk4MTI1M0I4RkMwMEY3OTJENiAv
KiBSZXNvdXJjZUxvYWRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
c291cmNlTG9hZEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MDIyLDYg
KzE1MDI2LDggQEAKIAkJCQk5RkEzN0VGMDExNzJGRDQxMDBDNENENTUgLyogU2NyaXB0UHJvZmls
ZU5vZGUuaWRsICovLAogCQkJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwICovLAogCQkJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1l
bGluZVJlY29yZEZhY3RvcnkuaCAqLywKKwkJCQk0OTE0MDI1NDE2OEUwMkI0MDAyRDZDNkEgLyog
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCAqLywKKwkJCQk0OTE0MDI1NTE2OEUwMkI0
MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggKi8sCiAJCQkJRjM4MjA4
OEUxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgKi8sCiAJCQkJRjM4
MjA4OEYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5oICovLAogCQkJCUYz
NDc0MkRFMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCAqLywKQEAg
LTI1OTk5LDYgKzI2MDA1LDcgQEAKIAkJCQlFMTNFRjM0NDE2ODRFQ0Y0MDAzNEM4M0YgLyogTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTUwNzE1ODE2ODUwNjcz
MDBDM0M3QjMgLyogU2VsZWN0b3JGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUJDMkRG
MTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0OTE0MDI1NzE2OEUwMkVDMDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI5MTIwLDYgKzI5MTI3LDcgQEAKIAkJCQlFMTNFRjM0OTE2
ODUwQzQ3MDAzNEM4M0YgLyogTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDE1MDcxNTcxNjg1MDY3MzAwQzNDN0IzIC8qIFNlbGVjdG9yRmlsdGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQxOUJDMkRFMTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVk
TGlua1N0YXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5MTQwMjU2MTY4RTAyRTgwMDJENkM2
QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAppbmRleCA5Yzlm
ZjIwODU5YzJkOGNiODU2MzQ3ZDY3YjgxMTMxYTdiYjg5ZWJmLi5iMTEzZGQ5ZWQyZjI2ZDdjZDg0
MjY0ZjEyZDU0NGQ0M2FkMzU0NzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBbGxJbk9uZS5jcHAKQEAgLTgzLDYgKzgzLDcgQEAKICNpbmNsdWRlICJTY3JpcHRD
YWxsRnJhbWUuY3BwIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5jcHAiCiAjaW5jbHVkZSAi
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCIKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3IuY3BwIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVBZ2VudC5jcHAiCiAjaW5jbHVk
ZSAiV29ya2VyRGVidWdnZXJBZ2VudC5jcHAiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgK
aW5kZXggOTQ4ZGYwMjhjYjc2OWEzNDMxYTYxMjFlYmI5ODMwNzNjMGIwNWI5Ny4uNWQ2NTQ2YTlk
MjFiNzg4MjlhNTI0ZDMxMDAyOTEzNTIwZjNjMWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDbGllbnQuaApAQCAtNTksNiArNTksMTEgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBjbGVhckJyb3dzZXJDb29raWVzKCkgeyB9CiAgICAgdmlydHVhbCBib29sIGNh
bk1vbml0b3JNYWluVGhyZWFkKCkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHR5cGVkZWYgdm9p
ZCAoKlRyYWNlRXZlbnRDYWxsYmFjaykoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQgY2hhcios
IGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51
bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciog
YXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1
bnNpZ25lZCBjaGFyIGZsYWdzKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVudENhbGxi
YWNrKFRyYWNlRXZlbnRDYWxsYmFjaykgeyB9CisKICAgICB2aXJ0dWFsIGJvb2wgY2FuT3ZlcnJp
ZGVEZXZpY2VNZXRyaWNzKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBv
dmVycmlkZURldmljZU1ldHJpY3MoaW50IC8qd2lkdGgqLywgaW50IC8qaGVpZ2h0Ki8sIGZsb2F0
IC8qZm9udFNjYWxlRmFjdG9yKi8sIGJvb2wgLypmaXRXaW5kb3cqLykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBhYzdh
ZGNiMGFhMzU2ZmU3NzBjZGZmYzMwMzk2OTI1NjY1NzhhMjU3Li5mYjllOTRjYzUxY2Y1MTNiMmFj
NzM5OTVlMzdiYzQwYjk3NWZjZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJU
aW1lbGluZVJlY29yZEZhY3RvcnkuaCIKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuaCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCkBAIC0xNzEsNiArMTcy
LDggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydChFcnJvclN0cmluZyosIGNv
bnN0IGludCogbWF4Q2FsbFN0YWNrRGVwdGgpCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5z
ZXRJbnNwZWN0b3JUaW1lbGluZUFnZW50KHRoaXMpOwogICAgIFNjcmlwdEdDRXZlbnQ6OmFkZEV2
ZW50TGlzdGVuZXIodGhpcyk7CiAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihUaW1lbGluZUFnZW50
U3RhdGU6OnRpbWVsaW5lQWdlbnRFbmFibGVkLCB0cnVlKTsKKyAgICBpZiAobV9jbGllbnQpCisg
ICAgICAgIG1fdHJhY2VFdmVudFByb2Nlc3NvciA9IGFkb3B0UHRyKG5ldyBUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3IodGhpcywgbV9jbGllbnQpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpzdG9wKEVycm9yU3RyaW5nKikKQEAgLTE3OCw2ICsxODEsNyBAQCB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3AoRXJyb3JTdHJpbmcqKQogICAgIGlmICghbV9zdGF0
ZS0+Z2V0Qm9vbGVhbihUaW1lbGluZUFnZW50U3RhdGU6OnRpbWVsaW5lQWdlbnRFbmFibGVkKSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgbV90cmFjZUV2ZW50UHJvY2Vzc29yLmNsZWFyKCk7CiAg
ICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JUaW1lbGluZUFnZW50KDApOwog
ICAgIFNjcmlwdEdDRXZlbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IGU3
MDYyYTExODE4OGZhY2RkNTQzNGExMjExZDNjN2ZjNWYwNmU5NjYuLmIzYmQwMDgwZjhlY2NmZjM5
YzA2ZWRkYTY3NzA1YzlkMjcyOGEwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNTUsNiArNTUsNyBAQCBjbGFzcyBJbnRS
ZWN0OwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3Mg
UmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcjsKIAog
dHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKQEAgLTE2Niw2ICsxNjcsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc2l6ZUltYWdlKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcjsKKwogICAgIHN0
cnVjdCBUaW1lbGluZVJlY29yZEVudHJ5IHsKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gZGF0YSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW4sIGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBzaXplX3QgdXNlZEhlYXBTaXplQXRT
dGFydCkKICAgICAgICAgICAgIDogcmVjb3JkKHJlY29yZCksIGRhdGEoZGF0YSksIGNoaWxkcmVu
KGNoaWxkcmVuKSwgdHlwZSh0eXBlKSwgZnJhbWVJZChmcmFtZUlkKSwgdXNlZEhlYXBTaXplQXRT
dGFydCh1c2VkSGVhcFNpemVBdFN0YXJ0KQpAQCAtMjIwLDYgKzIyMyw3IEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbV9wZW5kaW5nRnJhbWVSZWNvcmQ7CiAgICAgSW5z
cGVjdG9yVHlwZSBtX2luc3BlY3RvclR5cGU7CiAgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2NsaWVu
dDsKKyAgICBPd25QdHI8VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yPiBtX3RyYWNlRXZlbnRQ
cm9jZXNzb3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM3OWU1Yzc0OGQzNDJkM2E4MGUwODIzMTgxYzQyNDE2ZWJjMmEyNmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yLmNwcApAQCAtMCwwICsxLDIxOSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisqIG1ldDoKKyoKKyogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorKiBkaXN0cmlidXRpb24uCisqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1
ZGUgIlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIgorCisjaW5jbHVkZSAiSW5zcGVjdG9y
Q2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgorCisjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgVHJhY2VFdmVudERpc3BhdGNoZXIg
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNlRXZlbnREaXNwYXRjaGVyKTsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgVHJhY2VFdmVudERpc3BhdGNoZXIqIGluc3RhbmNlKCkKKyAgICB7Cisg
ICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoVHJhY2VFdmVudERpc3BhdGNoZXIsIGluc3RhbmNl
LCAoKSk7CisgICAgICAgIHJldHVybiAmaW5zdGFuY2U7CisgICAgfQorICAgIAorICAgIHZvaWQg
YWRkUHJvY2Vzc29yKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvciogcHJvY2Vzc29yLCBJbnNw
ZWN0b3JDbGllbnQqIGNsaWVudCkKKyAgICB7CisgICAgICAgIG1fcHJvY2Vzc29ycy5hcHBlbmQo
cHJvY2Vzc29yKTsKKyAgICAgICAgaWYgKG1fcHJvY2Vzc29ycy5zaXplKCkgPT0gMSkKKyAgICAg
ICAgICAgIGNsaWVudC0+c2V0VHJhY2VFdmVudENhbGxiYWNrKGRpc3BhdGNoRXZlbnQpOworICAg
IH0KKworICAgIHZvaWQgcmVtb3ZlUHJvY2Vzc29yKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nv
ciogcHJvY2Vzc29yLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKKyAgICB7CisgICAgICAgIHNp
emVfdCBpbmRleCA9IG1fcHJvY2Vzc29ycy5maW5kKHByb2Nlc3Nvcik7CisgICAgICAgIGlmIChp
bmRleCA9PSBub3RGb3VuZCkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9wcm9jZXNzb3JzW2luZGV4
XSA9IG1fcHJvY2Vzc29ycy5sYXN0KCk7CisgICAgICAgIG1fcHJvY2Vzc29ycy5yZW1vdmVMYXN0
KCk7CisgICAgICAgIGlmIChtX3Byb2Nlc3NvcnMuaXNFbXB0eSgpKQorICAgICAgICAgICAgY2xp
ZW50LT5zZXRUcmFjZUV2ZW50Q2FsbGJhY2soMCk7CisgICAgfQorCitwcml2YXRlOgorICAgIFRy
YWNlRXZlbnREaXNwYXRjaGVyKCkgeyB9CisKKyAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaEV2ZW50
KGNoYXIgcGhhc2UsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNp
Z25lZCBsb25nIGxvbmcgaWQsCisgICAgICAgIGludCBudW1BcmdzLCBjb25zdCBjaGFyKiBjb25z
dCogYXJnTmFtZXMsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ1R5cGVzLCBjb25zdCB1bnNpZ25l
ZCBsb25nIGxvbmcqIGFyZ1ZhbHVlcywKKyAgICAgICAgdW5zaWduZWQgY2hhciBmbGFncykKKyAg
ICB7CisgICAgICAgIGlmICghaXNNYWluVGhyZWFkKCkpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgVmVjdG9yPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcio+JiBwcm9jZXNzb3Jz
ID0gaW5zdGFuY2UoKS0+bV9wcm9jZXNzb3JzOworICAgICAgICBmb3IgKGludCBpID0gMCwgc2l6
ZSA9IHByb2Nlc3NvcnMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICBwcm9j
ZXNzb3JzW2ldLT5wcm9jZXNzRXZlbnQoc3RhdGljX2Nhc3Q8VGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yOjpUcmFjZUV2ZW50UGhhc2U+KHBoYXNlKSwKKyAgICAgICAgICAgICAgICBuYW1lLCBp
ZCwgbnVtQXJncywgYXJnTmFtZXMsIGFyZ1R5cGVzLCBhcmdWYWx1ZXMsIGZsYWdzKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIFZlY3RvcjxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IqPiBt
X3Byb2Nlc3NvcnM7Cit9OworCit9IC8vIG5hbWVzcGNlCisKK2NsYXNzIFRyYWNlRXZlbnRBcmd1
bWVudHMgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNlRXZlbnRBcmd1bWVudHMpOwor
cHVibGljOgorICAgIFRyYWNlRXZlbnRBcmd1bWVudHMoaW50IG51bUFyZ3VtZW50cywgY29uc3Qg
Y2hhciogY29uc3QqIGFyZ3VtZW50TmFtZXMsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ3VtZW50
VHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJndW1lbnRWYWx1ZXMpCisgICAgICAg
IDogbV9zaXplKG51bUFyZ3VtZW50cykKKyAgICAgICAgLCBtX2FyZ3VtZW50TmFtZXMoYXJndW1l
bnROYW1lcykKKyAgICAgICAgLCBtX2FyZ3VtZW50VHlwZXMoYXJndW1lbnRUeXBlcykKKyAgICAg
ICAgLCBtX2FyZ3VtZW50VmFsdWVzKGFyZ3VtZW50VmFsdWVzKQorICAgIHsKKyAgICB9CisKKyAg
ICBpbnQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCisgICAgYm9vbCBhc0Jvb2wo
Y29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAgICB7IAorICAgICAgICByZXR1cm4gcGFyYW1ldGVy
KG5hbWUsIFR5cGVCb29sKS5tX2Jvb2w7CisgICAgfQorICAgIGxvbmcgbG9uZyBhc0ludChjb25z
dCBjaGFyKiBuYW1lKSBjb25zdAorICAgIHsgCisgICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFt
ZSwgVHlwZUludCkubV9pbnQ7CisgICAgfQorICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhc1VJbnQo
Y29uc3QgY2hhciogbmFtZSkgY29uc3QgCisgICAgeyAKKyAgICAgICAgcmV0dXJuIHBhcmFtZXRl
cihuYW1lLCBUeXBlVUludCkubV91aW50OworICAgIH0KKyAgICBkb3VibGUgYXNEb3VibGUoY29u
c3QgY2hhciogbmFtZSkgY29uc3QKKyAgICB7IAorICAgICAgICByZXR1cm4gcGFyYW1ldGVyKG5h
bWUsIFR5cGVEb3VibGUpLm1fZG91YmxlOworICAgIH0KKyAgICBjb25zdCBjaGFyKiBhc1N0cmlu
Zyhjb25zdCBjaGFyKiBuYW1lKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtZXRl
cihuYW1lLCBUeXBlU3RyaW5nKS5tX3N0cmluZzsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8g
RklYTUU6IHVzZSB0aGUgZGVmaW5pdGlvbiBpbiBUcmFjZUV2ZW50Lmggb25jZSB3ZSBleHBvc2Ug
dGhlIGxhdHRlciB0byBhbGwgcGxhZm9ybXMuCisgICAgdW5pb24gVHJhY2VWYWx1ZVVuaW9uIHsK
KyAgICAgICAgYm9vbCBtX2Jvb2w7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3VpbnQ7
CisgICAgICAgIGxvbmcgbG9uZyBtX2ludDsKKyAgICAgICAgZG91YmxlIG1fZG91YmxlOworICAg
ICAgICBjb25zdCB2b2lkKiBtX3BvaW50ZXI7CisgICAgICAgIGNvbnN0IGNoYXIqIG1fc3RyaW5n
OworICAgIH07CisKKyAgICBlbnVtIFRyYWNlVmFsdWVUeXBlcyB7CisgICAgICAgIFR5cGVCb29s
ID0gMSwKKyAgICAgICAgVHlwZVVJbnQgPSAyLAorICAgICAgICBUeXBlSW50ID0gMywKKyAgICAg
ICAgVHlwZURvdWJsZSA9IDQsCisgICAgICAgIFR5cGVQb2ludGVyID0gNSwKKyAgICAgICAgVHlw
ZVN0cmluZyA9IDYsCisgICAgICAgIFR5cGVDb3B5U3RyaW5nID0gNworICAgIH07CisKKyAgICBj
b25zdCBUcmFjZVZhbHVlVW5pb24mIHBhcmFtZXRlcihjb25zdCBjaGFyKiBuYW1lLCBUcmFjZVZh
bHVlVHlwZXMgZXhwZWN0ZWRUeXBlKSBjb25zdAorICAgIHsKKyAgICAgICAgc3RhdGljIFRyYWNl
VmFsdWVVbmlvbiBtaXNzaW5nVmFsdWU7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBt
X3NpemU7ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjbXAobmFtZSwgbV9hcmd1bWVudE5h
bWVzW2ldKSkgeworICAgICAgICAgICAgICAgIGlmIChtX2FyZ3VtZW50VHlwZXNbaV0gIT0gZXhw
ZWN0ZWRUeXBlKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWlzc2luZ1ZhbHVlOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVHJhY2VW
YWx1ZVVuaW9uKj4obV9hcmd1bWVudFZhbHVlcyArIGkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gbWlzc2lu
Z1ZhbHVlOworICAgIH0KKworICAgIGludCBtX3NpemU7CisgICAgY29uc3QgY2hhciogY29uc3Qq
IG1fYXJndW1lbnROYW1lczsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBtX2FyZ3VtZW50VHlw
ZXM7CisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBtX2FyZ3VtZW50VmFsdWVzOworfTsK
KworVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNz
b3IoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCwgSW5zcGVjdG9yQ2xpZW50
ICpjbGllbnQpCisgICAgOiBtX3RpbWVsaW5lQWdlbnQodGltZWxpbmVBZ2VudCkKKyAgICAsIG1f
aW5zcGVjdG9yQ2xpZW50KGNsaWVudCkKK3sKKyAgICBUcmFjZUV2ZW50RGlzcGF0Y2hlcjo6aW5z
dGFuY2UoKS0+YWRkUHJvY2Vzc29yKHRoaXMsIG1faW5zcGVjdG9yQ2xpZW50KTsKK30KKworVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjp+VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKCkK
K3sKKyAgICBUcmFjZUV2ZW50RGlzcGF0Y2hlcjo6aW5zdGFuY2UoKS0+cmVtb3ZlUHJvY2Vzc29y
KHRoaXMsIG1faW5zcGVjdG9yQ2xpZW50KTsKK30KKwordm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3I6OnByb2Nlc3NFdmVudChUcmFjZUV2ZW50UGhhc2UgcGhhc2UsIGNvbnN0IGNoYXIq
IG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZywKKyAgICBpbnQgbnVtQXJncywgY29uc3QgY2hhciog
Y29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5z
aWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMsCisgICAgdW5zaWduZWQgY2hhcikKK3sKKyAgICBI
YXNoTWFwPFN0cmluZywgRXZlbnRUeXBlRW50cnk+OjppdGVyYXRvciBpdCA9IG1faGFuZGxlcnNC
eVR5cGUuZmluZChuYW1lKTsKKyAgICBpZiAoaXQgPT0gbV9oYW5kbGVyc0J5VHlwZS5lbmQoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIFRyYWNlRXZlbnRIYW5kbGVyIGhhbmRsZXIgPSAwOworICAg
IHN3aXRjaCAocGhhc2UpIHsKKyAgICBjYXNlIFRyYWNlUGhhc2VCZWdpbjoKKyAgICAgICAgaGFu
ZGxlciA9IGl0LT52YWx1ZS5tX2JlZ2luOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRyYWNl
UGhhc2VFbmQ6CisgICAgICAgIGhhbmRsZXIgPSBpdC0+dmFsdWUubV9lbmQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgVHJhY2VQaGFzZUluc3RhbnQ6CisgICAgICAgIGhhbmRsZXIgPSBpdC0+
dmFsdWUubV9pbnN0YW50OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgaWYgKCFoYW5kbGVyKSB7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFRyYWNl
RXZlbnRBcmd1bWVudHMgYXJndW1lbnRzKG51bUFyZ3MsIGFyZ05hbWVzLCBhcmdUeXBlcywgYXJn
VmFsdWVzKTsKKyAgICAodGhpcy0+KmhhbmRsZXIpKG5hbWUsIHBoYXNlLCBhcmd1bWVudHMpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9S
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVu
dFByb2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVu
dFByb2Nlc3Nvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiYWI1MWM3NGY2MTdhZjBkMTVkNTgxODM4MjY4NWFk
YWVmN2E3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorKiBtZXQ6CisqCisqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyogZGlzdHJpYnV0aW9uLgorKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyovCisKKyNpZm5kZWYgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gKKyNk
ZWZpbmUgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gKKworI2lmIEVOQUJMRShJTlNQRUNU
T1IpCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEluc3BlY3RvckNsaWVudDsKK2NsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ7CitjbGFzcyBUcmFjZUV2ZW50QXJndW1lbnRzOworCitjbGFzcyBUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3IgeworcHVibGljOgorICAgIC8vIEZJWE1FOiByZS11c2UgZGVmaW5pdGlvbnMg
aW4gVHJhY2VFdmVudC5oIG9uY2UgaXQncyBwcm9tb3RlZCB0byBhbGwgcGxhdGZvcm1zLgorICAg
IGVudW0gVHJhY2VFdmVudFBoYXNlIHsKKyAgICAgICAgVHJhY2VQaGFzZUJlZ2luID0gJ0InLAor
ICAgICAgICBUcmFjZVBoYXNlRW5kID0gJ0UnLAorICAgICAgICBUcmFjZVBoYXNlSW5zdGFudCA9
ICdJJworICAgIH07CisKKyAgICBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IoSW5zcGVjdG9y
VGltZWxpbmVBZ2VudCosIEluc3BlY3RvckNsaWVudCopOworICAgIH5UaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3IoKTsKKworICAgIHZvaWQgcHJvY2Vzc0V2ZW50KFRyYWNlRXZlbnRQaGFzZSwg
Y29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAorICAgICAgICBpbnQgbnVt
QXJncywgY29uc3QgY2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBh
cmdUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMsCisgICAgICAgIHVu
c2lnbmVkIGNoYXIgZmxhZ3MpOworICAgIAorcHJpdmF0ZToKKyAgICB0eXBlZGVmIHZvaWQgKFRp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6KlRyYWNlRXZlbnRIYW5kbGVyKShjb25zdCBjaGFy
KiBuYW1lLCBUcmFjZUV2ZW50UGhhc2UsIGNvbnN0IFRyYWNlRXZlbnRBcmd1bWVudHMmKTsKKwor
ICAgIHN0cnVjdCBFdmVudFR5cGVFbnRyeSB7CisgICAgICAgIEV2ZW50VHlwZUVudHJ5KCkKKyAg
ICAgICAgICAgIDogbV9iZWdpbigwKQorICAgICAgICAgICAgLCBtX2VuZCgwKQorICAgICAgICAg
ICAgLCBtX2luc3RhbnQoMCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIGV4cGxpY2l0
IEV2ZW50VHlwZUVudHJ5KFRyYWNlRXZlbnRIYW5kbGVyIGluc3RhbnQpCisgICAgICAgICAgICA6
IG1fYmVnaW4oMCkKKyAgICAgICAgICAgICwgbV9lbmQoMCkKKyAgICAgICAgICAgICwgbV9pbnN0
YW50KGluc3RhbnQpCisgICAgICAgIHsKKyAgICAgICAgfTsKKyAgICAgICAgRXZlbnRUeXBlRW50
cnkoVHJhY2VFdmVudEhhbmRsZXIgYmVnaW4sIFRyYWNlRXZlbnRIYW5kbGVyIGVuZCkKKyAgICAg
ICAgICAgIDogbV9iZWdpbihiZWdpbikKKyAgICAgICAgICAgICwgbV9lbmQoZW5kKQorICAgICAg
ICAgICAgLCBtX2luc3RhbnQoMCkKKyAgICAgICAgeworICAgICAgICB9OworCisgICAgICAgIFRy
YWNlRXZlbnRIYW5kbGVyIG1fYmVnaW47CisgICAgICAgIFRyYWNlRXZlbnRIYW5kbGVyIG1fZW5k
OworICAgICAgICBUcmFjZUV2ZW50SGFuZGxlciBtX2luc3RhbnQ7CisgICAgfTsKKworICAgIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQqIG1fdGltZWxpbmVBZ2VudDsKKyAgICBJbnNwZWN0b3JDbGll
bnQqIG1faW5zcGVjdG9yQ2xpZW50OworCisgICAgSGFzaE1hcDxTdHJpbmcsIEV2ZW50VHlwZUVu
dHJ5PiBtX2hhbmRsZXJzQnlUeXBlOworfTsKKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQorI2VuZGlmIC8vICFkZWZpbmVkKFRpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvcl9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oCmluZGV4IGJlYjNlODMyZjk3NDgyNzVm
NGJlYmNhMDVjZjQxZWE3Njc0OTA3MGEuLmE1MTNjOTM2ODJmNDZiYjhkZmJlNWRjMzIyYTYzNGI1
NjQ5MjdlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRl
dlRvb2xzQWdlbnRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJEZXZUb29sc0FnZW50Q2xpZW50LmgKQEAgLTc3LDYgKzc3LDEyIEBAIHB1YmxpYzoKICAgICB9
OwogICAgIHZpcnR1YWwgdm9pZCBkdW1wVW5jb3VudGVkQWxsb2NhdGVkT2JqZWN0cyhjb25zdCBJ
bnN0cnVtZW50ZWRPYmplY3RTaXplUHJvdmlkZXIqKSB7IH0KIAorICAgIHR5cGVkZWYgdm9pZCAo
KlRyYWNlRXZlbnRDYWxsYmFjaykoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQgY2hhciosIGNv
bnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51bUFy
Z3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJn
VHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1bnNp
Z25lZCBjaGFyIGZsYWdzKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFjZUV2ZW50Q2FsbGJh
Y2soVHJhY2VFdmVudENhbGxiYWNrKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJEZXZUb29s
c0FnZW50Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcAppbmRleCBiYWI1ODE2YmZkNjkwOGVmYTBmOGMxNjlm
MGM4MDFhMjRjODc5MjQ2Li5mYmNjY2Q3ZTFmOGY2NmMyYWUwYzJlNWIyMmU4YTY3ODE5ZDY2ODMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJ
bXBsLmNwcApAQCAtMTk2LDYgKzE5NiwxMiBAQCBib29sIEluc3BlY3RvckNsaWVudEltcGw6OmNh
cHR1cmVTY3JlZW5zaG90KFN0cmluZyogZGF0YSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3Zv
aWQgSW5zcGVjdG9yQ2xpZW50SW1wbDo6c2V0VHJhY2VFdmVudENhbGxiYWNrKFRyYWNlRXZlbnRD
YWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBpZiAoV2ViRGV2VG9vbHNBZ2VudEltcGwqIGFnZW50
ID0gZGV2VG9vbHNBZ2VudCgpKQorICAgICAgICBhZ2VudC0+c2V0VHJhY2VFdmVudENhbGxiYWNr
KGNhbGxiYWNrKTsKK30KKwogV2ViRGV2VG9vbHNBZ2VudEltcGwqIEluc3BlY3RvckNsaWVudElt
cGw6OmRldlRvb2xzQWdlbnQoKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJEZXZUb29s
c0FnZW50SW1wbCo+KG1faW5zcGVjdGVkV2ViVmlldy0+ZGV2VG9vbHNBZ2VudCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaAppbmRleCAy
MDMzZTNmNjkwOThiYjA5NmQwNTAwZjk1MTFjMDRmYTJkZmQ3NzQ5Li45NGEzN2Y2ZDM5OGZmOGI2
NDAxMDMyYzczYjdhNGU0NzQ4YzRjZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oCkBAIC04NSw2ICs4NSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZHVtcFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMoY29uc3QgSGFzaE1h
cDxjb25zdCB2b2lkKiwgc2l6ZV90PiYpOwogCiAgICAgdmlydHVhbCBib29sIGNhcHR1cmVTY3Jl
ZW5zaG90KFdURjo6U3RyaW5nKiBkYXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVu
dENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjayk7CiAKIHByaXZhdGU6CiAgICAgV2ViRGV2VG9v
bHNBZ2VudEltcGwqIGRldlRvb2xzQWdlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCBiNThjZjYxYjRkMDA1ZjIy
ZWRhMjljMmM3YmE1YzU1MjRjMzFlMTM1Li44M2E3NzA5OTNiZGI1MjdmMGJkOTYyN2ZlMmY3Yjk5
ZTQ0YjkyYmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZU
b29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2
VG9vbHNBZ2VudEltcGwuY3BwCkBAIC01ODAsNiArNTgwLDExIEBAIGJvb2wgV2ViRGV2VG9vbHNB
Z2VudEltcGw6OmNhcHR1cmVTY3JlZW5zaG90KFdURjo6U3RyaW5nKiBkYXRhKQogICAgIHJldHVy
biB0cnVlOwogfQogCit2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpzZXRUcmFjZUV2ZW50Q2Fs
bGJhY2soVHJhY2VFdmVudENhbGxiYWNrIGNhbGxiYWNrKQoreworICAgIG1fY2xpZW50LT5zZXRU
cmFjZUV2ZW50Q2FsbGJhY2soY2FsbGJhY2spOworfQorCiB2b2lkIFdlYkRldlRvb2xzQWdlbnRJ
bXBsOjpkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2Up
CiB7CiAgICAgaW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRl
bmQobWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJE
ZXZUb29sc0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9v
bHNBZ2VudEltcGwuaAppbmRleCBlMGYyYjE0YWJiNTcyYmIzMzhhYTQ1ZWIzYmMyYzhhNGY4MzY5
YTFiLi5iZmQ3YjcwOTQ3NDQ3YzVjOGIyNjhmYTJmOTUxMjJiZjQ3NjE4YzNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKQEAgLTEw
OSw2ICsxMDksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0QWxsb2NhdGVkT2Jq
ZWN0cyhIYXNoU2V0PGNvbnN0IHZvaWQqPiYpOwogICAgIHZpcnR1YWwgdm9pZCBkdW1wVW5jb3Vu
dGVkQWxsb2NhdGVkT2JqZWN0cyhjb25zdCBIYXNoTWFwPGNvbnN0IHZvaWQqLCBzaXplX3Q+Jik7
CisgICAgdmlydHVhbCB2b2lkIHNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJh
Y2spOwogCiAgICAgdmlydHVhbCBib29sIGNhcHR1cmVTY3JlZW5zaG90KFdURjo6U3RyaW5nKiBk
YXRhKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180932</attachid>
            <date>2012-12-29 04:12:12 -0800</date>
            <delta_ts>2013-02-01 03:21:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105796-20121229160921.patch</filename>
            <type>text/plain</type>
            <size>31295</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFmZGQ0NDNmNTNhMzU3
YWZlNmU2NjhjNWJmOWQ0ZjFkMzk3N2IzYi4uYjFlMzUxMjEwMGRjYzAyMmExNTRhNzdkMWU5MWVm
NDE5ZDBlODBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTEyLTI4ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGV4cG9zZXMgYSBjYWxsYmFjayB0
byBlbWJlZGRlciB0byBhbGxvdyBmZWVkaW5nIG9mIHRyYWNlIGV2ZW50cyB0byBUaW1lbGluZSBh
Z2VudC4KKyAgICAgICAgU29tZSBldmVudHMgd2lsbCBiZSBzcGVjaWFsbHkgcHJvY2Vzc2VkIHRv
IGV4dHJhY3QgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGJlIHByZXNlbnRlZAorICAgICAgICBvbiB0
aW1lbGluZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRlZCBUaW1lbGluZVRyYWNl
RXZlbnRSZXBvcnRlci57aCxjcHB9CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogZGl0
dG8uCisgICAgICAgICogVGFyZ2V0LnByaTogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBp
OiBkaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogZGl0dG8u
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDogZGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oOgorICAgICAgICAoSW5zcGVjdG9yQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6c2V0VHJhY2VFdmVudENh
bGxiYWNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydCk6IEVuYWJs
ZSB0cmFjZSBldmVudHMgY29sbGVjdGlvbiBvbiBzdGFydC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3ApOiBEaXNhYmxlIHRyYWNlIGV2ZW50cyBjb2xsZWN0
aW9uIG9uIHN0b3AuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1Rp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHA6IEFkZGVkLgorICAgICAgICAoVHJhY2VFdmVu
dEFyZ3VtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJndW1lbnRzOjpUcmFj
ZUV2ZW50QXJndW1lbnRzKTogQSBoZWxwZXIgdG8gZXh0cmFjdCBhcmd1bWVudHMgZnJvbSB0cmFj
ZSBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRyYWNlRXZlbnRBcmd1bWVudHM6OnNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhY2VFdmVudEFyZ3VtZW50czo6YXNCb29sKToKKyAgICAgICAg
KFdlYkNvcmU6OlRyYWNlRXZlbnRBcmd1bWVudHM6OmFzSW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlRyYWNlRXZlbnRBcmd1bWVudHM6OmFzVUludCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2
ZW50QXJndW1lbnRzOjphc0RvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJn
dW1lbnRzOjphc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50QXJndW1lbnRz
OjpwYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6On5UaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yOjpwcm9jZXNzRXZlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3I6OkV2ZW50VHlwZUVudHJ5OjpFdmVudFR5cGVFbnRyeSk6Cisg
ICAgICAgIChFdmVudFR5cGVFbnRyeSk6CisKIDIwMTItMTItMjggIElseWEgVGlraG9ub3Zza3kg
IDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5hdGl2ZSBN
ZW1vcnkgSW5zdHJ1bWVudGF0aW9uOiBpbnN0cnVtZW50IG5vdCBpbnN0cnVtZW50ZWQgbWVtYmVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTU0MzU1YWM1ZjdmYzkxYmU3MGUzM2Fi
YzJhYTk0N2MyMTAxNjM3Yy4uNDcyZWU0Nzc3YmQzYzlhMjQ2NWYwNjlkZmI2Y2YwMmVhZTc3MmQ1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0xMi0y
OCAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IHBsdW1iIHRyYWNlIGV2ZW50cyB0byBUaW1lbGluZSBhZ2VudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1Nzk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBQbHVtYiBlbmFibGluZyBv
ZiB0cmFjZSBldmVudHMgdG8gZW1iZWRkZXIKKyAgICAgICAgICAoYWRkZWQgc2V0VHJhY2VFdmVu
dENhbGxiYWNrIHRvIEluc3BlY3RvckNsaWVudCAuLiBXZWJEZXZUb29sc0FnZW50Q2xpZW50KQor
CisgICAgICAgICogcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaDoKKyAgICAgICAgKFdl
YkRldlRvb2xzQWdlbnRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50
Q2xpZW50OjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAgICAgICAqIHNyYy9JbnNwZWN0b3JD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50SW1wbDo6c2V0
VHJhY2VFdmVudENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lu
c3BlY3RvckNsaWVudEltcGwuaDoKKyAgICAgICAgKEluc3BlY3RvckNsaWVudEltcGwpOgorICAg
ICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkRldlRvb2xzQWdlbnRJbXBsOjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaDoKKyAgICAgICAgKFdl
YkRldlRvb2xzQWdlbnRJbXBsKToKKwogMjAxMi0xMi0yOCAgRmFkeSBTYW11ZWwgIDxmc2FtdWVs
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSb2xsIENocm9taXVtIERFUFMgdG8gcjE3NDczOQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0OTQzZmU2NmUyN2MxZWM5ZmY4MjBmZTAzYmEzZDZmZTVk
M2I1MDZlLi4xYTE1MGNiNjIwOTI4NTBhOGU4NGI4YjFjMGU0M2MyNTJiYWVhNzQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTYzMyw2ICsxNjMzLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsRnJhbWUuY3BwCiAgICAgaW5zcGVjdG9yL1NjcmlwdENh
bGxTdGFjay5jcHAKICAgICBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorICAg
IGluc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwCiAgICAgaW5zcGVjdG9y
L1dvcmtlckNvbnNvbGVBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2Vu
dC5jcHAKICAgICBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGUwYzkwMzVhMmNjNjFmZjk0MDUyNDkwZWZjYjU4
ZTFhMzA4MDY5M2YuLjEwM2RiYWM1Y2ViY2VjYjg5MDAxOTgyYjdjOGViMWVkMjVhZWIxOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzgxNiw2ICszODE2LDggQEAgd2ViY29y
ZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0R0NFdmVudExp
c3RlbmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rv
cnkuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmggXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNz
b3IuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yLmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmggXAog
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQppbmRleCBiMjQwNjg3MGVkMjAxMTU4MzY5ZmQyMWVhYmViOTc0ZGY0MTZiNTAzLi4wNTcw
M2Y1OTAxMTAxZDI5YTQ0NzhlZGNiYWE3NjE5NTZlMGVmMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTc5
Niw2ICs3OTYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvU2NyaXB0Q2FsbEZyYW1l
LmNwcCBcCiAgICAgaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5jcHAgXAogICAgIGluc3BlY3Rv
ci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIFwKKyAgICBpbnNwZWN0b3IvVGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yLmNwcCBcCiAgICAgaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5j
cHAgXAogICAgIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBcCiAgICAgaW5zcGVj
dG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA3
MzliYzBiYzk0MmJlYjQ2YjQ4ZDg2ZDlmMWEyMDAzN2RlYTkzZjU1Li4wODRiNjgyMmYxOTM4NjQ2
MTVjMThjMmM1ZmVjMGRiYjI0ODQ2NmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODg4LDYgKzE4
ODgsOCBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRHQ0V2ZW50TGlzdGVuZXIuaCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaCcsCisgICAgICAgICAg
ICAnaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAnLAorICAgICAgICAg
ICAgJ2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCcsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5jcHAnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL1dvcmtl
ckRlYnVnZ2VyQWdlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggYzE2MzA4ZGJiN2YzY2EzMjQzODI1ZGY0OWI0NDFkNzFjMGQ1MTY0
YS4uMTRlNWQyOTQzYTdjYjE3NWIzZjhkNjY0NDVjYTUzODQxMThiZjA2YyAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTc2MTc4LDYgKzc2MTc4
LDMwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGluc3BlY3RvclxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwIgorCQkJCT4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcVGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxXb3JrZXJDb25zb2xlQWdlbnQuY3BwIgogCQkJCT4KIAkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MWQ1YWVhMzZjNDc4M2UwYmJiMGU4NzQ3ODc2NjNj
NDZmMTg0YTA5Li5mNjQ5YWNmNTVkMmVmNGNkZGFlMTg4ZGM0NDE0ODEwZTcxNmQ4MzE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xMjc4LDYgKzEyNzgsOCBAQAogCQk0NkY5RDVERjBCMEQ2MDE3MDAyOEVFMzYgLyogcHJvZ3Jl
c3NDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NkY5RDVEQzBCMEQ2MDE3MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nICovOyB9
OwogCQk0OTA3MDdFNjEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkwNzA3RTQxMjE5
QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCAqLzsgfTsKIAkJNDkwNzA3RTcx
MjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNTEyMTlDMDQzMDBEOTBFNTEgLyog
QU5HTEVXZWJLaXRCcmlkZ2UuaCAqLzsgfTsKKwkJNDkxNDAyNTYxNjhFMDJFODAwMkQ2QzZBIC8q
IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTE0MDI1NDE2OEUwMkI0MDAyRDZDNkEgLyogVGltZWxp
bmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCAqLzsgfTsKKwkJNDkxNDAyNTcxNjhFMDJFQzAwMkQ2
QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkxNDAyNTUxNjhFMDJCNDAwMkQ2QzZBIC8qIFRp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oICovOyB9OwogCQk0OTE4MkI1MjE1RENFNkYwMDA1
NDg0MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkxODJCNTAxNURDRTZGMDAwNTQ4NDE4IC8qIFBs
YXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcCAqLzsgfTsKIAkJNDkxODJCNTMxNURDRTZGMDAwNTQ4
NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTE4MkI1MTE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZv
cm1JbnN0cnVtZW50YXRpb24uaCAqLzsgfTsKIAkJNDkyODYzOTkxMjUzQjhGQzAwRjc5MkQ2IC8q
IFJlc291cmNlTG9hZEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5Mjg2Mzk4MTI1M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZvLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTg1NDYs
NiArODU0OCw4IEBACiAJCTQ2RjlENURDMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNv
ci5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBp
bWFnZS5wbmc7IHBhdGggPSBwcm9ncmVzc0N1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ5MDcwN0U0MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRn
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MDcwN0U1MTIxOUMwNDMwMEQ5
MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBTkdMRVdlYktpdEJyaWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
OTE0MDI1NDE2OEUwMkI0MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRpbWVsaW5lVHJhY2VFdmVu
dFByb2Nlc3Nvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5MTQwMjU1MTY4
RTAyQjQwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MTgyQjUwMTVEQ0U2RjAwMDU0ODQxOCAvKiBQ
bGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ5MTgyQjUxMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRh
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUluc3RydW1l
bnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTI4NjM5ODEyNTNCOEZD
MDBGNzkyRDYgLyogUmVzb3VyY2VMb2FkSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZXNvdXJjZUxvYWRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTAyNiw2ICsxNTAzMCw4IEBACiAJCQkJOUZBMzdFRjAxMTcyRkQ0MTAwQzRDRDU1IC8qIFNj
cmlwdFByb2ZpbGVOb2RlLmlkbCAqLywKIAkJCQk3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyog
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLywKIAkJCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4
MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi8sCisJCQkJNDkxNDAyNTQxNjhFMDJCNDAw
MkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgKi8sCisJCQkJNDkxNDAy
NTUxNjhFMDJCNDAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oICovLAog
CQkJCUYzODIwODhFMTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwICov
LAogCQkJCUYzODIwODhGMTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCAq
LywKIAkJCQlGMzQ3NDJERTEzNDM2MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2VudC5j
cHAgKi8sCkBAIC0yNjAwNiw2ICsyNjAxMiw3IEBACiAJCQkJNDE1MDcxNTgxNjg1MDY3MzAwQzND
N0IzIC8qIFNlbGVjdG9yRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlCQzJERjE2ODUz
Mjk5MDBENjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNURB
OTdFQ0QxNjhFNzg3QjAwMEUzNjc2IC8qIFN5c3RlbVZlcnNpb25NYWMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQ5MTQwMjU3MTY4RTAyRUMwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjkxMjgsNiArMjkxMzUsNyBAQAogCQkJCTQxNTA3
MTU3MTY4NTA2NzMwMEMzQzdCMyAvKiBTZWxlY3RvckZpbHRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0MTlCQzJERTE2ODUzMjk5MDBENjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1REE5N0VDRTE2OEU3ODdCMDAwRTM2NzYgLyogU3lzdGVtVmVyc2lv
bk1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQ5MTQwMjU2MTY4RTAyRTgwMDJENkM2QSAvKiBU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAppbmRleCA5YzlmZjIwODU5
YzJkOGNiODU2MzQ3ZDY3YjgxMTMxYTdiYjg5ZWJmLi5iMTEzZGQ5ZWQyZjI2ZDdjZDg0MjY0ZjEy
ZDU0NGQ0M2FkMzU0NzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBbGxJbk9uZS5jcHAKQEAgLTgzLDYgKzgzLDcgQEAKICNpbmNsdWRlICJTY3JpcHRDYWxsRnJh
bWUuY3BwIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5jcHAiCiAjaW5jbHVkZSAiVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmNwcCIKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNz
b3IuY3BwIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVBZ2VudC5jcHAiCiAjaW5jbHVkZSAiV29y
a2VyRGVidWdnZXJBZ2VudC5jcHAiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXgg
OTQ4ZGYwMjhjYjc2OWEzNDMxYTYxMjFlYmI5ODMwNzNjMGIwNWI5Ny4uNWQ2NTQ2YTlkMjFiNzg4
MjlhNTI0ZDMxMDAyOTEzNTIwZjNjMWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDbGllbnQuaApAQCAtNTksNiArNTksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBjbGVhckJyb3dzZXJDb29raWVzKCkgeyB9CiAgICAgdmlydHVhbCBib29sIGNhbk1vbml0
b3JNYWluVGhyZWFkKCkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHR5cGVkZWYgdm9pZCAoKlRy
YWNlRXZlbnRDYWxsYmFjaykoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQgY2hhciosIGNvbnN0
IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51bUFyZ3Ms
IGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlw
ZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1bnNpZ25l
ZCBjaGFyIGZsYWdzKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVudENhbGxiYWNrKFRy
YWNlRXZlbnRDYWxsYmFjaykgeyB9CisKICAgICB2aXJ0dWFsIGJvb2wgY2FuT3ZlcnJpZGVEZXZp
Y2VNZXRyaWNzKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvdmVycmlk
ZURldmljZU1ldHJpY3MoaW50IC8qd2lkdGgqLywgaW50IC8qaGVpZ2h0Ki8sIGZsb2F0IC8qZm9u
dFNjYWxlRmFjdG9yKi8sIGJvb2wgLypmaXRXaW5kb3cqLykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBhYzdhZGNiMGFh
MzU2ZmU3NzBjZGZmYzMwMzk2OTI1NjY1NzhhMjU3Li5mYjllOTRjYzUxY2Y1MTNiMmFjNzM5OTVl
MzdiYzQwYjk3NWZjZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCIKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3Iu
aCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCkBAIC0xNzEsNiArMTcyLDggQEAg
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydChFcnJvclN0cmluZyosIGNvbnN0IGlu
dCogbWF4Q2FsbFN0YWNrRGVwdGgpCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNw
ZWN0b3JUaW1lbGluZUFnZW50KHRoaXMpOwogICAgIFNjcmlwdEdDRXZlbnQ6OmFkZEV2ZW50TGlz
dGVuZXIodGhpcyk7CiAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihUaW1lbGluZUFnZW50U3RhdGU6
OnRpbWVsaW5lQWdlbnRFbmFibGVkLCB0cnVlKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAg
IG1fdHJhY2VFdmVudFByb2Nlc3NvciA9IGFkb3B0UHRyKG5ldyBUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3IodGhpcywgbV9jbGllbnQpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpzdG9wKEVycm9yU3RyaW5nKikKQEAgLTE3OCw2ICsxODEsNyBAQCB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnN0b3AoRXJyb3JTdHJpbmcqKQogICAgIGlmICghbV9zdGF0ZS0+Z2V0
Qm9vbGVhbihUaW1lbGluZUFnZW50U3RhdGU6OnRpbWVsaW5lQWdlbnRFbmFibGVkKSkKICAgICAg
ICAgcmV0dXJuOwogCisgICAgbV90cmFjZUV2ZW50UHJvY2Vzc29yLmNsZWFyKCk7CiAgICAgbV9p
bnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JUaW1lbGluZUFnZW50KDApOwogICAgIFNj
cmlwdEdDRXZlbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IGU3MDYyYTEx
ODE4OGZhY2RkNTQzNGExMjExZDNjN2ZjNWYwNmU5NjYuLmIzYmQwMDgwZjhlY2NmZjM5YzA2ZWRk
YTY3NzA1YzlkMjcyOGEwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNTUsNiArNTUsNyBAQCBjbGFzcyBJbnRSZWN0Owog
Y2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKK2NsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcjsKIAogdHlwZWRl
ZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKQEAgLTE2Niw2ICsxNjcsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlc2l6ZUltYWdlKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CisgICAg
ZnJpZW5kIGNsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcjsKKwogICAgIHN0cnVjdCBU
aW1lbGluZVJlY29yZEVudHJ5IHsKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
ZGF0YSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW4sIGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBzaXplX3QgdXNlZEhlYXBTaXplQXRTdGFydCkK
ICAgICAgICAgICAgIDogcmVjb3JkKHJlY29yZCksIGRhdGEoZGF0YSksIGNoaWxkcmVuKGNoaWxk
cmVuKSwgdHlwZSh0eXBlKSwgZnJhbWVJZChmcmFtZUlkKSwgdXNlZEhlYXBTaXplQXRTdGFydCh1
c2VkSGVhcFNpemVBdFN0YXJ0KQpAQCAtMjIwLDYgKzIyMyw3IEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gbV9wZW5kaW5nRnJhbWVSZWNvcmQ7CiAgICAgSW5zcGVjdG9y
VHlwZSBtX2luc3BlY3RvclR5cGU7CiAgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2NsaWVudDsKKyAg
ICBPd25QdHI8VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yPiBtX3RyYWNlRXZlbnRQcm9jZXNz
b3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM3OWU1Yzc0OGQzNDJkM2E4MGUwODIzMTgxYzQyNDE2ZWJjMmEyNmUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vz
c29yLmNwcApAQCAtMCwwICsxLDIxOSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisqIG1ldDoKKyoKKyogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorKiBkaXN0cmlidXRpb24uCisqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyoK
KyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIlRp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIgorCisjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50
LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgorCisjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgVHJhY2VFdmVudERpc3BhdGNoZXIgeworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNlRXZlbnREaXNwYXRjaGVyKTsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgVHJhY2VFdmVudERpc3BhdGNoZXIqIGluc3RhbmNlKCkKKyAgICB7CisgICAgICAg
IERFRklORV9TVEFUSUNfTE9DQUwoVHJhY2VFdmVudERpc3BhdGNoZXIsIGluc3RhbmNlLCAoKSk7
CisgICAgICAgIHJldHVybiAmaW5zdGFuY2U7CisgICAgfQorICAgIAorICAgIHZvaWQgYWRkUHJv
Y2Vzc29yKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvciogcHJvY2Vzc29yLCBJbnNwZWN0b3JD
bGllbnQqIGNsaWVudCkKKyAgICB7CisgICAgICAgIG1fcHJvY2Vzc29ycy5hcHBlbmQocHJvY2Vz
c29yKTsKKyAgICAgICAgaWYgKG1fcHJvY2Vzc29ycy5zaXplKCkgPT0gMSkKKyAgICAgICAgICAg
IGNsaWVudC0+c2V0VHJhY2VFdmVudENhbGxiYWNrKGRpc3BhdGNoRXZlbnQpOworICAgIH0KKwor
ICAgIHZvaWQgcmVtb3ZlUHJvY2Vzc29yKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvciogcHJv
Y2Vzc29yLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKKyAgICB7CisgICAgICAgIHNpemVfdCBp
bmRleCA9IG1fcHJvY2Vzc29ycy5maW5kKHByb2Nlc3Nvcik7CisgICAgICAgIGlmIChpbmRleCA9
PSBub3RGb3VuZCkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9wcm9jZXNzb3JzW2luZGV4XSA9IG1f
cHJvY2Vzc29ycy5sYXN0KCk7CisgICAgICAgIG1fcHJvY2Vzc29ycy5yZW1vdmVMYXN0KCk7Cisg
ICAgICAgIGlmIChtX3Byb2Nlc3NvcnMuaXNFbXB0eSgpKQorICAgICAgICAgICAgY2xpZW50LT5z
ZXRUcmFjZUV2ZW50Q2FsbGJhY2soMCk7CisgICAgfQorCitwcml2YXRlOgorICAgIFRyYWNlRXZl
bnREaXNwYXRjaGVyKCkgeyB9CisKKyAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaEV2ZW50KGNoYXIg
cGhhc2UsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBs
b25nIGxvbmcgaWQsCisgICAgICAgIGludCBudW1BcmdzLCBjb25zdCBjaGFyKiBjb25zdCogYXJn
TmFtZXMsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ1R5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25n
IGxvbmcqIGFyZ1ZhbHVlcywKKyAgICAgICAgdW5zaWduZWQgY2hhciBmbGFncykKKyAgICB7Cisg
ICAgICAgIGlmICghaXNNYWluVGhyZWFkKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgVmVjdG9yPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcio+JiBwcm9jZXNzb3JzID0gaW5z
dGFuY2UoKS0+bV9wcm9jZXNzb3JzOworICAgICAgICBmb3IgKGludCBpID0gMCwgc2l6ZSA9IHBy
b2Nlc3NvcnMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICBwcm9jZXNzb3Jz
W2ldLT5wcm9jZXNzRXZlbnQoc3RhdGljX2Nhc3Q8VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
OjpUcmFjZUV2ZW50UGhhc2U+KHBoYXNlKSwKKyAgICAgICAgICAgICAgICBuYW1lLCBpZCwgbnVt
QXJncywgYXJnTmFtZXMsIGFyZ1R5cGVzLCBhcmdWYWx1ZXMsIGZsYWdzKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIFZlY3RvcjxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IqPiBtX3Byb2Nl
c3NvcnM7Cit9OworCit9IC8vIG5hbWVzcGNlCisKK2NsYXNzIFRyYWNlRXZlbnRBcmd1bWVudHMg
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNlRXZlbnRBcmd1bWVudHMpOworcHVibGlj
OgorICAgIFRyYWNlRXZlbnRBcmd1bWVudHMoaW50IG51bUFyZ3VtZW50cywgY29uc3QgY2hhciog
Y29uc3QqIGFyZ3VtZW50TmFtZXMsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ3VtZW50VHlwZXMs
IGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJndW1lbnRWYWx1ZXMpCisgICAgICAgIDogbV9z
aXplKG51bUFyZ3VtZW50cykKKyAgICAgICAgLCBtX2FyZ3VtZW50TmFtZXMoYXJndW1lbnROYW1l
cykKKyAgICAgICAgLCBtX2FyZ3VtZW50VHlwZXMoYXJndW1lbnRUeXBlcykKKyAgICAgICAgLCBt
X2FyZ3VtZW50VmFsdWVzKGFyZ3VtZW50VmFsdWVzKQorICAgIHsKKyAgICB9CisKKyAgICBpbnQg
c2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCisgICAgYm9vbCBhc0Jvb2woY29uc3Qg
Y2hhciogbmFtZSkgY29uc3QKKyAgICB7IAorICAgICAgICByZXR1cm4gcGFyYW1ldGVyKG5hbWUs
IFR5cGVCb29sKS5tX2Jvb2w7CisgICAgfQorICAgIGxvbmcgbG9uZyBhc0ludChjb25zdCBjaGFy
KiBuYW1lKSBjb25zdAorICAgIHsgCisgICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFtZSwgVHlw
ZUludCkubV9pbnQ7CisgICAgfQorICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhc1VJbnQoY29uc3Qg
Y2hhciogbmFtZSkgY29uc3QgCisgICAgeyAKKyAgICAgICAgcmV0dXJuIHBhcmFtZXRlcihuYW1l
LCBUeXBlVUludCkubV91aW50OworICAgIH0KKyAgICBkb3VibGUgYXNEb3VibGUoY29uc3QgY2hh
ciogbmFtZSkgY29uc3QKKyAgICB7IAorICAgICAgICByZXR1cm4gcGFyYW1ldGVyKG5hbWUsIFR5
cGVEb3VibGUpLm1fZG91YmxlOworICAgIH0KKyAgICBjb25zdCBjaGFyKiBhc1N0cmluZyhjb25z
dCBjaGFyKiBuYW1lKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtZXRlcihuYW1l
LCBUeXBlU3RyaW5nKS5tX3N0cmluZzsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8gRklYTUU6
IHVzZSB0aGUgZGVmaW5pdGlvbiBpbiBUcmFjZUV2ZW50Lmggb25jZSB3ZSBleHBvc2UgdGhlIGxh
dHRlciB0byBhbGwgcGxhZm9ybXMuCisgICAgdW5pb24gVHJhY2VWYWx1ZVVuaW9uIHsKKyAgICAg
ICAgYm9vbCBtX2Jvb2w7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3VpbnQ7CisgICAg
ICAgIGxvbmcgbG9uZyBtX2ludDsKKyAgICAgICAgZG91YmxlIG1fZG91YmxlOworICAgICAgICBj
b25zdCB2b2lkKiBtX3BvaW50ZXI7CisgICAgICAgIGNvbnN0IGNoYXIqIG1fc3RyaW5nOworICAg
IH07CisKKyAgICBlbnVtIFRyYWNlVmFsdWVUeXBlcyB7CisgICAgICAgIFR5cGVCb29sID0gMSwK
KyAgICAgICAgVHlwZVVJbnQgPSAyLAorICAgICAgICBUeXBlSW50ID0gMywKKyAgICAgICAgVHlw
ZURvdWJsZSA9IDQsCisgICAgICAgIFR5cGVQb2ludGVyID0gNSwKKyAgICAgICAgVHlwZVN0cmlu
ZyA9IDYsCisgICAgICAgIFR5cGVDb3B5U3RyaW5nID0gNworICAgIH07CisKKyAgICBjb25zdCBU
cmFjZVZhbHVlVW5pb24mIHBhcmFtZXRlcihjb25zdCBjaGFyKiBuYW1lLCBUcmFjZVZhbHVlVHlw
ZXMgZXhwZWN0ZWRUeXBlKSBjb25zdAorICAgIHsKKyAgICAgICAgc3RhdGljIFRyYWNlVmFsdWVV
bmlvbiBtaXNzaW5nVmFsdWU7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3NpemU7
ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjbXAobmFtZSwgbV9hcmd1bWVudE5hbWVzW2ld
KSkgeworICAgICAgICAgICAgICAgIGlmIChtX2FyZ3VtZW50VHlwZXNbaV0gIT0gZXhwZWN0ZWRU
eXBlKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gbWlzc2luZ1ZhbHVlOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVHJhY2VWYWx1ZVVu
aW9uKj4obV9hcmd1bWVudFZhbHVlcyArIGkpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gbWlzc2luZ1ZhbHVl
OworICAgIH0KKworICAgIGludCBtX3NpemU7CisgICAgY29uc3QgY2hhciogY29uc3QqIG1fYXJn
dW1lbnROYW1lczsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBtX2FyZ3VtZW50VHlwZXM7Cisg
ICAgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBtX2FyZ3VtZW50VmFsdWVzOworfTsKKworVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IoSW5z
cGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCwgSW5zcGVjdG9yQ2xpZW50ICpjbGll
bnQpCisgICAgOiBtX3RpbWVsaW5lQWdlbnQodGltZWxpbmVBZ2VudCkKKyAgICAsIG1faW5zcGVj
dG9yQ2xpZW50KGNsaWVudCkKK3sKKyAgICBUcmFjZUV2ZW50RGlzcGF0Y2hlcjo6aW5zdGFuY2Uo
KS0+YWRkUHJvY2Vzc29yKHRoaXMsIG1faW5zcGVjdG9yQ2xpZW50KTsKK30KKworVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yOjp+VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKCkKK3sKKyAg
ICBUcmFjZUV2ZW50RGlzcGF0Y2hlcjo6aW5zdGFuY2UoKS0+cmVtb3ZlUHJvY2Vzc29yKHRoaXMs
IG1faW5zcGVjdG9yQ2xpZW50KTsKK30KKwordm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNz
b3I6OnByb2Nlc3NFdmVudChUcmFjZUV2ZW50UGhhc2UgcGhhc2UsIGNvbnN0IGNoYXIqIG5hbWUs
IHVuc2lnbmVkIGxvbmcgbG9uZywKKyAgICBpbnQgbnVtQXJncywgY29uc3QgY2hhciogY29uc3Qq
IGFyZ05hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5zaWduZWQg
bG9uZyBsb25nKiBhcmdWYWx1ZXMsCisgICAgdW5zaWduZWQgY2hhcikKK3sKKyAgICBIYXNoTWFw
PFN0cmluZywgRXZlbnRUeXBlRW50cnk+OjppdGVyYXRvciBpdCA9IG1faGFuZGxlcnNCeVR5cGUu
ZmluZChuYW1lKTsKKyAgICBpZiAoaXQgPT0gbV9oYW5kbGVyc0J5VHlwZS5lbmQoKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIFRyYWNlRXZlbnRIYW5kbGVyIGhhbmRsZXIgPSAwOworICAgIHN3aXRj
aCAocGhhc2UpIHsKKyAgICBjYXNlIFRyYWNlUGhhc2VCZWdpbjoKKyAgICAgICAgaGFuZGxlciA9
IGl0LT52YWx1ZS5tX2JlZ2luOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRyYWNlUGhhc2VF
bmQ6CisgICAgICAgIGhhbmRsZXIgPSBpdC0+dmFsdWUubV9lbmQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVHJhY2VQaGFzZUluc3RhbnQ6CisgICAgICAgIGhhbmRsZXIgPSBpdC0+dmFsdWUu
bV9pbnN0YW50OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgaWYgKCFoYW5kbGVyKSB7CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFRyYWNlRXZlbnRB
cmd1bWVudHMgYXJndW1lbnRzKG51bUFyZ3MsIGFyZ05hbWVzLCBhcmdUeXBlcywgYXJnVmFsdWVz
KTsKKyAgICAodGhpcy0+KmhhbmRsZXIpKG5hbWUsIHBoYXNlLCBhcmd1bWVudHMpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhiYWI1MWM3NGY2MTdhZjBkMTVkNTgxODM4MjY4NWFkYWVmN2E3
NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorKiBtZXQ6CisqCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyogZGlzdHJpYnV0aW9uLgorKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyovCisKKyNpZm5kZWYgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gKKyNkZWZpbmUg
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisK
KyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEluc3BlY3RvckNsaWVudDsKK2NsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7Citj
bGFzcyBUcmFjZUV2ZW50QXJndW1lbnRzOworCitjbGFzcyBUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IgeworcHVibGljOgorICAgIC8vIEZJWE1FOiByZS11c2UgZGVmaW5pdGlvbnMgaW4gVHJh
Y2VFdmVudC5oIG9uY2UgaXQncyBwcm9tb3RlZCB0byBhbGwgcGxhdGZvcm1zLgorICAgIGVudW0g
VHJhY2VFdmVudFBoYXNlIHsKKyAgICAgICAgVHJhY2VQaGFzZUJlZ2luID0gJ0InLAorICAgICAg
ICBUcmFjZVBoYXNlRW5kID0gJ0UnLAorICAgICAgICBUcmFjZVBoYXNlSW5zdGFudCA9ICdJJwor
ICAgIH07CisKKyAgICBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IoSW5zcGVjdG9yVGltZWxp
bmVBZ2VudCosIEluc3BlY3RvckNsaWVudCopOworICAgIH5UaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IoKTsKKworICAgIHZvaWQgcHJvY2Vzc0V2ZW50KFRyYWNlRXZlbnRQaGFzZSwgY29uc3Qg
Y2hhciogbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAorICAgICAgICBpbnQgbnVtQXJncywg
Y29uc3QgY2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBl
cywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMsCisgICAgICAgIHVuc2lnbmVk
IGNoYXIgZmxhZ3MpOworICAgIAorcHJpdmF0ZToKKyAgICB0eXBlZGVmIHZvaWQgKFRpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvcjo6KlRyYWNlRXZlbnRIYW5kbGVyKShjb25zdCBjaGFyKiBuYW1l
LCBUcmFjZUV2ZW50UGhhc2UsIGNvbnN0IFRyYWNlRXZlbnRBcmd1bWVudHMmKTsKKworICAgIHN0
cnVjdCBFdmVudFR5cGVFbnRyeSB7CisgICAgICAgIEV2ZW50VHlwZUVudHJ5KCkKKyAgICAgICAg
ICAgIDogbV9iZWdpbigwKQorICAgICAgICAgICAgLCBtX2VuZCgwKQorICAgICAgICAgICAgLCBt
X2luc3RhbnQoMCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIGV4cGxpY2l0IEV2ZW50
VHlwZUVudHJ5KFRyYWNlRXZlbnRIYW5kbGVyIGluc3RhbnQpCisgICAgICAgICAgICA6IG1fYmVn
aW4oMCkKKyAgICAgICAgICAgICwgbV9lbmQoMCkKKyAgICAgICAgICAgICwgbV9pbnN0YW50KGlu
c3RhbnQpCisgICAgICAgIHsKKyAgICAgICAgfTsKKyAgICAgICAgRXZlbnRUeXBlRW50cnkoVHJh
Y2VFdmVudEhhbmRsZXIgYmVnaW4sIFRyYWNlRXZlbnRIYW5kbGVyIGVuZCkKKyAgICAgICAgICAg
IDogbV9iZWdpbihiZWdpbikKKyAgICAgICAgICAgICwgbV9lbmQoZW5kKQorICAgICAgICAgICAg
LCBtX2luc3RhbnQoMCkKKyAgICAgICAgeworICAgICAgICB9OworCisgICAgICAgIFRyYWNlRXZl
bnRIYW5kbGVyIG1fYmVnaW47CisgICAgICAgIFRyYWNlRXZlbnRIYW5kbGVyIG1fZW5kOworICAg
ICAgICBUcmFjZUV2ZW50SGFuZGxlciBtX2luc3RhbnQ7CisgICAgfTsKKworICAgIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQqIG1fdGltZWxpbmVBZ2VudDsKKyAgICBJbnNwZWN0b3JDbGllbnQqIG1f
aW5zcGVjdG9yQ2xpZW50OworCisgICAgSGFzaE1hcDxTdHJpbmcsIEV2ZW50VHlwZUVudHJ5PiBt
X2hhbmRsZXJzQnlUeXBlOworfTsKKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQorI2VuZGlmIC8vICFkZWZpbmVkKFRpbWVsaW5lVHJhY2VF
dmVudFByb2Nlc3Nvcl9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oCmluZGV4IGJlYjNlODMyZjk3NDgyNzVmNGJlYmNh
MDVjZjQxZWE3Njc0OTA3MGEuLmE1MTNjOTM2ODJmNDZiYjhkZmJlNWRjMzIyYTYzNGI1NjQ5Mjdl
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xz
QWdlbnRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZU
b29sc0FnZW50Q2xpZW50LmgKQEAgLTc3LDYgKzc3LDEyIEBAIHB1YmxpYzoKICAgICB9OwogICAg
IHZpcnR1YWwgdm9pZCBkdW1wVW5jb3VudGVkQWxsb2NhdGVkT2JqZWN0cyhjb25zdCBJbnN0cnVt
ZW50ZWRPYmplY3RTaXplUHJvdmlkZXIqKSB7IH0KIAorICAgIHR5cGVkZWYgdm9pZCAoKlRyYWNl
RXZlbnRDYWxsYmFjaykoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQgY2hhciosIGNvbnN0IGNo
YXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51bUFyZ3MsIGNv
bnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlwZXMs
IGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1bnNpZ25lZCBj
aGFyIGZsYWdzKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFjZUV2ZW50Q2FsbGJhY2soVHJh
Y2VFdmVudENhbGxiYWNrKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJEZXZUb29sc0FnZW50
Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNw
ZWN0b3JDbGllbnRJbXBsLmNwcAppbmRleCBiYWI1ODE2YmZkNjkwOGVmYTBmOGMxNjlmMGM4MDFh
MjRjODc5MjQ2Li5mYmNjY2Q3ZTFmOGY2NmMyYWUwYzJlNWIyMmU4YTY3ODE5ZDY2ODMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNw
cApAQCAtMTk2LDYgKzE5NiwxMiBAQCBib29sIEluc3BlY3RvckNsaWVudEltcGw6OmNhcHR1cmVT
Y3JlZW5zaG90KFN0cmluZyogZGF0YSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSW5z
cGVjdG9yQ2xpZW50SW1wbDo6c2V0VHJhY2VFdmVudENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFj
ayBjYWxsYmFjaykKK3sKKyAgICBpZiAoV2ViRGV2VG9vbHNBZ2VudEltcGwqIGFnZW50ID0gZGV2
VG9vbHNBZ2VudCgpKQorICAgICAgICBhZ2VudC0+c2V0VHJhY2VFdmVudENhbGxiYWNrKGNhbGxi
YWNrKTsKK30KKwogV2ViRGV2VG9vbHNBZ2VudEltcGwqIEluc3BlY3RvckNsaWVudEltcGw6OmRl
dlRvb2xzQWdlbnQoKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJEZXZUb29sc0FnZW50
SW1wbCo+KG1faW5zcGVjdGVkV2ViVmlldy0+ZGV2VG9vbHNBZ2VudCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaAppbmRleCAyMDMzZTNm
NjkwOThiYjA5NmQwNTAwZjk1MTFjMDRmYTJkZmQ3NzQ5Li45NGEzN2Y2ZDM5OGZmOGI2NDAxMDMy
YzczYjdhNGU0NzQ4YzRjZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JbnNwZWN0b3JDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SW5zcGVjdG9yQ2xpZW50SW1wbC5oCkBAIC04NSw2ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZHVtcFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMoY29uc3QgSGFzaE1hcDxjb25z
dCB2b2lkKiwgc2l6ZV90PiYpOwogCiAgICAgdmlydHVhbCBib29sIGNhcHR1cmVTY3JlZW5zaG90
KFdURjo6U3RyaW5nKiBkYXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVudENhbGxi
YWNrKFRyYWNlRXZlbnRDYWxsYmFjayk7CiAKIHByaXZhdGU6CiAgICAgV2ViRGV2VG9vbHNBZ2Vu
dEltcGwqIGRldlRvb2xzQWdlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCBiNThjZjYxYjRkMDA1ZjIyZWRhMjlj
MmM3YmE1YzU1MjRjMzFlMTM1Li44M2E3NzA5OTNiZGI1MjdmMGJkOTYyN2ZlMmY3Yjk5ZTQ0Yjky
YmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0Fn
ZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNB
Z2VudEltcGwuY3BwCkBAIC01ODAsNiArNTgwLDExIEBAIGJvb2wgV2ViRGV2VG9vbHNBZ2VudElt
cGw6OmNhcHR1cmVTY3JlZW5zaG90KFdURjo6U3RyaW5nKiBkYXRhKQogICAgIHJldHVybiB0cnVl
OwogfQogCit2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2so
VHJhY2VFdmVudENhbGxiYWNrIGNhbGxiYWNrKQoreworICAgIG1fY2xpZW50LT5zZXRUcmFjZUV2
ZW50Q2FsbGJhY2soY2FsbGJhY2spOworfQorCiB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpk
aXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiB7CiAg
ICAgaW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQobWVz
c2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29s
c0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2Vu
dEltcGwuaAppbmRleCBlMGYyYjE0YWJiNTcyYmIzMzhhYTQ1ZWIzYmMyYzhhNGY4MzY5YTFiLi5i
ZmQ3YjcwOTQ3NDQ3YzVjOGIyNjhmYTJmOTUxMjJiZjQ3NjE4YzNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKQEAgLTEwOSw2ICsx
MDksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0QWxsb2NhdGVkT2JqZWN0cyhI
YXNoU2V0PGNvbnN0IHZvaWQqPiYpOwogICAgIHZpcnR1YWwgdm9pZCBkdW1wVW5jb3VudGVkQWxs
b2NhdGVkT2JqZWN0cyhjb25zdCBIYXNoTWFwPGNvbnN0IHZvaWQqLCBzaXplX3Q+Jik7CisgICAg
dmlydHVhbCB2b2lkIHNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJhY2spOwog
CiAgICAgdmlydHVhbCBib29sIGNhcHR1cmVTY3JlZW5zaG90KFdURjo6U3RyaW5nKiBkYXRhKTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186000</attachid>
            <date>2013-02-01 03:21:54 -0800</date>
            <delta_ts>2013-02-01 05:03:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105796-20130201151836.patch</filename>
            <type>text/plain</type>
            <size>46603</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJmNzAwYTI2NDg2ZDc5
MGZkMTQ4YmYyZDAxOTE4YzdiOTM3YzE4MS4uMzBmNDRjMDRmMTFjYzQxZTRiOWQ1YmExN2VlZGE1
N2I3MDhlNGY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEzLTAyLTAxICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHBsdW1iIHRyYWNlIGV2ZW50cyB0byBU
aW1lbGluZTsKKyAgICAgICAgLSBhZGQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yIHRvIHBy
b2Nlc3Mgc2VsZWN0ZWQgdHJhY2UgZXZlbnRzOworICAgICAgICAtIGVtaXQgdGltZWxpbmUgZXZl
bnRzIGZyb20gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLgorCisgICAgICAgIE5vdGUgdGhh
dCBhY3R1YWwgZXZlbnQgcHJvY2Vzc2luZyBsb2dpYyBpcyBhIHNlcGFyYXRlIGNoYW5nZS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNv
bjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaDoKKyAgICAgICAgKEluc3BlY3RvckNsaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OnNldFRyYWNlRXZlbnRDYWxsYmFj
ayk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFwcGVuZEJhY2tncm91bmRUaHJl
YWRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpwYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJbnNwZWN0b3JUaW1l
bGluZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vz
c29yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3I6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6flRpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NFdmVudE9uQW55VGhyZWFkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6cHJvY2Vzc0V2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6c2VuZFRp
bWVsaW5lUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvcjo6cHJvY2Vzc0JhY2tncm91bmRFdmVudHMpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChUcmFjZUV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VF
dmVudDo6VHJhY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnRpbWVzdGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnBoYXNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6bmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6
OnRocmVhZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yOjpUcmFjZUV2ZW50Ojphcmd1bWVudENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6YXNCb29sKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6YXNJ
bnQpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFj
ZUV2ZW50Ojphc1VJbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yOjpUcmFjZUV2ZW50Ojphc0RvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OmFzU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6RXZlbnRUeXBlRW50cnk6OkV2ZW50
VHlwZUVudHJ5KToKKyAgICAgICAgKEV2ZW50VHlwZUVudHJ5KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVyLnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRMaXN0Um93LnByb3RvdHlwZS51cGRhdGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkR3JhcGhSb3cucHJvdG90eXBlLnVwZGF0
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1v
ZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
UmVjb3JkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
Lmluc2VydFJldHJvc3BlY2l0dmVSZWNvcmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3JkLnByb3RvdHlwZS5nZXQgaXNCYWNrZ3JvdW5kKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL3RpbWVsaW5lUGFuZWwuY3NzOgorICAgICAg
ICAoLnRpbWVsaW5lLXRyZWUtaXRlbS5iYWNrZ3JvdW5kIC50aW1lbGluZS10cmVlLWljb24pOgor
ICAgICAgICAoLnRpbWVsaW5lLWdyYXBoLXNpZGUuYmFja2dyb3VuZCAudGltZWxpbmUtZ3JhcGgt
YmFyKToKKwogMjAxMy0wMi0wMSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29t
PgogCiAgICAgICAgIEFYOiB3aGVuIGFyaWEtYWN0aXZlZGVzY2VuZGFudCBpcyB1c2VkIHdpdGgg
YSBDb21ib0JveCByb2xlLCBmb2N1cyBzaG91bGQgbm90IGJlIGNoYW5nZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggMmZkZWU3NzcyZDIzZDIxYjQxYWY0NmI0OWM5NWI1NTE0ODExZjVj
OC4uNGRiMWIyMzY1ZGIzYzI5OTJjMTIzYTAyYTNlZThhMmE5YjMzOGQ5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wMi0wMSAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHBsdW1i
IHRyYWNlIGV2ZW50cyB0byBUaW1lbGluZSBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1Nzk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUGx1bWIgdHJhY2UgZXZlbnRzIHRvIEluc3BlY3Rvci4K
KworICAgICAgICAqIHB1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xpZW50Lmg6CisgICAgICAgIChX
ZWJEZXZUb29sc0FnZW50Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2Vu
dENsaWVudDo6c2V0VHJhY2VFdmVudENhbGxiYWNrKToKKyAgICAgICAgKiBzcmMvSW5zcGVjdG9y
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudEltcGw6OnNl
dFRyYWNlRXZlbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9J
bnNwZWN0b3JDbGllbnRJbXBsLmg6CisgICAgICAgIChJbnNwZWN0b3JDbGllbnRJbXBsKToKKyAg
ICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJEZXZUb29sc0FnZW50SW1wbDo6c2V0VHJhY2VFdmVudENhbGxiYWNrKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmg6CisgICAgICAgIChX
ZWJEZXZUb29sc0FnZW50SW1wbCk6CisKIDIwMTMtMDItMDEgIEtlbiBLYW5pYSAgPGtrYW5pYUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHN1cHBvcnQgZm9yIGhh
bmRsaW5nIG1vZGFsIGRpYWxvZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGQ3MmNhMGZkZGJj
N2ZlZTUwOGFkOTZhMmUxMGNkY2JmZTRkNDkxNy4uNzRjMjQ4NmU2ZjMxZGFmN2QyODFiMzZiNmRk
ODE1YWVmOTM2MDQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2NTMsNiArMTY1Myw3IEBA
IHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBpbnNwZWN0b3IvU2NyaXB0Q2FsbEZyYW1lLmNwcAog
ICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suY3BwCiAgICAgaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5jcHAKKyAgICBpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vz
c29yLmNwcAogICAgIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCiAgICAgaW5zcGVj
dG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyN2ZlNzk4
MzFhZWIxMzliZjFiNTgxMGFmY2FmOTg3OTg2MDc4ZDU1Li5iNDY0NjMwYWU2M2I3ZDFiMmNiMzUw
OWVjZjE5YWFmM2UyZGVkNTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM4
NjUsNiArMzg2NSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckNvbnNvbGVBZ2VudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVi
dWdnZXJBZ2VudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggZmE4OTNhODBiZDAwZjI0Y2VhYTk4Y2Yx
NzE4Yjk4YjVmMjM5OWIxZi4uMDc1NjZlZjRlOGU0NGY0N2E2NGEzZTViZGMwOWQ5ZTRmNTU2OTJh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCkBAIC04MTEsNiArODExLDcgQEAgU09VUkNFUyArPSBcCiAgICAgaW5z
cGVjdG9yL1NjcmlwdENhbGxGcmFtZS5jcHAgXAogICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsU3Rh
Y2suY3BwIFwKICAgICBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBcCisgICAg
aW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgXAogICAgIGluc3BlY3Rv
ci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJB
Z2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggZGQ1ZGZhNjFmYzNmZTYwODcyODdiMGZlYmIzZTEyNTIxMWE2
OWFkNS4uN2I3ZWJjYzBjNTAyODUzNDQxMzdlOGQwZWY2OTA4OWFlM2FkYTA3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtMTkwNiw2ICsxOTA2LDggQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvU2Ny
aXB0R0NFdmVudExpc3RlbmVyLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9UaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3Bw
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmgnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDZiNjhmNjhiY2FmOTBiZDEx
MzNkZWJmMDBjYzRmYzdlM2YxZTE1ZjAuLjg0NzgxZDJlMTUwYjczNmUyNDgyYTNhMzA4Y2EyNGZl
MjU4OGI3MjUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC03NjY0OSw2ICs3NjY0OSwzMCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVj
dG9yXFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAg
ICAgICAgICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl
bGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZp
bGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmln
dXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZT4KKyAgICAgICAgICAgICAg
ICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZl
UGF0aD0iLi5caW5zcGVjdG9yXFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICA8L0Zp
bGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXFdvcmtlckNvbnNv
bGVBZ2VudC5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY2ZjY1ZWI5YTQ3Zjg3MGM2NGYyZDE4YWQ1MzdmODZh
MzE0NTY5ZTAuLjMwZWYzYzVhNDk1MzIwODAxMDQzYzk1YzRjNjQ2Y2E2OTFhZjMxMWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTEyNzUsNiArMTI3NSw4IEBACiAJCTQ2RjlENURGMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVz
c0N1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2RjlENURDMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgKi87IH07
CiAJCTQ5MDcwN0U2MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNDEyMTlD
MDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovOyB9OwogCQk0OTA3MDdFNzEy
MTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBB
TkdMRVdlYktpdEJyaWRnZS5oICovOyB9OworCQk0OTE0MDI1NjE2OEUwMkU4MDAyRDZDNkEgLyog
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MTQwMjU0MTY4RTAyQjQwMDJENkM2QSAvKiBUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwICovOyB9OworCQk0OTE0MDI1NzE2OEUwMkVDMDAyRDZD
NkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTE0MDI1NTE2OEUwMkI0MDAyRDZDNkEgLyogVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggKi87IH07CiAJCTQ5MTgyQjUyMTVEQ0U2RjAwMDU0
ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTE4MkI1MDE1RENFNkYwMDA1NDg0MTggLyogUGxh
dGZvcm1JbnN0cnVtZW50YXRpb24uY3BwICovOyB9OwogCQk0OTE4MkI1MzE1RENFNkYwMDA1NDg0
MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MTgyQjUxMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9y
bUluc3RydW1lbnRhdGlvbi5oICovOyB9OwogCQk0OTI4NjM5OTEyNTNCOEZDMDBGNzkyRDYgLyog
UmVzb3VyY2VMb2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDkyODYzOTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODYxOCw2
ICs4NjIwLDggQEAKIAkJNDZGOUQ1REMwQjBENjAxNzAwMjhFRTM2IC8qIHByb2dyZXNzQ3Vyc29y
LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGlt
YWdlLnBuZzsgcGF0aCA9IHByb2dyZXNzQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3RTUxMjE5QzA0MzAwRDkw
RTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5
MTQwMjU0MTY4RTAyQjQwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDkxNDAyNTUxNjhF
MDJCNDAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkxODJCNTAxNURDRTZGMDAwNTQ4NDE4IC8qIFBs
YXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDkxODJCNTExNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtSW5zdHJ1bWVu
dGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5Mjg2Mzk4MTI1M0I4RkMw
MEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlc291cmNlTG9hZEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE1MTg0LDYgKzE1MTg4LDggQEAKIAkJCQk5RkEzN0VGMDExNzJGRDQxMDBDNENENTUgLyogU2Ny
aXB0UHJvZmlsZU5vZGUuaWRsICovLAogCQkJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBU
aW1lbGluZVJlY29yZEZhY3RvcnkuY3BwICovLAogCQkJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgx
RSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLywKKwkJCQk0OTE0MDI1NDE2OEUwMkI0MDAy
RDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCAqLywKKwkJCQk0OTE0MDI1
NTE2OEUwMkI0MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggKi8sCiAJ
CQkJRjM4MjA4OEUxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgKi8s
CiAJCQkJRjM4MjA4OEYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5oICov
LAogCQkJCUYzNDc0MkRFMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmNw
cCAqLywKQEAgLTI2MzI1LDYgKzI2MzMxLDcgQEAKIAkJCQkyRTA3NzUzNDE2QjFCRDRDMDA0RDk5
MzYgLyogTWljcm9EYXRhQXR0cmlidXRlVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQky
OTE5QTFFOTE2QjMzNzY2MDA3ODcyMTMgLyogQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTdEQzY5RUQxNkI5RjUyQzAwOENGRDZGIC8qIEJhY2tncm91bmRIVE1MSW5wdXRTdHJl
YW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5MTQwMjU3MTY4RTAyRUMwMDJENkM2QSAvKiBUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjk0ODEsNiArMjk0
ODgsNyBAQAogCQkJCTJFMDc3NTMxMTZCMUJEMTMwMDREOTkzNiAvKiBNaWNyb0RhdGFBdHRyaWJ1
dGVUb2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkxOUExRUIxNkIzMzc4OTAwNzg3
MjEzIC8qIENvbnRlbnRGaWx0ZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5N0RDNjlFQzE2
QjlGNTI5MDA4Q0ZENkYgLyogQmFja2dyb3VuZEhUTUxJbnB1dFN0cmVhbS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk0OTE0MDI1NjE2OEUwMkU4MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uCmluZGV4IDZlMjRhYjc3MTQxMDVmOTNhNWE1YmM4OTI3NDU1NTQ1OTU3NzRiYjku
LmU3ZDA5ZmQ5ZDcxOWZmNjYyZTk3MTg4NDIyNDE4ZTAwYTQ0NmRlNWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTI1NzMsNiArMjU3Myw3IEBACiAgICAgICAg
ICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6
IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5n
IiwgImRlc2NyaXB0aW9uIjogIkV2ZW50IHR5cGUuIiB9LAorICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInRocmVhZCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJJZiBwcmVzZW50LCBpZGVudGlmaWVzIHRoZSB0aHJlYWQgdGhhdCBwcm9k
dWNlZCB0aGUgZXZlbnQuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRhdGEi
LCAidHlwZSI6ICJvYmplY3QiLCAiZGVzY3JpcHRpb24iOiAiRXZlbnQgZGF0YS4iIH0sCiAgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2hpbGRyZW4iLCAidHlwZSI6ICJhcnJheSIsICJv
cHRpb25hbCI6IHRydWUsICJpdGVtcyI6IHsgIiRyZWYiOiAiVGltZWxpbmVFdmVudCIgfSwgImRl
c2NyaXB0aW9uIjogIk5lc3RlZCByZWNvcmRzLiIgfQogICAgICAgICAgICAgICAgIF0sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAppbmRleCA5Yzlm
ZjIwODU5YzJkOGNiODU2MzQ3ZDY3YjgxMTMxYTdiYjg5ZWJmLi5iMTEzZGQ5ZWQyZjI2ZDdjZDg0
MjY0ZjEyZDU0NGQ0M2FkMzU0NzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBbGxJbk9uZS5jcHAKQEAgLTgzLDYgKzgzLDcgQEAKICNpbmNsdWRlICJTY3JpcHRD
YWxsRnJhbWUuY3BwIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5jcHAiCiAjaW5jbHVkZSAi
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCIKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3IuY3BwIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVBZ2VudC5jcHAiCiAjaW5jbHVk
ZSAiV29ya2VyRGVidWdnZXJBZ2VudC5jcHAiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgK
aW5kZXggYjlmOGY1NjEyZjQ3ZDU5NjNhZmFiODJkYzc5ZWZmN2ZiZjM0YzViZi4uM2M5NzEyOWFk
MzFjNjljNTQ5ZWNkZGMxYjhmNmZjZjFlZGU5NzQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDbGllbnQuaApAQCAtNTksNiArNTksMTEgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBjbGVhckJyb3dzZXJDb29raWVzKCkgeyB9CiAgICAgdmlydHVhbCBib29sIGNh
bk1vbml0b3JNYWluVGhyZWFkKCkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHR5cGVkZWYgdm9p
ZCAoKlRyYWNlRXZlbnRDYWxsYmFjaykoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQgY2hhcios
IGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51
bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciog
YXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1
bnNpZ25lZCBjaGFyIGZsYWdzKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVudENhbGxi
YWNrKFRyYWNlRXZlbnRDYWxsYmFjaykgeyB9CisKICAgICB2aXJ0dWFsIGJvb2wgY2FuT3ZlcnJp
ZGVEZXZpY2VNZXRyaWNzKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBv
dmVycmlkZURldmljZU1ldHJpY3MoaW50IC8qd2lkdGgqLywgaW50IC8qaGVpZ2h0Ki8sIGZsb2F0
IC8qZm9udFNjYWxlRmFjdG9yKi8sIGJvb2wgLypmaXRXaW5kb3cqLykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBhYzdh
ZGNiMGFhMzU2ZmU3NzBjZGZmYzMwMzk2OTI1NjY1NzhhMjU3Li43MzViYTQxNGJkZTk2MjNjNTY0
YTRiN2E4OGFiZTY1ZWViNjY0NjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqIENvcHly
aWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJU
aW1lbGluZVJlY29yZEZhY3RvcnkuaCIKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuaCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCkBAIC0xNzEsNiArMTcy
LDggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydChFcnJvclN0cmluZyosIGNv
bnN0IGludCogbWF4Q2FsbFN0YWNrRGVwdGgpCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5z
ZXRJbnNwZWN0b3JUaW1lbGluZUFnZW50KHRoaXMpOwogICAgIFNjcmlwdEdDRXZlbnQ6OmFkZEV2
ZW50TGlzdGVuZXIodGhpcyk7CiAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihUaW1lbGluZUFnZW50
U3RhdGU6OnRpbWVsaW5lQWdlbnRFbmFibGVkLCB0cnVlKTsKKyAgICBpZiAobV9jbGllbnQgJiYg
bV9wYWdlQWdlbnQpCisgICAgICAgIG1fdHJhY2VFdmVudFByb2Nlc3NvciA9IGFkb3B0UmVmKG5l
dyBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IobV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCksIG1fY2xpZW50KSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcChF
cnJvclN0cmluZyopCkBAIC0xNzgsNiArMTgxLDggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpzdG9wKEVycm9yU3RyaW5nKikKICAgICBpZiAoIW1fc3RhdGUtPmdldEJvb2xlYW4oVGlt
ZWxpbmVBZ2VudFN0YXRlOjp0aW1lbGluZUFnZW50RW5hYmxlZCkpCiAgICAgICAgIHJldHVybjsK
IAorICAgIG1fdHJhY2VFdmVudFByb2Nlc3Nvci5jbGVhcigpOworICAgIG1fd2Vha0ZhY3Rvcnku
cmV2b2tlQWxsKCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JUaW1l
bGluZUFnZW50KDApOwogICAgIFNjcmlwdEdDRXZlbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIodGhp
cyk7CiAKQEAgLTU2NCw2ICs1NjksNyBAQCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbgogICAgICwg
bV9wbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudEluc3RhbGxlZEF0U3RhY2tEZXB0aCgwKQog
ICAgICwgbV9pbnNwZWN0b3JUeXBlKHR5cGUpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCisgICAg
LCBtX3dlYWtGYWN0b3J5KHRoaXMpCiB7CiB9CiAKQEAgLTU3OSw2ICs1ODUsMTcgQEAgdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjphcHBlbmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGRhdGEsIGNvbnMKICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZC5yZWxlYXNl
KCksIHR5cGUsIGZyYW1lSWQpOwogfQogCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFw
cGVuZEJhY2tncm91bmRUaHJlYWRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRh
dGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGVuZFRpbWUs
IGNvbnN0IFN0cmluZyYgdGhyZWFkTmFtZSkKK3sKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQodGlt
ZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyhzdGFydFRpbWUpLCAwKTsKKyAgICByZWNvcmQtPnNldE9i
amVjdCgiZGF0YSIsIGRhdGEpOworICAgIHJlY29yZC0+c2V0U3RyaW5nKCJ0eXBlIiwgdHlwZSk7
CisgICAgcmVjb3JkLT5zZXRTdHJpbmcoInRocmVhZCIsIHRocmVhZE5hbWUpOworICAgIHJlY29y
ZC0+c2V0TnVtYmVyKCJlbmRUaW1lIiwgdGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyhlbmRUaW1l
KSk7CisgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudD4gcmVj
b3JkQ2hlY2tlZCA9IFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudDo6cnVudGlt
ZUNhc3QocmVjb3JkLnJlbGVhc2UoKSk7CisgICAgbV9mcm9udGVuZC0+ZXZlbnRSZWNvcmRlZChy
ZWNvcmRDaGVja2VkLnJlbGVhc2UoKSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6cHVzaEN1cnJlbnRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNv
bnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSogZnJhbWUsIGJv
b2wgaGFzTG93TGV2ZWxEZXRhaWxzKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwpAQCAt
NjI0LDYgKzY0MSwxMSBAQCBkb3VibGUgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dGltZXN0YW1w
RnJvbU1pY3Jvc2Vjb25kcyhkb3VibGUgbWljcm9zZWNvbmRzKQogICAgIHJldHVybiAobWljcm9z
ZWNvbmRzICsgbV90aW1lc3RhbXBPZmZzZXQpICogMTAwMC4wOwogfQogCitQYWdlKiBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpwYWdlKCkKK3sKKyAgICByZXR1cm4gbV9wYWdlQWdlbnQgPyBtX3Bh
Z2VBZ2VudC0+cGFnZSgpIDogMDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IGU3MDYyYTExODE4OGZhY2RkNTQzNGExMjEx
ZDNjN2ZjNWYwNmU5NjYuLmFiOWQ1YTFlNGExNGZiYjc4NmVmZjg2YWQ2ZDgwMDliYzE2NjMzOTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuaApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnRMaXN0ZW5lci5o
IgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV2
ZW50OwpAQCAtNTIsOSArNTMsMTEgQEAgY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwogY2xhc3Mg
SW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgSW50UmVj
dDsKK2NsYXNzIFBhZ2U7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xhc3MgVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIApAQCAtMTY2LDYgKzE2OSw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzaXplSW1hZ2UoKSBPVkVSUklERTsK
IAogcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
OworCiAgICAgc3RydWN0IFRpbWVsaW5lUmVjb3JkRW50cnkgewogICAgICAgICBUaW1lbGluZVJl
Y29yZEVudHJ5KFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQsIFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBjaGlsZHJl
biwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIHNpemVfdCB1c2Vk
SGVhcFNpemVBdFN0YXJ0KQogICAgICAgICAgICAgOiByZWNvcmQocmVjb3JkKSwgZGF0YShkYXRh
KSwgY2hpbGRyZW4oY2hpbGRyZW4pLCB0eXBlKHR5cGUpLCBmcmFtZUlkKGZyYW1lSWQpLCB1c2Vk
SGVhcFNpemVBdFN0YXJ0KHVzZWRIZWFwU2l6ZUF0U3RhcnQpCkBAIC0xODEsMjAgKzE4NiwyMiBA
QCBwcml2YXRlOgogICAgICAgICAKICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1l
bnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0
ZSosIEluc3BlY3RvclR5cGUsIEluc3BlY3RvckNsaWVudCopOwogCisgICAgdm9pZCBhcHBlbmRC
YWNrZ3JvdW5kVGhyZWFkUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBj
b25zdCBTdHJpbmcmIHR5cGUsIGRvdWJsZSBzdGFydFRpbWUsIGRvdWJsZSBlbmRUaW1lLCBjb25z
dCBTdHJpbmcmIHRocmVhZE5hbWUpOworICAgIHZvaWQgYXBwZW5kUmVjb3JkKFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wgY2FwdHVyZUNh
bGxTdGFjaywgRnJhbWUqKTsKICAgICB2b2lkIHB1c2hDdXJyZW50UmVjb3JkKFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3Rh
Y2ssIEZyYW1lKiwgYm9vbCBoYXNMb3dMZXZlbERldGFpbHMgPSBmYWxzZSk7Ci0gICAgdm9pZCBz
ZXRIZWFwU2l6ZVN0YXRpc3RpY3MoSW5zcGVjdG9yT2JqZWN0KiByZWNvcmQpOwotCiAgICAgdm9p
ZCBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoY29uc3QgU3RyaW5nJiB0eXBlKTsKKworICAgIHZv
aWQgc2V0SGVhcFNpemVTdGF0aXN0aWNzKEluc3BlY3Rvck9iamVjdCogcmVjb3JkKTsKKyAgICB2
b2lkIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwogICAgIHZvaWQgY29tbWl0RnJhbWVSZWNvcmQoKTsK
LSAgICB2b2lkIGFwcGVuZFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwg
Y29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKik7CisKICAg
ICB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CiAgICAgdm9pZCBpbm5l
ckFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBT
dHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7Ci0KLSAgICB2b2lkIHB1c2hHQ0V2
ZW50UmVjb3JkcygpOwogICAgIHZvaWQgY2xlYXJSZWNvcmRTdGFjaygpOwogCiAgICAgZG91Ymxl
IHRpbWVzdGFtcCgpOwogICAgIGRvdWJsZSB0aW1lc3RhbXBGcm9tTWljcm9zZWNvbmRzKGRvdWJs
ZSBtaWNyb3NlY29uZHMpOworICAgIFBhZ2UqIHBhZ2UoKTsKIAogICAgIEluc3BlY3RvclBhZ2VB
Z2VudCogbV9wYWdlQWdlbnQ7CiAKQEAgLTIyMCw2ICsyMjcsOCBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG1fcGVuZGluZ0ZyYW1lUmVjb3JkOwogICAgIEluc3BlY3Rv
clR5cGUgbV9pbnNwZWN0b3JUeXBlOwogICAgIEluc3BlY3RvckNsaWVudCogbV9jbGllbnQ7Cisg
ICAgV2Vha1B0ckZhY3Rvcnk8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gbV93ZWFrRmFjdG9yeTsK
KyAgICBSZWZQdHI8VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yPiBtX3RyYWNlRXZlbnRQcm9j
ZXNzb3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNiNjJjZjNlYjU4MjU0ZDdlZWNkYmIyYWFhNDJmZDNlMjVmN2MxZTMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yLmNwcApAQCAtMCwwICsxLDIwNCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisqIG1ldDoKKyoKKyogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorKiBkaXN0cmlidXRpb24uCisqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUg
IlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIgorCisjaW5jbHVkZSAiSW5zcGVjdG9yQ2xp
ZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSAi
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgorI2luY2x1ZGUgIlRpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oIgorCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3Mg
VHJhY2VFdmVudERpc3BhdGNoZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNlRXZl
bnREaXNwYXRjaGVyKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgVHJhY2VFdmVudERpc3BhdGNoZXIq
IGluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoVHJhY2VFdmVu
dERpc3BhdGNoZXIsIGluc3RhbmNlLCAoKSk7CisgICAgICAgIHJldHVybiAmaW5zdGFuY2U7Cisg
ICAgfQorCisgICAgdm9pZCBhZGRQcm9jZXNzb3IoVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
KiBwcm9jZXNzb3IsIEluc3BlY3RvckNsaWVudCogY2xpZW50KQorICAgIHsKKyAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworCisgICAgICAgIG1fcHJvY2Vzc29ycy5hcHBlbmQo
cHJvY2Vzc29yKTsKKyAgICAgICAgaWYgKG1fcHJvY2Vzc29ycy5zaXplKCkgPT0gMSkKKyAgICAg
ICAgICAgIGNsaWVudC0+c2V0VHJhY2VFdmVudENhbGxiYWNrKGRpc3BhdGNoRXZlbnRPbkFueVRo
cmVhZCk7CisgICAgfQorCisgICAgdm9pZCByZW1vdmVQcm9jZXNzb3IoVGltZWxpbmVUcmFjZUV2
ZW50UHJvY2Vzc29yKiBwcm9jZXNzb3IsIEluc3BlY3RvckNsaWVudCogY2xpZW50KQorICAgIHsK
KyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworCisgICAgICAgIHNpemVfdCBp
bmRleCA9IG1fcHJvY2Vzc29ycy5maW5kKHByb2Nlc3Nvcik7CisgICAgICAgIGlmIChpbmRleCA9
PSBub3RGb3VuZCkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9wcm9jZXNzb3JzW2luZGV4XSA9IG1f
cHJvY2Vzc29ycy5sYXN0KCk7CisgICAgICAgIG1fcHJvY2Vzc29ycy5yZW1vdmVMYXN0KCk7Cisg
ICAgICAgIGlmIChtX3Byb2Nlc3NvcnMuaXNFbXB0eSgpKQorICAgICAgICAgICAgY2xpZW50LT5z
ZXRUcmFjZUV2ZW50Q2FsbGJhY2soMCk7CisgICAgfQorCitwcml2YXRlOgorICAgIFRyYWNlRXZl
bnREaXNwYXRjaGVyKCkgeyB9CisKKyAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaEV2ZW50T25BbnlU
aHJlYWQoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQgY2hhciosIGNvbnN0IGNoYXIqIG5hbWUs
IHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51bUFyZ3MsIGNvbnN0IGNoYXIq
IGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlwZXMsIGNvbnN0IHVu
c2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdz
KQorICAgIHsKKyAgICAgICAgVHJhY2VFdmVudERpc3BhdGNoZXIqIHNlbGYgPSBpbnN0YW5jZSgp
OworICAgICAgICBWZWN0b3I8UmVmUHRyPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcj4gPiBw
cm9jZXNzb3JzOworICAgICAgICB7CisgICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoc2Vs
Zi0+bV9tdXRleCk7CisgICAgICAgICAgICBwcm9jZXNzb3JzID0gc2VsZi0+bV9wcm9jZXNzb3Jz
OworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwLCBzaXplID0gcHJvY2Vzc29ycy5z
aXplKCk7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgICAgIHByb2Nlc3NvcnNbaV0tPnByb2Nl
c3NFdmVudE9uQW55VGhyZWFkKHN0YXRpY19jYXN0PFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nv
cjo6VHJhY2VFdmVudFBoYXNlPihwaGFzZSksCisgICAgICAgICAgICAgICAgbmFtZSwgaWQsIG51
bUFyZ3MsIGFyZ05hbWVzLCBhcmdUeXBlcywgYXJnVmFsdWVzLCBmbGFncyk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBNdXRleCBtX211dGV4OworICAgIFZlY3RvcjxSZWZQdHI8VGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yPiA+IG1fcHJvY2Vzc29yczsKK307CisKK30gLy8gbmFtZXNwY2UK
K1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
KFdlYWtQdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gdGltZWxpbmVBZ2VudCwgSW5zcGVjdG9y
Q2xpZW50ICpjbGllbnQpCisgICAgOiBtX3RpbWVsaW5lQWdlbnQodGltZWxpbmVBZ2VudCkKKyAg
ICAsIG1faW5zcGVjdG9yQ2xpZW50KGNsaWVudCkKKyAgICAsIG1fcGFnZUlkKHJlaW50ZXJwcmV0
X2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX3RpbWVsaW5lQWdlbnQuZ2V0KCktPnBhZ2UoKSkp
Cit7CisgICAgVHJhY2VFdmVudERpc3BhdGNoZXI6Omluc3RhbmNlKCktPmFkZFByb2Nlc3Nvcih0
aGlzLCBtX2luc3BlY3RvckNsaWVudCk7Cit9CisKK1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nv
cjo6flRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcigpCit7CisgICAgVHJhY2VFdmVudERpc3Bh
dGNoZXI6Omluc3RhbmNlKCktPnJlbW92ZVByb2Nlc3Nvcih0aGlzLCBtX2luc3BlY3RvckNsaWVu
dCk7Cit9CisKK2NvbnN0IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VWYWx1ZVVu
aW9uJiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnBhcmFtZXRlcihj
b25zdCBjaGFyKiBuYW1lLCBUcmFjZVZhbHVlVHlwZXMgZXhwZWN0ZWRUeXBlKSBjb25zdAorewor
ICAgIHN0YXRpYyBUcmFjZVZhbHVlVW5pb24gbWlzc2luZ1ZhbHVlOworCisgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBtX2FyZ3VtZW50Q291bnQ7ICsraSkgeworICAgICAgICBpZiAoIXN0cmNtcChu
YW1lLCBtX2FyZ3VtZW50TmFtZXNbaV0pKSB7CisgICAgICAgICAgICBpZiAobV9hcmd1bWVudFR5
cGVzW2ldICE9IGV4cGVjdGVkVHlwZSkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgICAgIHJldHVybiBtaXNzaW5nVmFsdWU7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVHJhY2VWYWx1
ZVVuaW9uKj4obV9hcmd1bWVudFZhbHVlcyArIGkpOworICAgICAgICB9CisgICAgfQorICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBtaXNzaW5nVmFsdWU7Cit9CisKK3ZvaWQg
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpwcm9jZXNzRXZlbnRPbkFueVRocmVhZChUcmFj
ZUV2ZW50UGhhc2UgcGhhc2UsIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZywK
KyAgICBpbnQgbnVtQXJncywgY29uc3QgY2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMs
CisgICAgdW5zaWduZWQgY2hhcikKK3sKKyAgICBIYXNoTWFwPFN0cmluZywgRXZlbnRUeXBlRW50
cnk+OjppdGVyYXRvciBpdCA9IG1faGFuZGxlcnNCeVR5cGUuZmluZChuYW1lKTsKKyAgICBpZiAo
aXQgPT0gbV9oYW5kbGVyc0J5VHlwZS5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVHJh
Y2VFdmVudCBldmVudChXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBwaGFzZSwg
bmFtZSwgY3VycmVudFRocmVhZCgpLCBudW1BcmdzLCBhcmdOYW1lcywgYXJnVHlwZXMsIGFyZ1Zh
bHVlcyk7CisKKyAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7CisgICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX2JhY2tncm91bmRFdmVudHNNdXRleCk7CisgICAgICAgIG1fYmFja2dyb3VuZEV2
ZW50cy5hcHBlbmQoZXZlbnQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcHJvY2Vz
c0V2ZW50KGl0LT52YWx1ZSwgZXZlbnQpOworfQorCit2b2lkIFRpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvcjo6cHJvY2Vzc0V2ZW50KGNvbnN0IEV2ZW50VHlwZUVudHJ5JiBldmVudFR5cGVFbnRy
eSwgY29uc3QgVHJhY2VFdmVudCYgZXZlbnQpCit7CisgICAgVHJhY2VFdmVudEhhbmRsZXIgaGFu
ZGxlciA9IDA7CisgICAgc3dpdGNoIChldmVudC5waGFzZSgpKSB7CisgICAgY2FzZSBUcmFjZVBo
YXNlQmVnaW46CisgICAgICAgIGhhbmRsZXIgPSBldmVudFR5cGVFbnRyeS5tX2JlZ2luOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFRyYWNlUGhhc2VFbmQ6CisgICAgICAgIGhhbmRsZXIgPSBl
dmVudFR5cGVFbnRyeS5tX2VuZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUcmFjZVBoYXNl
SW5zdGFudDoKKyAgICAgICAgaGFuZGxlciA9IGV2ZW50VHlwZUVudHJ5Lm1faW5zdGFudDsKKyAg
ICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgfQorICAgIGlmICghaGFuZGxlcikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAodGhpcy0+KmhhbmRsZXIpKGV2ZW50KTsK
K30KKwordm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnNlbmRUaW1lbGluZVJlY29y
ZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiByZWNvcmRU
eXBlLCBkb3VibGUgc3RhcnRUaW1lLCBkb3VibGUgZW5kVGltZSwgY29uc3QgU3RyaW5nJiB0aHJl
YWQpCit7CisgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IG1fdGlt
ZWxpbmVBZ2VudC5nZXQoKTsKKyAgICBpZiAoIXRpbWVsaW5lQWdlbnQpCisgICAgICAgIHJldHVy
bjsKKyAgICB0aW1lbGluZUFnZW50LT5hcHBlbmRCYWNrZ3JvdW5kVGhyZWFkUmVjb3JkKGRhdGEs
IHJlY29yZFR5cGUsIHN0YXJ0VGltZSwgZW5kVGltZSwgdGhyZWFkKTsKK30KKwordm9pZCBUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NCYWNrZ3JvdW5kRXZlbnRzKCkKK3sKKyAg
ICBWZWN0b3I8VHJhY2VFdmVudD4gZXZlbnRzOworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fYmFja2dyb3VuZEV2ZW50c011dGV4KTsKKyAgICAgICAgZXZlbnRzLnJlc2VydmVD
YXBhY2l0eShtX2JhY2tncm91bmRFdmVudHMuY2FwYWNpdHkoKSk7CisgICAgICAgIG1fYmFja2dy
b3VuZEV2ZW50cy5zd2FwKGV2ZW50cyk7CisgICAgfQorICAgIGZvciAoc2l6ZV90IGkgPSAwLCBz
aXplID0gZXZlbnRzLnNpemUoKTsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBjb25zdCBUcmFj
ZUV2ZW50JiBldmVudCA9IGV2ZW50c1tpXTsKKyAgICAgICAgcHJvY2Vzc0V2ZW50KG1faGFuZGxl
cnNCeVR5cGUuZmluZChldmVudC5uYW1lKCkpLT52YWx1ZSwgZXZlbnQpOworICAgIH0KK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iOWM4ZjE5ODcyZTljOTVlYmYyZWRlMGEwZmJmN2VkOGMyYTRm
MzY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvci5oCkBAIC0wLDAgKzEsMTkxIEBACisvKgorKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyogbWV0OgorKgorKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisqIGRpc3RyaWJ1dGlvbi4KKyogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisqLworCisjaWZuZGVmIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcl9oCisjZGVmaW5l
IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcl9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQor
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJ
bnNwZWN0b3JDbGllbnQ7CitjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OworY2xhc3MgUGFn
ZTsKKworY2xhc3MgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcj4geworcHVibGljOgorICAg
IC8vIEZJWE1FOiByZS11c2UgZGVmaW5pdGlvbnMgaW4gVHJhY2VFdmVudC5oIG9uY2UgaXQncyBw
cm9tb3RlZCB0byBhbGwgcGxhdGZvcm1zLgorICAgIGVudW0gVHJhY2VFdmVudFBoYXNlIHsKKyAg
ICAgICAgVHJhY2VQaGFzZUJlZ2luID0gJ0InLAorICAgICAgICBUcmFjZVBoYXNlRW5kID0gJ0Un
LAorICAgICAgICBUcmFjZVBoYXNlSW5zdGFudCA9ICdJJworICAgIH07CisKKyAgICBUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3IoV2Vha1B0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiwgSW5z
cGVjdG9yQ2xpZW50Kik7CisgICAgflRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcigpOworCisg
ICAgdm9pZCBwcm9jZXNzRXZlbnRPbkFueVRocmVhZChUcmFjZUV2ZW50UGhhc2UsIGNvbnN0IGNo
YXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51bUFyZ3MsIGNv
bnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlwZXMs
IGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1bnNpZ25lZCBj
aGFyIGZsYWdzKTsKKyAgICAKK3ByaXZhdGU6CisgICAgLy8gRklYTUU6IHVzZSB0aGUgZGVmaW5p
dGlvbiBpbiBUcmFjZUV2ZW50Lmggb25jZSB3ZSBleHBvc2UgdGhlIGxhdHRlciB0byBhbGwgcGxh
Zm9ybXMuCisgICAgdW5pb24gVHJhY2VWYWx1ZVVuaW9uIHsKKyAgICAgICAgYm9vbCBtX2Jvb2w7
CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3VpbnQ7CisgICAgICAgIGxvbmcgbG9uZyBt
X2ludDsKKyAgICAgICAgZG91YmxlIG1fZG91YmxlOworICAgICAgICBjb25zdCB2b2lkKiBtX3Bv
aW50ZXI7CisgICAgICAgIGNvbnN0IGNoYXIqIG1fc3RyaW5nOworICAgIH07CisKKyAgICBlbnVt
IFRyYWNlVmFsdWVUeXBlcyB7CisgICAgICAgIFR5cGVCb29sID0gMSwKKyAgICAgICAgVHlwZVVJ
bnQgPSAyLAorICAgICAgICBUeXBlSW50ID0gMywKKyAgICAgICAgVHlwZURvdWJsZSA9IDQsCisg
ICAgICAgIFR5cGVQb2ludGVyID0gNSwKKyAgICAgICAgVHlwZVN0cmluZyA9IDYsCisgICAgICAg
IFR5cGVDb3B5U3RyaW5nID0gNworICAgIH07CisKKyAgICBjbGFzcyBUcmFjZUV2ZW50IHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIFRyYWNlRXZlbnQoKQorICAgICAgICAgICAgOiBtX2FyZ3VtZW50
Q291bnQoMCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgVHJhY2VFdmVudChkb3Vi
bGUgdGltZXN0YW1wLCBUcmFjZUV2ZW50UGhhc2UgcGhhc2UsIGNvbnN0IGNoYXIqIG5hbWUsIFRo
cmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciwKKyAgICAgICAgICAgIGludCBhcmd1bWVu
dENvdW50LCBjb25zdCBjaGFyKiBjb25zdCogYXJndW1lbnROYW1lcywgY29uc3QgdW5zaWduZWQg
Y2hhciogYXJndW1lbnRUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmd1bWVudFZh
bHVlcykKKyAgICAgICAgICAgIDogbV90aW1lc3RhbXAodGltZXN0YW1wKQorICAgICAgICAgICAg
LCBtX3BoYXNlKHBoYXNlKQorICAgICAgICAgICAgLCBtX25hbWUobmFtZSkKKyAgICAgICAgICAg
ICwgbV90aHJlYWRJZGVudGlmaWVyKHRocmVhZElkZW50aWZpZXIpCisgICAgICAgICAgICAsIG1f
YXJndW1lbnRDb3VudChhcmd1bWVudENvdW50KQorICAgICAgICAgICAgLCBtX2FyZ3VtZW50TmFt
ZXMoYXJndW1lbnROYW1lcykKKyAgICAgICAgICAgICwgbV9hcmd1bWVudFR5cGVzKGFyZ3VtZW50
VHlwZXMpCisgICAgICAgICAgICAsIG1fYXJndW1lbnRWYWx1ZXMoYXJndW1lbnRWYWx1ZXMpCisg
ICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGRvdWJsZSB0aW1lc3RhbXAoKSBjb25zdCB7
IHJldHVybiBtX3RpbWVzdGFtcDsgfQorICAgICAgICBUcmFjZUV2ZW50UGhhc2UgcGhhc2UoKSBj
b25zdCB7IHJldHVybiBtX3BoYXNlOyB9CisgICAgICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25z
dCB7IHJldHVybiBtX25hbWU7IH0KKyAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV90aHJlYWRJZGVudGlmaWVyOyB9CisgICAgICAgIGlu
dCBhcmd1bWVudENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9hcmd1bWVudENvdW50OyB9CisKKyAg
ICAgICAgYm9vbCBhc0Jvb2woY29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAgICAgICAgeyAKKyAg
ICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFtZSwgVHlwZUJvb2wpLm1fYm9vbDsKKyAgICAg
ICAgfQorICAgICAgICBsb25nIGxvbmcgYXNJbnQoY29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAg
ICAgICAgeyAKKyAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFtZSwgVHlwZUludCkubV9p
bnQ7CisgICAgICAgIH0KKyAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGFzVUludChjb25zdCBj
aGFyKiBuYW1lKSBjb25zdCAKKyAgICAgICAgeyAKKyAgICAgICAgICAgIHJldHVybiBwYXJhbWV0
ZXIobmFtZSwgVHlwZVVJbnQpLm1fdWludDsKKyAgICAgICAgfQorICAgICAgICBkb3VibGUgYXNE
b3VibGUoY29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAgICAgICAgeyAKKyAgICAgICAgICAgIHJl
dHVybiBwYXJhbWV0ZXIobmFtZSwgVHlwZURvdWJsZSkubV9kb3VibGU7CisgICAgICAgIH0KKyAg
ICAgICAgY29uc3QgY2hhciogYXNTdHJpbmcoY29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIHBhcmFtZXRlcihuYW1lLCBUeXBlU3RyaW5nKS5tX3N0
cmluZzsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3QgVHJhY2VWYWx1
ZVVuaW9uJiBwYXJhbWV0ZXIoY29uc3QgY2hhciogbmFtZSwgVHJhY2VWYWx1ZVR5cGVzIGV4cGVj
dGVkVHlwZSkgY29uc3Q7CisKKyAgICAgICAgZG91YmxlIG1fdGltZXN0YW1wOworICAgICAgICBU
cmFjZUV2ZW50UGhhc2UgbV9waGFzZTsKKyAgICAgICAgY29uc3QgY2hhciogbV9uYW1lOworICAg
ICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSWRlbnRpZmllcjsKKyAgICAgICAgaW50IG1f
YXJndW1lbnRDb3VudDsKKyAgICAgICAgY29uc3QgY2hhciogY29uc3QqIG1fYXJndW1lbnROYW1l
czsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogbV9hcmd1bWVudFR5cGVzOworICAgICAg
ICBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIG1fYXJndW1lbnRWYWx1ZXM7CisgICAgfTsKKwor
ICAgIHR5cGVkZWYgdm9pZCAoVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjoqVHJhY2VFdmVu
dEhhbmRsZXIpKGNvbnN0IFRyYWNlRXZlbnQmKTsKKworICAgIHN0cnVjdCBFdmVudFR5cGVFbnRy
eSB7CisgICAgICAgIEV2ZW50VHlwZUVudHJ5KCkKKyAgICAgICAgICAgIDogbV9iZWdpbigwKQor
ICAgICAgICAgICAgLCBtX2VuZCgwKQorICAgICAgICAgICAgLCBtX2luc3RhbnQoMCkKKyAgICAg
ICAgeworICAgICAgICB9CisgICAgICAgIGV4cGxpY2l0IEV2ZW50VHlwZUVudHJ5KFRyYWNlRXZl
bnRIYW5kbGVyIGluc3RhbnQpCisgICAgICAgICAgICA6IG1fYmVnaW4oMCkKKyAgICAgICAgICAg
ICwgbV9lbmQoMCkKKyAgICAgICAgICAgICwgbV9pbnN0YW50KGluc3RhbnQpCisgICAgICAgIHsK
KyAgICAgICAgfQorICAgICAgICBFdmVudFR5cGVFbnRyeShUcmFjZUV2ZW50SGFuZGxlciBiZWdp
biwgVHJhY2VFdmVudEhhbmRsZXIgZW5kKQorICAgICAgICAgICAgOiBtX2JlZ2luKGJlZ2luKQor
ICAgICAgICAgICAgLCBtX2VuZChlbmQpCisgICAgICAgICAgICAsIG1faW5zdGFudCgwKQorICAg
ICAgICB7CisgICAgICAgIH0KKworICAgICAgICBUcmFjZUV2ZW50SGFuZGxlciBtX2JlZ2luOwor
ICAgICAgICBUcmFjZUV2ZW50SGFuZGxlciBtX2VuZDsKKyAgICAgICAgVHJhY2VFdmVudEhhbmRs
ZXIgbV9pbnN0YW50OworICAgIH07CisKKyAgICB2b2lkIHByb2Nlc3NCYWNrZ3JvdW5kRXZlbnRz
KCk7CisgICAgdm9pZCBzZW5kVGltZWxpbmVSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYgcmVjb3JkVHlwZSwgZG91YmxlIHN0YXJ0VGltZSwgZG91
YmxlIGVuZFRpbWUsIGNvbnN0IFN0cmluZyYgdGhyZWFkKTsKKyAgICB2b2lkIHByb2Nlc3NFdmVu
dChjb25zdCBFdmVudFR5cGVFbnRyeSYsIGNvbnN0IFRyYWNlRXZlbnQmKTsKKworICAgIFdlYWtQ
dHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gbV90aW1lbGluZUFnZW50OworICAgIEluc3BlY3Rv
ckNsaWVudCogbV9pbnNwZWN0b3JDbGllbnQ7CisKKyAgICBIYXNoTWFwPFN0cmluZywgRXZlbnRU
eXBlRW50cnk+IG1faGFuZGxlcnNCeVR5cGU7CisgICAgTXV0ZXggbV9iYWNrZ3JvdW5kRXZlbnRz
TXV0ZXg7CisgICAgVmVjdG9yPFRyYWNlRXZlbnQ+IG1fYmFja2dyb3VuZEV2ZW50czsKKyAgICB1
bnNpZ25lZCBsb25nIGxvbmcgbV9wYWdlSWQ7Cit9OworCisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCisjZW5kaWYgLy8gIWRlZmluZWQoVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1lQ29udHJvbGxlci5qcwppbmRl
eCBlYTEwNTk0ZGIzOTI4Y2MzN2ZlZWU5ODUxZTBjZjNkMWQ2MDQxOGZkLi44MWViYzFmZDE1MTUy
MDUwMzRiODFhNjg5ZGZiYjk0ODllM2ExMmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMK
QEAgLTYyLDYgKzYyLDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVyLnBy
b3RvdHlwZSA9IHsKICAgICBfYWRkUmVjb3JkOiBmdW5jdGlvbihyZWNvcmQpCiAgICAgewogICAg
ICAgICB2YXIgcmVjb3JkczsKKyAgICAgICAgaWYgKHJlY29yZC5pc0JhY2tncm91bmQpCisgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5Qcm9ncmFtKQogICAgICAgICAgICAgcmVjb3JkcyA9
IHJlY29yZFsiY2hpbGRyZW4iXSB8fCBbXTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IGEzM2Jl
ZWU0NDY0NmRhYmI4Yzk0MzkwYWVjNzI5ODNlNzkxNGNmMGIuLjMyNzNjZjRmMGFjZTY1NTBiMjEz
MjYzMmUwZmQxOTRkODEwZmNiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTEzMzgsNiArMTMzOCw4IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZVJlY29yZExpc3RSb3cucHJvdG90eXBlID0gewogICAgICAgICAgICAg
dGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoIndhcm5pbmciKTsKICAgICAgICAgZWxzZSBpZiAo
cmVjb3JkLmNoaWxkSGFzV2FybmluZykKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRTdHls
ZUNsYXNzKCJjaGlsZC13YXJuaW5nIik7CisgICAgICAgIGlmIChyZWNvcmQuaXNCYWNrZ3JvdW5k
KQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImJhY2tncm91bmQiKTsK
IAogICAgICAgICB0aGlzLl90eXBlRWxlbWVudC50ZXh0Q29udGVudCA9IHJlY29yZC50aXRsZTsK
IApAQCAtMTQxMCw3ICsxNDEyLDEyIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZEdyYXBo
Um93LnByb3RvdHlwZSA9IHsKICAgICB1cGRhdGU6IGZ1bmN0aW9uKHJlY29yZCwgaXNFdmVuLCBj
YWxjdWxhdG9yLCBleHBhbmRPZmZzZXQsIGluZGV4KQogICAgIHsKICAgICAgICAgdGhpcy5fcmVj
b3JkID0gcmVjb3JkOwotICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gInRpbWVsaW5l
LWdyYXBoLXNpZGUgdGltZWxpbmUtY2F0ZWdvcnktIiArIHJlY29yZC5jYXRlZ29yeS5uYW1lICsg
KGlzRXZlbiA/ICIgZXZlbiIgOiAiIik7CisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUg
PSAidGltZWxpbmUtZ3JhcGgtc2lkZSB0aW1lbGluZS1jYXRlZ29yeS0iICsgcmVjb3JkLmNhdGVn
b3J5Lm5hbWU7CisgICAgICAgIGlmIChpc0V2ZW4pCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQu
YWRkU3R5bGVDbGFzcygiZXZlbiIpOworICAgICAgICBpZiAocmVjb3JkLmlzQmFja2dyb3VuZCkK
KyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJiYWNrZ3JvdW5kIik7CisK
ICAgICAgICAgdmFyIGJhclBvc2l0aW9uID0gY2FsY3VsYXRvci5jb21wdXRlQmFyR3JhcGhXaW5k
b3dQb3NpdGlvbihyZWNvcmQpOwogICAgICAgICB0aGlzLl9iYXJXaXRoQ2hpbGRyZW5FbGVtZW50
LnN0eWxlLmxlZnQgPSBiYXJQb3NpdGlvbi5sZWZ0ICsgInB4IjsKICAgICAgICAgdGhpcy5fYmFy
V2l0aENoaWxkcmVuRWxlbWVudC5zdHlsZS53aWR0aCA9IGJhclBvc2l0aW9uLndpZHRoV2l0aENo
aWxkcmVuICsgInB4IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCBiMDBiNTk2
OGY1MjBmNzc0MmM2MmExNDNmYTRlNTlhMjMzNmUzNjJjLi43ZTliNzM5NmY5ODFiNzBkOWY0NmEx
MzQ3OWEwNjFhN2Q1ZDM4NTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC01
MTMsNyArNTEzLDEwIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLlJl
Y29yZCA9IGZ1bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsLCByZWNvCiAgICAgdGhpcy5fY2hpbGRy
ZW4gPSBbXTsKICAgICBpZiAoIWhpZGRlbiAmJiBwYXJlbnRSZWNvcmQpIHsKICAgICAgICAgdGhp
cy5wYXJlbnQgPSBwYXJlbnRSZWNvcmQ7Ci0gICAgICAgIHBhcmVudFJlY29yZC5jaGlsZHJlbi5w
dXNoKHRoaXMpOworICAgICAgICBpZiAodGhpcy5pc0JhY2tncm91bmQgJiYgcGFyZW50UmVjb3Jk
ID09PSBwcmVzZW50YXRpb25Nb2RlbC5fcm9vdFJlY29yZCkKKyAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmluc2VydFJldHJvc3BlY2l0dmVSZWNvcmQo
cGFyZW50UmVjb3JkLCB0aGlzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcGFyZW50UmVj
b3JkLmNoaWxkcmVuLnB1c2godGhpcyk7CiAgICAgfQogICAgIGlmIChvcmlnaW4pCiAgICAgICAg
IHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKQEAgLTYxMywxMiArNjE2LDggQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3JkID0gZnVuY3Rpb24ocHJlc2VudGF0aW9u
TW9kZWwsIHJlY28KICAgICAgICAgICAgICAgICB2YXIgb3BlblJlY29yZCA9IHJlY29yZFN0YWNr
W2luZGV4IC0gMV07CiAgICAgICAgICAgICAgICAgaWYgKG9wZW5SZWNvcmQuc3RhcnRUaW1lID4g
dGltZVJlY29yZC5zdGFydFRpbWUpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVTdGFydFRpbWUodmFsdWUsIHJlY29yZCkKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA8IHJlY29y
ZC5zdGFydFRpbWUgPyAtMSA6IDE7Ci0gICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IHRpbWVSZWNvcmQucGFyZW50LmNoaWxkcmVuLnNwbGljZSh0aW1lUmVjb3JkLnBhcmVudC5jaGls
ZHJlbi5pbmRleE9mKHRpbWVSZWNvcmQpKTsKLSAgICAgICAgICAgICAgICBvcGVuUmVjb3JkLmNo
aWxkcmVuLnNwbGljZShpbnNlcnRpb25JbmRleEZvck9iamVjdEluTGlzdFNvcnRlZEJ5RnVuY3Rp
b24odGltZVJlY29yZC5zdGFydFRpbWUsIG9wZW5SZWNvcmQuY2hpbGRyZW4sIGNvbXBhcmVTdGFy
dFRpbWUpLCAwLCB0aW1lUmVjb3JkKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5pbnNlcnRSZXRyb3NwZWNpdHZlUmVjb3JkKG9wZW5SZWNv
cmQsIHRpbWVSZWNvcmQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC02NTAsNiArNjQ5LDE2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLlJlY29yZCA9IGZ1bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsLCByZWNvCiAg
ICAgfQogfQogCitXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5pbnNlcnRS
ZXRyb3NwZWNpdHZlUmVjb3JkID0gZnVuY3Rpb24ocGFyZW50LCByZWNvcmQpCit7CisgICAgZnVu
Y3Rpb24gY29tcGFyZVN0YXJ0VGltZSh2YWx1ZSwgcmVjb3JkKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHZhbHVlIDwgcmVjb3JkLnN0YXJ0VGltZSA/IC0xIDogMTsKKyAgICB9CisgICAgCisgICAg
cGFyZW50LmNoaWxkcmVuLnNwbGljZShpbnNlcnRpb25JbmRleEZvck9iamVjdEluTGlzdFNvcnRl
ZEJ5RnVuY3Rpb24ocmVjb3JkLnN0YXJ0VGltZSwgcGFyZW50LmNoaWxkcmVuLCBjb21wYXJlU3Rh
cnRUaW1lKSwgMCwgcmVjb3JkKTsKK30KKwogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuUmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICBnZXQgbGFzdENoaWxkRW5kVGltZSgp
CiAgICAgewpAQCAtNzUwLDYgKzc1OSwxNCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5SZWNvcmQucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAg
KiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLworICAgIGdldCBpc0JhY2tncm91bmQoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuICEhdGhpcy5fcmVjb3JkLnRocmVhZDsKKyAgICB9LAorCisgICAg
LyoqCiAgICAgICogQHJldHVybiB7T2JqZWN0fQogICAgICAqLwogICAgIGdldCBkYXRhKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGltZWxpbmVQYW5l
bC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RpbWVsaW5lUGFuZWwu
Y3NzCmluZGV4IGE3YWJkNTFlNmYwZjc0ZjVhYTJmOGQ4OTc0MWViMGFkMTJmNDc0M2UuLjEwN2Zh
MDhhMjhhYWJhYzkwMDRhMjYzODZiM2JlYmQ0ZWM3ZDcyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGltZWxpbmVQYW5lbC5jc3MKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90aW1lbGluZVBhbmVsLmNzcwpAQCAtMjY3LDYg
KzI2NywxMCBAQAogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKIH0KIAorLnRpbWVsaW5lLXRyZWUt
aXRlbS5iYWNrZ3JvdW5kIC50aW1lbGluZS10cmVlLWljb24geworICAgIGJhY2tncm91bmQ6IG5v
bmUgIWltcG9ydGFudDsKK30KKwogLnRpbWVsaW5lLXRyZWUtaXRlbS5ldmVuIHsKICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpOwogfQpAQCAtMzU4LDYgKzM2MiwxNSBA
QAogICAgIG9wYWNpdHk6IDAuNzsKIH0KIAorLnRpbWVsaW5lLWdyYXBoLXNpZGUuYmFja2dyb3Vu
ZCAudGltZWxpbmUtZ3JhcGgtYmFyIHsKKyAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1w
b3J0YW50OworfQorCisudGltZWxpbmUtZ3JhcGgtc2lkZS5iYWNrZ3JvdW5kIC50aW1lbGluZS1n
cmFwaC1iYXIgeworICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7CisgICAg
Ym9yZGVyLXdpZHRoOiAycHg7Cit9CisKIC50aW1lbGluZS1ncmFwaC1zaWRlLmV2ZW4gewogICAg
IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xpZW50LmgKaW5k
ZXggYTFmNmE2ZGE0ZTNhZGY3N2U1NWVhMTBkY2MwODc1ZTVjNGZjYzYxYi4uZjZkMzA4NThjM2Mw
NGQ0ODExNGU4N2IyYTQ4NDgzNWQxZjhiMjEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaApAQCAtNzcsNiArNzcs
MTIgQEAgcHVibGljOgogICAgIH07CiAgICAgdmlydHVhbCB2b2lkIGR1bXBVbmNvdW50ZWRBbGxv
Y2F0ZWRPYmplY3RzKGNvbnN0IEluc3RydW1lbnRlZE9iamVjdFNpemVQcm92aWRlciopIHsgfQog
CisgICAgdHlwZWRlZiB2b2lkICgqVHJhY2VFdmVudENhbGxiYWNrKShjaGFyIHBoYXNlLCBjb25z
dCB1bnNpZ25lZCBjaGFyKiwgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlk
LAorICAgICAgICBpbnQgbnVtQXJncywgY29uc3QgY2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25z
dCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdW
YWx1ZXMsCisgICAgICAgIHVuc2lnbmVkIGNoYXIgZmxhZ3MpOworCisgICAgdmlydHVhbCB2b2lk
IHNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJhY2spIHsgfQorCiBwcm90ZWN0
ZWQ6CiAgICAgfldlYkRldlRvb2xzQWdlbnRDbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwCmluZGV4IGU5NGRm
OWE3YjE4ZjQ5OGViZjM4YmExODIwZWViODYzYzkyNTljZmUuLjIyNTA2ZjM1NzZmODQxOTUzMmVm
MDk2NzcxZDZhNjBmZGJiNDhjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwCkBAIC0yMTgsNiArMjE4LDEyIEBAIGJvb2wgSW5z
cGVjdG9yQ2xpZW50SW1wbDo6aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFjY2VwdCkKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ2xpZW50SW1wbDo6c2V0VHJhY2VF
dmVudENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBpZiAoV2Vi
RGV2VG9vbHNBZ2VudEltcGwqIGFnZW50ID0gZGV2VG9vbHNBZ2VudCgpKQorICAgICAgICBhZ2Vu
dC0+c2V0VHJhY2VFdmVudENhbGxiYWNrKGNhbGxiYWNrKTsKK30KKwogV2ViRGV2VG9vbHNBZ2Vu
dEltcGwqIEluc3BlY3RvckNsaWVudEltcGw6OmRldlRvb2xzQWdlbnQoKQogewogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxXZWJEZXZUb29sc0FnZW50SW1wbCo+KG1faW5zcGVjdGVkV2ViVmlldy0+
ZGV2VG9vbHNBZ2VudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0luc3BlY3RvckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3Bl
Y3RvckNsaWVudEltcGwuaAppbmRleCBkMTczZmNhMjdlMDUyYjgzNDQxMmY4NGM4NTI2NWU1MTg2
MzBmMzhkLi43ZGNkZTRlYjE2YjUxZjMzOGZjOTBlM2E5YzdiN2UzZDk3YWRmMjYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oCkBAIC04
OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcFVuY291bnRlZEFsbG9j
YXRlZE9iamVjdHMoY29uc3QgSGFzaE1hcDxjb25zdCB2b2lkKiwgc2l6ZV90PiYpOwogCiAgICAg
dmlydHVhbCBib29sIGNhcHR1cmVTY3JlZW5zaG90KFdURjo6U3RyaW5nKiBkYXRhKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVudENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjayk7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFjY2VwdCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmNwcAppbmRleCA0ZWE0NjBhMTBiNjA4OTFjYTVlZWVjZGFhOGYzNzM1NTljZTgxOGIzLi45ZmUx
Y2NmOTIxZTgzNDY4NTNkZjMyZTgwNGM1YWJhMTNmYzQzM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC01OTEsNiAr
NTkxLDExIEBAIGJvb2wgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmhhbmRsZUphdmFTY3JpcHREaWFs
b2coYm9vbCBhY2NlcHQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgV2ViRGV2VG9vbHNB
Z2VudEltcGw6OnNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJhY2sgY2FsbGJh
Y2spCit7CisgICAgbV9jbGllbnQtPnNldFRyYWNlRXZlbnRDYWxsYmFjayhjYWxsYmFjayk7Cit9
CisKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5k
KGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpbnNwZWN0b3JDb250cm9sbGVyKCkt
PmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChtZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCmluZGV4IDVlOGYyNDU5NGM0
YmM0NDJmZGVmMmRkMzAyMzkxMzdjYTI0ZmJiZmQuLjUwOTE5MWZlOTgxYzA5ZjUxOWU3NjM3Zjgx
ZTZiODA2YTE1YjFkNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkRldlRvb2xzQWdlbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RGV2VG9vbHNBZ2VudEltcGwuaApAQCAtMTEwLDYgKzExMCw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBnZXRBbGxvY2F0ZWRPYmplY3RzKEhhc2hTZXQ8Y29uc3Qgdm9pZCo+Jik7CiAg
ICAgdmlydHVhbCB2b2lkIGR1bXBVbmNvdW50ZWRBbGxvY2F0ZWRPYmplY3RzKGNvbnN0IEhhc2hN
YXA8Y29uc3Qgdm9pZCosIHNpemVfdD4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVu
dENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjayk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FwdHVy
ZVNjcmVlbnNob3QoV1RGOjpTdHJpbmcqIGRhdGEpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186015</attachid>
            <date>2013-02-01 05:03:34 -0800</date>
            <delta_ts>2013-02-04 08:38:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105796-20130201170016.patch</filename>
            <type>text/plain</type>
            <size>36751</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJmNzAwYTI2NDg2ZDc5
MGZkMTQ4YmYyZDAxOTE4YzdiOTM3YzE4MS4uZGQxMzk2MmY1MDU0MDEzMWE1YTU3MWZkYjc4MTZk
MmYxYWE1ZjJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTAyLTAxICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHBsdW1iIHRyYWNlIGV2ZW50cyB0byBU
aW1lbGluZTsKKyAgICAgICAgLSBhZGQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yIHRvIHBy
b2Nlc3Mgc2VsZWN0ZWQgdHJhY2UgZXZlbnRzOworICAgICAgICAtIGVtaXQgdGltZWxpbmUgZXZl
bnRzIGZyb20gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLgorCisgICAgICAgIE5vdGUgdGhh
dCBhY3R1YWwgZXZlbnQgcHJvY2Vzc2luZyBsb2dpYyBpcyBhIHNlcGFyYXRlIGNoYW5nZS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNv
bjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaDoKKyAgICAgICAgKEluc3BlY3RvckNsaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OnNldFRyYWNlRXZlbnRDYWxsYmFj
ayk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
cGFnZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAg
ICAgICogaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6On5UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNz
b3IpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFj
ZUV2ZW50OjpwYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yOjpwcm9jZXNzRXZlbnRPbkFueVRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnNlbmRUaW1lbGluZVJlY29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NCYWNr
Z3JvdW5kRXZlbnRzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChUaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IpOgorICAgICAgICAoVHJhY2VFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OlRyYWNlRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFjZUV2
ZW50Ojp0aW1lc3RhbXApOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yOjpUcmFjZUV2ZW50OjpwaGFzZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6Om5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFjZUV2ZW50Ojp0aHJlYWRJZGVudGlmaWVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VF
dmVudDo6YXJndW1lbnRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OmFzQm9vbCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OmFzSW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6YXNVSW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVu
dDo6YXNEb3VibGUpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vz
c29yOjpUcmFjZUV2ZW50Ojphc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3I6OkV2ZW50VHlwZUVudHJ5OjpFdmVudFR5cGVFbnRyeSk6CisgICAg
ICAgIChFdmVudFR5cGVFbnRyeSk6CisKIDIwMTMtMDItMDEgIENocmlzIEZsZWl6YWNoICA8Y2Zs
ZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogd2hlbiBhcmlhLWFjdGl2ZWRlc2NlbmRh
bnQgaXMgdXNlZCB3aXRoIGEgQ29tYm9Cb3ggcm9sZSwgZm9jdXMgc2hvdWxkIG5vdCBiZSBjaGFu
Z2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDJmZGVlNzc3MmQyM2QyMWI0MWFmNDZi
NDljOTViNTUxNDgxMWY1YzguLjBjY2M4MWUyMTVmY2VjNmM4MjlhYjkyZjZlNGYzZWZlNTc1MzZm
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDIt
MDEgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBwbHVtYiB0cmFjZSBldmVudHMgdG8gVGltZWxpbmUgYWdlbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTc5NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdW1iIHRyYWNlIGV2ZW50
cyB0byBJbnNwZWN0b3IuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVu
dC5oOgorICAgICAgICAoV2ViRGV2VG9vbHNBZ2VudENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkRldlRvb2xzQWdlbnRDbGllbnQ6OnNldFRyYWNlRXZlbnRDYWxsYmFjayk6CisgICAgICAg
ICogc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0
b3JDbGllbnRJbXBsOjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKiBzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoSW5zcGVjdG9y
Q2xpZW50SW1wbCk6CisKIDIwMTMtMDItMDEgIEtlbiBLYW5pYSAgPGtrYW5pYUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHN1cHBvcnQgZm9yIGhhbmRsaW5nIG1v
ZGFsIGRpYWxvZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGQ3MmNhMGZkZGJjN2ZlZTUwOGFk
OTZhMmUxMGNkY2JmZTRkNDkxNy4uNzRjMjQ4NmU2ZjMxZGFmN2QyODFiMzZiNmRkODE1YWVmOTM2
MDQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2NTMsNiArMTY1Myw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICBpbnNwZWN0b3IvU2NyaXB0Q2FsbEZyYW1lLmNwcAogICAgIGluc3Bl
Y3Rvci9TY3JpcHRDYWxsU3RhY2suY3BwCiAgICAgaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAKKyAgICBpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcAog
ICAgIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL1dvcmtl
ckRlYnVnZ2VyQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyN2ZlNzk4MzFhZWIxMzli
ZjFiNTgxMGFmY2FmOTg3OTg2MDc4ZDU1Li5iNDY0NjMwYWU2M2I3ZDFiMmNiMzUwOWVjZjE5YWFm
M2UyZGVkNTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM4NjUsNiArMzg2
NSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Nj
cmlwdEdDRXZlbnRMaXN0ZW5lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
Q29uc29sZUFnZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNv
bGVBZ2VudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2Vu
dC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggZmE4OTNhODBiZDAwZjI0Y2VhYTk4Y2YxNzE4Yjk4YjVm
MjM5OWIxZi4uMDc1NjZlZjRlOGU0NGY0N2E2NGEzZTViZGMwOWQ5ZTRmNTU2OTJhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCkBAIC04MTEsNiArODExLDcgQEAgU09VUkNFUyArPSBcCiAgICAgaW5zcGVjdG9yL1Nj
cmlwdENhbGxGcmFtZS5jcHAgXAogICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suY3BwIFwK
ICAgICBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBcCisgICAgaW5zcGVjdG9y
L1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgXAogICAgIGluc3BlY3Rvci9Xb3JrZXJD
b25zb2xlQWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAg
XAogICAgIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggZGQ1ZGZhNjFmYzNmZTYwODcyODdiMGZlYmIzZTEyNTIxMWE2OWFkNS4uN2I3
ZWJjYzBjNTAyODUzNDQxMzdlOGQwZWY2OTA4OWFlM2FkYTA3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtMTkwNiw2ICsxOTA2LDggQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvU2NyaXB0R0NFdmVu
dExpc3RlbmVyLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rv
cnkuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmgn
LAorICAgICAgICAgICAgJ2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3Bw
JywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmgnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDZiNjhmNjhiY2FmOTBiZDExMzNkZWJmMDBj
YzRmYzdlM2YxZTE1ZjAuLjg0NzgxZDJlMTUwYjczNmUyNDgyYTNhMzA4Y2EyNGZlMjU4OGI3MjUg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03
NjY0OSw2ICs3NjY0OSwzMCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXFRpbWVs
aW5lUmVjb3JkRmFjdG9yeS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAgICAgICAg
ICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0
aD0iLi5caW5zcGVjdG9yXFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1
cmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iUHJv
ZHVjdGlvbnxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2wK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Lz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4K
KyAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZT4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5c
aW5zcGVjdG9yXFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+CiAJCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXFdvcmtlckNvbnNvbGVBZ2VudC5j
cHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGY2ZjY1ZWI5YTQ3Zjg3MGM2NGYyZDE4YWQ1MzdmODZhMzE0NTY5ZTAu
LjMwZWYzYzVhNDk1MzIwODAxMDQzYzk1YzRjNjQ2Y2E2OTFhZjMxMWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNzUsNiAr
MTI3NSw4IEBACiAJCTQ2RjlENURGMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5w
bmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RjlE
NURDMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgKi87IH07CiAJCTQ5MDcw
N0U2MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNDEyMTlDMDQzMDBEOTBF
NTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovOyB9OwogCQk0OTA3MDdFNzEyMTlDMDQzMDBE
OTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktp
dEJyaWRnZS5oICovOyB9OworCQk0OTE0MDI1NjE2OEUwMkU4MDAyRDZDNkEgLyogVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5MTQwMjU0MTY4RTAyQjQwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3IuY3BwICovOyB9OworCQk0OTE0MDI1NzE2OEUwMkVDMDAyRDZDNkEgLyogVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTE0MDI1NTE2OEUwMkI0MDAyRDZDNkEgLyogVGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yLmggKi87IH07CiAJCTQ5MTgyQjUyMTVEQ0U2RjAwMDU0ODQxOCAvKiBQ
bGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTE4MkI1MDE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0
cnVtZW50YXRpb24uY3BwICovOyB9OwogCQk0OTE4MkI1MzE1RENFNkYwMDA1NDg0MTggLyogUGxh
dGZvcm1JbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5MTgyQjUxMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1l
bnRhdGlvbi5oICovOyB9OwogCQk0OTI4NjM5OTEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3VyY2VM
b2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDkyODYzOTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODYxOCw2ICs4NjIwLDgg
QEAKIAkJNDZGOUQ1REMwQjBENjAxNzAwMjhFRTM2IC8qIHByb2dyZXNzQ3Vyc29yLnBuZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsg
cGF0aCA9IHByb2dyZXNzQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFO
R0xFV2ViS2l0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFOR0xF
V2ViS2l0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5MTQwMjU0MTY4
RTAyQjQwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDkxNDAyNTUxNjhFMDJCNDAwMkQ2
QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDkxODJCNTAxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5z
dHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBs
YXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDkxODJCNTExNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5Mjg2Mzk4MTI1M0I4RkMwMEY3OTJENiAv
KiBSZXNvdXJjZUxvYWRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
c291cmNlTG9hZEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MTg0LDYg
KzE1MTg4LDggQEAKIAkJCQk5RkEzN0VGMDExNzJGRDQxMDBDNENENTUgLyogU2NyaXB0UHJvZmls
ZU5vZGUuaWRsICovLAogCQkJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwICovLAogCQkJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1l
bGluZVJlY29yZEZhY3RvcnkuaCAqLywKKwkJCQk0OTE0MDI1NDE2OEUwMkI0MDAyRDZDNkEgLyog
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCAqLywKKwkJCQk0OTE0MDI1NTE2OEUwMkI0
MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggKi8sCiAJCQkJRjM4MjA4
OEUxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgKi8sCiAJCQkJRjM4
MjA4OEYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5oICovLAogCQkJCUYz
NDc0MkRFMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCAqLywKQEAg
LTI2MzI1LDYgKzI2MzMxLDcgQEAKIAkJCQkyRTA3NzUzNDE2QjFCRDRDMDA0RDk5MzYgLyogTWlj
cm9EYXRhQXR0cmlidXRlVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyOTE5QTFFOTE2
QjMzNzY2MDA3ODcyMTMgLyogQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdE
QzY5RUQxNkI5RjUyQzAwOENGRDZGIC8qIEJhY2tncm91bmRIVE1MSW5wdXRTdHJlYW0uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQ5MTQwMjU3MTY4RTAyRUMwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjk0ODEsNiArMjk0ODgsNyBAQAog
CQkJCTJFMDc3NTMxMTZCMUJEMTMwMDREOTkzNiAvKiBNaWNyb0RhdGFBdHRyaWJ1dGVUb2tlbkxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkxOUExRUIxNkIzMzc4OTAwNzg3MjEzIC8qIENv
bnRlbnRGaWx0ZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5N0RDNjlFQzE2QjlGNTI5MDA4
Q0ZENkYgLyogQmFja2dyb3VuZEhUTUxJbnB1dFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk0OTE0MDI1NjE2OEUwMkU4MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBbGxJbk9uZS5jcHAKaW5kZXggOWM5ZmYyMDg1OWMyZDhjYjg1NjM0N2Q2N2I4MTEzMWE3YmI4
OWViZi4uYjExM2RkOWVkMmYyNmQ3Y2Q4NDI2NGYxMmQ1NDRkNDNhZDM1NDc3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCkBAIC04Myw2ICs4
Myw3IEBACiAjaW5jbHVkZSAiU2NyaXB0Q2FsbEZyYW1lLmNwcCIKICNpbmNsdWRlICJTY3JpcHRD
YWxsU3RhY2suY3BwIgogI2luY2x1ZGUgIlRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAiCisjaW5j
bHVkZSAiVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCIKICNpbmNsdWRlICJXb3JrZXJD
b25zb2xlQWdlbnQuY3BwIgogI2luY2x1ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIgogI2lu
Y2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNsaWVudC5oCmluZGV4IGI5ZjhmNTYxMmY0N2Q1OTYzYWZhYjgyZGM3
OWVmZjdmYmYzNGM1YmYuLjNjOTcxMjlhZDMxYzY5YzU0OWVjZGRjMWI4ZjZmY2YxZWRlOTc0ODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTU5LDYg
KzU5LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJCcm93c2VyQ29va2llcygp
IHsgfQogICAgIHZpcnR1YWwgYm9vbCBjYW5Nb25pdG9yTWFpblRocmVhZCgpIHsgcmV0dXJuIGZh
bHNlOyB9CiAKKyAgICB0eXBlZGVmIHZvaWQgKCpUcmFjZUV2ZW50Q2FsbGJhY2spKGNoYXIgcGhh
c2UsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBsb25n
IGxvbmcgaWQsCisgICAgICAgIGludCBudW1BcmdzLCBjb25zdCBjaGFyKiBjb25zdCogYXJnTmFt
ZXMsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ1R5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxv
bmcqIGFyZ1ZhbHVlcywKKyAgICAgICAgdW5zaWduZWQgY2hhciBmbGFncyk7CisgICAgdmlydHVh
bCB2b2lkIHNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJhY2spIHsgfQorCiAg
ICAgdmlydHVhbCBib29sIGNhbk92ZXJyaWRlRGV2aWNlTWV0cmljcygpIHsgcmV0dXJuIGZhbHNl
OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgb3ZlcnJpZGVEZXZpY2VNZXRyaWNzKGludCAvKndpZHRo
Ki8sIGludCAvKmhlaWdodCovLCBmbG9hdCAvKmZvbnRTY2FsZUZhY3RvciovLCBib29sIC8qZml0
V2luZG93Ki8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHAKaW5kZXggYWM3YWRjYjBhYTM1NmZlNzcwY2RmZmMzMDM5NjkyNTY2NTc4
YTI1Ny4uNzEyODI1NTFkODYwZmY0OGZmYWI1ODk3YmNmNWQzZDRmNmZhZDk5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0qIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTUxLDYg
KzUxLDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgiCisjaW5jbHVk
ZSAiVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgiCiAKICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KIApAQCAtMTcxLDYgKzE3Miw4IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6c3RhcnQoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIG1heENhbGxTdGFja0RlcHRoKQogICAg
IG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yVGltZWxpbmVBZ2VudCh0aGlzKTsK
ICAgICBTY3JpcHRHQ0V2ZW50OjphZGRFdmVudExpc3RlbmVyKHRoaXMpOwogICAgIG1fc3RhdGUt
PnNldEJvb2xlYW4oVGltZWxpbmVBZ2VudFN0YXRlOjp0aW1lbGluZUFnZW50RW5hYmxlZCwgdHJ1
ZSk7CisgICAgaWYgKG1fY2xpZW50ICYmIG1fcGFnZUFnZW50KQorICAgICAgICBtX3RyYWNlRXZl
bnRQcm9jZXNzb3IgPSBhZG9wdFJlZihuZXcgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKG1f
d2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBtX2NsaWVudCkpOwogfQogCiB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OnN0b3AoRXJyb3JTdHJpbmcqKQpAQCAtMTc4LDYgKzE4MSw4IEBA
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcChFcnJvclN0cmluZyopCiAgICAgaWYg
KCFtX3N0YXRlLT5nZXRCb29sZWFuKFRpbWVsaW5lQWdlbnRTdGF0ZTo6dGltZWxpbmVBZ2VudEVu
YWJsZWQpKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX3RyYWNlRXZlbnRQcm9jZXNzb3IuY2xl
YXIoKTsKKyAgICBtX3dlYWtGYWN0b3J5LnJldm9rZUFsbCgpOwogICAgIG1faW5zdHJ1bWVudGlu
Z0FnZW50cy0+c2V0SW5zcGVjdG9yVGltZWxpbmVBZ2VudCgwKTsKICAgICBTY3JpcHRHQ0V2ZW50
OjpyZW1vdmVFdmVudExpc3RlbmVyKHRoaXMpOwogCkBAIC01NjQsNiArNTY5LDcgQEAgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW4KICAgICAsIG1fcGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnRJ
bnN0YWxsZWRBdFN0YWNrRGVwdGgoMCkKICAgICAsIG1faW5zcGVjdG9yVHlwZSh0eXBlKQogICAg
ICwgbV9jbGllbnQoY2xpZW50KQorICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQogewogfQogCkBA
IC02MjQsNiArNjMwLDExIEBAIGRvdWJsZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0aW1lc3Rh
bXBGcm9tTWljcm9zZWNvbmRzKGRvdWJsZSBtaWNyb3NlY29uZHMpCiAgICAgcmV0dXJuIChtaWNy
b3NlY29uZHMgKyBtX3RpbWVzdGFtcE9mZnNldCkgKiAxMDAwLjA7CiB9CiAKK1BhZ2UqIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OnBhZ2UoKQoreworICAgIHJldHVybiBtX3BhZ2VBZ2VudCA/IG1f
cGFnZUFnZW50LT5wYWdlKCkgOiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggZTcwNjJhMTE4MTg4ZmFjZGQ1NDM0YTEy
MTFkM2M3ZmM1ZjA2ZTk2Ni4uNzVmMDI0MzdjMGNmZDMzZDRlYjczNmViNjQ3MDM5ZTA4YjMyYzE4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiU2NyaXB0R0NFdmVudExpc3RlbmVy
LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
RXZlbnQ7CkBAIC01Miw5ICs1MywxMSBAQCBjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFz
cyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBJbnRS
ZWN0OworY2xhc3MgUGFnZTsKIGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFJlc291cmNlUmVx
dWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3I7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCkBAIC0xNjYsNiArMTY5
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXNpemVJbWFnZSgpIE9WRVJSSURF
OwogCiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNz
b3I7CisKICAgICBzdHJ1Y3QgVGltZWxpbmVSZWNvcmRFbnRyeSB7CiAgICAgICAgIFRpbWVsaW5l
UmVjb3JkRW50cnkoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCwgUGFzc1JlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGNoaWxk
cmVuLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgc2l6ZV90IHVz
ZWRIZWFwU2l6ZUF0U3RhcnQpCiAgICAgICAgICAgICA6IHJlY29yZChyZWNvcmQpLCBkYXRhKGRh
dGEpLCBjaGlsZHJlbihjaGlsZHJlbiksIHR5cGUodHlwZSksIGZyYW1lSWQoZnJhbWVJZCksIHVz
ZWRIZWFwU2l6ZUF0U3RhcnQodXNlZEhlYXBTaXplQXRTdGFydCkKQEAgLTE5NSw2ICsyMDAsNyBA
QCBwcml2YXRlOgogCiAgICAgZG91YmxlIHRpbWVzdGFtcCgpOwogICAgIGRvdWJsZSB0aW1lc3Rh
bXBGcm9tTWljcm9zZWNvbmRzKGRvdWJsZSBtaWNyb3NlY29uZHMpOworICAgIFBhZ2UqIHBhZ2Uo
KTsKIAogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAKQEAgLTIyMCw2ICsy
MjYsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG1fcGVuZGluZ0Zy
YW1lUmVjb3JkOwogICAgIEluc3BlY3RvclR5cGUgbV9pbnNwZWN0b3JUeXBlOwogICAgIEluc3Bl
Y3RvckNsaWVudCogbV9jbGllbnQ7CisgICAgV2Vha1B0ckZhY3Rvcnk8SW5zcGVjdG9yVGltZWxp
bmVBZ2VudD4gbV93ZWFrRmFjdG9yeTsKKyAgICBSZWZQdHI8VGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yPiBtX3RyYWNlRXZlbnRQcm9jZXNzb3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2
ZW50UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiNjJjZjNlYjU4MjU0ZDdlZWNkYmIyYWFh
NDJmZDNlMjVmN2MxZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcApAQCAtMCwwICsxLDIwNCBAQAorLyoK
KyogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisq
CisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisqIG1ldDoKKyoKKyogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
Kyogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorKiBkaXN0cmlidXRpb24u
CisqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxF
KElOU1BFQ1RPUikKKworI2luY2x1ZGUgIlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIgor
CisjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgorI2luY2x1
ZGUgIlRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIgorCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3Bl
Y2lmaWMuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworbmFtZXNwYWNlIHsKKworY2xhc3MgVHJhY2VFdmVudERpc3BhdGNoZXIgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFRyYWNlRXZlbnREaXNwYXRjaGVyKTsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgVHJhY2VFdmVudERpc3BhdGNoZXIqIGluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoVHJhY2VFdmVudERpc3BhdGNoZXIsIGluc3RhbmNlLCAoKSk7CisgICAg
ICAgIHJldHVybiAmaW5zdGFuY2U7CisgICAgfQorCisgICAgdm9pZCBhZGRQcm9jZXNzb3IoVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKiBwcm9jZXNzb3IsIEluc3BlY3RvckNsaWVudCogY2xp
ZW50KQorICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworCisgICAg
ICAgIG1fcHJvY2Vzc29ycy5hcHBlbmQocHJvY2Vzc29yKTsKKyAgICAgICAgaWYgKG1fcHJvY2Vz
c29ycy5zaXplKCkgPT0gMSkKKyAgICAgICAgICAgIGNsaWVudC0+c2V0VHJhY2VFdmVudENhbGxi
YWNrKGRpc3BhdGNoRXZlbnRPbkFueVRocmVhZCk7CisgICAgfQorCisgICAgdm9pZCByZW1vdmVQ
cm9jZXNzb3IoVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKiBwcm9jZXNzb3IsIEluc3BlY3Rv
ckNsaWVudCogY2xpZW50KQorICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0
ZXgpOworCisgICAgICAgIHNpemVfdCBpbmRleCA9IG1fcHJvY2Vzc29ycy5maW5kKHByb2Nlc3Nv
cik7CisgICAgICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkgeworICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
bV9wcm9jZXNzb3JzW2luZGV4XSA9IG1fcHJvY2Vzc29ycy5sYXN0KCk7CisgICAgICAgIG1fcHJv
Y2Vzc29ycy5yZW1vdmVMYXN0KCk7CisgICAgICAgIGlmIChtX3Byb2Nlc3NvcnMuaXNFbXB0eSgp
KQorICAgICAgICAgICAgY2xpZW50LT5zZXRUcmFjZUV2ZW50Q2FsbGJhY2soMCk7CisgICAgfQor
Citwcml2YXRlOgorICAgIFRyYWNlRXZlbnREaXNwYXRjaGVyKCkgeyB9CisKKyAgICBzdGF0aWMg
dm9pZCBkaXNwYXRjaEV2ZW50T25BbnlUaHJlYWQoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQg
Y2hhciosIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAg
aW50IG51bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQg
Y2hhciogYXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAg
ICAgICB1bnNpZ25lZCBjaGFyIGZsYWdzKQorICAgIHsKKyAgICAgICAgVHJhY2VFdmVudERpc3Bh
dGNoZXIqIHNlbGYgPSBpbnN0YW5jZSgpOworICAgICAgICBWZWN0b3I8UmVmUHRyPFRpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvcj4gPiBwcm9jZXNzb3JzOworICAgICAgICB7CisgICAgICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIoc2VsZi0+bV9tdXRleCk7CisgICAgICAgICAgICBwcm9jZXNz
b3JzID0gc2VsZi0+bV9wcm9jZXNzb3JzOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkg
PSAwLCBzaXplID0gcHJvY2Vzc29ycy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAg
ICAgIHByb2Nlc3NvcnNbaV0tPnByb2Nlc3NFdmVudE9uQW55VGhyZWFkKHN0YXRpY19jYXN0PFRp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudFBoYXNlPihwaGFzZSksCisgICAg
ICAgICAgICAgICAgbmFtZSwgaWQsIG51bUFyZ3MsIGFyZ05hbWVzLCBhcmdUeXBlcywgYXJnVmFs
dWVzLCBmbGFncyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBNdXRleCBtX211dGV4OworICAg
IFZlY3RvcjxSZWZQdHI8VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yPiA+IG1fcHJvY2Vzc29y
czsKK307CisKK30gLy8gbmFtZXNwY2UKK1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKFdlYWtQdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4g
dGltZWxpbmVBZ2VudCwgSW5zcGVjdG9yQ2xpZW50ICpjbGllbnQpCisgICAgOiBtX3RpbWVsaW5l
QWdlbnQodGltZWxpbmVBZ2VudCkKKyAgICAsIG1faW5zcGVjdG9yQ2xpZW50KGNsaWVudCkKKyAg
ICAsIG1fcGFnZUlkKHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX3RpbWVs
aW5lQWdlbnQuZ2V0KCktPnBhZ2UoKSkpCit7CisgICAgVHJhY2VFdmVudERpc3BhdGNoZXI6Omlu
c3RhbmNlKCktPmFkZFByb2Nlc3Nvcih0aGlzLCBtX2luc3BlY3RvckNsaWVudCk7Cit9CisKK1Rp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6flRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcigp
Cit7CisgICAgVHJhY2VFdmVudERpc3BhdGNoZXI6Omluc3RhbmNlKCktPnJlbW92ZVByb2Nlc3Nv
cih0aGlzLCBtX2luc3BlY3RvckNsaWVudCk7Cit9CisKK2NvbnN0IFRpbWVsaW5lVHJhY2VFdmVu
dFByb2Nlc3Nvcjo6VHJhY2VWYWx1ZVVuaW9uJiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6
OlRyYWNlRXZlbnQ6OnBhcmFtZXRlcihjb25zdCBjaGFyKiBuYW1lLCBUcmFjZVZhbHVlVHlwZXMg
ZXhwZWN0ZWRUeXBlKSBjb25zdAoreworICAgIHN0YXRpYyBUcmFjZVZhbHVlVW5pb24gbWlzc2lu
Z1ZhbHVlOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2FyZ3VtZW50Q291bnQ7ICsraSkg
eworICAgICAgICBpZiAoIXN0cmNtcChuYW1lLCBtX2FyZ3VtZW50TmFtZXNbaV0pKSB7CisgICAg
ICAgICAgICBpZiAobV9hcmd1bWVudFR5cGVzW2ldICE9IGV4cGVjdGVkVHlwZSkgeworICAgICAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIHJldHVybiBt
aXNzaW5nVmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gKnJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgVHJhY2VWYWx1ZVVuaW9uKj4obV9hcmd1bWVudFZhbHVlcyArIGkpOwor
ICAgICAgICB9CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBt
aXNzaW5nVmFsdWU7Cit9CisKK3ZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpwcm9j
ZXNzRXZlbnRPbkFueVRocmVhZChUcmFjZUV2ZW50UGhhc2UgcGhhc2UsIGNvbnN0IGNoYXIqIG5h
bWUsIHVuc2lnbmVkIGxvbmcgbG9uZywKKyAgICBpbnQgbnVtQXJncywgY29uc3QgY2hhciogY29u
c3QqIGFyZ05hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5zaWdu
ZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMsCisgICAgdW5zaWduZWQgY2hhcikKK3sKKyAgICBIYXNo
TWFwPFN0cmluZywgRXZlbnRUeXBlRW50cnk+OjppdGVyYXRvciBpdCA9IG1faGFuZGxlcnNCeVR5
cGUuZmluZChuYW1lKTsKKyAgICBpZiAoaXQgPT0gbV9oYW5kbGVyc0J5VHlwZS5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgVHJhY2VFdmVudCBldmVudChXVEY6Om1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpLCBwaGFzZSwgbmFtZSwgY3VycmVudFRocmVhZCgpLCBudW1BcmdzLCBh
cmdOYW1lcywgYXJnVHlwZXMsIGFyZ1ZhbHVlcyk7CisKKyAgICBpZiAoIWlzTWFpblRocmVhZCgp
KSB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2JhY2tncm91bmRFdmVudHNNdXRleCk7
CisgICAgICAgIG1fYmFja2dyb3VuZEV2ZW50cy5hcHBlbmQoZXZlbnQpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgcHJvY2Vzc0V2ZW50KGl0LT52YWx1ZSwgZXZlbnQpOworfQorCit2
b2lkIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6cHJvY2Vzc0V2ZW50KGNvbnN0IEV2ZW50
VHlwZUVudHJ5JiBldmVudFR5cGVFbnRyeSwgY29uc3QgVHJhY2VFdmVudCYgZXZlbnQpCit7Cisg
ICAgVHJhY2VFdmVudEhhbmRsZXIgaGFuZGxlciA9IDA7CisgICAgc3dpdGNoIChldmVudC5waGFz
ZSgpKSB7CisgICAgY2FzZSBUcmFjZVBoYXNlQmVnaW46CisgICAgICAgIGhhbmRsZXIgPSBldmVu
dFR5cGVFbnRyeS5tX2JlZ2luOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRyYWNlUGhhc2VF
bmQ6CisgICAgICAgIGhhbmRsZXIgPSBldmVudFR5cGVFbnRyeS5tX2VuZDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBUcmFjZVBoYXNlSW5zdGFudDoKKyAgICAgICAgaGFuZGxlciA9IGV2ZW50
VHlwZUVudHJ5Lm1faW5zdGFudDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIGlmICghaGFuZGxlcikgeworICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAo
dGhpcy0+KmhhbmRsZXIpKGV2ZW50KTsKK30KKwordm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3I6OnNlbmRUaW1lbGluZVJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0
YSwgY29uc3QgU3RyaW5nJiByZWNvcmRUeXBlLCBkb3VibGUgc3RhcnRUaW1lLCBkb3VibGUgZW5k
VGltZSwgY29uc3QgU3RyaW5nJiB0aHJlYWQpCit7CisgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCogdGltZWxpbmVBZ2VudCA9IG1fdGltZWxpbmVBZ2VudC5nZXQoKTsKKyAgICBpZiAoIXRpbWVs
aW5lQWdlbnQpCisgICAgICAgIHJldHVybjsKKyAgICB0aW1lbGluZUFnZW50LT5hcHBlbmRCYWNr
Z3JvdW5kVGhyZWFkUmVjb3JkKGRhdGEsIHJlY29yZFR5cGUsIHN0YXJ0VGltZSwgZW5kVGltZSwg
dGhyZWFkKTsKK30KKwordm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NC
YWNrZ3JvdW5kRXZlbnRzKCkKK3sKKyAgICBWZWN0b3I8VHJhY2VFdmVudD4gZXZlbnRzOworICAg
IHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYmFja2dyb3VuZEV2ZW50c011dGV4KTsK
KyAgICAgICAgZXZlbnRzLnJlc2VydmVDYXBhY2l0eShtX2JhY2tncm91bmRFdmVudHMuY2FwYWNp
dHkoKSk7CisgICAgICAgIG1fYmFja2dyb3VuZEV2ZW50cy5zd2FwKGV2ZW50cyk7CisgICAgfQor
ICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gZXZlbnRzLnNpemUoKTsgaSA8IHNpemU7ICsr
aSkgeworICAgICAgICBjb25zdCBUcmFjZUV2ZW50JiBldmVudCA9IGV2ZW50c1tpXTsKKyAgICAg
ICAgcHJvY2Vzc0V2ZW50KG1faGFuZGxlcnNCeVR5cGUuZmluZChldmVudC5uYW1lKCkpLT52YWx1
ZSwgZXZlbnQpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWM4ZjE5ODcyZTlj
OTVlYmYyZWRlMGEwZmJmN2VkOGMyYTRmMzY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oCkBAIC0wLDAgKzEs
MTkxIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyogbWV0OgorKgorKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisqIGRp
c3RyaWJ1dGlvbi4KKyogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVmIFRpbWVsaW5lVHJhY2VF
dmVudFByb2Nlc3Nvcl9oCisjZGVmaW5lIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcl9oCisK
KyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CitjbGFzcyBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OworY2xhc3MgUGFnZTsKKworY2xhc3MgVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvcj4geworcHVibGljOgorICAgIC8vIEZJWE1FOiByZS11c2UgZGVmaW5pdGlvbnMgaW4g
VHJhY2VFdmVudC5oIG9uY2UgaXQncyBwcm9tb3RlZCB0byBhbGwgcGxhdGZvcm1zLgorICAgIGVu
dW0gVHJhY2VFdmVudFBoYXNlIHsKKyAgICAgICAgVHJhY2VQaGFzZUJlZ2luID0gJ0InLAorICAg
ICAgICBUcmFjZVBoYXNlRW5kID0gJ0UnLAorICAgICAgICBUcmFjZVBoYXNlSW5zdGFudCA9ICdJ
JworICAgIH07CisKKyAgICBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IoV2Vha1B0cjxJbnNw
ZWN0b3JUaW1lbGluZUFnZW50PiwgSW5zcGVjdG9yQ2xpZW50Kik7CisgICAgflRpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3NvcigpOworCisgICAgdm9pZCBwcm9jZXNzRXZlbnRPbkFueVRocmVhZChU
cmFjZUV2ZW50UGhhc2UsIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwK
KyAgICAgICAgaW50IG51bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3Qg
dW5zaWduZWQgY2hhciogYXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFs
dWVzLAorICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdzKTsKKyAgICAKK3ByaXZhdGU6CisgICAg
Ly8gRklYTUU6IHVzZSB0aGUgZGVmaW5pdGlvbiBpbiBUcmFjZUV2ZW50Lmggb25jZSB3ZSBleHBv
c2UgdGhlIGxhdHRlciB0byBhbGwgcGxhZm9ybXMuCisgICAgdW5pb24gVHJhY2VWYWx1ZVVuaW9u
IHsKKyAgICAgICAgYm9vbCBtX2Jvb2w7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3Vp
bnQ7CisgICAgICAgIGxvbmcgbG9uZyBtX2ludDsKKyAgICAgICAgZG91YmxlIG1fZG91YmxlOwor
ICAgICAgICBjb25zdCB2b2lkKiBtX3BvaW50ZXI7CisgICAgICAgIGNvbnN0IGNoYXIqIG1fc3Ry
aW5nOworICAgIH07CisKKyAgICBlbnVtIFRyYWNlVmFsdWVUeXBlcyB7CisgICAgICAgIFR5cGVC
b29sID0gMSwKKyAgICAgICAgVHlwZVVJbnQgPSAyLAorICAgICAgICBUeXBlSW50ID0gMywKKyAg
ICAgICAgVHlwZURvdWJsZSA9IDQsCisgICAgICAgIFR5cGVQb2ludGVyID0gNSwKKyAgICAgICAg
VHlwZVN0cmluZyA9IDYsCisgICAgICAgIFR5cGVDb3B5U3RyaW5nID0gNworICAgIH07CisKKyAg
ICBjbGFzcyBUcmFjZUV2ZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRyYWNlRXZlbnQoKQor
ICAgICAgICAgICAgOiBtX2FyZ3VtZW50Q291bnQoMCkKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICAgICAgVHJhY2VFdmVudChkb3VibGUgdGltZXN0YW1wLCBUcmFjZUV2ZW50UGhhc2UgcGhh
c2UsIGNvbnN0IGNoYXIqIG5hbWUsIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciwK
KyAgICAgICAgICAgIGludCBhcmd1bWVudENvdW50LCBjb25zdCBjaGFyKiBjb25zdCogYXJndW1l
bnROYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJndW1lbnRUeXBlcywgY29uc3QgdW5zaWdu
ZWQgbG9uZyBsb25nKiBhcmd1bWVudFZhbHVlcykKKyAgICAgICAgICAgIDogbV90aW1lc3RhbXAo
dGltZXN0YW1wKQorICAgICAgICAgICAgLCBtX3BoYXNlKHBoYXNlKQorICAgICAgICAgICAgLCBt
X25hbWUobmFtZSkKKyAgICAgICAgICAgICwgbV90aHJlYWRJZGVudGlmaWVyKHRocmVhZElkZW50
aWZpZXIpCisgICAgICAgICAgICAsIG1fYXJndW1lbnRDb3VudChhcmd1bWVudENvdW50KQorICAg
ICAgICAgICAgLCBtX2FyZ3VtZW50TmFtZXMoYXJndW1lbnROYW1lcykKKyAgICAgICAgICAgICwg
bV9hcmd1bWVudFR5cGVzKGFyZ3VtZW50VHlwZXMpCisgICAgICAgICAgICAsIG1fYXJndW1lbnRW
YWx1ZXMoYXJndW1lbnRWYWx1ZXMpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGRv
dWJsZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQorICAgICAgICBU
cmFjZUV2ZW50UGhhc2UgcGhhc2UoKSBjb25zdCB7IHJldHVybiBtX3BoYXNlOyB9CisgICAgICAg
IGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICAgICAgVGhy
ZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV90aHJlYWRJ
ZGVudGlmaWVyOyB9CisgICAgICAgIGludCBhcmd1bWVudENvdW50KCkgY29uc3QgeyByZXR1cm4g
bV9hcmd1bWVudENvdW50OyB9CisKKyAgICAgICAgYm9vbCBhc0Jvb2woY29uc3QgY2hhciogbmFt
ZSkgY29uc3QKKyAgICAgICAgeyAKKyAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFtZSwg
VHlwZUJvb2wpLm1fYm9vbDsKKyAgICAgICAgfQorICAgICAgICBsb25nIGxvbmcgYXNJbnQoY29u
c3QgY2hhciogbmFtZSkgY29uc3QKKyAgICAgICAgeyAKKyAgICAgICAgICAgIHJldHVybiBwYXJh
bWV0ZXIobmFtZSwgVHlwZUludCkubV9pbnQ7CisgICAgICAgIH0KKyAgICAgICAgdW5zaWduZWQg
bG9uZyBsb25nIGFzVUludChjb25zdCBjaGFyKiBuYW1lKSBjb25zdCAKKyAgICAgICAgeyAKKyAg
ICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFtZSwgVHlwZVVJbnQpLm1fdWludDsKKyAgICAg
ICAgfQorICAgICAgICBkb3VibGUgYXNEb3VibGUoY29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAg
ICAgICAgeyAKKyAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFtZSwgVHlwZURvdWJsZSku
bV9kb3VibGU7CisgICAgICAgIH0KKyAgICAgICAgY29uc3QgY2hhciogYXNTdHJpbmcoY29uc3Qg
Y2hhciogbmFtZSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHBhcmFtZXRl
cihuYW1lLCBUeXBlU3RyaW5nKS5tX3N0cmluZzsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToK
KyAgICAgICAgY29uc3QgVHJhY2VWYWx1ZVVuaW9uJiBwYXJhbWV0ZXIoY29uc3QgY2hhciogbmFt
ZSwgVHJhY2VWYWx1ZVR5cGVzIGV4cGVjdGVkVHlwZSkgY29uc3Q7CisKKyAgICAgICAgZG91Ymxl
IG1fdGltZXN0YW1wOworICAgICAgICBUcmFjZUV2ZW50UGhhc2UgbV9waGFzZTsKKyAgICAgICAg
Y29uc3QgY2hhciogbV9uYW1lOworICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSWRl
bnRpZmllcjsKKyAgICAgICAgaW50IG1fYXJndW1lbnRDb3VudDsKKyAgICAgICAgY29uc3QgY2hh
ciogY29uc3QqIG1fYXJndW1lbnROYW1lczsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciog
bV9hcmd1bWVudFR5cGVzOworICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIG1fYXJn
dW1lbnRWYWx1ZXM7CisgICAgfTsKKworICAgIHR5cGVkZWYgdm9pZCAoVGltZWxpbmVUcmFjZUV2
ZW50UHJvY2Vzc29yOjoqVHJhY2VFdmVudEhhbmRsZXIpKGNvbnN0IFRyYWNlRXZlbnQmKTsKKwor
ICAgIHN0cnVjdCBFdmVudFR5cGVFbnRyeSB7CisgICAgICAgIEV2ZW50VHlwZUVudHJ5KCkKKyAg
ICAgICAgICAgIDogbV9iZWdpbigwKQorICAgICAgICAgICAgLCBtX2VuZCgwKQorICAgICAgICAg
ICAgLCBtX2luc3RhbnQoMCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIGV4cGxpY2l0
IEV2ZW50VHlwZUVudHJ5KFRyYWNlRXZlbnRIYW5kbGVyIGluc3RhbnQpCisgICAgICAgICAgICA6
IG1fYmVnaW4oMCkKKyAgICAgICAgICAgICwgbV9lbmQoMCkKKyAgICAgICAgICAgICwgbV9pbnN0
YW50KGluc3RhbnQpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICBFdmVudFR5cGVFbnRy
eShUcmFjZUV2ZW50SGFuZGxlciBiZWdpbiwgVHJhY2VFdmVudEhhbmRsZXIgZW5kKQorICAgICAg
ICAgICAgOiBtX2JlZ2luKGJlZ2luKQorICAgICAgICAgICAgLCBtX2VuZChlbmQpCisgICAgICAg
ICAgICAsIG1faW5zdGFudCgwKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBUcmFj
ZUV2ZW50SGFuZGxlciBtX2JlZ2luOworICAgICAgICBUcmFjZUV2ZW50SGFuZGxlciBtX2VuZDsK
KyAgICAgICAgVHJhY2VFdmVudEhhbmRsZXIgbV9pbnN0YW50OworICAgIH07CisKKyAgICB2b2lk
IHByb2Nlc3NCYWNrZ3JvdW5kRXZlbnRzKCk7CisgICAgdm9pZCBzZW5kVGltZWxpbmVSZWNvcmQo
UGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYgcmVjb3JkVHlw
ZSwgZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGVuZFRpbWUsIGNvbnN0IFN0cmluZyYgdGhyZWFk
KTsKKyAgICB2b2lkIHByb2Nlc3NFdmVudChjb25zdCBFdmVudFR5cGVFbnRyeSYsIGNvbnN0IFRy
YWNlRXZlbnQmKTsKKworICAgIFdlYWtQdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gbV90aW1l
bGluZUFnZW50OworICAgIEluc3BlY3RvckNsaWVudCogbV9pbnNwZWN0b3JDbGllbnQ7CisKKyAg
ICBIYXNoTWFwPFN0cmluZywgRXZlbnRUeXBlRW50cnk+IG1faGFuZGxlcnNCeVR5cGU7CisgICAg
TXV0ZXggbV9iYWNrZ3JvdW5kRXZlbnRzTXV0ZXg7CisgICAgVmVjdG9yPFRyYWNlRXZlbnQ+IG1f
YmFja2dyb3VuZEV2ZW50czsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgbV9wYWdlSWQ7Cit9Owor
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1Ip
CisjZW5kaWYgLy8gIWRlZmluZWQoVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xp
ZW50LmgKaW5kZXggYTFmNmE2ZGE0ZTNhZGY3N2U1NWVhMTBkY2MwODc1ZTVjNGZjYzYxYi4uZjZk
MzA4NThjM2MwNGQ0ODExNGU4N2IyYTQ4NDgzNWQxZjhiMjEyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaApAQCAt
NzcsNiArNzcsMTIgQEAgcHVibGljOgogICAgIH07CiAgICAgdmlydHVhbCB2b2lkIGR1bXBVbmNv
dW50ZWRBbGxvY2F0ZWRPYmplY3RzKGNvbnN0IEluc3RydW1lbnRlZE9iamVjdFNpemVQcm92aWRl
ciopIHsgfQogCisgICAgdHlwZWRlZiB2b2lkICgqVHJhY2VFdmVudENhbGxiYWNrKShjaGFyIHBo
YXNlLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbG9u
ZyBsb25nIGlkLAorICAgICAgICBpbnQgbnVtQXJncywgY29uc3QgY2hhciogY29uc3QqIGFyZ05h
bWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBs
b25nKiBhcmdWYWx1ZXMsCisgICAgICAgIHVuc2lnbmVkIGNoYXIgZmxhZ3MpOworCisgICAgdmly
dHVhbCB2b2lkIHNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJhY2spIHsgfQor
CiBwcm90ZWN0ZWQ6CiAgICAgfldlYkRldlRvb2xzQWdlbnRDbGllbnQoKSB7IH0KIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwCmlu
ZGV4IGU5NGRmOWE3YjE4ZjQ5OGViZjM4YmExODIwZWViODYzYzkyNTljZmUuLjIyNTA2ZjM1NzZm
ODQxOTUzMmVmMDk2NzcxZDZhNjBmZGJiNDhjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwCkBAIC0yMTgsNiArMjE4LDEyIEBA
IGJvb2wgSW5zcGVjdG9yQ2xpZW50SW1wbDo6aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFj
Y2VwdCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ2xpZW50SW1wbDo6
c2V0VHJhY2VFdmVudENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjayBjYWxsYmFjaykKK3sKKyAg
ICBpZiAoV2ViRGV2VG9vbHNBZ2VudEltcGwqIGFnZW50ID0gZGV2VG9vbHNBZ2VudCgpKQorICAg
ICAgICBhZ2VudC0+c2V0VHJhY2VFdmVudENhbGxiYWNrKGNhbGxiYWNrKTsKK30KKwogV2ViRGV2
VG9vbHNBZ2VudEltcGwqIEluc3BlY3RvckNsaWVudEltcGw6OmRldlRvb2xzQWdlbnQoKQogewog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJEZXZUb29sc0FnZW50SW1wbCo+KG1faW5zcGVjdGVk
V2ViVmlldy0+ZGV2VG9vbHNBZ2VudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0luc3BlY3RvckNsaWVudEltcGwuaAppbmRleCBkMTczZmNhMjdlMDUyYjgzNDQxMmY4NGM4
NTI2NWU1MTg2MzBmMzhkLi43ZGNkZTRlYjE2YjUxZjMzOGZjOTBlM2E5YzdiN2UzZDk3YWRmMjYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1w
bC5oCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcFVuY291
bnRlZEFsbG9jYXRlZE9iamVjdHMoY29uc3QgSGFzaE1hcDxjb25zdCB2b2lkKiwgc2l6ZV90PiYp
OwogCiAgICAgdmlydHVhbCBib29sIGNhcHR1cmVTY3JlZW5zaG90KFdURjo6U3RyaW5nKiBkYXRh
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVudENhbGxiYWNrKFRyYWNlRXZlbnRDYWxs
YmFjayk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFj
Y2VwdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRv
b2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xz
QWdlbnRJbXBsLmNwcAppbmRleCA0ZWE0NjBhMTBiNjA4OTFjYTVlZWVjZGFhOGYzNzM1NTljZTgx
OGIzLi45ZmUxY2NmOTIxZTgzNDY4NTNkZjMyZTgwNGM1YWJhMTNmYzQzM2Y2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBA
IC01OTEsNiArNTkxLDExIEBAIGJvb2wgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmhhbmRsZUphdmFT
Y3JpcHREaWFsb2coYm9vbCBhY2NlcHQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgV2Vi
RGV2VG9vbHNBZ2VudEltcGw6OnNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJh
Y2sgY2FsbGJhY2spCit7CisgICAgbV9jbGllbnQtPnNldFRyYWNlRXZlbnRDYWxsYmFjayhjYWxs
YmFjayk7Cit9CisKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpc3BhdGNoT25JbnNwZWN0
b3JCYWNrZW5kKGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpbnNwZWN0b3JDb250
cm9sbGVyKCktPmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChtZXNzYWdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCmluZGV4IDVl
OGYyNDU5NGM0YmM0NDJmZGVmMmRkMzAyMzkxMzdjYTI0ZmJiZmQuLjUwOTE5MWZlOTgxYzA5ZjUx
OWU3NjM3ZjgxZTZiODA2YTE1YjFkNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaApAQCAtMTEwLDYgKzExMCw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBnZXRBbGxvY2F0ZWRPYmplY3RzKEhhc2hTZXQ8Y29uc3Qgdm9p
ZCo+Jik7CiAgICAgdmlydHVhbCB2b2lkIGR1bXBVbmNvdW50ZWRBbGxvY2F0ZWRPYmplY3RzKGNv
bnN0IEhhc2hNYXA8Y29uc3Qgdm9pZCosIHNpemVfdD4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VHJhY2VFdmVudENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjayk7CiAKICAgICB2aXJ0dWFsIGJv
b2wgY2FwdHVyZVNjcmVlbnNob3QoV1RGOjpTdHJpbmcqIGRhdGEpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186381</attachid>
            <date>2013-02-04 08:24:22 -0800</date>
            <delta_ts>2013-02-04 08:29:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105796-20130204202100.patch</filename>
            <type>text/plain</type>
            <size>37021</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTUxYjY2ZWUxYmI2Mzlh
ZGQ5MTc3YTYyZTlkOTIxN2IyMDYyODE2Yi4uNjU3NTJhZmRkYTMzMzQxMWQ0YmM4NzM3NGJhMjg1
YWYwZWZhYjI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTAyLTA0ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHBsdW1iIHRyYWNlIGV2ZW50cyB0byBU
aW1lbGluZTsKKyAgICAgICAgLSBhZGQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yIHRvIHBy
b2Nlc3Mgc2VsZWN0ZWQgdHJhY2UgZXZlbnRzOworICAgICAgICAtIGVtaXQgdGltZWxpbmUgZXZl
bnRzIGZyb20gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLgorCisgICAgICAgIE5vdGUgdGhh
dCBhY3R1YWwgZXZlbnQgcHJvY2Vzc2luZyBsb2dpYyBpcyBhIHNlcGFyYXRlIGNoYW5nZS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBbGxJ
bk9uZS5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oOgorICAgICAg
ICAoSW5zcGVjdG9yQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6
c2V0VHJhY2VFdmVudENhbGxiYWNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdG9w
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
cGFnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJbnNwZWN0b3JU
aW1lbGluZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3I6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6flRpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NFdmVudE9uQW55VGhyZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6cHJvY2Vzc0V2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6c2Vu
ZFRpbWVsaW5lUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvcjo6cHJvY2Vzc0JhY2tncm91bmRFdmVudHMpOgorICAgICAgICAqIGluc3BlY3Rvci9U
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChUcmFjZUV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJh
Y2VFdmVudDo6VHJhY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnRpbWVzdGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnBoYXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6bmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZl
bnQ6OnRocmVhZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2
ZW50UHJvY2Vzc29yOjpUcmFjZUV2ZW50Ojphcmd1bWVudENvdW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6YXNCb29sKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6
YXNJbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpU
cmFjZUV2ZW50Ojphc1VJbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yOjpUcmFjZUV2ZW50Ojphc0RvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OmFzU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6RXZlbnRUeXBlRW50cnk6OkV2
ZW50VHlwZUVudHJ5KToKKyAgICAgICAgKEV2ZW50VHlwZUVudHJ5KToKKwogMjAxMy0wMi0wNCAg
RXVnZW5lIEtseXVjaG5pa292ICA8ZXVzdGFzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbTmV0d29ya10gTWlub3IgcmVmYWN0b3JpbmdzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCBjYmZlYTE2ZTA3Mjg4Y2VhNzgzYzMyODRlMTIzZDU2MmIzNDdmNTY1Li43
ODIyMzE4YmMzZmNjMTJjYjcxZTUxYTlmNGE5NTU2NzRkYTI4ZWYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTA0ICBBbmRyZXkgS29zeWFrb3Yg
IDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcGx1bWIgdHJh
Y2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQbHVtYiB0cmFjZSBldmVudHMgdG8gSW5zcGVjdG9yLgorCisg
ICAgICAgICogcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaDoKKyAgICAgICAgKFdlYkRl
dlRvb2xzQWdlbnRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50Q2xp
ZW50OjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAgICAgICAqIHNyYy9JbnNwZWN0b3JDbGll
bnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50SW1wbDo6c2V0VHJh
Y2VFdmVudENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0luc3Bl
Y3RvckNsaWVudEltcGwuaDoKKyAgICAgICAgKEluc3BlY3RvckNsaWVudEltcGwpOgorICAgICAg
ICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRl
dlRvb2xzQWdlbnRJbXBsOjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaDoKKyAgICAgICAgKFdlYkRl
dlRvb2xzQWdlbnRJbXBsKToKKwogMjAxMy0wMi0wMyAgS3dhbmdZb25nIENob2kgIDxreTAuY2hv
aUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBGaXggYnVpbGQgd2FybmluZyBhZnRlciByMTQxNDcz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGJkMjMzYjlmMWUzOThmMDM2OTdhMDMzMjM3NTUxZDc5
YzE1YmI4ZTcuLjA1MTQ1ZDFiZDlkZDRhOTNhOTEzNjk3Y2QxZmFmMzM0Njg2ZmM4YTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0xNjU1LDYgKzE2NTUsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgaW5zcGVjdG9yL1NjcmlwdENhbGxGcmFtZS5jcHAKICAgICBpbnNwZWN0b3IvU2NyaXB0
Q2FsbFN0YWNrLmNwcAogICAgIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCisg
ICAgaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKICAgICBpbnNwZWN0
b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcAogICAgIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFn
ZW50LmNwcAogICAgIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMTczMTY1NTA1NjJiNzI1NjNlMGViNDJmMTJk
NDI4ZWRkOWFiNWQwYi4uMGNlZjc4ODA3NmYyYWY1MzBjMmIxMzhmMTdlNWE1OTM1OWRlOTE2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODY3LDYgKzM4NjcsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRHQ0V2ZW50
TGlzdGVuZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rv
cnkuaCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2Vu
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCmluZGV4IGU4ZjZmYzE2MmQzOTk0NWM0NDFiMGU2YzQyOTkzMGRjYWQ3ZDBiNjUuLjg3
MzcxMzMxZDVmZmU3N2IzMjcwZWJlZDgyYWI0MDI5ZTM3Y2FiOGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
ODEzLDYgKzgxMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsRnJh
bWUuY3BwIFwKICAgICBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmNwcCBcCiAgICAgaW5zcGVj
dG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgXAorICAgIGluc3BlY3Rvci9UaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IuY3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50
LmNwcCBcCiAgICAgaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKICAgICBpbnNw
ZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IGRjYmIzNTU1MjIwZDdiYjQwYjE1N2UwMDcwOGQ3NjQzODIxNDQ1YTcuLmJlNzE1YzI1NzdhM2E4
ZDMwZDU4ZDkxYWViMGIwNDAyODEyNDg1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE5MTMsNiAr
MTkxMyw4IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5o
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCcsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oJywKKyAgICAgICAg
ICAgICdpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCcsCisgICAgICAg
ICAgICAnaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCcsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvV29y
a2VyRGVidWdnZXJBZ2VudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagppbmRleCA3NGFhYzk1MWUwZjNiNjg2NDA2ZmUzNWU2YjljODRhOTk2MmNh
MGE4Li44NmJjOWQzMGE5ZmQ2NGFiOTBjYmRhYjQ5NjdjYmNjMDVlMTc2ODBjIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzY2NTQsNiArNzY2
NTQsMzAgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxUaW1lbGluZVJlY29yZEZh
Y3RvcnkuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8Rmls
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXGluc3Bl
Y3RvclxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlQ29u
ZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9
IlJlbGVhc2V8V2luMzIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlByb2R1Y3Rpb258V2lu
MzIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxXb3JrZXJDb25zb2xlQWdlbnQuY3BwIgogCQkJCT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA5YjIwOGQyODE5YThiNmY5YmE1ZGU5OTcwOGIzNTllMDM3YjJjYWRiLi5lM2YwYWU0YjBj
ZTVkMzFlODZlMDBjZWNmYjYyMDU2MjlkMGJhODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjc1LDYgKzEyNzUsOCBAQAog
CQk0NkY5RDVERjBCMEQ2MDE3MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkY5RDVEQzBCMEQ2MDE3
MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nICovOyB9OwogCQk0OTA3MDdFNjEyMTlDMDQz
MDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xF
V2ViS2l0QnJpZGdlLmNwcCAqLzsgfTsKIAkJNDkwNzA3RTcxMjE5QzA0MzAwRDkwRTUxIC8qIEFO
R0xFV2ViS2l0QnJpZGdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTA3MDdFNTEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCAq
LzsgfTsKKwkJNDkxNDAyNTYxNjhFMDJFODAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTE0MDI1NDE2OEUwMkI0MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmNwcCAqLzsgfTsKKwkJNDkxNDAyNTcxNjhFMDJFQzAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VF
dmVudFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDkxNDAyNTUxNjhFMDJCNDAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvci5oICovOyB9OwogCQk0OTE4MkI1MjE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0
cnVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDkxODJCNTAxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
LmNwcCAqLzsgfTsKIAkJNDkxODJCNTMxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1
bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTE4MkI1MTE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCAq
LzsgfTsKIAkJNDkyODYzOTkxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5Mjg2Mzk4MTI1
M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTg2MjMsNiArODYyNSw4IEBACiAJCTQ2RjlE
NURDMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBwcm9n
cmVzc0N1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MDcwN0U0MTIx
OUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJy
aWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTE0MDI1NDE2OEUwMkI0MDAyRDZD
NkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5MTQwMjU1MTY4RTAyQjQwMDJENkM2QSAvKiBUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ5MTgyQjUwMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRhdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUluc3Ry
dW1lbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MTgyQjUxMTVE
Q0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0OTI4NjM5ODEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3VyY2VM
b2FkSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRJ
bmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTE5Myw2ICsxNTE5Nyw4IEBA
CiAJCQkJOUZBMzdFRjAxMTcyRkQ0MTAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmlkbCAq
LywKIAkJCQk3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcCAqLywKIAkJCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmggKi8sCisJCQkJNDkxNDAyNTQxNjhFMDJCNDAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3Nvci5jcHAgKi8sCisJCQkJNDkxNDAyNTUxNjhFMDJCNDAwMkQ2QzZBIC8q
IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oICovLAogCQkJCUYzODIwODhFMTQ3RDM1Rjkw
MDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwICovLAogCQkJCUYzODIwODhGMTQ3RDM1
RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCAqLywKIAkJCQlGMzQ3NDJERTEzNDM2
MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgKi8sCkBAIC0yNjMzOSw2ICsy
NjM0NSw3IEBACiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9y
RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAv
KiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDkxNDAyNTcxNjhFMDJFQzAwMkQ2QzZB
IC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yOTQ5
Nyw2ICsyOTUwNCw3IEBACiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzgwIC8qIFhT
U0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4
MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDkxNDAyNTYxNjhF
MDJFODAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJ
bk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3Bw
CmluZGV4IDljOWZmMjA4NTljMmQ4Y2I4NTYzNDdkNjdiODExMzFhN2JiODllYmYuLmIxMTNkZDll
ZDJmMjZkN2NkODQyNjRmMTJkNTQ0ZDQzYWQzNTQ3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcApAQCAtODMsNiArODMsNyBAQAogI2luY2x1
ZGUgIlNjcmlwdENhbGxGcmFtZS5jcHAiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmNwcCIK
ICNpbmNsdWRlICJUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIgorI2luY2x1ZGUgIlRpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvci5jcHAiCiAjaW5jbHVkZSAiV29ya2VyQ29uc29sZUFnZW50LmNw
cCIKICNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCIKICNpbmNsdWRlICJXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDbGllbnQuaAppbmRleCBiOWY4ZjU2MTJmNDdkNTk2M2FmYWI4MmRjNzllZmY3ZmJmMzRjNWJm
Li4zYzk3MTI5YWQzMWM2OWM1NDllY2RkYzFiOGY2ZmNmMWVkZTk3NDg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCkBAIC01OSw2ICs1OSwxMSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQnJvd3NlckNvb2tpZXMoKSB7IH0KICAgICB2aXJ0
dWFsIGJvb2wgY2FuTW9uaXRvck1haW5UaHJlYWQoKSB7IHJldHVybiBmYWxzZTsgfQogCisgICAg
dHlwZWRlZiB2b2lkICgqVHJhY2VFdmVudENhbGxiYWNrKShjaGFyIHBoYXNlLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiwgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAorICAg
ICAgICBpbnQgbnVtQXJncywgY29uc3QgY2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMs
CisgICAgICAgIHVuc2lnbmVkIGNoYXIgZmxhZ3MpOworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFj
ZUV2ZW50Q2FsbGJhY2soVHJhY2VFdmVudENhbGxiYWNrKSB7IH0KKwogICAgIHZpcnR1YWwgYm9v
bCBjYW5PdmVycmlkZURldmljZU1ldHJpY3MoKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIG92ZXJyaWRlRGV2aWNlTWV0cmljcyhpbnQgLyp3aWR0aCovLCBpbnQgLypoZWln
aHQqLywgZmxvYXQgLypmb250U2NhbGVGYWN0b3IqLywgYm9vbCAvKmZpdFdpbmRvdyovKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
CmluZGV4IGFjN2FkY2IwYWEzNTZmZTc3MGNkZmZjMzAzOTY5MjU2NjU3OGEyNTcuLjcxMjgyNTUx
ZDg2MGZmNDhmZmFiNTg5N2JjZjVkM2Q0ZjZmYWQ5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAqCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01MSw2ICs1MSw3IEBACiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgog
I2luY2x1ZGUgIlRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIgorI2luY2x1ZGUgIlRpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3Nvci5oIgogCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKQEAg
LTE3MSw2ICsxNzIsOCBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0KEVycm9y
U3RyaW5nKiwgY29uc3QgaW50KiBtYXhDYWxsU3RhY2tEZXB0aCkKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvclRpbWVsaW5lQWdlbnQodGhpcyk7CiAgICAgU2NyaXB0R0NF
dmVudDo6YWRkRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKFRp
bWVsaW5lQWdlbnRTdGF0ZTo6dGltZWxpbmVBZ2VudEVuYWJsZWQsIHRydWUpOworICAgIGlmICht
X2NsaWVudCAmJiBtX3BhZ2VBZ2VudCkKKyAgICAgICAgbV90cmFjZUV2ZW50UHJvY2Vzc29yID0g
YWRvcHRSZWYobmV3IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcihtX3dlYWtGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKSwgbV9jbGllbnQpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpzdG9wKEVycm9yU3RyaW5nKikKQEAgLTE3OCw2ICsxODEsOCBAQCB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnN0b3AoRXJyb3JTdHJpbmcqKQogICAgIGlmICghbV9zdGF0ZS0+Z2V0
Qm9vbGVhbihUaW1lbGluZUFnZW50U3RhdGU6OnRpbWVsaW5lQWdlbnRFbmFibGVkKSkKICAgICAg
ICAgcmV0dXJuOwogCisgICAgbV90cmFjZUV2ZW50UHJvY2Vzc29yLmNsZWFyKCk7CisgICAgbV93
ZWFrRmFjdG9yeS5yZXZva2VBbGwoKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldElu
c3BlY3RvclRpbWVsaW5lQWdlbnQoMCk7CiAgICAgU2NyaXB0R0NFdmVudDo6cmVtb3ZlRXZlbnRM
aXN0ZW5lcih0aGlzKTsKIApAQCAtNTY0LDYgKzU2OSw3IEBAIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluCiAgICAgLCBtX3BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50SW5zdGFsbGVkQXRTdGFj
a0RlcHRoKDApCiAgICAgLCBtX2luc3BlY3RvclR5cGUodHlwZSkKICAgICAsIG1fY2xpZW50KGNs
aWVudCkKKyAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKIHsKIH0KIApAQCAtNjI0LDYgKzYzMCwx
MSBAQCBkb3VibGUgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dGltZXN0YW1wRnJvbU1pY3Jvc2Vj
b25kcyhkb3VibGUgbWljcm9zZWNvbmRzKQogICAgIHJldHVybiAobWljcm9zZWNvbmRzICsgbV90
aW1lc3RhbXBPZmZzZXQpICogMTAwMC4wOwogfQogCitQYWdlKiBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpwYWdlKCkKK3sKKyAgICByZXR1cm4gbV9wYWdlQWdlbnQgPyBtX3BhZ2VBZ2VudC0+cGFn
ZSgpIDogMDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oCmluZGV4IGU3MDYyYTExODE4OGZhY2RkNTQzNGExMjExZDNjN2ZjNWYwNmU5
NjYuLjc1ZjAyNDM3YzBjZmQzM2Q0ZWI3MzZlYjY0NzAzOWUwOGIzMmMxODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNDIs
NiArNDIsNyBAQAogI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV2ZW50OwpAQCAtNTIs
OSArNTMsMTEgQEAgY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yU3Rh
dGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgSW50UmVjdDsKK2NsYXNzIFBh
Z2U7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBS
ZXNvdXJjZVJlc3BvbnNlOworY2xhc3MgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOwogCiB0
eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIApAQCAtMTY2LDYgKzE2OSw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzaXplSW1hZ2UoKSBPVkVSUklERTsKIAogcHJpdmF0ZToK
KyAgICBmcmllbmQgY2xhc3MgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOworCiAgICAgc3Ry
dWN0IFRpbWVsaW5lUmVjb3JkRW50cnkgewogICAgICAgICBUaW1lbGluZVJlY29yZEVudHJ5KFBh
c3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQsIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBkYXRhLCBQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBjaGlsZHJlbiwgY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIHNpemVfdCB1c2VkSGVhcFNpemVBdFN0
YXJ0KQogICAgICAgICAgICAgOiByZWNvcmQocmVjb3JkKSwgZGF0YShkYXRhKSwgY2hpbGRyZW4o
Y2hpbGRyZW4pLCB0eXBlKHR5cGUpLCBmcmFtZUlkKGZyYW1lSWQpLCB1c2VkSGVhcFNpemVBdFN0
YXJ0KHVzZWRIZWFwU2l6ZUF0U3RhcnQpCkBAIC0xOTUsNiArMjAwLDcgQEAgcHJpdmF0ZToKIAog
ICAgIGRvdWJsZSB0aW1lc3RhbXAoKTsKICAgICBkb3VibGUgdGltZXN0YW1wRnJvbU1pY3Jvc2Vj
b25kcyhkb3VibGUgbWljcm9zZWNvbmRzKTsKKyAgICBQYWdlKiBwYWdlKCk7CiAKICAgICBJbnNw
ZWN0b3JQYWdlQWdlbnQqIG1fcGFnZUFnZW50OwogCkBAIC0yMjAsNiArMjI2LDggQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBtX3BlbmRpbmdGcmFtZVJlY29yZDsKICAg
ICBJbnNwZWN0b3JUeXBlIG1faW5zcGVjdG9yVHlwZTsKICAgICBJbnNwZWN0b3JDbGllbnQqIG1f
Y2xpZW50OworICAgIFdlYWtQdHJGYWN0b3J5PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IG1fd2Vh
a0ZhY3Rvcnk7CisgICAgUmVmUHRyPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcj4gbV90cmFj
ZUV2ZW50UHJvY2Vzc29yOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xYmM5ZDhlNGE0ZTAyZDFmMjdlY2RkMzg5OTA2YmQ5NjRhNGU0NDk0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3Nvci5jcHAKQEAgLTAsMCArMSwyMTEgQEAKKy8qCisqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorKiBtZXQ6CisqCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyogZGlzdHJpYnV0aW9uLgorKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisK
KyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCIKKworI2luY2x1ZGUgIklu
c3BlY3RvckNsaWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgor
I2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKKyNpbmNsdWRlICJUaW1lbGluZVJl
Y29yZEZhY3RvcnkuaCIKKworI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSB7
CisKK2NsYXNzIFRyYWNlRXZlbnREaXNwYXRjaGVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShUcmFjZUV2ZW50RGlzcGF0Y2hlcik7CitwdWJsaWM6CisgICAgc3RhdGljIFRyYWNlRXZlbnRE
aXNwYXRjaGVyKiBpbnN0YW5jZSgpCisgICAgeworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFRyYWNlRXZlbnREaXNwYXRjaGVyLCBpbnN0YW5jZSwgKCkpOworICAgICAgICByZXR1cm4gJmlu
c3RhbmNlOworICAgIH0KKworICAgIHZvaWQgYWRkUHJvY2Vzc29yKFRpbWVsaW5lVHJhY2VFdmVu
dFByb2Nlc3NvciogcHJvY2Vzc29yLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKKyAgICB7Cisg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKworICAgICAgICBtX3Byb2Nlc3Nv
cnMuYXBwZW5kKHByb2Nlc3Nvcik7CisgICAgICAgIGlmIChtX3Byb2Nlc3NvcnMuc2l6ZSgpID09
IDEpCisgICAgICAgICAgICBjbGllbnQtPnNldFRyYWNlRXZlbnRDYWxsYmFjayhkaXNwYXRjaEV2
ZW50T25BbnlUaHJlYWQpOworICAgIH0KKworICAgIHZvaWQgcmVtb3ZlUHJvY2Vzc29yKFRpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3NvciogcHJvY2Vzc29yLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVu
dCkKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKworICAgICAg
ICBzaXplX3QgaW5kZXggPSBtX3Byb2Nlc3NvcnMuZmluZChwcm9jZXNzb3IpOworICAgICAgICBp
ZiAoaW5kZXggPT0gbm90Rm91bmQpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fcHJvY2Vzc29ycy5y
ZW1vdmUoaW5kZXgpOworICAgICAgICBpZiAobV9wcm9jZXNzb3JzLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIGNsaWVudC0+c2V0VHJhY2VFdmVudENhbGxiYWNrKDApOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBlbnVtIHsgUHJvY2Vzc29yc1ZlY3RvcklubGluZUNhcGFjaXR5ID0gMiB9OworCisg
ICAgVHJhY2VFdmVudERpc3BhdGNoZXIoKSB7IH0KKworICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNo
RXZlbnRPbkFueVRocmVhZChjaGFyIHBoYXNlLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgY29uc3Qg
Y2hhciogbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAorICAgICAgICBpbnQgbnVtQXJncywg
Y29uc3QgY2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBl
cywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMsCisgICAgICAgIHVuc2lnbmVk
IGNoYXIgZmxhZ3MpCisgICAgeworICAgICAgICBUcmFjZUV2ZW50RGlzcGF0Y2hlciogc2VsZiA9
IGluc3RhbmNlKCk7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8VGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yPiwgUHJvY2Vzc29yc1ZlY3RvcklubGluZUNhcGFjaXR5PiBwcm9jZXNzb3JzOworICAg
ICAgICB7CisgICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoc2VsZi0+bV9tdXRleCk7Cisg
ICAgICAgICAgICBwcm9jZXNzb3JzID0gc2VsZi0+bV9wcm9jZXNzb3JzOworICAgICAgICB9Cisg
ICAgICAgIGZvciAoaW50IGkgPSAwLCBzaXplID0gcHJvY2Vzc29ycy5zaXplKCk7IGkgPCBzaXpl
OyArK2kpIHsKKyAgICAgICAgICAgIHByb2Nlc3NvcnNbaV0tPnByb2Nlc3NFdmVudE9uQW55VGhy
ZWFkKHN0YXRpY19jYXN0PFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudFBo
YXNlPihwaGFzZSksCisgICAgICAgICAgICAgICAgbmFtZSwgaWQsIG51bUFyZ3MsIGFyZ05hbWVz
LCBhcmdUeXBlcywgYXJnVmFsdWVzLCBmbGFncyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBN
dXRleCBtX211dGV4OworICAgIFZlY3RvcjxSZWZQdHI8VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vz
c29yPiwgUHJvY2Vzc29yc1ZlY3RvcklubGluZUNhcGFjaXR5PiBtX3Byb2Nlc3NvcnM7Cit9Owor
Cit9IC8vIG5hbWVzcGNlCitUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3NvcihXZWFrUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IHRpbWVsaW5l
QWdlbnQsIEluc3BlY3RvckNsaWVudCAqY2xpZW50KQorICAgIDogbV90aW1lbGluZUFnZW50KHRp
bWVsaW5lQWdlbnQpCisgICAgLCBtX2luc3BlY3RvckNsaWVudChjbGllbnQpCisgICAgLCBtX3Bh
Z2VJZChyZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV90aW1lbGluZUFnZW50
LmdldCgpLT5wYWdlKCkpKQoreworICAgIFRyYWNlRXZlbnREaXNwYXRjaGVyOjppbnN0YW5jZSgp
LT5hZGRQcm9jZXNzb3IodGhpcywgbV9pbnNwZWN0b3JDbGllbnQpOworfQorCitUaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3I6On5UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IoKQoreworICAg
IFRyYWNlRXZlbnREaXNwYXRjaGVyOjppbnN0YW5jZSgpLT5yZW1vdmVQcm9jZXNzb3IodGhpcywg
bV9pbnNwZWN0b3JDbGllbnQpOworfQorCitjb25zdCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNz
b3I6OlRyYWNlVmFsdWVVbmlvbiYgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFjZUV2
ZW50OjpwYXJhbWV0ZXIoY29uc3QgY2hhciogbmFtZSwgVHJhY2VWYWx1ZVR5cGVzIGV4cGVjdGVk
VHlwZSkgY29uc3QKK3sKKyAgICBjb25zdCBzdGF0aWMgVHJhY2VWYWx1ZVVuaW9uIG1pc3NpbmdW
YWx1ZTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9hcmd1bWVudENvdW50OyArK2kpIHsK
KyAgICAgICAgaWYgKCFzdHJjbXAobmFtZSwgbV9hcmd1bWVudE5hbWVzW2ldKSkgeworICAgICAg
ICAgICAgaWYgKG1fYXJndW1lbnRUeXBlc1tpXSAhPSBleHBlY3RlZFR5cGUpIHsKKyAgICAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWlz
c2luZ1ZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuICpyZWludGVycHJl
dF9jYXN0PGNvbnN0IFRyYWNlVmFsdWVVbmlvbio+KG1fYXJndW1lbnRWYWx1ZXMgKyBpKTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbWlz
c2luZ1ZhbHVlOworfQorCit2b2lkIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6cHJvY2Vz
c0V2ZW50T25BbnlUaHJlYWQoVHJhY2VFdmVudFBoYXNlIHBoYXNlLCBjb25zdCBjaGFyKiBuYW1l
LCB1bnNpZ25lZCBsb25nIGxvbmcsCisgICAgaW50IG51bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0
KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVk
IGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgIHVuc2lnbmVkIGNoYXIpCit7CisgICAgSGFzaE1h
cDxTdHJpbmcsIEV2ZW50VHlwZUVudHJ5Pjo6aXRlcmF0b3IgaXQgPSBtX2hhbmRsZXJzQnlUeXBl
LmZpbmQobmFtZSk7CisgICAgaWYgKGl0ID09IG1faGFuZGxlcnNCeVR5cGUuZW5kKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIFRyYWNlRXZlbnQgZXZlbnQoV1RGOjptb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUoKSwgcGhhc2UsIG5hbWUsIGN1cnJlbnRUaHJlYWQoKSwgbnVtQXJncywgYXJn
TmFtZXMsIGFyZ1R5cGVzLCBhcmdWYWx1ZXMpOworCisgICAgaWYgKCFpc01haW5UaHJlYWQoKSkg
eworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9iYWNrZ3JvdW5kRXZlbnRzTXV0ZXgpOwor
ICAgICAgICBtX2JhY2tncm91bmRFdmVudHMuYXBwZW5kKGV2ZW50KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIHByb2Nlc3NFdmVudChpdC0+dmFsdWUsIGV2ZW50KTsKK30KKwordm9p
ZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NFdmVudChjb25zdCBFdmVudFR5
cGVFbnRyeSYgZXZlbnRUeXBlRW50cnksIGNvbnN0IFRyYWNlRXZlbnQmIGV2ZW50KQoreworICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBUcmFjZUV2ZW50SGFuZGxlciBoYW5kbGVy
ID0gMDsKKyAgICBzd2l0Y2ggKGV2ZW50LnBoYXNlKCkpIHsKKyAgICBjYXNlIFRyYWNlUGhhc2VC
ZWdpbjoKKyAgICAgICAgaGFuZGxlciA9IGV2ZW50VHlwZUVudHJ5Lm1fYmVnaW47CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVHJhY2VQaGFzZUVuZDoKKyAgICAgICAgaGFuZGxlciA9IGV2ZW50
VHlwZUVudHJ5Lm1fZW5kOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRyYWNlUGhhc2VJbnN0
YW50OgorICAgICAgICBoYW5kbGVyID0gZXZlbnRUeXBlRW50cnkubV9pbnN0YW50OworICAgICAg
ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICB9CisgICAgaWYgKCFoYW5kbGVyKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgICh0aGlzLT4qaGFuZGxlcikoZXZlbnQpOworfQor
Cit2b2lkIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6c2VuZFRpbWVsaW5lUmVjb3JkKFBh
c3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBjb25zdCBTdHJpbmcmIHJlY29yZFR5cGUs
IGRvdWJsZSBzdGFydFRpbWUsIGRvdWJsZSBlbmRUaW1lLCBjb25zdCBTdHJpbmcmIHRocmVhZCkK
K3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudCogdGltZWxpbmVBZ2VudCA9IG1fdGltZWxpbmVBZ2VudC5nZXQoKTsKKyAgICBpZiAoIXRp
bWVsaW5lQWdlbnQpCisgICAgICAgIHJldHVybjsKKyAgICB0aW1lbGluZUFnZW50LT5hcHBlbmRC
YWNrZ3JvdW5kVGhyZWFkUmVjb3JkKGRhdGEsIHJlY29yZFR5cGUsIHN0YXJ0VGltZSwgZW5kVGlt
ZSwgdGhyZWFkKTsKK30KKwordm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nl
c3NCYWNrZ3JvdW5kRXZlbnRzKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisg
ICAgVmVjdG9yPFRyYWNlRXZlbnQ+IGV2ZW50czsKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX2JhY2tncm91bmRFdmVudHNNdXRleCk7CisgICAgICAgIGV2ZW50cy5yZXNlcnZl
Q2FwYWNpdHkobV9iYWNrZ3JvdW5kRXZlbnRzLmNhcGFjaXR5KCkpOworICAgICAgICBtX2JhY2tn
cm91bmRFdmVudHMuc3dhcChldmVudHMpOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMCwg
c2l6ZSA9IGV2ZW50cy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgY29uc3QgVHJh
Y2VFdmVudCYgZXZlbnQgPSBldmVudHNbaV07CisgICAgICAgIHByb2Nlc3NFdmVudChtX2hhbmRs
ZXJzQnlUeXBlLmZpbmQoZXZlbnQubmFtZSgpKS0+dmFsdWUsIGV2ZW50KTsKKyAgICB9Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM3NDMzMDU2ZjRkZmIyNDAxZjRjMjUxMWQ1NzJkNGYxNzM0
YzM0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3IuaApAQCAtMCwwICsxLDE5NSBAQAorLyoKKyogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisqIG1ldDoKKyoKKyogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorKiBkaXN0cmlidXRpb24uCisqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorKi8KKworI2lmbmRlZiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3JfaAorI2RlZmlu
ZSBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3JfaAorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikK
KworI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CitjbGFzcyBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OworY2xhc3MgUGFnZTsKKworY2xhc3MgVGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3Nvcj4geworcHVibGljOgorICAgIC8vIEZJWE1FOiByZS11c2UgZGVmaW5p
dGlvbnMgaW4gVHJhY2VFdmVudC5oIG9uY2UgaXQncyBwcm9tb3RlZCB0byBhbGwgcGxhdGZvcm1z
LgorICAgIGVudW0gVHJhY2VFdmVudFBoYXNlIHsKKyAgICAgICAgVHJhY2VQaGFzZUJlZ2luID0g
J0InLAorICAgICAgICBUcmFjZVBoYXNlRW5kID0gJ0UnLAorICAgICAgICBUcmFjZVBoYXNlSW5z
dGFudCA9ICdJJworICAgIH07CisKKyAgICBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IoV2Vh
a1B0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiwgSW5zcGVjdG9yQ2xpZW50Kik7CisgICAgflRp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcigpOworCisgICAgdm9pZCBwcm9jZXNzRXZlbnRPbkFu
eVRocmVhZChUcmFjZUV2ZW50UGhhc2UsIGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcg
bG9uZyBpZCwKKyAgICAgICAgaW50IG51bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1l
cywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9u
ZyogYXJnVmFsdWVzLAorICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdzKTsKKyAgICAKK3ByaXZh
dGU6CisgICAgLy8gRklYTUU6IHVzZSB0aGUgZGVmaW5pdGlvbiBpbiBUcmFjZUV2ZW50Lmggb25j
ZSB3ZSBleHBvc2UgdGhlIGxhdHRlciB0byBhbGwgcGxhZm9ybXMuCisgICAgdW5pb24gVHJhY2VW
YWx1ZVVuaW9uIHsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIG1fdWludDsKKyAgICAgICAg
bG9uZyBsb25nIG1faW50OworICAgICAgICBkb3VibGUgbV9kb3VibGU7CisgICAgICAgIGJvb2wg
bV9ib29sOworICAgICAgICBjb25zdCB2b2lkKiBtX3BvaW50ZXI7CisgICAgICAgIGNvbnN0IGNo
YXIqIG1fc3RyaW5nOworCisgICAgICAgIFRyYWNlVmFsdWVVbmlvbigpIHsgfQorICAgIH07CisK
KyAgICBlbnVtIFRyYWNlVmFsdWVUeXBlcyB7CisgICAgICAgIFR5cGVCb29sID0gMSwKKyAgICAg
ICAgVHlwZVVJbnQgPSAyLAorICAgICAgICBUeXBlSW50ID0gMywKKyAgICAgICAgVHlwZURvdWJs
ZSA9IDQsCisgICAgICAgIFR5cGVQb2ludGVyID0gNSwKKyAgICAgICAgVHlwZVN0cmluZyA9IDYs
CisgICAgICAgIFR5cGVDb3B5U3RyaW5nID0gNworICAgIH07CisKKyAgICBjbGFzcyBUcmFjZUV2
ZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRyYWNlRXZlbnQoKQorICAgICAgICAgICAgOiBt
X2FyZ3VtZW50Q291bnQoMCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgVHJhY2VF
dmVudChkb3VibGUgdGltZXN0YW1wLCBUcmFjZUV2ZW50UGhhc2UgcGhhc2UsIGNvbnN0IGNoYXIq
IG5hbWUsIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciwKKyAgICAgICAgICAgIGlu
dCBhcmd1bWVudENvdW50LCBjb25zdCBjaGFyKiBjb25zdCogYXJndW1lbnROYW1lcywgY29uc3Qg
dW5zaWduZWQgY2hhciogYXJndW1lbnRUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBh
cmd1bWVudFZhbHVlcykKKyAgICAgICAgICAgIDogbV90aW1lc3RhbXAodGltZXN0YW1wKQorICAg
ICAgICAgICAgLCBtX3BoYXNlKHBoYXNlKQorICAgICAgICAgICAgLCBtX25hbWUobmFtZSkKKyAg
ICAgICAgICAgICwgbV90aHJlYWRJZGVudGlmaWVyKHRocmVhZElkZW50aWZpZXIpCisgICAgICAg
ICAgICAsIG1fYXJndW1lbnRDb3VudChhcmd1bWVudENvdW50KQorICAgICAgICAgICAgLCBtX2Fy
Z3VtZW50TmFtZXMoYXJndW1lbnROYW1lcykKKyAgICAgICAgICAgICwgbV9hcmd1bWVudFR5cGVz
KGFyZ3VtZW50VHlwZXMpCisgICAgICAgICAgICAsIG1fYXJndW1lbnRWYWx1ZXMoYXJndW1lbnRW
YWx1ZXMpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGRvdWJsZSB0aW1lc3RhbXAo
KSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQorICAgICAgICBUcmFjZUV2ZW50UGhhc2Ug
cGhhc2UoKSBjb25zdCB7IHJldHVybiBtX3BoYXNlOyB9CisgICAgICAgIGNvbnN0IGNoYXIqIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0
aHJlYWRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV90aHJlYWRJZGVudGlmaWVyOyB9Cisg
ICAgICAgIGludCBhcmd1bWVudENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9hcmd1bWVudENvdW50
OyB9CisKKyAgICAgICAgYm9vbCBhc0Jvb2woY29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAgICAg
ICAgeyAKKyAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFtZSwgVHlwZUJvb2wpLm1fYm9v
bDsKKyAgICAgICAgfQorICAgICAgICBsb25nIGxvbmcgYXNJbnQoY29uc3QgY2hhciogbmFtZSkg
Y29uc3QKKyAgICAgICAgeyAKKyAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFtZSwgVHlw
ZUludCkubV9pbnQ7CisgICAgICAgIH0KKyAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGFzVUlu
dChjb25zdCBjaGFyKiBuYW1lKSBjb25zdCAKKyAgICAgICAgeyAKKyAgICAgICAgICAgIHJldHVy
biBwYXJhbWV0ZXIobmFtZSwgVHlwZVVJbnQpLm1fdWludDsKKyAgICAgICAgfQorICAgICAgICBk
b3VibGUgYXNEb3VibGUoY29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAgICAgICAgeyAKKyAgICAg
ICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFtZSwgVHlwZURvdWJsZSkubV9kb3VibGU7CisgICAg
ICAgIH0KKyAgICAgICAgY29uc3QgY2hhciogYXNTdHJpbmcoY29uc3QgY2hhciogbmFtZSkgY29u
c3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHBhcmFtZXRlcihuYW1lLCBUeXBlU3Ry
aW5nKS5tX3N0cmluZzsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3Qg
VHJhY2VWYWx1ZVVuaW9uJiBwYXJhbWV0ZXIoY29uc3QgY2hhciogbmFtZSwgVHJhY2VWYWx1ZVR5
cGVzIGV4cGVjdGVkVHlwZSkgY29uc3Q7CisKKyAgICAgICAgZG91YmxlIG1fdGltZXN0YW1wOwor
ICAgICAgICBUcmFjZUV2ZW50UGhhc2UgbV9waGFzZTsKKyAgICAgICAgY29uc3QgY2hhciogbV9u
YW1lOworICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSWRlbnRpZmllcjsKKyAgICAg
ICAgaW50IG1fYXJndW1lbnRDb3VudDsKKyAgICAgICAgY29uc3QgY2hhciogY29uc3QqIG1fYXJn
dW1lbnROYW1lczsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogbV9hcmd1bWVudFR5cGVz
OworICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIG1fYXJndW1lbnRWYWx1ZXM7Cisg
ICAgfTsKKworICAgIHR5cGVkZWYgdm9pZCAoVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjoq
VHJhY2VFdmVudEhhbmRsZXIpKGNvbnN0IFRyYWNlRXZlbnQmKTsKKworICAgIHN0cnVjdCBFdmVu
dFR5cGVFbnRyeSB7CisgICAgICAgIEV2ZW50VHlwZUVudHJ5KCkKKyAgICAgICAgICAgIDogbV9i
ZWdpbigwKQorICAgICAgICAgICAgLCBtX2VuZCgwKQorICAgICAgICAgICAgLCBtX2luc3RhbnQo
MCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIGV4cGxpY2l0IEV2ZW50VHlwZUVudHJ5
KFRyYWNlRXZlbnRIYW5kbGVyIGluc3RhbnQpCisgICAgICAgICAgICA6IG1fYmVnaW4oMCkKKyAg
ICAgICAgICAgICwgbV9lbmQoMCkKKyAgICAgICAgICAgICwgbV9pbnN0YW50KGluc3RhbnQpCisg
ICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICBFdmVudFR5cGVFbnRyeShUcmFjZUV2ZW50SGFu
ZGxlciBiZWdpbiwgVHJhY2VFdmVudEhhbmRsZXIgZW5kKQorICAgICAgICAgICAgOiBtX2JlZ2lu
KGJlZ2luKQorICAgICAgICAgICAgLCBtX2VuZChlbmQpCisgICAgICAgICAgICAsIG1faW5zdGFu
dCgwKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBUcmFjZUV2ZW50SGFuZGxlciBt
X2JlZ2luOworICAgICAgICBUcmFjZUV2ZW50SGFuZGxlciBtX2VuZDsKKyAgICAgICAgVHJhY2VF
dmVudEhhbmRsZXIgbV9pbnN0YW50OworICAgIH07CisKKyAgICB2b2lkIHByb2Nlc3NCYWNrZ3Jv
dW5kRXZlbnRzKCk7CisgICAgdm9pZCBzZW5kVGltZWxpbmVSZWNvcmQoUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYgcmVjb3JkVHlwZSwgZG91YmxlIHN0YXJ0
VGltZSwgZG91YmxlIGVuZFRpbWUsIGNvbnN0IFN0cmluZyYgdGhyZWFkKTsKKyAgICB2b2lkIHBy
b2Nlc3NFdmVudChjb25zdCBFdmVudFR5cGVFbnRyeSYsIGNvbnN0IFRyYWNlRXZlbnQmKTsKKwor
ICAgIFdlYWtQdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gbV90aW1lbGluZUFnZW50OworICAg
IEluc3BlY3RvckNsaWVudCogbV9pbnNwZWN0b3JDbGllbnQ7CisKKyAgICBIYXNoTWFwPFN0cmlu
ZywgRXZlbnRUeXBlRW50cnk+IG1faGFuZGxlcnNCeVR5cGU7CisgICAgTXV0ZXggbV9iYWNrZ3Jv
dW5kRXZlbnRzTXV0ZXg7CisgICAgVmVjdG9yPFRyYWNlRXZlbnQ+IG1fYmFja2dyb3VuZEV2ZW50
czsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgbV9wYWdlSWQ7Cit9OworCisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCisjZW5kaWYgLy8gIWRl
ZmluZWQoVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xpZW50LmgKaW5kZXggYTFm
NmE2ZGE0ZTNhZGY3N2U1NWVhMTBkY2MwODc1ZTVjNGZjYzYxYi4uZjZkMzA4NThjM2MwNGQ0ODEx
NGU4N2IyYTQ4NDgzNWQxZjhiMjEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaApAQCAtNzcsNiArNzcsMTIgQEAg
cHVibGljOgogICAgIH07CiAgICAgdmlydHVhbCB2b2lkIGR1bXBVbmNvdW50ZWRBbGxvY2F0ZWRP
YmplY3RzKGNvbnN0IEluc3RydW1lbnRlZE9iamVjdFNpemVQcm92aWRlciopIHsgfQogCisgICAg
dHlwZWRlZiB2b2lkICgqVHJhY2VFdmVudENhbGxiYWNrKShjaGFyIHBoYXNlLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiwgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAorICAg
ICAgICBpbnQgbnVtQXJncywgY29uc3QgY2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMs
CisgICAgICAgIHVuc2lnbmVkIGNoYXIgZmxhZ3MpOworCisgICAgdmlydHVhbCB2b2lkIHNldFRy
YWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJhY2spIHsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgfldlYkRldlRvb2xzQWdlbnRDbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwCmluZGV4IGU5NGRmOWE3YjE4
ZjQ5OGViZjM4YmExODIwZWViODYzYzkyNTljZmUuLjIyNTA2ZjM1NzZmODQxOTUzMmVmMDk2Nzcx
ZDZhNjBmZGJiNDhjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lu
c3BlY3RvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lu
c3BlY3RvckNsaWVudEltcGwuY3BwCkBAIC0yMTgsNiArMjE4LDEyIEBAIGJvb2wgSW5zcGVjdG9y
Q2xpZW50SW1wbDo6aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFjY2VwdCkKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ2xpZW50SW1wbDo6c2V0VHJhY2VFdmVudENh
bGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBpZiAoV2ViRGV2VG9v
bHNBZ2VudEltcGwqIGFnZW50ID0gZGV2VG9vbHNBZ2VudCgpKQorICAgICAgICBhZ2VudC0+c2V0
VHJhY2VFdmVudENhbGxiYWNrKGNhbGxiYWNrKTsKK30KKwogV2ViRGV2VG9vbHNBZ2VudEltcGwq
IEluc3BlY3RvckNsaWVudEltcGw6OmRldlRvb2xzQWdlbnQoKQogewogICAgIHJldHVybiBzdGF0
aWNfY2FzdDxXZWJEZXZUb29sc0FnZW50SW1wbCo+KG1faW5zcGVjdGVkV2ViVmlldy0+ZGV2VG9v
bHNBZ2VudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3Bl
Y3RvckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNs
aWVudEltcGwuaAppbmRleCBkMTczZmNhMjdlMDUyYjgzNDQxMmY4NGM4NTI2NWU1MTg2MzBmMzhk
Li43ZGNkZTRlYjE2YjUxZjMzOGZjOTBlM2E5YzdiN2UzZDk3YWRmMjYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oCkBAIC04OCw2ICs4
OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcFVuY291bnRlZEFsbG9jYXRlZE9i
amVjdHMoY29uc3QgSGFzaE1hcDxjb25zdCB2b2lkKiwgc2l6ZV90PiYpOwogCiAgICAgdmlydHVh
bCBib29sIGNhcHR1cmVTY3JlZW5zaG90KFdURjo6U3RyaW5nKiBkYXRhKTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VHJhY2VFdmVudENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjayk7CiAKICAgICB2
aXJ0dWFsIGJvb2wgaGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFjY2VwdCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApp
bmRleCA0ZWE0NjBhMTBiNjA4OTFjYTVlZWVjZGFhOGYzNzM1NTljZTgxOGIzLi45ZmUxY2NmOTIx
ZTgzNDY4NTNkZjMyZTgwNGM1YWJhMTNmYzQzM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC01OTEsNiArNTkxLDEx
IEBAIGJvb2wgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmhhbmRsZUphdmFTY3JpcHREaWFsb2coYm9v
bCBhY2NlcHQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgV2ViRGV2VG9vbHNBZ2VudElt
cGw6OnNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJhY2sgY2FsbGJhY2spCit7
CisgICAgbV9jbGllbnQtPnNldFRyYWNlRXZlbnRDYWxsYmFjayhjYWxsYmFjayk7Cit9CisKIHZv
aWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kKGNvbnN0
IFdlYlN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpbnNwZWN0b3JDb250cm9sbGVyKCktPmRpc3Bh
dGNoTWVzc2FnZUZyb21Gcm9udGVuZChtZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCmluZGV4IDVlOGYyNDU5NGM0YmM0NDJm
ZGVmMmRkMzAyMzkxMzdjYTI0ZmJiZmQuLjUwOTE5MWZlOTgxYzA5ZjUxOWU3NjM3ZjgxZTZiODA2
YTE1YjFkNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRv
b2xzQWdlbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9v
bHNBZ2VudEltcGwuaApAQCAtMTEwLDYgKzExMCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBnZXRBbGxvY2F0ZWRPYmplY3RzKEhhc2hTZXQ8Y29uc3Qgdm9pZCo+Jik7CiAgICAgdmly
dHVhbCB2b2lkIGR1bXBVbmNvdW50ZWRBbGxvY2F0ZWRPYmplY3RzKGNvbnN0IEhhc2hNYXA8Y29u
c3Qgdm9pZCosIHNpemVfdD4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVudENhbGxi
YWNrKFRyYWNlRXZlbnRDYWxsYmFjayk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FwdHVyZVNjcmVl
bnNob3QoV1RGOjpTdHJpbmcqIGRhdGEpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186384</attachid>
            <date>2013-02-04 08:29:07 -0800</date>
            <delta_ts>2013-02-04 08:38:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105796-20130204202546.patch</filename>
            <type>text/plain</type>
            <size>37067</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTUxYjY2ZWUxYmI2Mzlh
ZGQ5MTc3YTYyZTlkOTIxN2IyMDYyODE2Yi4uNjU3NTJhZmRkYTMzMzQxMWQ0YmM4NzM3NGJhMjg1
YWYwZWZhYjI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTAyLTA0ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHBsdW1iIHRyYWNlIGV2ZW50cyB0byBU
aW1lbGluZTsKKyAgICAgICAgLSBhZGQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yIHRvIHBy
b2Nlc3Mgc2VsZWN0ZWQgdHJhY2UgZXZlbnRzOworICAgICAgICAtIGVtaXQgdGltZWxpbmUgZXZl
bnRzIGZyb20gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLgorCisgICAgICAgIE5vdGUgdGhh
dCBhY3R1YWwgZXZlbnQgcHJvY2Vzc2luZyBsb2dpYyBpcyBhIHNlcGFyYXRlIGNoYW5nZS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBbGxJ
bk9uZS5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oOgorICAgICAg
ICAoSW5zcGVjdG9yQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6
c2V0VHJhY2VFdmVudENhbGxiYWNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdG9w
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
cGFnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJbnNwZWN0b3JU
aW1lbGluZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3I6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6flRpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NFdmVudE9uQW55VGhyZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6cHJvY2Vzc0V2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6c2Vu
ZFRpbWVsaW5lUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvcjo6cHJvY2Vzc0JhY2tncm91bmRFdmVudHMpOgorICAgICAgICAqIGluc3BlY3Rvci9U
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChUcmFjZUV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJh
Y2VFdmVudDo6VHJhY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnRpbWVzdGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnBoYXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6bmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZl
bnQ6OnRocmVhZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2
ZW50UHJvY2Vzc29yOjpUcmFjZUV2ZW50Ojphcmd1bWVudENvdW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6YXNCb29sKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6
YXNJbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpU
cmFjZUV2ZW50Ojphc1VJbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yOjpUcmFjZUV2ZW50Ojphc0RvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OmFzU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6RXZlbnRUeXBlRW50cnk6OkV2
ZW50VHlwZUVudHJ5KToKKyAgICAgICAgKEV2ZW50VHlwZUVudHJ5KToKKwogMjAxMy0wMi0wNCAg
RXVnZW5lIEtseXVjaG5pa292ICA8ZXVzdGFzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbTmV0d29ya10gTWlub3IgcmVmYWN0b3JpbmdzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCBjYmZlYTE2ZTA3Mjg4Y2VhNzgzYzMyODRlMTIzZDU2MmIzNDdmNTY1Li43
ODIyMzE4YmMzZmNjMTJjYjcxZTUxYTlmNGE5NTU2NzRkYTI4ZWYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTA0ICBBbmRyZXkgS29zeWFrb3Yg
IDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcGx1bWIgdHJh
Y2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQbHVtYiB0cmFjZSBldmVudHMgdG8gSW5zcGVjdG9yLgorCisg
ICAgICAgICogcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaDoKKyAgICAgICAgKFdlYkRl
dlRvb2xzQWdlbnRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50Q2xp
ZW50OjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAgICAgICAqIHNyYy9JbnNwZWN0b3JDbGll
bnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50SW1wbDo6c2V0VHJh
Y2VFdmVudENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0luc3Bl
Y3RvckNsaWVudEltcGwuaDoKKyAgICAgICAgKEluc3BlY3RvckNsaWVudEltcGwpOgorICAgICAg
ICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRl
dlRvb2xzQWdlbnRJbXBsOjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaDoKKyAgICAgICAgKFdlYkRl
dlRvb2xzQWdlbnRJbXBsKToKKwogMjAxMy0wMi0wMyAgS3dhbmdZb25nIENob2kgIDxreTAuY2hv
aUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBGaXggYnVpbGQgd2FybmluZyBhZnRlciByMTQxNDcz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGJkMjMzYjlmMWUzOThmMDM2OTdhMDMzMjM3NTUxZDc5
YzE1YmI4ZTcuLjA1MTQ1ZDFiZDlkZDRhOTNhOTEzNjk3Y2QxZmFmMzM0Njg2ZmM4YTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0xNjU1LDYgKzE2NTUsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgaW5zcGVjdG9yL1NjcmlwdENhbGxGcmFtZS5jcHAKICAgICBpbnNwZWN0b3IvU2NyaXB0
Q2FsbFN0YWNrLmNwcAogICAgIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCisg
ICAgaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKICAgICBpbnNwZWN0
b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcAogICAgIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFn
ZW50LmNwcAogICAgIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMTczMTY1NTA1NjJiNzI1NjNlMGViNDJmMTJk
NDI4ZWRkOWFiNWQwYi4uMGNlZjc4ODA3NmYyYWY1MzBjMmIxMzhmMTdlNWE1OTM1OWRlOTE2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODY3LDYgKzM4NjcsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRHQ0V2ZW50
TGlzdGVuZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rv
cnkuaCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2Vu
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCmluZGV4IGU4ZjZmYzE2MmQzOTk0NWM0NDFiMGU2YzQyOTkzMGRjYWQ3ZDBiNjUuLjg3
MzcxMzMxZDVmZmU3N2IzMjcwZWJlZDgyYWI0MDI5ZTM3Y2FiOGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
ODEzLDYgKzgxMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsRnJh
bWUuY3BwIFwKICAgICBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmNwcCBcCiAgICAgaW5zcGVj
dG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgXAorICAgIGluc3BlY3Rvci9UaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IuY3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50
LmNwcCBcCiAgICAgaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKICAgICBpbnNw
ZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IGRjYmIzNTU1MjIwZDdiYjQwYjE1N2UwMDcwOGQ3NjQzODIxNDQ1YTcuLmJlNzE1YzI1NzdhM2E4
ZDMwZDU4ZDkxYWViMGIwNDAyODEyNDg1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE5MTMsNiAr
MTkxMyw4IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5o
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCcsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oJywKKyAgICAgICAg
ICAgICdpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCcsCisgICAgICAg
ICAgICAnaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCcsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvV29y
a2VyRGVidWdnZXJBZ2VudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagppbmRleCA3NGFhYzk1MWUwZjNiNjg2NDA2ZmUzNWU2YjljODRhOTk2MmNh
MGE4Li44NmJjOWQzMGE5ZmQ2NGFiOTBjYmRhYjQ5NjdjYmNjMDVlMTc2ODBjIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzY2NTQsNiArNzY2
NTQsMzAgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxUaW1lbGluZVJlY29yZEZh
Y3RvcnkuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8Rmls
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXGluc3Bl
Y3RvclxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlQ29u
ZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9
IlJlbGVhc2V8V2luMzIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlByb2R1Y3Rpb258V2lu
MzIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxXb3JrZXJDb25zb2xlQWdlbnQuY3BwIgogCQkJCT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA5YjIwOGQyODE5YThiNmY5YmE1ZGU5OTcwOGIzNTllMDM3YjJjYWRiLi5lM2YwYWU0YjBj
ZTVkMzFlODZlMDBjZWNmYjYyMDU2MjlkMGJhODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjc1LDYgKzEyNzUsOCBAQAog
CQk0NkY5RDVERjBCMEQ2MDE3MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkY5RDVEQzBCMEQ2MDE3
MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nICovOyB9OwogCQk0OTA3MDdFNjEyMTlDMDQz
MDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xF
V2ViS2l0QnJpZGdlLmNwcCAqLzsgfTsKIAkJNDkwNzA3RTcxMjE5QzA0MzAwRDkwRTUxIC8qIEFO
R0xFV2ViS2l0QnJpZGdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTA3MDdFNTEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCAq
LzsgfTsKKwkJNDkxNDAyNTYxNjhFMDJFODAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTE0MDI1NDE2OEUwMkI0MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmNwcCAqLzsgfTsKKwkJNDkxNDAyNTcxNjhFMDJFQzAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VF
dmVudFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDkxNDAyNTUxNjhFMDJCNDAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvci5oICovOyB9OwogCQk0OTE4MkI1MjE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0
cnVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDkxODJCNTAxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
LmNwcCAqLzsgfTsKIAkJNDkxODJCNTMxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1
bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTE4MkI1MTE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCAq
LzsgfTsKIAkJNDkyODYzOTkxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5Mjg2Mzk4MTI1
M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTg2MjMsNiArODYyNSw4IEBACiAJCTQ2RjlE
NURDMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBwcm9n
cmVzc0N1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MDcwN0U0MTIx
OUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJy
aWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTE0MDI1NDE2OEUwMkI0MDAyRDZD
NkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5MTQwMjU1MTY4RTAyQjQwMDJENkM2QSAvKiBUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ5MTgyQjUwMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRhdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUluc3Ry
dW1lbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MTgyQjUxMTVE
Q0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0OTI4NjM5ODEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3VyY2VM
b2FkSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRJ
bmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTE5Myw2ICsxNTE5Nyw4IEBA
CiAJCQkJOUZBMzdFRjAxMTcyRkQ0MTAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmlkbCAq
LywKIAkJCQk3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcCAqLywKIAkJCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmggKi8sCisJCQkJNDkxNDAyNTQxNjhFMDJCNDAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3Nvci5jcHAgKi8sCisJCQkJNDkxNDAyNTUxNjhFMDJCNDAwMkQ2QzZBIC8q
IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oICovLAogCQkJCUYzODIwODhFMTQ3RDM1Rjkw
MDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwICovLAogCQkJCUYzODIwODhGMTQ3RDM1
RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCAqLywKIAkJCQlGMzQ3NDJERTEzNDM2
MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgKi8sCkBAIC0yNjMzOSw2ICsy
NjM0NSw3IEBACiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9y
RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAv
KiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDkxNDAyNTcxNjhFMDJFQzAwMkQ2QzZB
IC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yOTQ5
Nyw2ICsyOTUwNCw3IEBACiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzgwIC8qIFhT
U0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4
MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDkxNDAyNTYxNjhF
MDJFODAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJ
bk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3Bw
CmluZGV4IDljOWZmMjA4NTljMmQ4Y2I4NTYzNDdkNjdiODExMzFhN2JiODllYmYuLmIxMTNkZDll
ZDJmMjZkN2NkODQyNjRmMTJkNTQ0ZDQzYWQzNTQ3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcApAQCAtODMsNiArODMsNyBAQAogI2luY2x1
ZGUgIlNjcmlwdENhbGxGcmFtZS5jcHAiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmNwcCIK
ICNpbmNsdWRlICJUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIgorI2luY2x1ZGUgIlRpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvci5jcHAiCiAjaW5jbHVkZSAiV29ya2VyQ29uc29sZUFnZW50LmNw
cCIKICNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCIKICNpbmNsdWRlICJXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDbGllbnQuaAppbmRleCBiOWY4ZjU2MTJmNDdkNTk2M2FmYWI4MmRjNzllZmY3ZmJmMzRjNWJm
Li4zYzk3MTI5YWQzMWM2OWM1NDllY2RkYzFiOGY2ZmNmMWVkZTk3NDg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCkBAIC01OSw2ICs1OSwxMSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQnJvd3NlckNvb2tpZXMoKSB7IH0KICAgICB2aXJ0
dWFsIGJvb2wgY2FuTW9uaXRvck1haW5UaHJlYWQoKSB7IHJldHVybiBmYWxzZTsgfQogCisgICAg
dHlwZWRlZiB2b2lkICgqVHJhY2VFdmVudENhbGxiYWNrKShjaGFyIHBoYXNlLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiwgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAorICAg
ICAgICBpbnQgbnVtQXJncywgY29uc3QgY2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMs
CisgICAgICAgIHVuc2lnbmVkIGNoYXIgZmxhZ3MpOworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFj
ZUV2ZW50Q2FsbGJhY2soVHJhY2VFdmVudENhbGxiYWNrKSB7IH0KKwogICAgIHZpcnR1YWwgYm9v
bCBjYW5PdmVycmlkZURldmljZU1ldHJpY3MoKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIG92ZXJyaWRlRGV2aWNlTWV0cmljcyhpbnQgLyp3aWR0aCovLCBpbnQgLypoZWln
aHQqLywgZmxvYXQgLypmb250U2NhbGVGYWN0b3IqLywgYm9vbCAvKmZpdFdpbmRvdyovKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
CmluZGV4IGFjN2FkY2IwYWEzNTZmZTc3MGNkZmZjMzAzOTY5MjU2NjU3OGEyNTcuLjhjMDY3YzVk
OWVkZWI2OGIzNmU4ODNkN2I5NTE5MWE3YmIyNWFiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAqCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01MSw2ICs1MSw3IEBACiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgog
I2luY2x1ZGUgIlRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIgorI2luY2x1ZGUgIlRpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3Nvci5oIgogCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKQEAg
LTE3MSw2ICsxNzIsOSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0KEVycm9y
U3RyaW5nKiwgY29uc3QgaW50KiBtYXhDYWxsU3RhY2tEZXB0aCkKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvclRpbWVsaW5lQWdlbnQodGhpcyk7CiAgICAgU2NyaXB0R0NF
dmVudDo6YWRkRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKFRp
bWVsaW5lQWdlbnRTdGF0ZTo6dGltZWxpbmVBZ2VudEVuYWJsZWQsIHRydWUpOworICAgIC8vIFRo
ZSBiZWxvdyB3b3VsZCBiZSBmYWxzZSBmb3Igd29ya2Vycy4KKyAgICBpZiAobV9jbGllbnQgJiYg
bV9wYWdlQWdlbnQpCisgICAgICAgIG1fdHJhY2VFdmVudFByb2Nlc3NvciA9IGFkb3B0UmVmKG5l
dyBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IobV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCksIG1fY2xpZW50KSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcChF
cnJvclN0cmluZyopCkBAIC0xNzgsNiArMTgyLDggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpzdG9wKEVycm9yU3RyaW5nKikKICAgICBpZiAoIW1fc3RhdGUtPmdldEJvb2xlYW4oVGlt
ZWxpbmVBZ2VudFN0YXRlOjp0aW1lbGluZUFnZW50RW5hYmxlZCkpCiAgICAgICAgIHJldHVybjsK
IAorICAgIG1fdHJhY2VFdmVudFByb2Nlc3Nvci5jbGVhcigpOworICAgIG1fd2Vha0ZhY3Rvcnku
cmV2b2tlQWxsKCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JUaW1l
bGluZUFnZW50KDApOwogICAgIFNjcmlwdEdDRXZlbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIodGhp
cyk7CiAKQEAgLTU2NCw2ICs1NzAsNyBAQCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbgogICAgICwg
bV9wbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudEluc3RhbGxlZEF0U3RhY2tEZXB0aCgwKQog
ICAgICwgbV9pbnNwZWN0b3JUeXBlKHR5cGUpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCisgICAg
LCBtX3dlYWtGYWN0b3J5KHRoaXMpCiB7CiB9CiAKQEAgLTYyNCw2ICs2MzEsMTEgQEAgZG91Ymxl
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRpbWVzdGFtcEZyb21NaWNyb3NlY29uZHMoZG91Ymxl
IG1pY3Jvc2Vjb25kcykKICAgICByZXR1cm4gKG1pY3Jvc2Vjb25kcyArIG1fdGltZXN0YW1wT2Zm
c2V0KSAqIDEwMDAuMDsKIH0KIAorUGFnZSogSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cGFnZSgp
Cit7CisgICAgcmV0dXJuIG1fcGFnZUFnZW50ID8gbV9wYWdlQWdlbnQtPnBhZ2UoKSA6IDA7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
aAppbmRleCBlNzA2MmExMTgxODhmYWNkZDU0MzRhMTIxMWQzYzdmYzVmMDZlOTY2Li43NWYwMjQz
N2MwY2ZkMzNkNGViNzM2ZWI2NDcwMzllMDhiMzJjMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTQyLDYgKzQyLDcgQEAK
ICNpbmNsdWRlICJTY3JpcHRHQ0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFdmVudDsKQEAgLTUyLDkgKzUzLDExIEBA
IGNsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3Mg
SW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIEludFJlY3Q7CitjbGFzcyBQYWdlOwogY2xhc3Mg
UmVuZGVyT2JqZWN0OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNw
b25zZTsKK2NsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcjsKIAogdHlwZWRlZiBTdHJp
bmcgRXJyb3JTdHJpbmc7CiAKQEAgLTE2Niw2ICsxNjksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlc2l6ZUltYWdlKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CisgICAgZnJpZW5k
IGNsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcjsKKwogICAgIHN0cnVjdCBUaW1lbGlu
ZVJlY29yZEVudHJ5IHsKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gcmVjb3JkLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwg
UGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW4sIGNvbnN0IFN0cmluZyYgdHlwZSwg
Y29uc3QgU3RyaW5nJiBmcmFtZUlkLCBzaXplX3QgdXNlZEhlYXBTaXplQXRTdGFydCkKICAgICAg
ICAgICAgIDogcmVjb3JkKHJlY29yZCksIGRhdGEoZGF0YSksIGNoaWxkcmVuKGNoaWxkcmVuKSwg
dHlwZSh0eXBlKSwgZnJhbWVJZChmcmFtZUlkKSwgdXNlZEhlYXBTaXplQXRTdGFydCh1c2VkSGVh
cFNpemVBdFN0YXJ0KQpAQCAtMTk1LDYgKzIwMCw3IEBAIHByaXZhdGU6CiAKICAgICBkb3VibGUg
dGltZXN0YW1wKCk7CiAgICAgZG91YmxlIHRpbWVzdGFtcEZyb21NaWNyb3NlY29uZHMoZG91Ymxl
IG1pY3Jvc2Vjb25kcyk7CisgICAgUGFnZSogcGFnZSgpOwogCiAgICAgSW5zcGVjdG9yUGFnZUFn
ZW50KiBtX3BhZ2VBZ2VudDsKIApAQCAtMjIwLDYgKzIyNiw4IEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gbV9wZW5kaW5nRnJhbWVSZWNvcmQ7CiAgICAgSW5zcGVjdG9y
VHlwZSBtX2luc3BlY3RvclR5cGU7CiAgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2NsaWVudDsKKyAg
ICBXZWFrUHRyRmFjdG9yeTxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBtX3dlYWtGYWN0b3J5Owor
ICAgIFJlZlB0cjxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I+IG1fdHJhY2VFdmVudFByb2Nl
c3NvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjkxNzVkOTliYTMzMmJlYjIxOWM5NmJlMjc2NDZjNDVhYTBiNjVlZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuY3BwCkBAIC0wLDAgKzEsMjExIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyogbWV0OgorKgorKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisqIGRpc3RyaWJ1dGlvbi4KKyogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
KgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAi
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgiCisKKyNpbmNsdWRlICJJbnNwZWN0b3JDbGll
bnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJJ
bnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCisjaW5jbHVkZSAiVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmgiCisKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgeworCitjbGFzcyBU
cmFjZUV2ZW50RGlzcGF0Y2hlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVHJhY2VFdmVu
dERpc3BhdGNoZXIpOworcHVibGljOgorICAgIHN0YXRpYyBUcmFjZUV2ZW50RGlzcGF0Y2hlciog
aW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChUcmFjZUV2ZW50
RGlzcGF0Y2hlciwgaW5zdGFuY2UsICgpKTsKKyAgICAgICAgcmV0dXJuICZpbnN0YW5jZTsKKyAg
ICB9CisKKyAgICB2b2lkIGFkZFByb2Nlc3NvcihUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3Iq
IHByb2Nlc3NvciwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCisgICAgeworICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7CisKKyAgICAgICAgbV9wcm9jZXNzb3JzLmFwcGVuZChw
cm9jZXNzb3IpOworICAgICAgICBpZiAobV9wcm9jZXNzb3JzLnNpemUoKSA9PSAxKQorICAgICAg
ICAgICAgY2xpZW50LT5zZXRUcmFjZUV2ZW50Q2FsbGJhY2soZGlzcGF0Y2hFdmVudE9uQW55VGhy
ZWFkKTsKKyAgICB9CisKKyAgICB2b2lkIHJlbW92ZVByb2Nlc3NvcihUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3IqIHByb2Nlc3NvciwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCisgICAgewor
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisKKyAgICAgICAgc2l6ZV90IGlu
ZGV4ID0gbV9wcm9jZXNzb3JzLmZpbmQocHJvY2Vzc29yKTsKKyAgICAgICAgaWYgKGluZGV4ID09
IG5vdEZvdW5kKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX3Byb2Nlc3NvcnMucmVtb3ZlKGluZGV4
KTsKKyAgICAgICAgaWYgKG1fcHJvY2Vzc29ycy5pc0VtcHR5KCkpCisgICAgICAgICAgICBjbGll
bnQtPnNldFRyYWNlRXZlbnRDYWxsYmFjaygwKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZW51
bSB7IFByb2Nlc3NvcnNWZWN0b3JJbmxpbmVDYXBhY2l0eSA9IDIgfTsKKworICAgIFRyYWNlRXZl
bnREaXNwYXRjaGVyKCkgeyB9CisKKyAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaEV2ZW50T25BbnlU
aHJlYWQoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQgY2hhciosIGNvbnN0IGNoYXIqIG5hbWUs
IHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51bUFyZ3MsIGNvbnN0IGNoYXIq
IGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlwZXMsIGNvbnN0IHVu
c2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdz
KQorICAgIHsKKyAgICAgICAgVHJhY2VFdmVudERpc3BhdGNoZXIqIHNlbGYgPSBpbnN0YW5jZSgp
OworICAgICAgICBWZWN0b3I8UmVmUHRyPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcj4sIFBy
b2Nlc3NvcnNWZWN0b3JJbmxpbmVDYXBhY2l0eT4gcHJvY2Vzc29yczsKKyAgICAgICAgeworICAg
ICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHNlbGYtPm1fbXV0ZXgpOworICAgICAgICAgICAg
cHJvY2Vzc29ycyA9IHNlbGYtPm1fcHJvY2Vzc29yczsKKyAgICAgICAgfQorICAgICAgICBmb3Ig
KGludCBpID0gMCwgc2l6ZSA9IHByb2Nlc3NvcnMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7Cisg
ICAgICAgICAgICBwcm9jZXNzb3JzW2ldLT5wcm9jZXNzRXZlbnRPbkFueVRocmVhZChzdGF0aWNf
Y2FzdDxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnRQaGFzZT4ocGhhc2Up
LAorICAgICAgICAgICAgICAgIG5hbWUsIGlkLCBudW1BcmdzLCBhcmdOYW1lcywgYXJnVHlwZXMs
IGFyZ1ZhbHVlcywgZmxhZ3MpOworICAgICAgICB9CisgICAgfQorCisgICAgTXV0ZXggbV9tdXRl
eDsKKyAgICBWZWN0b3I8UmVmUHRyPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcj4sIFByb2Nl
c3NvcnNWZWN0b3JJbmxpbmVDYXBhY2l0eT4gbV9wcm9jZXNzb3JzOworfTsKKworfSAvLyBuYW1l
c3BjZQorVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IoV2Vha1B0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiB0aW1lbGluZUFnZW50LCBJbnNw
ZWN0b3JDbGllbnQgKmNsaWVudCkKKyAgICA6IG1fdGltZWxpbmVBZ2VudCh0aW1lbGluZUFnZW50
KQorICAgICwgbV9pbnNwZWN0b3JDbGllbnQoY2xpZW50KQorICAgICwgbV9wYWdlSWQocmVpbnRl
cnByZXRfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fdGltZWxpbmVBZ2VudC5nZXQoKS0+cGFn
ZSgpKSkKK3sKKyAgICBUcmFjZUV2ZW50RGlzcGF0Y2hlcjo6aW5zdGFuY2UoKS0+YWRkUHJvY2Vz
c29yKHRoaXMsIG1faW5zcGVjdG9yQ2xpZW50KTsKK30KKworVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yOjp+VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKCkKK3sKKyAgICBUcmFjZUV2ZW50
RGlzcGF0Y2hlcjo6aW5zdGFuY2UoKS0+cmVtb3ZlUHJvY2Vzc29yKHRoaXMsIG1faW5zcGVjdG9y
Q2xpZW50KTsKK30KKworY29uc3QgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFjZVZh
bHVlVW5pb24mIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6cGFyYW1l
dGVyKGNvbnN0IGNoYXIqIG5hbWUsIFRyYWNlVmFsdWVUeXBlcyBleHBlY3RlZFR5cGUpIGNvbnN0
Cit7CisgICAgY29uc3Qgc3RhdGljIFRyYWNlVmFsdWVVbmlvbiBtaXNzaW5nVmFsdWU7CisKKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IG1fYXJndW1lbnRDb3VudDsgKytpKSB7CisgICAgICAgIGlm
ICghc3RyY21wKG5hbWUsIG1fYXJndW1lbnROYW1lc1tpXSkpIHsKKyAgICAgICAgICAgIGlmICht
X2FyZ3VtZW50VHlwZXNbaV0gIT0gZXhwZWN0ZWRUeXBlKSB7CisgICAgICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1pc3NpbmdWYWx1ZTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBUcmFjZVZhbHVlVW5pb24qPihtX2FyZ3VtZW50VmFsdWVzICsgaSk7CisgICAgICAgIH0KKyAg
ICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG1pc3NpbmdWYWx1ZTsK
K30KKwordm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NFdmVudE9uQW55
VGhyZWFkKFRyYWNlRXZlbnRQaGFzZSBwaGFzZSwgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQg
bG9uZyBsb25nLAorICAgIGludCBudW1BcmdzLCBjb25zdCBjaGFyKiBjb25zdCogYXJnTmFtZXMs
IGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ1R5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcq
IGFyZ1ZhbHVlcywKKyAgICB1bnNpZ25lZCBjaGFyKQoreworICAgIEhhc2hNYXA8U3RyaW5nLCBF
dmVudFR5cGVFbnRyeT46Oml0ZXJhdG9yIGl0ID0gbV9oYW5kbGVyc0J5VHlwZS5maW5kKG5hbWUp
OworICAgIGlmIChpdCA9PSBtX2hhbmRsZXJzQnlUeXBlLmVuZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBUcmFjZUV2ZW50IGV2ZW50KFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCksIHBoYXNlLCBuYW1lLCBjdXJyZW50VGhyZWFkKCksIG51bUFyZ3MsIGFyZ05hbWVzLCBhcmdU
eXBlcywgYXJnVmFsdWVzKTsKKworICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKKyAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fYmFja2dyb3VuZEV2ZW50c011dGV4KTsKKyAgICAgICAgbV9i
YWNrZ3JvdW5kRXZlbnRzLmFwcGVuZChldmVudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBwcm9jZXNzRXZlbnQoaXQtPnZhbHVlLCBldmVudCk7Cit9CisKK3ZvaWQgVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yOjpwcm9jZXNzRXZlbnQoY29uc3QgRXZlbnRUeXBlRW50cnkmIGV2
ZW50VHlwZUVudHJ5LCBjb25zdCBUcmFjZUV2ZW50JiBldmVudCkKK3sKKyAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworCisgICAgVHJhY2VFdmVudEhhbmRsZXIgaGFuZGxlciA9IDA7CisgICAg
c3dpdGNoIChldmVudC5waGFzZSgpKSB7CisgICAgY2FzZSBUcmFjZVBoYXNlQmVnaW46CisgICAg
ICAgIGhhbmRsZXIgPSBldmVudFR5cGVFbnRyeS5tX2JlZ2luOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFRyYWNlUGhhc2VFbmQ6CisgICAgICAgIGhhbmRsZXIgPSBldmVudFR5cGVFbnRyeS5t
X2VuZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUcmFjZVBoYXNlSW5zdGFudDoKKyAgICAg
ICAgaGFuZGxlciA9IGV2ZW50VHlwZUVudHJ5Lm1faW5zdGFudDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIGlm
ICghaGFuZGxlcikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICAodGhpcy0+KmhhbmRsZXIpKGV2ZW50KTsKK30KKwordm9pZCBUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnNlbmRUaW1lbGluZVJlY29yZChQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiByZWNvcmRUeXBlLCBkb3VibGUgc3Rh
cnRUaW1lLCBkb3VibGUgZW5kVGltZSwgY29uc3QgU3RyaW5nJiB0aHJlYWQpCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVs
aW5lQWdlbnQgPSBtX3RpbWVsaW5lQWdlbnQuZ2V0KCk7CisgICAgaWYgKCF0aW1lbGluZUFnZW50
KQorICAgICAgICByZXR1cm47CisgICAgdGltZWxpbmVBZ2VudC0+YXBwZW5kQmFja2dyb3VuZFRo
cmVhZFJlY29yZChkYXRhLCByZWNvcmRUeXBlLCBzdGFydFRpbWUsIGVuZFRpbWUsIHRocmVhZCk7
Cit9CisKK3ZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpwcm9jZXNzQmFja2dyb3Vu
ZEV2ZW50cygpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIFZlY3RvcjxU
cmFjZUV2ZW50PiBldmVudHM7CisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9i
YWNrZ3JvdW5kRXZlbnRzTXV0ZXgpOworICAgICAgICBldmVudHMucmVzZXJ2ZUNhcGFjaXR5KG1f
YmFja2dyb3VuZEV2ZW50cy5jYXBhY2l0eSgpKTsKKyAgICAgICAgbV9iYWNrZ3JvdW5kRXZlbnRz
LnN3YXAoZXZlbnRzKTsKKyAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBldmVu
dHMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGNvbnN0IFRyYWNlRXZlbnQmIGV2
ZW50ID0gZXZlbnRzW2ldOworICAgICAgICBwcm9jZXNzRXZlbnQobV9oYW5kbGVyc0J5VHlwZS5m
aW5kKGV2ZW50Lm5hbWUoKSktPnZhbHVlLCBldmVudCk7CisgICAgfQorfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJjNTU1YzExMjQxYTIyYTRhZGJkNjdlYTMyNjg0MmFkNThhMDEzZTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yLmgKQEAgLTAsMCArMSwxOTUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorKiBtZXQ6CisqCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyogZGlzdHJpYnV0aW9uLgorKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisK
KyNpZm5kZWYgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gKKyNkZWZpbmUgVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yX2gKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRl
ICJJbnNwZWN0b3JWYWx1ZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgSW5zcGVjdG9yQ2xpZW50OworY2xhc3MgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDsKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3NvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3I+IHsKK3B1YmxpYzoKKyAgICAvLyBGSVhNRTogcmUtdXNlIGRlZmluaXRpb25zIGluIFRy
YWNlRXZlbnQuaCBvbmNlIGl0J3MgcHJvbW90ZWQgdG8gYWxsIHBsYXRmb3Jtcy4KKyAgICBlbnVt
IFRyYWNlRXZlbnRQaGFzZSB7CisgICAgICAgIFRyYWNlUGhhc2VCZWdpbiA9ICdCJywKKyAgICAg
ICAgVHJhY2VQaGFzZUVuZCA9ICdFJywKKyAgICAgICAgVHJhY2VQaGFzZUluc3RhbnQgPSAnSScK
KyAgICB9OworCisgICAgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKFdlYWtQdHI8SW5zcGVj
dG9yVGltZWxpbmVBZ2VudD4sIEluc3BlY3RvckNsaWVudCopOworICAgIH5UaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3IoKTsKKworICAgIHZvaWQgcHJvY2Vzc0V2ZW50T25BbnlUaHJlYWQoVHJh
Y2VFdmVudFBoYXNlLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgaWQsCisg
ICAgICAgIGludCBudW1BcmdzLCBjb25zdCBjaGFyKiBjb25zdCogYXJnTmFtZXMsIGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGFyZ1R5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIGFyZ1ZhbHVl
cywKKyAgICAgICAgdW5zaWduZWQgY2hhciBmbGFncyk7CisgICAgCitwcml2YXRlOgorICAgIC8v
IEZJWE1FOiB1c2UgdGhlIGRlZmluaXRpb24gaW4gVHJhY2VFdmVudC5oIG9uY2Ugd2UgZXhwb3Nl
IHRoZSBsYXR0ZXIgdG8gYWxsIHBsYWZvcm1zLgorICAgIHVuaW9uIFRyYWNlVmFsdWVVbmlvbiB7
CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3VpbnQ7CisgICAgICAgIGxvbmcgbG9uZyBt
X2ludDsKKyAgICAgICAgZG91YmxlIG1fZG91YmxlOworICAgICAgICBib29sIG1fYm9vbDsKKyAg
ICAgICAgY29uc3Qgdm9pZCogbV9wb2ludGVyOworICAgICAgICBjb25zdCBjaGFyKiBtX3N0cmlu
ZzsKKworICAgICAgICBUcmFjZVZhbHVlVW5pb24oKSB7IH0KKyAgICB9OworCisgICAgZW51bSBU
cmFjZVZhbHVlVHlwZXMgeworICAgICAgICBUeXBlQm9vbCA9IDEsCisgICAgICAgIFR5cGVVSW50
ID0gMiwKKyAgICAgICAgVHlwZUludCA9IDMsCisgICAgICAgIFR5cGVEb3VibGUgPSA0LAorICAg
ICAgICBUeXBlUG9pbnRlciA9IDUsCisgICAgICAgIFR5cGVTdHJpbmcgPSA2LAorICAgICAgICBU
eXBlQ29weVN0cmluZyA9IDcKKyAgICB9OworCisgICAgY2xhc3MgVHJhY2VFdmVudCB7CisgICAg
cHVibGljOgorICAgICAgICBUcmFjZUV2ZW50KCkKKyAgICAgICAgICAgIDogbV9hcmd1bWVudENv
dW50KDApCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFRyYWNlRXZlbnQoZG91Ymxl
IHRpbWVzdGFtcCwgVHJhY2VFdmVudFBoYXNlIHBoYXNlLCBjb25zdCBjaGFyKiBuYW1lLCBUaHJl
YWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIsCisgICAgICAgICAgICBpbnQgYXJndW1lbnRD
b3VudCwgY29uc3QgY2hhciogY29uc3QqIGFyZ3VtZW50TmFtZXMsIGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGFyZ3VtZW50VHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJndW1lbnRWYWx1
ZXMpCisgICAgICAgICAgICA6IG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKKyAgICAgICAgICAgICwg
bV9waGFzZShwaGFzZSkKKyAgICAgICAgICAgICwgbV9uYW1lKG5hbWUpCisgICAgICAgICAgICAs
IG1fdGhyZWFkSWRlbnRpZmllcih0aHJlYWRJZGVudGlmaWVyKQorICAgICAgICAgICAgLCBtX2Fy
Z3VtZW50Q291bnQoYXJndW1lbnRDb3VudCkKKyAgICAgICAgICAgICwgbV9hcmd1bWVudE5hbWVz
KGFyZ3VtZW50TmFtZXMpCisgICAgICAgICAgICAsIG1fYXJndW1lbnRUeXBlcyhhcmd1bWVudFR5
cGVzKQorICAgICAgICAgICAgLCBtX2FyZ3VtZW50VmFsdWVzKGFyZ3VtZW50VmFsdWVzKQorICAg
ICAgICB7CisgICAgICAgIH0KKworICAgICAgICBkb3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyBy
ZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICAgICAgVHJhY2VFdmVudFBoYXNlIHBoYXNlKCkgY29u
c3QgeyByZXR1cm4gbV9waGFzZTsgfQorICAgICAgICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9uYW1lOyB9CisgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkSWRlbnRpZmllcjsgfQorICAgICAgICBpbnQg
YXJndW1lbnRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJndW1lbnRDb3VudDsgfQorCisgICAg
ICAgIGJvb2wgYXNCb29sKGNvbnN0IGNoYXIqIG5hbWUpIGNvbnN0CisgICAgICAgIHsgCisgICAg
ICAgICAgICByZXR1cm4gcGFyYW1ldGVyKG5hbWUsIFR5cGVCb29sKS5tX2Jvb2w7CisgICAgICAg
IH0KKyAgICAgICAgbG9uZyBsb25nIGFzSW50KGNvbnN0IGNoYXIqIG5hbWUpIGNvbnN0CisgICAg
ICAgIHsgCisgICAgICAgICAgICByZXR1cm4gcGFyYW1ldGVyKG5hbWUsIFR5cGVJbnQpLm1faW50
OworICAgICAgICB9CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhc1VJbnQoY29uc3QgY2hh
ciogbmFtZSkgY29uc3QgCisgICAgICAgIHsgCisgICAgICAgICAgICByZXR1cm4gcGFyYW1ldGVy
KG5hbWUsIFR5cGVVSW50KS5tX3VpbnQ7CisgICAgICAgIH0KKyAgICAgICAgZG91YmxlIGFzRG91
YmxlKGNvbnN0IGNoYXIqIG5hbWUpIGNvbnN0CisgICAgICAgIHsgCisgICAgICAgICAgICByZXR1
cm4gcGFyYW1ldGVyKG5hbWUsIFR5cGVEb3VibGUpLm1fZG91YmxlOworICAgICAgICB9CisgICAg
ICAgIGNvbnN0IGNoYXIqIGFzU3RyaW5nKGNvbnN0IGNoYXIqIG5hbWUpIGNvbnN0CisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFtZSwgVHlwZVN0cmluZykubV9zdHJp
bmc7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IFRyYWNlVmFsdWVV
bmlvbiYgcGFyYW1ldGVyKGNvbnN0IGNoYXIqIG5hbWUsIFRyYWNlVmFsdWVUeXBlcyBleHBlY3Rl
ZFR5cGUpIGNvbnN0OworCisgICAgICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsKKyAgICAgICAgVHJh
Y2VFdmVudFBoYXNlIG1fcGhhc2U7CisgICAgICAgIGNvbnN0IGNoYXIqIG1fbmFtZTsKKyAgICAg
ICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVhZElkZW50aWZpZXI7CisgICAgICAgIGludCBtX2Fy
Z3VtZW50Q291bnQ7CisgICAgICAgIGNvbnN0IGNoYXIqIGNvbnN0KiBtX2FyZ3VtZW50TmFtZXM7
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG1fYXJndW1lbnRUeXBlczsKKyAgICAgICAg
Y29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBtX2FyZ3VtZW50VmFsdWVzOworICAgIH07CisKKyAg
ICB0eXBlZGVmIHZvaWQgKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6KlRyYWNlRXZlbnRI
YW5kbGVyKShjb25zdCBUcmFjZUV2ZW50Jik7CisKKyAgICBzdHJ1Y3QgRXZlbnRUeXBlRW50cnkg
eworICAgICAgICBFdmVudFR5cGVFbnRyeSgpCisgICAgICAgICAgICA6IG1fYmVnaW4oMCkKKyAg
ICAgICAgICAgICwgbV9lbmQoMCkKKyAgICAgICAgICAgICwgbV9pbnN0YW50KDApCisgICAgICAg
IHsKKyAgICAgICAgfQorICAgICAgICBleHBsaWNpdCBFdmVudFR5cGVFbnRyeShUcmFjZUV2ZW50
SGFuZGxlciBpbnN0YW50KQorICAgICAgICAgICAgOiBtX2JlZ2luKDApCisgICAgICAgICAgICAs
IG1fZW5kKDApCisgICAgICAgICAgICAsIG1faW5zdGFudChpbnN0YW50KQorICAgICAgICB7Cisg
ICAgICAgIH0KKyAgICAgICAgRXZlbnRUeXBlRW50cnkoVHJhY2VFdmVudEhhbmRsZXIgYmVnaW4s
IFRyYWNlRXZlbnRIYW5kbGVyIGVuZCkKKyAgICAgICAgICAgIDogbV9iZWdpbihiZWdpbikKKyAg
ICAgICAgICAgICwgbV9lbmQoZW5kKQorICAgICAgICAgICAgLCBtX2luc3RhbnQoMCkKKyAgICAg
ICAgeworICAgICAgICB9CisKKyAgICAgICAgVHJhY2VFdmVudEhhbmRsZXIgbV9iZWdpbjsKKyAg
ICAgICAgVHJhY2VFdmVudEhhbmRsZXIgbV9lbmQ7CisgICAgICAgIFRyYWNlRXZlbnRIYW5kbGVy
IG1faW5zdGFudDsKKyAgICB9OworCisgICAgdm9pZCBwcm9jZXNzQmFja2dyb3VuZEV2ZW50cygp
OworICAgIHZvaWQgc2VuZFRpbWVsaW5lUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBkYXRhLCBjb25zdCBTdHJpbmcmIHJlY29yZFR5cGUsIGRvdWJsZSBzdGFydFRpbWUsIGRvdWJs
ZSBlbmRUaW1lLCBjb25zdCBTdHJpbmcmIHRocmVhZCk7CisgICAgdm9pZCBwcm9jZXNzRXZlbnQo
Y29uc3QgRXZlbnRUeXBlRW50cnkmLCBjb25zdCBUcmFjZUV2ZW50Jik7CisKKyAgICBXZWFrUHRy
PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IG1fdGltZWxpbmVBZ2VudDsKKyAgICBJbnNwZWN0b3JD
bGllbnQqIG1faW5zcGVjdG9yQ2xpZW50OworCisgICAgSGFzaE1hcDxTdHJpbmcsIEV2ZW50VHlw
ZUVudHJ5PiBtX2hhbmRsZXJzQnlUeXBlOworICAgIE11dGV4IG1fYmFja2dyb3VuZEV2ZW50c011
dGV4OworICAgIFZlY3RvcjxUcmFjZUV2ZW50PiBtX2JhY2tncm91bmRFdmVudHM7CisgICAgdW5z
aWduZWQgbG9uZyBsb25nIG1fcGFnZUlkOworfTsKKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQorI2VuZGlmIC8vICFkZWZpbmVkKFRpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3Nvcl9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oCmluZGV4IGExZjZhNmRhNGUzYWRm
NzdlNTVlYTEwZGNjMDg3NWU1YzRmY2M2MWIuLmY2ZDMwODU4YzNjMDRkNDgxMTRlODdiMmE0ODQ4
MzVkMWY4YjIxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YkRldlRvb2xzQWdlbnRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJEZXZUb29sc0FnZW50Q2xpZW50LmgKQEAgLTc3LDYgKzc3LDEyIEBAIHB1YmxpYzoKICAg
ICB9OwogICAgIHZpcnR1YWwgdm9pZCBkdW1wVW5jb3VudGVkQWxsb2NhdGVkT2JqZWN0cyhjb25z
dCBJbnN0cnVtZW50ZWRPYmplY3RTaXplUHJvdmlkZXIqKSB7IH0KIAorICAgIHR5cGVkZWYgdm9p
ZCAoKlRyYWNlRXZlbnRDYWxsYmFjaykoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQgY2hhcios
IGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51
bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciog
YXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1
bnNpZ25lZCBjaGFyIGZsYWdzKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFjZUV2ZW50Q2Fs
bGJhY2soVHJhY2VFdmVudENhbGxiYWNrKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJEZXZU
b29sc0FnZW50Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcAppbmRleCBlOTRkZjlhN2IxOGY0OThlYmYzOGJh
MTgyMGVlYjg2M2M5MjU5Y2ZlLi4yMjUwNmYzNTc2Zjg0MTk1MzJlZjA5Njc3MWQ2YTYwZmRiYjQ4
YzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGll
bnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGll
bnRJbXBsLmNwcApAQCAtMjE4LDYgKzIxOCwxMiBAQCBib29sIEluc3BlY3RvckNsaWVudEltcGw6
OmhhbmRsZUphdmFTY3JpcHREaWFsb2coYm9vbCBhY2NlcHQpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCit2b2lkIEluc3BlY3RvckNsaWVudEltcGw6OnNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFj
ZUV2ZW50Q2FsbGJhY2sgY2FsbGJhY2spCit7CisgICAgaWYgKFdlYkRldlRvb2xzQWdlbnRJbXBs
KiBhZ2VudCA9IGRldlRvb2xzQWdlbnQoKSkKKyAgICAgICAgYWdlbnQtPnNldFRyYWNlRXZlbnRD
YWxsYmFjayhjYWxsYmFjayk7Cit9CisKIFdlYkRldlRvb2xzQWdlbnRJbXBsKiBJbnNwZWN0b3JD
bGllbnRJbXBsOjpkZXZUb29sc0FnZW50KCkKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2Vi
RGV2VG9vbHNBZ2VudEltcGwqPihtX2luc3BlY3RlZFdlYlZpZXctPmRldlRvb2xzQWdlbnQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmgK
aW5kZXggZDE3M2ZjYTI3ZTA1MmI4MzQ0MTJmODRjODUyNjVlNTE4NjMwZjM4ZC4uN2RjZGU0ZWIx
NmI1MWYzMzhmYzkwZTNhOWM3YjdlM2Q5N2FkZjI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaApAQCAtODgsNiArODgsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGR1bXBVbmNvdW50ZWRBbGxvY2F0ZWRPYmplY3RzKGNvbnN0
IEhhc2hNYXA8Y29uc3Qgdm9pZCosIHNpemVfdD4mKTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYXB0
dXJlU2NyZWVuc2hvdChXVEY6OlN0cmluZyogZGF0YSk7CisgICAgdmlydHVhbCB2b2lkIHNldFRy
YWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJhY2spOwogCiAgICAgdmlydHVhbCBib29s
IGhhbmRsZUphdmFTY3JpcHREaWFsb2coYm9vbCBhY2NlcHQpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKaW5kZXggNGVhNDYw
YTEwYjYwODkxY2E1ZWVlY2RhYThmMzczNTU5Y2U4MThiMy4uOWZlMWNjZjkyMWU4MzQ2ODUzZGYz
MmU4MDRjNWFiYTEzZmM0MzNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAtNTkxLDYgKzU5MSwxMSBAQCBib29sIFdl
YkRldlRvb2xzQWdlbnRJbXBsOjpoYW5kbGVKYXZhU2NyaXB0RGlhbG9nKGJvb2wgYWNjZXB0KQog
ICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpzZXRUcmFj
ZUV2ZW50Q2FsbGJhY2soVHJhY2VFdmVudENhbGxiYWNrIGNhbGxiYWNrKQoreworICAgIG1fY2xp
ZW50LT5zZXRUcmFjZUV2ZW50Q2FsbGJhY2soY2FsbGJhY2spOworfQorCiB2b2lkIFdlYkRldlRv
b2xzQWdlbnRJbXBsOjpkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcm
IG1lc3NhZ2UpCiB7CiAgICAgaW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNwYXRjaE1lc3NhZ2VG
cm9tRnJvbnRlbmQobWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRGV2VG9vbHNBZ2VudEltcGwuaAppbmRleCA1ZThmMjQ1OTRjNGJjNDQyZmRlZjJkZDMwMjM5
MTM3Y2EyNGZiYmZkLi41MDkxOTFmZTk4MWMwOWY1MTllNzYzN2Y4MWU2YjgwNmExNWIxZDU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmgKQEAgLTExMCw2ICsxMTAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0QWxs
b2NhdGVkT2JqZWN0cyhIYXNoU2V0PGNvbnN0IHZvaWQqPiYpOwogICAgIHZpcnR1YWwgdm9pZCBk
dW1wVW5jb3VudGVkQWxsb2NhdGVkT2JqZWN0cyhjb25zdCBIYXNoTWFwPGNvbnN0IHZvaWQqLCBz
aXplX3Q+Jik7CisgICAgdmlydHVhbCB2b2lkIHNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2
ZW50Q2FsbGJhY2spOwogCiAgICAgdmlydHVhbCBib29sIGNhcHR1cmVTY3JlZW5zaG90KFdURjo6
U3RyaW5nKiBkYXRhKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186389</attachid>
            <date>2013-02-04 08:38:45 -0800</date>
            <delta_ts>2013-02-04 11:49:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105796-20130204203524.patch</filename>
            <type>text/plain</type>
            <size>37092</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTUxYjY2ZWUxYmI2Mzlh
ZGQ5MTc3YTYyZTlkOTIxN2IyMDYyODE2Yi4uNjU3NTJhZmRkYTMzMzQxMWQ0YmM4NzM3NGJhMjg1
YWYwZWZhYjI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTAyLTA0ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHBsdW1iIHRyYWNlIGV2ZW50cyB0byBU
aW1lbGluZTsKKyAgICAgICAgLSBhZGQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yIHRvIHBy
b2Nlc3Mgc2VsZWN0ZWQgdHJhY2UgZXZlbnRzOworICAgICAgICAtIGVtaXQgdGltZWxpbmUgZXZl
bnRzIGZyb20gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLgorCisgICAgICAgIE5vdGUgdGhh
dCBhY3R1YWwgZXZlbnQgcHJvY2Vzc2luZyBsb2dpYyBpcyBhIHNlcGFyYXRlIGNoYW5nZS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBbGxJ
bk9uZS5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oOgorICAgICAg
ICAoSW5zcGVjdG9yQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6
c2V0VHJhY2VFdmVudENhbGxiYWNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdG9w
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
cGFnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJbnNwZWN0b3JU
aW1lbGluZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3I6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6flRpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NFdmVudE9uQW55VGhyZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6cHJvY2Vzc0V2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6c2Vu
ZFRpbWVsaW5lUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvcjo6cHJvY2Vzc0JhY2tncm91bmRFdmVudHMpOgorICAgICAgICAqIGluc3BlY3Rvci9U
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6CisgICAgICAgIChUcmFjZUV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJh
Y2VFdmVudDo6VHJhY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnRpbWVzdGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OnBoYXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6bmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZl
bnQ6OnRocmVhZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2
ZW50UHJvY2Vzc29yOjpUcmFjZUV2ZW50Ojphcmd1bWVudENvdW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6YXNCb29sKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6
YXNJbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpU
cmFjZUV2ZW50Ojphc1VJbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yOjpUcmFjZUV2ZW50Ojphc0RvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OmFzU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6RXZlbnRUeXBlRW50cnk6OkV2
ZW50VHlwZUVudHJ5KToKKyAgICAgICAgKEV2ZW50VHlwZUVudHJ5KToKKwogMjAxMy0wMi0wNCAg
RXVnZW5lIEtseXVjaG5pa292ICA8ZXVzdGFzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbTmV0d29ya10gTWlub3IgcmVmYWN0b3JpbmdzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCBjYmZlYTE2ZTA3Mjg4Y2VhNzgzYzMyODRlMTIzZDU2MmIzNDdmNTY1Li43
ODIyMzE4YmMzZmNjMTJjYjcxZTUxYTlmNGE5NTU2NzRkYTI4ZWYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTA0ICBBbmRyZXkgS29zeWFrb3Yg
IDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcGx1bWIgdHJh
Y2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQbHVtYiB0cmFjZSBldmVudHMgdG8gSW5zcGVjdG9yLgorCisg
ICAgICAgICogcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaDoKKyAgICAgICAgKFdlYkRl
dlRvb2xzQWdlbnRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50Q2xp
ZW50OjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAgICAgICAqIHNyYy9JbnNwZWN0b3JDbGll
bnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50SW1wbDo6c2V0VHJh
Y2VFdmVudENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0luc3Bl
Y3RvckNsaWVudEltcGwuaDoKKyAgICAgICAgKEluc3BlY3RvckNsaWVudEltcGwpOgorICAgICAg
ICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRl
dlRvb2xzQWdlbnRJbXBsOjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaDoKKyAgICAgICAgKFdlYkRl
dlRvb2xzQWdlbnRJbXBsKToKKwogMjAxMy0wMi0wMyAgS3dhbmdZb25nIENob2kgIDxreTAuY2hv
aUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBGaXggYnVpbGQgd2FybmluZyBhZnRlciByMTQxNDcz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGJkMjMzYjlmMWUzOThmMDM2OTdhMDMzMjM3NTUxZDc5
YzE1YmI4ZTcuLjA1MTQ1ZDFiZDlkZDRhOTNhOTEzNjk3Y2QxZmFmMzM0Njg2ZmM4YTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0xNjU1LDYgKzE2NTUsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgaW5zcGVjdG9yL1NjcmlwdENhbGxGcmFtZS5jcHAKICAgICBpbnNwZWN0b3IvU2NyaXB0
Q2FsbFN0YWNrLmNwcAogICAgIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCisg
ICAgaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKICAgICBpbnNwZWN0
b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcAogICAgIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFn
ZW50LmNwcAogICAgIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMTczMTY1NTA1NjJiNzI1NjNlMGViNDJmMTJk
NDI4ZWRkOWFiNWQwYi4uMGNlZjc4ODA3NmYyYWY1MzBjMmIxMzhmMTdlNWE1OTM1OWRlOTE2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODY3LDYgKzM4NjcsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRHQ0V2ZW50
TGlzdGVuZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rv
cnkuaCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2Vu
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCmluZGV4IGU4ZjZmYzE2MmQzOTk0NWM0NDFiMGU2YzQyOTkzMGRjYWQ3ZDBiNjUuLjg3
MzcxMzMxZDVmZmU3N2IzMjcwZWJlZDgyYWI0MDI5ZTM3Y2FiOGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
ODEzLDYgKzgxMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsRnJh
bWUuY3BwIFwKICAgICBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmNwcCBcCiAgICAgaW5zcGVj
dG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgXAorICAgIGluc3BlY3Rvci9UaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3IuY3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50
LmNwcCBcCiAgICAgaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKICAgICBpbnNw
ZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IGRjYmIzNTU1MjIwZDdiYjQwYjE1N2UwMDcwOGQ3NjQzODIxNDQ1YTcuLmJlNzE1YzI1NzdhM2E4
ZDMwZDU4ZDkxYWViMGIwNDAyODEyNDg1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE5MTMsNiAr
MTkxMyw4IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5o
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCcsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oJywKKyAgICAgICAg
ICAgICdpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCcsCisgICAgICAg
ICAgICAnaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCcsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvV29y
a2VyRGVidWdnZXJBZ2VudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagppbmRleCA3NGFhYzk1MWUwZjNiNjg2NDA2ZmUzNWU2YjljODRhOTk2MmNh
MGE4Li44NmJjOWQzMGE5ZmQ2NGFiOTBjYmRhYjQ5NjdjYmNjMDVlMTc2ODBjIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzY2NTQsNiArNzY2
NTQsMzAgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxUaW1lbGluZVJlY29yZEZh
Y3RvcnkuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8Rmls
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXGluc3Bl
Y3RvclxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlQ29u
ZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9
IlJlbGVhc2V8V2luMzIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlByb2R1Y3Rpb258V2lu
MzIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxXb3JrZXJDb25zb2xlQWdlbnQuY3BwIgogCQkJCT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA5YjIwOGQyODE5YThiNmY5YmE1ZGU5OTcwOGIzNTllMDM3YjJjYWRiLi5lM2YwYWU0YjBj
ZTVkMzFlODZlMDBjZWNmYjYyMDU2MjlkMGJhODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjc1LDYgKzEyNzUsOCBAQAog
CQk0NkY5RDVERjBCMEQ2MDE3MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkY5RDVEQzBCMEQ2MDE3
MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nICovOyB9OwogCQk0OTA3MDdFNjEyMTlDMDQz
MDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xF
V2ViS2l0QnJpZGdlLmNwcCAqLzsgfTsKIAkJNDkwNzA3RTcxMjE5QzA0MzAwRDkwRTUxIC8qIEFO
R0xFV2ViS2l0QnJpZGdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTA3MDdFNTEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCAq
LzsgfTsKKwkJNDkxNDAyNTYxNjhFMDJFODAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTE0MDI1NDE2OEUwMkI0MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmNwcCAqLzsgfTsKKwkJNDkxNDAyNTcxNjhFMDJFQzAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VF
dmVudFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDkxNDAyNTUxNjhFMDJCNDAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvci5oICovOyB9OwogCQk0OTE4MkI1MjE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0
cnVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDkxODJCNTAxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
LmNwcCAqLzsgfTsKIAkJNDkxODJCNTMxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1
bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTE4MkI1MTE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCAq
LzsgfTsKIAkJNDkyODYzOTkxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5Mjg2Mzk4MTI1
M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTg2MjMsNiArODYyNSw4IEBACiAJCTQ2RjlE
NURDMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBwcm9n
cmVzc0N1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MDcwN0U0MTIx
OUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJy
aWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTE0MDI1NDE2OEUwMkI0MDAyRDZD
NkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5MTQwMjU1MTY4RTAyQjQwMDJENkM2QSAvKiBUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ5MTgyQjUwMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRhdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUluc3Ry
dW1lbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MTgyQjUxMTVE
Q0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0OTI4NjM5ODEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3VyY2VM
b2FkSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRJ
bmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTE5Myw2ICsxNTE5Nyw4IEBA
CiAJCQkJOUZBMzdFRjAxMTcyRkQ0MTAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmlkbCAq
LywKIAkJCQk3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcCAqLywKIAkJCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmggKi8sCisJCQkJNDkxNDAyNTQxNjhFMDJCNDAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3Nvci5jcHAgKi8sCisJCQkJNDkxNDAyNTUxNjhFMDJCNDAwMkQ2QzZBIC8q
IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oICovLAogCQkJCUYzODIwODhFMTQ3RDM1Rjkw
MDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwICovLAogCQkJCUYzODIwODhGMTQ3RDM1
RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCAqLywKIAkJCQlGMzQ3NDJERTEzNDM2
MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgKi8sCkBAIC0yNjMzOSw2ICsy
NjM0NSw3IEBACiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9y
RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAv
KiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDkxNDAyNTcxNjhFMDJFQzAwMkQ2QzZB
IC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yOTQ5
Nyw2ICsyOTUwNCw3IEBACiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzgwIC8qIFhT
U0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4
MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDkxNDAyNTYxNjhF
MDJFODAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJ
bk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3Bw
CmluZGV4IDljOWZmMjA4NTljMmQ4Y2I4NTYzNDdkNjdiODExMzFhN2JiODllYmYuLmIxMTNkZDll
ZDJmMjZkN2NkODQyNjRmMTJkNTQ0ZDQzYWQzNTQ3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcApAQCAtODMsNiArODMsNyBAQAogI2luY2x1
ZGUgIlNjcmlwdENhbGxGcmFtZS5jcHAiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmNwcCIK
ICNpbmNsdWRlICJUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIgorI2luY2x1ZGUgIlRpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvci5jcHAiCiAjaW5jbHVkZSAiV29ya2VyQ29uc29sZUFnZW50LmNw
cCIKICNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCIKICNpbmNsdWRlICJXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDbGllbnQuaAppbmRleCBiOWY4ZjU2MTJmNDdkNTk2M2FmYWI4MmRjNzllZmY3ZmJmMzRjNWJm
Li4zYzk3MTI5YWQzMWM2OWM1NDllY2RkYzFiOGY2ZmNmMWVkZTk3NDg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCkBAIC01OSw2ICs1OSwxMSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQnJvd3NlckNvb2tpZXMoKSB7IH0KICAgICB2aXJ0
dWFsIGJvb2wgY2FuTW9uaXRvck1haW5UaHJlYWQoKSB7IHJldHVybiBmYWxzZTsgfQogCisgICAg
dHlwZWRlZiB2b2lkICgqVHJhY2VFdmVudENhbGxiYWNrKShjaGFyIHBoYXNlLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiwgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAorICAg
ICAgICBpbnQgbnVtQXJncywgY29uc3QgY2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiBhcmdUeXBlcywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMs
CisgICAgICAgIHVuc2lnbmVkIGNoYXIgZmxhZ3MpOworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFj
ZUV2ZW50Q2FsbGJhY2soVHJhY2VFdmVudENhbGxiYWNrKSB7IH0KKwogICAgIHZpcnR1YWwgYm9v
bCBjYW5PdmVycmlkZURldmljZU1ldHJpY3MoKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIG92ZXJyaWRlRGV2aWNlTWV0cmljcyhpbnQgLyp3aWR0aCovLCBpbnQgLypoZWln
aHQqLywgZmxvYXQgLypmb250U2NhbGVGYWN0b3IqLywgYm9vbCAvKmZpdFdpbmRvdyovKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
CmluZGV4IGFjN2FkY2IwYWEzNTZmZTc3MGNkZmZjMzAzOTY5MjU2NjU3OGEyNTcuLjhjMDY3YzVk
OWVkZWI2OGIzNmU4ODNkN2I5NTE5MWE3YmIyNWFiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAqCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01MSw2ICs1MSw3IEBACiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgog
I2luY2x1ZGUgIlRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIgorI2luY2x1ZGUgIlRpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3Nvci5oIgogCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKQEAg
LTE3MSw2ICsxNzIsOSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0KEVycm9y
U3RyaW5nKiwgY29uc3QgaW50KiBtYXhDYWxsU3RhY2tEZXB0aCkKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvclRpbWVsaW5lQWdlbnQodGhpcyk7CiAgICAgU2NyaXB0R0NF
dmVudDo6YWRkRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKFRp
bWVsaW5lQWdlbnRTdGF0ZTo6dGltZWxpbmVBZ2VudEVuYWJsZWQsIHRydWUpOworICAgIC8vIFRo
ZSBiZWxvdyB3b3VsZCBiZSBmYWxzZSBmb3Igd29ya2Vycy4KKyAgICBpZiAobV9jbGllbnQgJiYg
bV9wYWdlQWdlbnQpCisgICAgICAgIG1fdHJhY2VFdmVudFByb2Nlc3NvciA9IGFkb3B0UmVmKG5l
dyBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IobV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCksIG1fY2xpZW50KSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcChF
cnJvclN0cmluZyopCkBAIC0xNzgsNiArMTgyLDggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpzdG9wKEVycm9yU3RyaW5nKikKICAgICBpZiAoIW1fc3RhdGUtPmdldEJvb2xlYW4oVGlt
ZWxpbmVBZ2VudFN0YXRlOjp0aW1lbGluZUFnZW50RW5hYmxlZCkpCiAgICAgICAgIHJldHVybjsK
IAorICAgIG1fdHJhY2VFdmVudFByb2Nlc3Nvci5jbGVhcigpOworICAgIG1fd2Vha0ZhY3Rvcnku
cmV2b2tlQWxsKCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JUaW1l
bGluZUFnZW50KDApOwogICAgIFNjcmlwdEdDRXZlbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIodGhp
cyk7CiAKQEAgLTU2NCw2ICs1NzAsNyBAQCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbgogICAgICwg
bV9wbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudEluc3RhbGxlZEF0U3RhY2tEZXB0aCgwKQog
ICAgICwgbV9pbnNwZWN0b3JUeXBlKHR5cGUpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCisgICAg
LCBtX3dlYWtGYWN0b3J5KHRoaXMpCiB7CiB9CiAKQEAgLTYyNCw2ICs2MzEsMTEgQEAgZG91Ymxl
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRpbWVzdGFtcEZyb21NaWNyb3NlY29uZHMoZG91Ymxl
IG1pY3Jvc2Vjb25kcykKICAgICByZXR1cm4gKG1pY3Jvc2Vjb25kcyArIG1fdGltZXN0YW1wT2Zm
c2V0KSAqIDEwMDAuMDsKIH0KIAorUGFnZSogSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cGFnZSgp
Cit7CisgICAgcmV0dXJuIG1fcGFnZUFnZW50ID8gbV9wYWdlQWdlbnQtPnBhZ2UoKSA6IDA7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
aAppbmRleCBlNzA2MmExMTgxODhmYWNkZDU0MzRhMTIxMWQzYzdmYzVmMDZlOTY2Li43NWYwMjQz
N2MwY2ZkMzNkNGViNzM2ZWI2NDcwMzllMDhiMzJjMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTQyLDYgKzQyLDcgQEAK
ICNpbmNsdWRlICJTY3JpcHRHQ0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFdmVudDsKQEAgLTUyLDkgKzUzLDExIEBA
IGNsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3Mg
SW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIEludFJlY3Q7CitjbGFzcyBQYWdlOwogY2xhc3Mg
UmVuZGVyT2JqZWN0OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNw
b25zZTsKK2NsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcjsKIAogdHlwZWRlZiBTdHJp
bmcgRXJyb3JTdHJpbmc7CiAKQEAgLTE2Niw2ICsxNjksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlc2l6ZUltYWdlKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CisgICAgZnJpZW5k
IGNsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcjsKKwogICAgIHN0cnVjdCBUaW1lbGlu
ZVJlY29yZEVudHJ5IHsKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gcmVjb3JkLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwg
UGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW4sIGNvbnN0IFN0cmluZyYgdHlwZSwg
Y29uc3QgU3RyaW5nJiBmcmFtZUlkLCBzaXplX3QgdXNlZEhlYXBTaXplQXRTdGFydCkKICAgICAg
ICAgICAgIDogcmVjb3JkKHJlY29yZCksIGRhdGEoZGF0YSksIGNoaWxkcmVuKGNoaWxkcmVuKSwg
dHlwZSh0eXBlKSwgZnJhbWVJZChmcmFtZUlkKSwgdXNlZEhlYXBTaXplQXRTdGFydCh1c2VkSGVh
cFNpemVBdFN0YXJ0KQpAQCAtMTk1LDYgKzIwMCw3IEBAIHByaXZhdGU6CiAKICAgICBkb3VibGUg
dGltZXN0YW1wKCk7CiAgICAgZG91YmxlIHRpbWVzdGFtcEZyb21NaWNyb3NlY29uZHMoZG91Ymxl
IG1pY3Jvc2Vjb25kcyk7CisgICAgUGFnZSogcGFnZSgpOwogCiAgICAgSW5zcGVjdG9yUGFnZUFn
ZW50KiBtX3BhZ2VBZ2VudDsKIApAQCAtMjIwLDYgKzIyNiw4IEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gbV9wZW5kaW5nRnJhbWVSZWNvcmQ7CiAgICAgSW5zcGVjdG9y
VHlwZSBtX2luc3BlY3RvclR5cGU7CiAgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2NsaWVudDsKKyAg
ICBXZWFrUHRyRmFjdG9yeTxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBtX3dlYWtGYWN0b3J5Owor
ICAgIFJlZlB0cjxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I+IG1fdHJhY2VFdmVudFByb2Nl
c3NvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjkxNzVkOTliYTMzMmJlYjIxOWM5NmJlMjc2NDZjNDVhYTBiNjVlZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuY3BwCkBAIC0wLDAgKzEsMjExIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyogbWV0OgorKgorKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisqIGRpc3RyaWJ1dGlvbi4KKyogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
KgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAi
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgiCisKKyNpbmNsdWRlICJJbnNwZWN0b3JDbGll
bnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJJ
bnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCisjaW5jbHVkZSAiVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmgiCisKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgeworCitjbGFzcyBU
cmFjZUV2ZW50RGlzcGF0Y2hlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVHJhY2VFdmVu
dERpc3BhdGNoZXIpOworcHVibGljOgorICAgIHN0YXRpYyBUcmFjZUV2ZW50RGlzcGF0Y2hlciog
aW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChUcmFjZUV2ZW50
RGlzcGF0Y2hlciwgaW5zdGFuY2UsICgpKTsKKyAgICAgICAgcmV0dXJuICZpbnN0YW5jZTsKKyAg
ICB9CisKKyAgICB2b2lkIGFkZFByb2Nlc3NvcihUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3Iq
IHByb2Nlc3NvciwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCisgICAgeworICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7CisKKyAgICAgICAgbV9wcm9jZXNzb3JzLmFwcGVuZChw
cm9jZXNzb3IpOworICAgICAgICBpZiAobV9wcm9jZXNzb3JzLnNpemUoKSA9PSAxKQorICAgICAg
ICAgICAgY2xpZW50LT5zZXRUcmFjZUV2ZW50Q2FsbGJhY2soZGlzcGF0Y2hFdmVudE9uQW55VGhy
ZWFkKTsKKyAgICB9CisKKyAgICB2b2lkIHJlbW92ZVByb2Nlc3NvcihUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3IqIHByb2Nlc3NvciwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCisgICAgewor
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisKKyAgICAgICAgc2l6ZV90IGlu
ZGV4ID0gbV9wcm9jZXNzb3JzLmZpbmQocHJvY2Vzc29yKTsKKyAgICAgICAgaWYgKGluZGV4ID09
IG5vdEZvdW5kKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX3Byb2Nlc3NvcnMucmVtb3ZlKGluZGV4
KTsKKyAgICAgICAgaWYgKG1fcHJvY2Vzc29ycy5pc0VtcHR5KCkpCisgICAgICAgICAgICBjbGll
bnQtPnNldFRyYWNlRXZlbnRDYWxsYmFjaygwKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZW51
bSB7IFByb2Nlc3NvcnNWZWN0b3JJbmxpbmVDYXBhY2l0eSA9IDIgfTsKKworICAgIFRyYWNlRXZl
bnREaXNwYXRjaGVyKCkgeyB9CisKKyAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaEV2ZW50T25BbnlU
aHJlYWQoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQgY2hhciosIGNvbnN0IGNoYXIqIG5hbWUs
IHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51bUFyZ3MsIGNvbnN0IGNoYXIq
IGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlwZXMsIGNvbnN0IHVu
c2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdz
KQorICAgIHsKKyAgICAgICAgVHJhY2VFdmVudERpc3BhdGNoZXIqIHNlbGYgPSBpbnN0YW5jZSgp
OworICAgICAgICBWZWN0b3I8UmVmUHRyPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcj4sIFBy
b2Nlc3NvcnNWZWN0b3JJbmxpbmVDYXBhY2l0eT4gcHJvY2Vzc29yczsKKyAgICAgICAgeworICAg
ICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHNlbGYtPm1fbXV0ZXgpOworICAgICAgICAgICAg
cHJvY2Vzc29ycyA9IHNlbGYtPm1fcHJvY2Vzc29yczsKKyAgICAgICAgfQorICAgICAgICBmb3Ig
KGludCBpID0gMCwgc2l6ZSA9IHByb2Nlc3NvcnMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7Cisg
ICAgICAgICAgICBwcm9jZXNzb3JzW2ldLT5wcm9jZXNzRXZlbnRPbkFueVRocmVhZChzdGF0aWNf
Y2FzdDxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnRQaGFzZT4ocGhhc2Up
LAorICAgICAgICAgICAgICAgIG5hbWUsIGlkLCBudW1BcmdzLCBhcmdOYW1lcywgYXJnVHlwZXMs
IGFyZ1ZhbHVlcywgZmxhZ3MpOworICAgICAgICB9CisgICAgfQorCisgICAgTXV0ZXggbV9tdXRl
eDsKKyAgICBWZWN0b3I8UmVmUHRyPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcj4sIFByb2Nl
c3NvcnNWZWN0b3JJbmxpbmVDYXBhY2l0eT4gbV9wcm9jZXNzb3JzOworfTsKKworfSAvLyBuYW1l
c3BjZQorVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IoV2Vha1B0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiB0aW1lbGluZUFnZW50LCBJbnNw
ZWN0b3JDbGllbnQgKmNsaWVudCkKKyAgICA6IG1fdGltZWxpbmVBZ2VudCh0aW1lbGluZUFnZW50
KQorICAgICwgbV9pbnNwZWN0b3JDbGllbnQoY2xpZW50KQorICAgICwgbV9wYWdlSWQocmVpbnRl
cnByZXRfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fdGltZWxpbmVBZ2VudC5nZXQoKS0+cGFn
ZSgpKSkKK3sKKyAgICBUcmFjZUV2ZW50RGlzcGF0Y2hlcjo6aW5zdGFuY2UoKS0+YWRkUHJvY2Vz
c29yKHRoaXMsIG1faW5zcGVjdG9yQ2xpZW50KTsKK30KKworVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yOjp+VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKCkKK3sKKyAgICBUcmFjZUV2ZW50
RGlzcGF0Y2hlcjo6aW5zdGFuY2UoKS0+cmVtb3ZlUHJvY2Vzc29yKHRoaXMsIG1faW5zcGVjdG9y
Q2xpZW50KTsKK30KKworY29uc3QgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFjZVZh
bHVlVW5pb24mIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6cGFyYW1l
dGVyKGNvbnN0IGNoYXIqIG5hbWUsIFRyYWNlVmFsdWVUeXBlcyBleHBlY3RlZFR5cGUpIGNvbnN0
Cit7CisgICAgY29uc3Qgc3RhdGljIFRyYWNlVmFsdWVVbmlvbiBtaXNzaW5nVmFsdWU7CisKKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IG1fYXJndW1lbnRDb3VudDsgKytpKSB7CisgICAgICAgIGlm
ICghc3RyY21wKG5hbWUsIG1fYXJndW1lbnROYW1lc1tpXSkpIHsKKyAgICAgICAgICAgIGlmICht
X2FyZ3VtZW50VHlwZXNbaV0gIT0gZXhwZWN0ZWRUeXBlKSB7CisgICAgICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1pc3NpbmdWYWx1ZTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBUcmFjZVZhbHVlVW5pb24qPihtX2FyZ3VtZW50VmFsdWVzICsgaSk7CisgICAgICAgIH0KKyAg
ICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG1pc3NpbmdWYWx1ZTsK
K30KKwordm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NFdmVudE9uQW55
VGhyZWFkKFRyYWNlRXZlbnRQaGFzZSBwaGFzZSwgY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQg
bG9uZyBsb25nLAorICAgIGludCBudW1BcmdzLCBjb25zdCBjaGFyKiBjb25zdCogYXJnTmFtZXMs
IGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ1R5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcq
IGFyZ1ZhbHVlcywKKyAgICB1bnNpZ25lZCBjaGFyKQoreworICAgIEhhc2hNYXA8U3RyaW5nLCBF
dmVudFR5cGVFbnRyeT46Oml0ZXJhdG9yIGl0ID0gbV9oYW5kbGVyc0J5VHlwZS5maW5kKG5hbWUp
OworICAgIGlmIChpdCA9PSBtX2hhbmRsZXJzQnlUeXBlLmVuZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBUcmFjZUV2ZW50IGV2ZW50KFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCksIHBoYXNlLCBuYW1lLCBjdXJyZW50VGhyZWFkKCksIG51bUFyZ3MsIGFyZ05hbWVzLCBhcmdU
eXBlcywgYXJnVmFsdWVzKTsKKworICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKKyAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fYmFja2dyb3VuZEV2ZW50c011dGV4KTsKKyAgICAgICAgbV9i
YWNrZ3JvdW5kRXZlbnRzLmFwcGVuZChldmVudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBwcm9jZXNzRXZlbnQoaXQtPnZhbHVlLCBldmVudCk7Cit9CisKK3ZvaWQgVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yOjpwcm9jZXNzRXZlbnQoY29uc3QgRXZlbnRUeXBlRW50cnkmIGV2
ZW50VHlwZUVudHJ5LCBjb25zdCBUcmFjZUV2ZW50JiBldmVudCkKK3sKKyAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworCisgICAgVHJhY2VFdmVudEhhbmRsZXIgaGFuZGxlciA9IDA7CisgICAg
c3dpdGNoIChldmVudC5waGFzZSgpKSB7CisgICAgY2FzZSBUcmFjZVBoYXNlQmVnaW46CisgICAg
ICAgIGhhbmRsZXIgPSBldmVudFR5cGVFbnRyeS5tX2JlZ2luOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFRyYWNlUGhhc2VFbmQ6CisgICAgICAgIGhhbmRsZXIgPSBldmVudFR5cGVFbnRyeS5t
X2VuZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUcmFjZVBoYXNlSW5zdGFudDoKKyAgICAg
ICAgaGFuZGxlciA9IGV2ZW50VHlwZUVudHJ5Lm1faW5zdGFudDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIGlm
ICghaGFuZGxlcikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICAodGhpcy0+KmhhbmRsZXIpKGV2ZW50KTsKK30KKwordm9pZCBUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnNlbmRUaW1lbGluZVJlY29yZChQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiByZWNvcmRUeXBlLCBkb3VibGUgc3Rh
cnRUaW1lLCBkb3VibGUgZW5kVGltZSwgY29uc3QgU3RyaW5nJiB0aHJlYWQpCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVs
aW5lQWdlbnQgPSBtX3RpbWVsaW5lQWdlbnQuZ2V0KCk7CisgICAgaWYgKCF0aW1lbGluZUFnZW50
KQorICAgICAgICByZXR1cm47CisgICAgdGltZWxpbmVBZ2VudC0+YXBwZW5kQmFja2dyb3VuZFRo
cmVhZFJlY29yZChkYXRhLCByZWNvcmRUeXBlLCBzdGFydFRpbWUsIGVuZFRpbWUsIHRocmVhZCk7
Cit9CisKK3ZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpwcm9jZXNzQmFja2dyb3Vu
ZEV2ZW50cygpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIFZlY3RvcjxU
cmFjZUV2ZW50PiBldmVudHM7CisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9i
YWNrZ3JvdW5kRXZlbnRzTXV0ZXgpOworICAgICAgICBldmVudHMucmVzZXJ2ZUNhcGFjaXR5KG1f
YmFja2dyb3VuZEV2ZW50cy5jYXBhY2l0eSgpKTsKKyAgICAgICAgbV9iYWNrZ3JvdW5kRXZlbnRz
LnN3YXAoZXZlbnRzKTsKKyAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBldmVu
dHMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGNvbnN0IFRyYWNlRXZlbnQmIGV2
ZW50ID0gZXZlbnRzW2ldOworICAgICAgICBwcm9jZXNzRXZlbnQobV9oYW5kbGVyc0J5VHlwZS5m
aW5kKGV2ZW50Lm5hbWUoKSktPnZhbHVlLCBldmVudCk7CisgICAgfQorfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJjNzM5MDE5ZDQ0MTIzYWFhOWJhZGQ4MjE1ZjljMDM3OTFiOGE5M2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yLmgKQEAgLTAsMCArMSwxOTYgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorKiBtZXQ6CisqCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyogZGlzdHJpYnV0aW9uLgorKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisK
KyNpZm5kZWYgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gKKyNkZWZpbmUgVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yX2gKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRl
ICJJbnNwZWN0b3JWYWx1ZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgSW5zcGVjdG9yQ2xpZW50OworY2xhc3MgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDsKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3NvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3I+IHsKK3B1YmxpYzoKKyAgICAvLyBGSVhNRTogcmUtdXNlIGRlZmluaXRpb25zIGluIFRy
YWNlRXZlbnQuaCBvbmNlIGl0J3MgcHJvbW90ZWQgdG8gYWxsIHBsYXRmb3Jtcy4KKyAgICBlbnVt
IFRyYWNlRXZlbnRQaGFzZSB7CisgICAgICAgIFRyYWNlUGhhc2VCZWdpbiA9ICdCJywKKyAgICAg
ICAgVHJhY2VQaGFzZUVuZCA9ICdFJywKKyAgICAgICAgVHJhY2VQaGFzZUluc3RhbnQgPSAnSScK
KyAgICB9OworCisgICAgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKFdlYWtQdHI8SW5zcGVj
dG9yVGltZWxpbmVBZ2VudD4sIEluc3BlY3RvckNsaWVudCopOworICAgIH5UaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3IoKTsKKworICAgIHZvaWQgcHJvY2Vzc0V2ZW50T25BbnlUaHJlYWQoVHJh
Y2VFdmVudFBoYXNlLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgaWQsCisg
ICAgICAgIGludCBudW1BcmdzLCBjb25zdCBjaGFyKiBjb25zdCogYXJnTmFtZXMsIGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGFyZ1R5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIGFyZ1ZhbHVl
cywKKyAgICAgICAgdW5zaWduZWQgY2hhciBmbGFncyk7CisgICAgCitwcml2YXRlOgorICAgIC8v
IEZJWE1FOiB1c2UgdGhlIGRlZmluaXRpb24gaW4gVHJhY2VFdmVudC5oIG9uY2Ugd2UgZXhwb3Nl
IHRoZSBsYXR0ZXIgdG8gYWxsIHBsYWZvcm1zLgorICAgIHVuaW9uIFRyYWNlVmFsdWVVbmlvbiB7
CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3VpbnQ7CisgICAgICAgIGxvbmcgbG9uZyBt
X2ludDsKKyAgICAgICAgZG91YmxlIG1fZG91YmxlOworICAgICAgICBib29sIG1fYm9vbDsKKyAg
ICAgICAgY29uc3Qgdm9pZCogbV9wb2ludGVyOworICAgICAgICBjb25zdCBjaGFyKiBtX3N0cmlu
ZzsKKworICAgICAgICBUcmFjZVZhbHVlVW5pb24oKSB7IH0KKyAgICB9OworCisgICAgZW51bSBU
cmFjZVZhbHVlVHlwZXMgeworICAgICAgICBUeXBlQm9vbCA9IDEsCisgICAgICAgIFR5cGVVSW50
ID0gMiwKKyAgICAgICAgVHlwZUludCA9IDMsCisgICAgICAgIFR5cGVEb3VibGUgPSA0LAorICAg
ICAgICBUeXBlUG9pbnRlciA9IDUsCisgICAgICAgIFR5cGVTdHJpbmcgPSA2LAorICAgICAgICBU
eXBlQ29weVN0cmluZyA9IDcKKyAgICB9OworCisgICAgY2xhc3MgVHJhY2VFdmVudCB7CisgICAg
cHVibGljOgorICAgICAgICBUcmFjZUV2ZW50KCkKKyAgICAgICAgICAgIDogbV9uYW1lKDApCisg
ICAgICAgICAgICAsIG1fYXJndW1lbnRDb3VudCgwKQorICAgICAgICB7CisgICAgICAgIH0KKwor
ICAgICAgICBUcmFjZUV2ZW50KGRvdWJsZSB0aW1lc3RhbXAsIFRyYWNlRXZlbnRQaGFzZSBwaGFz
ZSwgY29uc3QgY2hhciogbmFtZSwgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyLAor
ICAgICAgICAgICAgaW50IGFyZ3VtZW50Q291bnQsIGNvbnN0IGNoYXIqIGNvbnN0KiBhcmd1bWVu
dE5hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmd1bWVudFR5cGVzLCBjb25zdCB1bnNpZ25l
ZCBsb25nIGxvbmcqIGFyZ3VtZW50VmFsdWVzKQorICAgICAgICAgICAgOiBtX3RpbWVzdGFtcCh0
aW1lc3RhbXApCisgICAgICAgICAgICAsIG1fcGhhc2UocGhhc2UpCisgICAgICAgICAgICAsIG1f
bmFtZShuYW1lKQorICAgICAgICAgICAgLCBtX3RocmVhZElkZW50aWZpZXIodGhyZWFkSWRlbnRp
ZmllcikKKyAgICAgICAgICAgICwgbV9hcmd1bWVudENvdW50KGFyZ3VtZW50Q291bnQpCisgICAg
ICAgICAgICAsIG1fYXJndW1lbnROYW1lcyhhcmd1bWVudE5hbWVzKQorICAgICAgICAgICAgLCBt
X2FyZ3VtZW50VHlwZXMoYXJndW1lbnRUeXBlcykKKyAgICAgICAgICAgICwgbV9hcmd1bWVudFZh
bHVlcyhhcmd1bWVudFZhbHVlcykKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgZG91
YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgICAgIFRy
YWNlRXZlbnRQaGFzZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGhhc2U7IH0KKyAgICAgICAg
Y29uc3QgY2hhciogbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgICAgICBUaHJl
YWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3RocmVhZElk
ZW50aWZpZXI7IH0KKyAgICAgICAgaW50IGFyZ3VtZW50Q291bnQoKSBjb25zdCB7IHJldHVybiBt
X2FyZ3VtZW50Q291bnQ7IH0KKworICAgICAgICBib29sIGFzQm9vbChjb25zdCBjaGFyKiBuYW1l
KSBjb25zdAorICAgICAgICB7IAorICAgICAgICAgICAgcmV0dXJuIHBhcmFtZXRlcihuYW1lLCBU
eXBlQm9vbCkubV9ib29sOworICAgICAgICB9CisgICAgICAgIGxvbmcgbG9uZyBhc0ludChjb25z
dCBjaGFyKiBuYW1lKSBjb25zdAorICAgICAgICB7IAorICAgICAgICAgICAgcmV0dXJuIHBhcmFt
ZXRlcihuYW1lLCBUeXBlSW50KS5tX2ludDsKKyAgICAgICAgfQorICAgICAgICB1bnNpZ25lZCBs
b25nIGxvbmcgYXNVSW50KGNvbnN0IGNoYXIqIG5hbWUpIGNvbnN0IAorICAgICAgICB7IAorICAg
ICAgICAgICAgcmV0dXJuIHBhcmFtZXRlcihuYW1lLCBUeXBlVUludCkubV91aW50OworICAgICAg
ICB9CisgICAgICAgIGRvdWJsZSBhc0RvdWJsZShjb25zdCBjaGFyKiBuYW1lKSBjb25zdAorICAg
ICAgICB7IAorICAgICAgICAgICAgcmV0dXJuIHBhcmFtZXRlcihuYW1lLCBUeXBlRG91YmxlKS5t
X2RvdWJsZTsKKyAgICAgICAgfQorICAgICAgICBjb25zdCBjaGFyKiBhc1N0cmluZyhjb25zdCBj
aGFyKiBuYW1lKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcGFyYW1ldGVy
KG5hbWUsIFR5cGVTdHJpbmcpLm1fc3RyaW5nOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBjb25zdCBUcmFjZVZhbHVlVW5pb24mIHBhcmFtZXRlcihjb25zdCBjaGFyKiBuYW1l
LCBUcmFjZVZhbHVlVHlwZXMgZXhwZWN0ZWRUeXBlKSBjb25zdDsKKworICAgICAgICBkb3VibGUg
bV90aW1lc3RhbXA7CisgICAgICAgIFRyYWNlRXZlbnRQaGFzZSBtX3BoYXNlOworICAgICAgICBj
b25zdCBjaGFyKiBtX25hbWU7CisgICAgICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJZGVu
dGlmaWVyOworICAgICAgICBpbnQgbV9hcmd1bWVudENvdW50OworICAgICAgICBjb25zdCBjaGFy
KiBjb25zdCogbV9hcmd1bWVudE5hbWVzOworICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBt
X2FyZ3VtZW50VHlwZXM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogbV9hcmd1
bWVudFZhbHVlczsKKyAgICB9OworCisgICAgdHlwZWRlZiB2b2lkIChUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3I6OipUcmFjZUV2ZW50SGFuZGxlcikoY29uc3QgVHJhY2VFdmVudCYpOworCisg
ICAgc3RydWN0IEV2ZW50VHlwZUVudHJ5IHsKKyAgICAgICAgRXZlbnRUeXBlRW50cnkoKQorICAg
ICAgICAgICAgOiBtX2JlZ2luKDApCisgICAgICAgICAgICAsIG1fZW5kKDApCisgICAgICAgICAg
ICAsIG1faW5zdGFudCgwKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgZXhwbGljaXQg
RXZlbnRUeXBlRW50cnkoVHJhY2VFdmVudEhhbmRsZXIgaW5zdGFudCkKKyAgICAgICAgICAgIDog
bV9iZWdpbigwKQorICAgICAgICAgICAgLCBtX2VuZCgwKQorICAgICAgICAgICAgLCBtX2luc3Rh
bnQoaW5zdGFudCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIEV2ZW50VHlwZUVudHJ5
KFRyYWNlRXZlbnRIYW5kbGVyIGJlZ2luLCBUcmFjZUV2ZW50SGFuZGxlciBlbmQpCisgICAgICAg
ICAgICA6IG1fYmVnaW4oYmVnaW4pCisgICAgICAgICAgICAsIG1fZW5kKGVuZCkKKyAgICAgICAg
ICAgICwgbV9pbnN0YW50KDApCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFRyYWNl
RXZlbnRIYW5kbGVyIG1fYmVnaW47CisgICAgICAgIFRyYWNlRXZlbnRIYW5kbGVyIG1fZW5kOwor
ICAgICAgICBUcmFjZUV2ZW50SGFuZGxlciBtX2luc3RhbnQ7CisgICAgfTsKKworICAgIHZvaWQg
cHJvY2Vzc0JhY2tncm91bmRFdmVudHMoKTsKKyAgICB2b2lkIHNlbmRUaW1lbGluZVJlY29yZChQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiByZWNvcmRUeXBl
LCBkb3VibGUgc3RhcnRUaW1lLCBkb3VibGUgZW5kVGltZSwgY29uc3QgU3RyaW5nJiB0aHJlYWQp
OworICAgIHZvaWQgcHJvY2Vzc0V2ZW50KGNvbnN0IEV2ZW50VHlwZUVudHJ5JiwgY29uc3QgVHJh
Y2VFdmVudCYpOworCisgICAgV2Vha1B0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBtX3RpbWVs
aW5lQWdlbnQ7CisgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2luc3BlY3RvckNsaWVudDsKKworICAg
IEhhc2hNYXA8U3RyaW5nLCBFdmVudFR5cGVFbnRyeT4gbV9oYW5kbGVyc0J5VHlwZTsKKyAgICBN
dXRleCBtX2JhY2tncm91bmRFdmVudHNNdXRleDsKKyAgICBWZWN0b3I8VHJhY2VFdmVudD4gbV9i
YWNrZ3JvdW5kRXZlbnRzOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3BhZ2VJZDsKK307CisK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikK
KyNlbmRpZiAvLyAhZGVmaW5lZChUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3JfaCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGll
bnQuaAppbmRleCBhMWY2YTZkYTRlM2FkZjc3ZTU1ZWExMGRjYzA4NzVlNWM0ZmNjNjFiLi5mNmQz
MDg1OGMzYzA0ZDQ4MTE0ZTg3YjJhNDg0ODM1ZDFmOGIyMTJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oCkBAIC03
Nyw2ICs3NywxMiBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB2aXJ0dWFsIHZvaWQgZHVtcFVuY291
bnRlZEFsbG9jYXRlZE9iamVjdHMoY29uc3QgSW5zdHJ1bWVudGVkT2JqZWN0U2l6ZVByb3ZpZGVy
KikgeyB9CiAKKyAgICB0eXBlZGVmIHZvaWQgKCpUcmFjZUV2ZW50Q2FsbGJhY2spKGNoYXIgcGhh
c2UsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBsb25n
IGxvbmcgaWQsCisgICAgICAgIGludCBudW1BcmdzLCBjb25zdCBjaGFyKiBjb25zdCogYXJnTmFt
ZXMsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ1R5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxv
bmcqIGFyZ1ZhbHVlcywKKyAgICAgICAgdW5zaWduZWQgY2hhciBmbGFncyk7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VHJhY2VFdmVudENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFjaykgeyB9CisK
IHByb3RlY3RlZDoKICAgICB+V2ViRGV2VG9vbHNBZ2VudENsaWVudCgpIHsgfQogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAKaW5k
ZXggZTk0ZGY5YTdiMThmNDk4ZWJmMzhiYTE4MjBlZWI4NjNjOTI1OWNmZS4uMjI1MDZmMzU3NmY4
NDE5NTMyZWYwOTY3NzFkNmE2MGZkYmI0OGMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAKQEAgLTIxOCw2ICsyMTgsMTIgQEAg
Ym9vbCBJbnNwZWN0b3JDbGllbnRJbXBsOjpoYW5kbGVKYXZhU2NyaXB0RGlhbG9nKGJvb2wgYWNj
ZXB0KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBJbnNwZWN0b3JDbGllbnRJbXBsOjpz
ZXRUcmFjZUV2ZW50Q2FsbGJhY2soVHJhY2VFdmVudENhbGxiYWNrIGNhbGxiYWNrKQoreworICAg
IGlmIChXZWJEZXZUb29sc0FnZW50SW1wbCogYWdlbnQgPSBkZXZUb29sc0FnZW50KCkpCisgICAg
ICAgIGFnZW50LT5zZXRUcmFjZUV2ZW50Q2FsbGJhY2soY2FsbGJhY2spOworfQorCiBXZWJEZXZU
b29sc0FnZW50SW1wbCogSW5zcGVjdG9yQ2xpZW50SW1wbDo6ZGV2VG9vbHNBZ2VudCgpCiB7CiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkRldlRvb2xzQWdlbnRJbXBsKj4obV9pbnNwZWN0ZWRX
ZWJWaWV3LT5kZXZUb29sc0FnZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oCmluZGV4IGQxNzNmY2EyN2UwNTJiODM0NDEyZjg0Yzg1
MjY1ZTUxODYzMGYzOGQuLjdkY2RlNGViMTZiNTFmMzM4ZmM5MGUzYTljN2I3ZTNkOTdhZGYyNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudElt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBs
LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkdW1wVW5jb3Vu
dGVkQWxsb2NhdGVkT2JqZWN0cyhjb25zdCBIYXNoTWFwPGNvbnN0IHZvaWQqLCBzaXplX3Q+Jik7
CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FwdHVyZVNjcmVlbnNob3QoV1RGOjpTdHJpbmcqIGRhdGEp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFjZUV2ZW50Q2FsbGJhY2soVHJhY2VFdmVudENhbGxi
YWNrKTsKIAogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVKYXZhU2NyaXB0RGlhbG9nKGJvb2wgYWNj
ZXB0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9v
bHNBZ2VudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNB
Z2VudEltcGwuY3BwCmluZGV4IDRlYTQ2MGExMGI2MDg5MWNhNWVlZWNkYWE4ZjM3MzU1OWNlODE4
YjMuLjlmZTFjY2Y5MjFlODM0Njg1M2RmMzJlODA0YzVhYmExM2ZjNDMzZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKQEAg
LTU5MSw2ICs1OTEsMTEgQEAgYm9vbCBXZWJEZXZUb29sc0FnZW50SW1wbDo6aGFuZGxlSmF2YVNj
cmlwdERpYWxvZyhib29sIGFjY2VwdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBXZWJE
ZXZUb29sc0FnZW50SW1wbDo6c2V0VHJhY2VFdmVudENhbGxiYWNrKFRyYWNlRXZlbnRDYWxsYmFj
ayBjYWxsYmFjaykKK3sKKyAgICBtX2NsaWVudC0+c2V0VHJhY2VFdmVudENhbGxiYWNrKGNhbGxi
YWNrKTsKK30KKwogdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6ZGlzcGF0Y2hPbkluc3BlY3Rv
ckJhY2tlbmQoY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGluc3BlY3RvckNvbnRy
b2xsZXIoKS0+ZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKG1lc3NhZ2UpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKaW5kZXggNWU4
ZjI0NTk0YzRiYzQ0MmZkZWYyZGQzMDIzOTEzN2NhMjRmYmJmZC4uNTA5MTkxZmU5ODFjMDlmNTE5
ZTc2MzdmODFlNmI4MDZhMTViMWQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCkBAIC0xMTAsNiArMTEwLDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIGdldEFsbG9jYXRlZE9iamVjdHMoSGFzaFNldDxjb25zdCB2b2lk
Kj4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZHVtcFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMoY29u
c3QgSGFzaE1hcDxjb25zdCB2b2lkKiwgc2l6ZV90PiYpOworICAgIHZpcnR1YWwgdm9pZCBzZXRU
cmFjZUV2ZW50Q2FsbGJhY2soVHJhY2VFdmVudENhbGxiYWNrKTsKIAogICAgIHZpcnR1YWwgYm9v
bCBjYXB0dXJlU2NyZWVuc2hvdChXVEY6OlN0cmluZyogZGF0YSk7CiAK
</data>
<flag name="review"
          id="205812"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="205818"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190277</attachid>
            <date>2013-02-26 07:02:16 -0800</date>
            <delta_ts>2013-02-26 07:02:16 -0800</delta_ts>
            <desc>EWS run</desc>
            <filename>bug-105796-20130226185830.patch</filename>
            <type>text/plain</type>
            <size>38009</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRlNTk3NzY1NjNjMDk2
MTM0NTc1NDAzMTE2ODQ3ZWQzOTQ3NDMzNy4uZjBiNzA3MTE2NTE1OTVhMjNkNTY0MDNlYzg4MTBi
MjRmNGI3YzM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY0IEBACiAyMDEzLTAyLTI2ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGx1bWIgdHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHBsdW1iIHRyYWNlIGV2ZW50cyB0byBU
aW1lbGluZTsKKyAgICAgICAgLSBhZGQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yIHRvIHBy
b2Nlc3Mgc2VsZWN0ZWQgdHJhY2UgZXZlbnRzOworICAgICAgICAtIGVtaXQgdGltZWxpbmUgZXZl
bnRzIGZyb20gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLgorCisgICAgICAgIE5vdGUgdGhh
dCBhY3R1YWwgZXZlbnQgcHJvY2Vzc2luZyBsb2dpYyBpcyBhIHNlcGFyYXRlIGNoYW5nZS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRlZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNz
b3Iue2gsY3BwfS4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiAgRGl0dG8uCisgICAg
ICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4K
KyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50OjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDogY3JlYXRlL2Rlc3Ry
b3kgdHJhY2UgZXZlbnQgcHJvY2Vzc29yIG9uIHN0YXJ0L3N0b3AuCisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydCk6IAorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnBhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5zcGVj
dG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3I6On5UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFjZUV2ZW50OjpwYXJh
bWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpw
cm9jZXNzRXZlbnRPbkFueVRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnNlbmRUaW1lbGluZVJlY29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NCYWNrZ3JvdW5kRXZlbnRz
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IpOgorICAgICAgICAoVHJhY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OlRyYWNlRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFjZUV2ZW50Ojp0aW1lc3Rh
bXApOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFj
ZUV2ZW50OjpwaGFzZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3I6OlRyYWNlRXZlbnQ6Om5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yOjpUcmFjZUV2ZW50Ojp0aHJlYWRJZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6YXJndW1l
bnRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6
OlRyYWNlRXZlbnQ6OmFzQm9vbCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OmFzSW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6YXNVSW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6YXNEb3VibGUp
OgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFjZUV2
ZW50Ojphc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3I6OkV2ZW50VHlwZUVudHJ5OjpFdmVudFR5cGVFbnRyeSk6CisgICAgICAgIChFdmVudFR5
cGVFbnRyeSk6CisKKzIwMTMtMDItMjYgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVt
Lm9yZz4KKwogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ0MDQxLCByMTQ0MDQ0
LCBhbmQgcjE0NDA0OC4KICAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
MTQ0MDQxCiAgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE0NDA0NApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBiYWJjYWI4ZmY2YzdmZWUwOWIzN2E2NjkwYzJm
Y2I0ZTFkNzE2MWM4Li5jNDJjODkwOWNiNjE2NjdjZGRhYjNiMWJhOGVjYzc0MDc4NWZhNWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUxIEBACiAyMDEzLTAyLTI2ICBB
bmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUGx1bWJpbmcg
dHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcGx1bWIg
dHJhY2UgZXZlbnRzIHRvIFRpbWVsaW5lIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xpZW50Lmg6
CisgICAgICAgIChXZWJEZXZUb29sc0FnZW50Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RGV2VG9vbHNBZ2VudENsaWVudDo6c2V0VHJhY2VFdmVudENhbGxiYWNrKToKKyAgICAgICAgKiBz
cmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNs
aWVudEltcGw6OnNldFRyYWNlRXZlbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAqIHNyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmg6CisgICAgICAgIChJbnNwZWN0b3JDbGll
bnRJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50SW1wbDo6c2V0VHJhY2VFdmVudENhbGxiYWNrKToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmg6
CisgICAgICAgIChXZWJEZXZUb29sc0FnZW50SW1wbCk6CisKKzIwMTMtMDItMDEgIEFuZHJleSBL
b3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBw
bHVtYiB0cmFjZSBldmVudHMgdG8gVGltZWxpbmUgYWdlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTc5NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdW1iIHRyYWNlIGV2ZW50cyB0byBJbnNwZWN0
b3IuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRGV2VG9vbHNBZ2VudENsaWVudC5oOgorICAgICAg
ICAoV2ViRGV2VG9vbHNBZ2VudENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xz
QWdlbnRDbGllbnQ6OnNldFRyYWNlRXZlbnRDYWxsYmFjayk6CisgICAgICAgICogc3JjL0luc3Bl
Y3RvckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnRJbXBs
OjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBz
cmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoSW5zcGVjdG9yQ2xpZW50SW1wbCk6
CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OnNldFRyYWNlRXZlbnRDYWxsYmFjayk6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oOgorICAgICAg
ICAoV2ViRGV2VG9vbHNBZ2VudEltcGwpOgorCisyMDEzLTAyLTI2ICBBbmRyZXkgS29zeWFrb3Yg
IDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjE0NDA0MSwgcjE0NDA0NCwgYW5kIHIxNDQwNDguCiAgICAgICAgIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzE0NDA0MQogICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8xNDQwNDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzY1YmMwY2MzNmRkNzQ0YmE4
YmUyZjk3ZjIyMmVhNjIwYjNiMmQwNi4uNjUyZTg0NjgzZDNmOGExMDkyMzFiNjNhMzY1ZDExNDBi
ZjgyZThlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2NTUsNiArMTY1NSw3IEBAIHNldChX
ZWJDb3JlX1NPVVJDRVMKICAgICBpbnNwZWN0b3IvU2NyaXB0Q2FsbEZyYW1lLmNwcAogICAgIGlu
c3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suY3BwCiAgICAgaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3Jk
RmFjdG9yeS5jcHAKKyAgICBpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNw
cAogICAgIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL1dv
cmtlckRlYnVnZ2VyQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA2MTBlY2VhYjU4OWEx
MmY4MDBhODgxNjQwZDhkNWM4ZTdlOGM3YjJiLi5kZTM1ZGMxZjZlZDhiZWZmYTdhNmRiYWFhOGMw
NWE5NGJlNDU3Y2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM5MDcsNiAr
MzkwNyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVs
aW5lUmVjb3JkRmFjdG9yeS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VyQ29uc29sZUFnZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNv
bnNvbGVBZ2VudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJB
Z2VudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMzE1MjNiOTE3ZDNlYjEzMTExOTJkMTA1ODVkMzJm
N2Y1ZmQzM2Y2My4uY2EyNGI2NjA0NDZhMzBmYzNmMjc3N2U0ODM4N2Q1ZTg4OTY3MDMyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCkBAIC04MjgsNiArODI4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgaW5zcGVjdG9y
L1NjcmlwdENhbGxGcmFtZS5jcHAgXAogICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suY3Bw
IFwKICAgICBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBcCisgICAgaW5zcGVj
dG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgXAogICAgIGluc3BlY3Rvci9Xb3Jr
ZXJDb25zb2xlQWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5j
cHAgXAogICAgIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggZWEwNGM4NzI1YWIwM2YzYTgyNzk5OGZmNjdhYzVlZDE2MmRhMGY0Yi4u
ZWI0ZmFiOTk5MzAwMDNiNWM0ZGNhNTI0NmFhNDQ3NDAzZjUwODdlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQpAQCAtMTkzNiw2ICsxOTM2LDggQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvU2NyaXB0R0NF
dmVudExpc3RlbmVyLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZh
Y3RvcnkuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3Iu
Y3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmgnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGQ0ODk5YjFiODQxMzU1NGMwNjA5NWI3
MDEwMDUzYzk1YzJkYTAzOTUuLjNlZjgxZjJjZTcyNDM4NjNlNWE2ZWExMGU5YjBkZjI0Yjc2NGE4
ZDcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC03Njg1NCw2ICs3Njg1NCwzMCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXFRp
bWVsaW5lUmVjb3JkRmFjdG9yeS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAgICAg
ICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZl
UGF0aD0iLi5caW5zcGVjdG9yXFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxl
Q29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGVDb25m
aWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0i
UHJvZHVjdGlvbnxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRv
b2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlv
bj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZT4KKyAgICAgICAgICAgICAgICAgICAg
ICAgIDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0i
Li5caW5zcGVjdG9yXFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+CiAJ
CQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXFdvcmtlckNvbnNvbGVBZ2Vu
dC5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDk0YzkwYjdjZGFmNjgyNjE5MDMxZjczY2M5MjczMDk1M2YwYmY0
ZjkuLjUzZmQyMTcyM2I5NGQ5ZWIyZjk4Yzg2MjEzZjFkM2JiMDU0YjEyZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyODMs
NiArMTI4Myw4IEBACiAJCTQ2RjlENURGMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNv
ci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
RjlENURDMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgKi87IH07CiAJCTQ5
MDcwN0U2MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNDEyMTlDMDQzMDBE
OTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovOyB9OwogCQk0OTA3MDdFNzEyMTlDMDQz
MDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdl
YktpdEJyaWRnZS5oICovOyB9OworCQk0OTE0MDI1NjE2OEUwMkU4MDAyRDZDNkEgLyogVGltZWxp
bmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5MTQwMjU0MTY4RTAyQjQwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3IuY3BwICovOyB9OworCQk0OTE0MDI1NzE2OEUwMkVDMDAyRDZDNkEgLyog
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0OTE0MDI1NTE2OEUwMkI0MDAyRDZDNkEgLyogVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yLmggKi87IH07CiAJCTQ5MTgyQjUyMTVEQ0U2RjAwMDU0ODQxOCAv
KiBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0OTE4MkI1MDE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1J
bnN0cnVtZW50YXRpb24uY3BwICovOyB9OwogCQk0OTE4MkI1MzE1RENFNkYwMDA1NDg0MTggLyog
UGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5MTgyQjUxMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3Ry
dW1lbnRhdGlvbi5oICovOyB9OwogCQk0OTI4NjM5OTEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3Vy
Y2VMb2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDkyODYzOTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODY5NSw2ICs4Njk3
LDggQEAKIAkJNDZGOUQ1REMwQjBENjAxNzAwMjhFRTM2IC8qIHByb2dyZXNzQ3Vyc29yLnBuZyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBu
ZzsgcGF0aCA9IHByb2dyZXNzQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8q
IEFOR0xFV2ViS2l0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFO
R0xFV2ViS2l0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5MTQwMjU0
MTY4RTAyQjQwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vz
c29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDkxNDAyNTUxNjhFMDJCNDAw
MkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkxODJCNTAxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3Jt
SW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDkxODJCNTExNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5Mjg2Mzk4MTI1M0I4RkMwMEY3OTJE
NiAvKiBSZXNvdXJjZUxvYWRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlc291cmNlTG9hZEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MzQy
LDYgKzE1MzQ2LDggQEAKIAkJCQk5RkEzN0VGMDExNzJGRDQxMDBDNENENTUgLyogU2NyaXB0UHJv
ZmlsZU5vZGUuaWRsICovLAogCQkJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuY3BwICovLAogCQkJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBU
aW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLywKKwkJCQk0OTE0MDI1NDE2OEUwMkI0MDAyRDZDNkEg
LyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCAqLywKKwkJCQk0OTE0MDI1NTE2OEUw
MkI0MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggKi8sCiAJCQkJRjM4
MjA4OEUxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgKi8sCiAJCQkJ
RjM4MjA4OEYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5oICovLAogCQkJ
CUYzNDc0MkRFMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCAqLywK
QEAgLTI2NjE1LDYgKzI2NjIxLDcgQEAKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzODAgLyog
WFNTQXVkaXRvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4
MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQjhDRDQ2MTZEMDQ1
OTEwMDBFOENDMCAvKiBTZWxlY3RvckNoZWNrZXJGYXN0UGF0aC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDkxNDAyNTcxNjhFMDJFQzAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yOTgwOSw2ICsyOTgxNiw3IEBACiAJCQkJOTc3RTJFMEUx
MkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDFCOENENDUxNkQwNDU5MTAwMEU4Q0MwIC8qIFNlbGVjdG9yQ2hlY2tlckZhc3RQ
YXRoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5MTQwMjU2MTY4RTAyRTgwMDJENkM2QSAvKiBU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAppbmRleCAxZWI4ZTIxNWM1
ZTY0MjhlNzhjYWFlZjdhZDBhYjk5MjZlZDc3ODU3Li5hNWYzOGE2MzFjZThkZDU3NmJkZTBjYmVk
YmFlYTI2MWU0MTc2NTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBbGxJbk9uZS5jcHAKQEAgLTgzLDYgKzgzLDcgQEAKICNpbmNsdWRlICJTY3JpcHRDYWxsRnJh
bWUuY3BwIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5jcHAiCiAjaW5jbHVkZSAiVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmNwcCIKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNz
b3IuY3BwIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVBZ2VudC5jcHAiCiAjaW5jbHVkZSAiV29y
a2VyRGVidWdnZXJBZ2VudC5jcHAiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXgg
OTRjMmU5NDc2MDBmMDg1ZWI3MDJmMzgxMDMxODUwNTI4OWNmNzIyMy4uNDRiNWY1YzEyYjE2Nzcy
Nzg2N2IyOTcwZGM2YTI3NTJkYzIwMjhiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDbGllbnQuaApAQCAtNTksNiArNTksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBjbGVhckJyb3dzZXJDb29raWVzKCkgeyB9CiAgICAgdmlydHVhbCBib29sIGNhbk1vbml0
b3JNYWluVGhyZWFkKCkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHR5cGVkZWYgdm9pZCAoKlRy
YWNlRXZlbnRDYWxsYmFjaykoY2hhciBwaGFzZSwgY29uc3QgdW5zaWduZWQgY2hhciosIGNvbnN0
IGNoYXIqIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51bUFyZ3Ms
IGNvbnN0IGNoYXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlw
ZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1bnNpZ25l
ZCBjaGFyIGZsYWdzKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2VFdmVudENhbGxiYWNrKFRy
YWNlRXZlbnRDYWxsYmFjaykgeyB9CisKICAgICB2aXJ0dWFsIGJvb2wgY2FuT3ZlcnJpZGVEZXZp
Y2VNZXRyaWNzKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvdmVycmlk
ZURldmljZU1ldHJpY3MoaW50IC8qd2lkdGgqLywgaW50IC8qaGVpZ2h0Ki8sIGZsb2F0IC8qZm9u
dFNjYWxlRmFjdG9yKi8sIGJvb2wgLypmaXRXaW5kb3cqLykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCA4MWMwN2M4ZTk2
MTQ1OTBiOGVlYTU2NDk0ODA5ZWJjODQ4NzIxMTg3Li5hNDExMTM3NWY3MTdjNTBjODQ0NjliN2Vj
OTZkM2Y3ZTMxYTllMGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqIENvcHlyaWdodCAo
QykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQpAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCIKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3Iu
aCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCkBAIC0xNzksNiArMTgwLDggQEAg
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydChFcnJvclN0cmluZyosIGNvbnN0IGlu
dCogbWF4Q2FsbFN0YWNrRGVwdGgpCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNw
ZWN0b3JUaW1lbGluZUFnZW50KHRoaXMpOwogICAgIFNjcmlwdEdDRXZlbnQ6OmFkZEV2ZW50TGlz
dGVuZXIodGhpcyk7CiAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihUaW1lbGluZUFnZW50U3RhdGU6
OnRpbWVsaW5lQWdlbnRFbmFibGVkLCB0cnVlKTsKKyAgICBpZiAobV9jbGllbnQgJiYgbV9wYWdl
QWdlbnQpCisgICAgICAgIG1fdHJhY2VFdmVudFByb2Nlc3NvciA9IGFkb3B0UmVmKG5ldyBUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3IobV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIG1f
Y2xpZW50KSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcChFcnJvclN0
cmluZyopCkBAIC0xODYsNiArMTg5LDggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpz
dG9wKEVycm9yU3RyaW5nKikKICAgICBpZiAoIW1fc3RhdGUtPmdldEJvb2xlYW4oVGltZWxpbmVB
Z2VudFN0YXRlOjp0aW1lbGluZUFnZW50RW5hYmxlZCkpCiAgICAgICAgIHJldHVybjsKIAorICAg
IG1fdHJhY2VFdmVudFByb2Nlc3Nvci5jbGVhcigpOworICAgIG1fd2Vha0ZhY3RvcnkucmV2b2tl
QWxsKCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JUaW1lbGluZUFn
ZW50KDApOwogICAgIFNjcmlwdEdDRXZlbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcyk7CiAK
QEAgLTYzNSw2ICs2NDAsNyBAQCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbgogICAgICwgbV9wbGF0
Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudEluc3RhbGxlZEF0U3RhY2tEZXB0aCgwKQogICAgICwg
bV9pbnNwZWN0b3JUeXBlKHR5cGUpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3dl
YWtGYWN0b3J5KHRoaXMpCiB7CiB9CiAKQEAgLTcwNiw2ICs3MTIsMTEgQEAgZG91YmxlIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OnRpbWVzdGFtcEZyb21NaWNyb3NlY29uZHMoZG91YmxlIG1pY3Jv
c2Vjb25kcykKICAgICByZXR1cm4gKG1pY3Jvc2Vjb25kcyArIG1fdGltZXN0YW1wT2Zmc2V0KSAq
IDEwMDAuMDsKIH0KIAorUGFnZSogSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cGFnZSgpCit7Cisg
ICAgcmV0dXJuIG1fcGFnZUFnZW50ID8gbV9wYWdlQWdlbnQtPnBhZ2UoKSA6IDA7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRl
eCA0Nzk5NWQ1MGY1ZGJiMjJiYThjNDMwYTRlMGJmMTU1ODEzNDUxZjk1Li44NzZlMjhjMWQxZjgw
NGU1NjczYWVhN2UyYjNlOGVhNjBkZDRhMjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNs
dWRlICJTY3JpcHRHQ0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFdmVudDsKQEAgLTU0LDkgKzU1LDExIEBAIGNsYXNz
IEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIEludFJl
Y3Q7CiBjbGFzcyBLVVJMOworY2xhc3MgUGFnZTsKIGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNz
IFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3I7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCkBA
IC0xNzYsNiArMTc5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXNpemVJbWFn
ZSgpIE9WRVJSSURFOwogCiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3I7CisKICAgICBzdHJ1Y3QgVGltZWxpbmVSZWNvcmRFbnRyeSB7CiAgICAg
ICAgIFRpbWVsaW5lUmVjb3JkRW50cnkoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29y
ZCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIFBhc3NSZWZQdHI8SW5zcGVjdG9y
QXJyYXk+IGNoaWxkcmVuLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJ
ZCwgc2l6ZV90IHVzZWRIZWFwU2l6ZUF0U3RhcnQpCiAgICAgICAgICAgICA6IHJlY29yZChyZWNv
cmQpLCBkYXRhKGRhdGEpLCBjaGlsZHJlbihjaGlsZHJlbiksIHR5cGUodHlwZSksIGZyYW1lSWQo
ZnJhbWVJZCksIHVzZWRIZWFwU2l6ZUF0U3RhcnQodXNlZEhlYXBTaXplQXRTdGFydCkKQEAgLTIx
Myw2ICsyMTgsNyBAQCBwcml2YXRlOgogCiAgICAgZG91YmxlIHRpbWVzdGFtcCgpOwogICAgIGRv
dWJsZSB0aW1lc3RhbXBGcm9tTWljcm9zZWNvbmRzKGRvdWJsZSBtaWNyb3NlY29uZHMpOworICAg
IFBhZ2UqIHBhZ2UoKTsKIAogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAg
ICAgSW5zcGVjdG9yTWVtb3J5QWdlbnQqIG1fbWVtb3J5QWdlbnQ7CkBAIC0yMzksNiArMjQ1LDgg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBtX3BlbmRpbmdGcmFtZVJl
Y29yZDsKICAgICBJbnNwZWN0b3JUeXBlIG1faW5zcGVjdG9yVHlwZTsKICAgICBJbnNwZWN0b3JD
bGllbnQqIG1fY2xpZW50OworICAgIFdlYWtQdHJGYWN0b3J5PEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ+IG1fd2Vha0ZhY3Rvcnk7CisgICAgUmVmUHRyPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nv
cj4gbV90cmFjZUV2ZW50UHJvY2Vzc29yOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjYyY2YzZWI1ODI1NGQ3ZWVjZGJiMmFhYTQyZmQz
ZTI1ZjdjMWUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Rp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKQEAgLTAsMCArMSwyMDQgQEAKKy8qCisqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorKiBtZXQ6CisqCisqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyogZGlzdHJpYnV0aW9uLgorKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCisKKyNpbmNsdWRlICJUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCIKKworI2lu
Y2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgorI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKKyNpbmNsdWRlICJU
aW1lbGluZVJlY29yZEZhY3RvcnkuaCIKKworI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgor
I2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmlj
Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25h
bWVzcGFjZSB7CisKK2NsYXNzIFRyYWNlRXZlbnREaXNwYXRjaGVyIHsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShUcmFjZUV2ZW50RGlzcGF0Y2hlcik7CitwdWJsaWM6CisgICAgc3RhdGljIFRy
YWNlRXZlbnREaXNwYXRjaGVyKiBpbnN0YW5jZSgpCisgICAgeworICAgICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFRyYWNlRXZlbnREaXNwYXRjaGVyLCBpbnN0YW5jZSwgKCkpOworICAgICAgICBy
ZXR1cm4gJmluc3RhbmNlOworICAgIH0KKworICAgIHZvaWQgYWRkUHJvY2Vzc29yKFRpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3NvciogcHJvY2Vzc29yLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkK
KyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKworICAgICAgICBt
X3Byb2Nlc3NvcnMuYXBwZW5kKHByb2Nlc3Nvcik7CisgICAgICAgIGlmIChtX3Byb2Nlc3NvcnMu
c2l6ZSgpID09IDEpCisgICAgICAgICAgICBjbGllbnQtPnNldFRyYWNlRXZlbnRDYWxsYmFjayhk
aXNwYXRjaEV2ZW50T25BbnlUaHJlYWQpOworICAgIH0KKworICAgIHZvaWQgcmVtb3ZlUHJvY2Vz
c29yKFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvciogcHJvY2Vzc29yLCBJbnNwZWN0b3JDbGll
bnQqIGNsaWVudCkKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsK
KworICAgICAgICBzaXplX3QgaW5kZXggPSBtX3Byb2Nlc3NvcnMuZmluZChwcm9jZXNzb3IpOwor
ICAgICAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fcHJv
Y2Vzc29yc1tpbmRleF0gPSBtX3Byb2Nlc3NvcnMubGFzdCgpOworICAgICAgICBtX3Byb2Nlc3Nv
cnMucmVtb3ZlTGFzdCgpOworICAgICAgICBpZiAobV9wcm9jZXNzb3JzLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgIGNsaWVudC0+c2V0VHJhY2VFdmVudENhbGxiYWNrKDApOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBUcmFjZUV2ZW50RGlzcGF0Y2hlcigpIHsgfQorCisgICAgc3RhdGljIHZvaWQg
ZGlzcGF0Y2hFdmVudE9uQW55VGhyZWFkKGNoYXIgcGhhc2UsIGNvbnN0IHVuc2lnbmVkIGNoYXIq
LCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgaWQsCisgICAgICAgIGludCBu
dW1BcmdzLCBjb25zdCBjaGFyKiBjb25zdCogYXJnTmFtZXMsIGNvbnN0IHVuc2lnbmVkIGNoYXIq
IGFyZ1R5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIGFyZ1ZhbHVlcywKKyAgICAgICAg
dW5zaWduZWQgY2hhciBmbGFncykKKyAgICB7CisgICAgICAgIFRyYWNlRXZlbnREaXNwYXRjaGVy
KiBzZWxmID0gaW5zdGFuY2UoKTsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3I+ID4gcHJvY2Vzc29yczsKKyAgICAgICAgeworICAgICAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKHNlbGYtPm1fbXV0ZXgpOworICAgICAgICAgICAgcHJvY2Vzc29ycyA9
IHNlbGYtPm1fcHJvY2Vzc29yczsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMCwg
c2l6ZSA9IHByb2Nlc3NvcnMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICBw
cm9jZXNzb3JzW2ldLT5wcm9jZXNzRXZlbnRPbkFueVRocmVhZChzdGF0aWNfY2FzdDxUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnRQaGFzZT4ocGhhc2UpLAorICAgICAgICAg
ICAgICAgIG5hbWUsIGlkLCBudW1BcmdzLCBhcmdOYW1lcywgYXJnVHlwZXMsIGFyZ1ZhbHVlcywg
ZmxhZ3MpOworICAgICAgICB9CisgICAgfQorCisgICAgTXV0ZXggbV9tdXRleDsKKyAgICBWZWN0
b3I8UmVmUHRyPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcj4gPiBtX3Byb2Nlc3NvcnM7Cit9
OworCit9IC8vIG5hbWVzcGNlCitUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3NvcihXZWFrUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IHRpbWVs
aW5lQWdlbnQsIEluc3BlY3RvckNsaWVudCAqY2xpZW50KQorICAgIDogbV90aW1lbGluZUFnZW50
KHRpbWVsaW5lQWdlbnQpCisgICAgLCBtX2luc3BlY3RvckNsaWVudChjbGllbnQpCisgICAgLCBt
X3BhZ2VJZChyZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV90aW1lbGluZUFn
ZW50LmdldCgpLT5wYWdlKCkpKQoreworICAgIFRyYWNlRXZlbnREaXNwYXRjaGVyOjppbnN0YW5j
ZSgpLT5hZGRQcm9jZXNzb3IodGhpcywgbV9pbnNwZWN0b3JDbGllbnQpOworfQorCitUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3I6On5UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IoKQorewor
ICAgIFRyYWNlRXZlbnREaXNwYXRjaGVyOjppbnN0YW5jZSgpLT5yZW1vdmVQcm9jZXNzb3IodGhp
cywgbV9pbnNwZWN0b3JDbGllbnQpOworfQorCitjb25zdCBUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3I6OlRyYWNlVmFsdWVVbmlvbiYgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFj
ZUV2ZW50OjpwYXJhbWV0ZXIoY29uc3QgY2hhciogbmFtZSwgVHJhY2VWYWx1ZVR5cGVzIGV4cGVj
dGVkVHlwZSkgY29uc3QKK3sKKyAgICBzdGF0aWMgVHJhY2VWYWx1ZVVuaW9uIG1pc3NpbmdWYWx1
ZTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9hcmd1bWVudENvdW50OyArK2kpIHsKKyAg
ICAgICAgaWYgKCFzdHJjbXAobmFtZSwgbV9hcmd1bWVudE5hbWVzW2ldKSkgeworICAgICAgICAg
ICAgaWYgKG1fYXJndW1lbnRUeXBlc1tpXSAhPSBleHBlY3RlZFR5cGUpIHsKKyAgICAgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWlzc2lu
Z1ZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuICpyZWludGVycHJldF9j
YXN0PGNvbnN0IFRyYWNlVmFsdWVVbmlvbio+KG1fYXJndW1lbnRWYWx1ZXMgKyBpKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbWlzc2lu
Z1ZhbHVlOworfQorCit2b2lkIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6cHJvY2Vzc0V2
ZW50T25BbnlUaHJlYWQoVHJhY2VFdmVudFBoYXNlIHBoYXNlLCBjb25zdCBjaGFyKiBuYW1lLCB1
bnNpZ25lZCBsb25nIGxvbmcsCisgICAgaW50IG51bUFyZ3MsIGNvbnN0IGNoYXIqIGNvbnN0KiBh
cmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlwZXMsIGNvbnN0IHVuc2lnbmVkIGxv
bmcgbG9uZyogYXJnVmFsdWVzLAorICAgIHVuc2lnbmVkIGNoYXIpCit7CisgICAgSGFzaE1hcDxT
dHJpbmcsIEV2ZW50VHlwZUVudHJ5Pjo6aXRlcmF0b3IgaXQgPSBtX2hhbmRsZXJzQnlUeXBlLmZp
bmQobmFtZSk7CisgICAgaWYgKGl0ID09IG1faGFuZGxlcnNCeVR5cGUuZW5kKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIFRyYWNlRXZlbnQgZXZlbnQoV1RGOjptb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKSwgcGhhc2UsIG5hbWUsIGN1cnJlbnRUaHJlYWQoKSwgbnVtQXJncywgYXJnTmFt
ZXMsIGFyZ1R5cGVzLCBhcmdWYWx1ZXMpOworCisgICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewor
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9iYWNrZ3JvdW5kRXZlbnRzTXV0ZXgpOworICAg
ICAgICBtX2JhY2tncm91bmRFdmVudHMuYXBwZW5kKGV2ZW50KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIHByb2Nlc3NFdmVudChpdC0+dmFsdWUsIGV2ZW50KTsKK30KKwordm9pZCBU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NFdmVudChjb25zdCBFdmVudFR5cGVF
bnRyeSYgZXZlbnRUeXBlRW50cnksIGNvbnN0IFRyYWNlRXZlbnQmIGV2ZW50KQoreworICAgIFRy
YWNlRXZlbnRIYW5kbGVyIGhhbmRsZXIgPSAwOworICAgIHN3aXRjaCAoZXZlbnQucGhhc2UoKSkg
eworICAgIGNhc2UgVHJhY2VQaGFzZUJlZ2luOgorICAgICAgICBoYW5kbGVyID0gZXZlbnRUeXBl
RW50cnkubV9iZWdpbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUcmFjZVBoYXNlRW5kOgor
ICAgICAgICBoYW5kbGVyID0gZXZlbnRUeXBlRW50cnkubV9lbmQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVHJhY2VQaGFzZUluc3RhbnQ6CisgICAgICAgIGhhbmRsZXIgPSBldmVudFR5cGVF
bnRyeS5tX2luc3RhbnQ7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICBpZiAoIWhhbmRsZXIpIHsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKHRoaXMt
PipoYW5kbGVyKShldmVudCk7Cit9CisKK3ZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
OjpzZW5kVGltZWxpbmVSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNv
bnN0IFN0cmluZyYgcmVjb3JkVHlwZSwgZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGVuZFRpbWUs
IGNvbnN0IFN0cmluZyYgdGhyZWFkKQoreworICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRp
bWVsaW5lQWdlbnQgPSBtX3RpbWVsaW5lQWdlbnQuZ2V0KCk7CisgICAgaWYgKCF0aW1lbGluZUFn
ZW50KQorICAgICAgICByZXR1cm47CisgICAgdGltZWxpbmVBZ2VudC0+YXBwZW5kQmFja2dyb3Vu
ZFRocmVhZFJlY29yZChkYXRhLCByZWNvcmRUeXBlLCBzdGFydFRpbWUsIGVuZFRpbWUsIHRocmVh
ZCk7Cit9CisKK3ZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpwcm9jZXNzQmFja2dy
b3VuZEV2ZW50cygpCit7CisgICAgVmVjdG9yPFRyYWNlRXZlbnQ+IGV2ZW50czsKKyAgICB7Cisg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2JhY2tncm91bmRFdmVudHNNdXRleCk7CisgICAg
ICAgIGV2ZW50cy5yZXNlcnZlQ2FwYWNpdHkobV9iYWNrZ3JvdW5kRXZlbnRzLmNhcGFjaXR5KCkp
OworICAgICAgICBtX2JhY2tncm91bmRFdmVudHMuc3dhcChldmVudHMpOworICAgIH0KKyAgICBm
b3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IGV2ZW50cy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsK
KyAgICAgICAgY29uc3QgVHJhY2VFdmVudCYgZXZlbnQgPSBldmVudHNbaV07CisgICAgICAgIHBy
b2Nlc3NFdmVudChtX2hhbmRsZXJzQnlUeXBlLmZpbmQoZXZlbnQubmFtZSgpKS0+dmFsdWUsIGV2
ZW50KTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRkYTdjYWYyZmZmZTg1ODk2
ZDA4NWU0NmRmODE2NzE5YTgzNmE3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaApAQCAtMCwwICsxLDE5MyBA
QAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisqIG1ldDoKKyoKKyogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorKiBkaXN0cmli
dXRpb24uCisqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2lmbmRlZiBUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3JfaAorI2RlZmluZSBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3JfaAorCisjaWYg
RU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgorCisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJbnNwZWN0
b3JDbGllbnQ7CitjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OworY2xhc3MgUGFnZTsKKwor
Y2xhc3MgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcj4geworcHVibGljOgorICAgIC8vIEZJ
WE1FOiByZS11c2UgZGVmaW5pdGlvbnMgaW4gVHJhY2VFdmVudC5oIG9uY2UgaXQncyBwcm9tb3Rl
ZCB0byBhbGwgcGxhdGZvcm1zLgorICAgIGVudW0gVHJhY2VFdmVudFBoYXNlIHsKKyAgICAgICAg
VHJhY2VQaGFzZUJlZ2luID0gJ0InLAorICAgICAgICBUcmFjZVBoYXNlRW5kID0gJ0UnLAorICAg
ICAgICBUcmFjZVBoYXNlSW5zdGFudCA9ICdJJworICAgIH07CisKKyAgICBUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3IoV2Vha1B0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiwgSW5zcGVjdG9y
Q2xpZW50Kik7CisgICAgflRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcigpOworCisgICAgdm9p
ZCBwcm9jZXNzRXZlbnRPbkFueVRocmVhZChUcmFjZUV2ZW50UGhhc2UsIGNvbnN0IGNoYXIqIG5h
bWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCwKKyAgICAgICAgaW50IG51bUFyZ3MsIGNvbnN0IGNo
YXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlwZXMsIGNvbnN0
IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAorICAgICAgICB1bnNpZ25lZCBjaGFyIGZs
YWdzKTsKKworcHJpdmF0ZToKKyAgICAvLyBGSVhNRTogdXNlIHRoZSBkZWZpbml0aW9uIGluIFRy
YWNlRXZlbnQuaCBvbmNlIHdlIGV4cG9zZSB0aGUgbGF0dGVyIHRvIGFsbCBwbGFmb3Jtcy4KKyAg
ICB1bmlvbiBUcmFjZVZhbHVlVW5pb24geworICAgICAgICBib29sIG1fYm9vbDsKKyAgICAgICAg
dW5zaWduZWQgbG9uZyBsb25nIG1fdWludDsKKyAgICAgICAgbG9uZyBsb25nIG1faW50OworICAg
ICAgICBkb3VibGUgbV9kb3VibGU7CisgICAgICAgIGNvbnN0IHZvaWQqIG1fcG9pbnRlcjsKKyAg
ICAgICAgY29uc3QgY2hhciogbV9zdHJpbmc7CisgICAgfTsKKworICAgIGVudW0gVHJhY2VWYWx1
ZVR5cGVzIHsKKyAgICAgICAgVHlwZUJvb2wgPSAxLAorICAgICAgICBUeXBlVUludCA9IDIsCisg
ICAgICAgIFR5cGVJbnQgPSAzLAorICAgICAgICBUeXBlRG91YmxlID0gNCwKKyAgICAgICAgVHlw
ZVBvaW50ZXIgPSA1LAorICAgICAgICBUeXBlU3RyaW5nID0gNiwKKyAgICAgICAgVHlwZUNvcHlT
dHJpbmcgPSA3CisgICAgfTsKKworICAgIGNsYXNzIFRyYWNlRXZlbnQgeworICAgIHB1YmxpYzoK
KyAgICAgICAgVHJhY2VFdmVudCgpCisgICAgICAgICAgICA6IG1fYXJndW1lbnRDb3VudCgwKQor
ICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBUcmFjZUV2ZW50KGRvdWJsZSB0aW1lc3Rh
bXAsIFRyYWNlRXZlbnRQaGFzZSBwaGFzZSwgY29uc3QgY2hhciogbmFtZSwgVGhyZWFkSWRlbnRp
ZmllciB0aHJlYWRJZGVudGlmaWVyLAorICAgICAgICAgICAgaW50IGFyZ3VtZW50Q291bnQsIGNv
bnN0IGNoYXIqIGNvbnN0KiBhcmd1bWVudE5hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmd1
bWVudFR5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIGFyZ3VtZW50VmFsdWVzKQorICAg
ICAgICAgICAgOiBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCisgICAgICAgICAgICAsIG1fcGhhc2Uo
cGhhc2UpCisgICAgICAgICAgICAsIG1fbmFtZShuYW1lKQorICAgICAgICAgICAgLCBtX3RocmVh
ZElkZW50aWZpZXIodGhyZWFkSWRlbnRpZmllcikKKyAgICAgICAgICAgICwgbV9hcmd1bWVudENv
dW50KGFyZ3VtZW50Q291bnQpCisgICAgICAgICAgICAsIG1fYXJndW1lbnROYW1lcyhhcmd1bWVu
dE5hbWVzKQorICAgICAgICAgICAgLCBtX2FyZ3VtZW50VHlwZXMoYXJndW1lbnRUeXBlcykKKyAg
ICAgICAgICAgICwgbV9hcmd1bWVudFZhbHVlcyhhcmd1bWVudFZhbHVlcykKKyAgICAgICAgewor
ICAgICAgICB9CisKKyAgICAgICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1f
dGltZXN0YW1wOyB9CisgICAgICAgIFRyYWNlRXZlbnRQaGFzZSBwaGFzZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcGhhc2U7IH0KKyAgICAgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbmFtZTsgfQorICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX3RocmVhZElkZW50aWZpZXI7IH0KKyAgICAgICAgaW50IGFyZ3VtZW50
Q291bnQoKSBjb25zdCB7IHJldHVybiBtX2FyZ3VtZW50Q291bnQ7IH0KKworICAgICAgICBib29s
IGFzQm9vbChjb25zdCBjaGFyKiBuYW1lKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gcGFyYW1ldGVyKG5hbWUsIFR5cGVCb29sKS5tX2Jvb2w7CisgICAgICAgIH0KKyAgICAg
ICAgbG9uZyBsb25nIGFzSW50KGNvbnN0IGNoYXIqIG5hbWUpIGNvbnN0CisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXIobmFtZSwgVHlwZUludCkubV9pbnQ7CisgICAgICAg
IH0KKyAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGFzVUludChjb25zdCBjaGFyKiBuYW1lKSBj
b25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcGFyYW1ldGVyKG5hbWUsIFR5cGVV
SW50KS5tX3VpbnQ7CisgICAgICAgIH0KKyAgICAgICAgZG91YmxlIGFzRG91YmxlKGNvbnN0IGNo
YXIqIG5hbWUpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXIo
bmFtZSwgVHlwZURvdWJsZSkubV9kb3VibGU7CisgICAgICAgIH0KKyAgICAgICAgY29uc3QgY2hh
ciogYXNTdHJpbmcoY29uc3QgY2hhciogbmFtZSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIHBhcmFtZXRlcihuYW1lLCBUeXBlU3RyaW5nKS5tX3N0cmluZzsKKyAgICAgICAg
fQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3QgVHJhY2VWYWx1ZVVuaW9uJiBwYXJhbWV0
ZXIoY29uc3QgY2hhciogbmFtZSwgVHJhY2VWYWx1ZVR5cGVzIGV4cGVjdGVkVHlwZSkgY29uc3Q7
CisKKyAgICAgICAgZG91YmxlIG1fdGltZXN0YW1wOworICAgICAgICBUcmFjZUV2ZW50UGhhc2Ug
bV9waGFzZTsKKyAgICAgICAgY29uc3QgY2hhciogbV9uYW1lOworICAgICAgICBUaHJlYWRJZGVu
dGlmaWVyIG1fdGhyZWFkSWRlbnRpZmllcjsKKyAgICAgICAgaW50IG1fYXJndW1lbnRDb3VudDsK
KyAgICAgICAgY29uc3QgY2hhciogY29uc3QqIG1fYXJndW1lbnROYW1lczsKKyAgICAgICAgY29u
c3QgdW5zaWduZWQgY2hhciogbV9hcmd1bWVudFR5cGVzOworICAgICAgICBjb25zdCB1bnNpZ25l
ZCBsb25nIGxvbmcqIG1fYXJndW1lbnRWYWx1ZXM7CisgICAgfTsKKworICAgIHR5cGVkZWYgdm9p
ZCAoVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjoqVHJhY2VFdmVudEhhbmRsZXIpKGNvbnN0
IFRyYWNlRXZlbnQmKTsKKworICAgIHN0cnVjdCBFdmVudFR5cGVFbnRyeSB7CisgICAgICAgIEV2
ZW50VHlwZUVudHJ5KCkKKyAgICAgICAgICAgIDogbV9iZWdpbigwKQorICAgICAgICAgICAgLCBt
X2VuZCgwKQorICAgICAgICAgICAgLCBtX2luc3RhbnQoMCkKKyAgICAgICAgeworICAgICAgICB9
CisgICAgICAgIGV4cGxpY2l0IEV2ZW50VHlwZUVudHJ5KFRyYWNlRXZlbnRIYW5kbGVyIGluc3Rh
bnQpCisgICAgICAgICAgICA6IG1fYmVnaW4oMCkKKyAgICAgICAgICAgICwgbV9lbmQoMCkKKyAg
ICAgICAgICAgICwgbV9pbnN0YW50KGluc3RhbnQpCisgICAgICAgIHsKKyAgICAgICAgfQorICAg
ICAgICBFdmVudFR5cGVFbnRyeShUcmFjZUV2ZW50SGFuZGxlciBiZWdpbiwgVHJhY2VFdmVudEhh
bmRsZXIgZW5kKQorICAgICAgICAgICAgOiBtX2JlZ2luKGJlZ2luKQorICAgICAgICAgICAgLCBt
X2VuZChlbmQpCisgICAgICAgICAgICAsIG1faW5zdGFudCgwKQorICAgICAgICB7CisgICAgICAg
IH0KKworICAgICAgICBUcmFjZUV2ZW50SGFuZGxlciBtX2JlZ2luOworICAgICAgICBUcmFjZUV2
ZW50SGFuZGxlciBtX2VuZDsKKyAgICAgICAgVHJhY2VFdmVudEhhbmRsZXIgbV9pbnN0YW50Owor
ICAgIH07CisKKyAgICB2b2lkIHByb2Nlc3NCYWNrZ3JvdW5kRXZlbnRzKCk7CisgICAgdm9pZCBz
ZW5kVGltZWxpbmVSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0
IFN0cmluZyYgcmVjb3JkVHlwZSwgZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGVuZFRpbWUsIGNv
bnN0IFN0cmluZyYgdGhyZWFkKTsKKyAgICB2b2lkIHByb2Nlc3NFdmVudChjb25zdCBFdmVudFR5
cGVFbnRyeSYsIGNvbnN0IFRyYWNlRXZlbnQmKTsKKworICAgIFdlYWtQdHI8SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudD4gbV90aW1lbGluZUFnZW50OworICAgIEluc3BlY3RvckNsaWVudCogbV9pbnNw
ZWN0b3JDbGllbnQ7CisKKyAgICBIYXNoTWFwPFN0cmluZywgRXZlbnRUeXBlRW50cnk+IG1faGFu
ZGxlcnNCeVR5cGU7CisgICAgTXV0ZXggbV9iYWNrZ3JvdW5kRXZlbnRzTXV0ZXg7CisgICAgVmVj
dG9yPFRyYWNlRXZlbnQ+IG1fYmFja2dyb3VuZEV2ZW50czsKKyAgICB1bnNpZ25lZCBsb25nIGxv
bmcgbV9wYWdlSWQ7Cit9OworCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShJTlNQRUNUT1IpCisjZW5kaWYgLy8gIWRlZmluZWQoVGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJEZXZUb29sc0FnZW50Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJEZXZUb29sc0FnZW50Q2xpZW50LmgKaW5kZXggYTFmNmE2ZGE0ZTNhZGY3N2U1NWVhMTBkY2Mw
ODc1ZTVjNGZjYzYxYi4uZjZkMzA4NThjM2MwNGQ0ODExNGU4N2IyYTQ4NDgzNWQxZjhiMjEyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2Vu
dENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xz
QWdlbnRDbGllbnQuaApAQCAtNzcsNiArNzcsMTIgQEAgcHVibGljOgogICAgIH07CiAgICAgdmly
dHVhbCB2b2lkIGR1bXBVbmNvdW50ZWRBbGxvY2F0ZWRPYmplY3RzKGNvbnN0IEluc3RydW1lbnRl
ZE9iamVjdFNpemVQcm92aWRlciopIHsgfQogCisgICAgdHlwZWRlZiB2b2lkICgqVHJhY2VFdmVu
dENhbGxiYWNrKShjaGFyIHBoYXNlLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgY29uc3QgY2hhciog
bmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAorICAgICAgICBpbnQgbnVtQXJncywgY29uc3Qg
Y2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBlcywgY29u
c3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMsCisgICAgICAgIHVuc2lnbmVkIGNoYXIg
ZmxhZ3MpOworCisgICAgdmlydHVhbCB2b2lkIHNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2
ZW50Q2FsbGJhY2spIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYkRldlRvb2xzQWdlbnRDbGll
bnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNw
ZWN0b3JDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3Rv
ckNsaWVudEltcGwuY3BwCmluZGV4IDg5NzYzYmRjZTZkN2UxZTM4YTA2ZWE5NzQ1NGZkYzhmYWY2
OGM5YjguLjEwZDVhYjQ1NDBjZWRjODZmNmVkMDZhMDQyNTFmZjAyYmNlMzc3YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwCkBA
IC0yMzMsNiArMjMzLDEyIEBAIGJvb2wgSW5zcGVjdG9yQ2xpZW50SW1wbDo6Y2FuU2V0RmlsZUlu
cHV0RmlsZXMoKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEluc3BlY3RvckNsaWVudElt
cGw6OnNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJhY2sgY2FsbGJhY2spCit7
CisgICAgaWYgKFdlYkRldlRvb2xzQWdlbnRJbXBsKiBhZ2VudCA9IGRldlRvb2xzQWdlbnQoKSkK
KyAgICAgICAgYWdlbnQtPnNldFRyYWNlRXZlbnRDYWxsYmFjayhjYWxsYmFjayk7Cit9CisKIFdl
YkRldlRvb2xzQWdlbnRJbXBsKiBJbnNwZWN0b3JDbGllbnRJbXBsOjpkZXZUb29sc0FnZW50KCkK
IHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViRGV2VG9vbHNBZ2VudEltcGwqPihtX2luc3Bl
Y3RlZFdlYlZpZXctPmRldlRvb2xzQWdlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmgKaW5kZXggNzk0YzY2ZWI4NzlhMzA2MjVhMmJm
ZTk3MzI1MjM1OTMwYWQxNzlkMi4uMDc4ODFmMTVlZGFkNzE2MzkwYmI1ZDhmM2YyZWMzZTY2YjRm
MGNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xp
ZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVu
dEltcGwuaApAQCAtOTEsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGR1bXBV
bmNvdW50ZWRBbGxvY2F0ZWRPYmplY3RzKGNvbnN0IEhhc2hNYXA8Y29uc3Qgdm9pZCosIHNpemVf
dD4mKTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYXB0dXJlU2NyZWVuc2hvdChXVEY6OlN0cmluZyog
ZGF0YSk7CisgICAgdmlydHVhbCB2b2lkIHNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50
Q2FsbGJhY2spOwogCiAgICAgdmlydHVhbCBib29sIGhhbmRsZUphdmFTY3JpcHREaWFsb2coYm9v
bCBhY2NlcHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJE
ZXZUb29sc0FnZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZU
b29sc0FnZW50SW1wbC5jcHAKaW5kZXggNGJkNjY4YzgxNDJkYjI5YjdiMTkxZDIyNGZjNGYyY2Y1
MjYwNzRlYy4uOWYxMjAxOGU1ZmUxYjIyOGVhZjQyNzQ3NWI4MGUzNzgzMGU2NjM2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNw
cApAQCAtNjEyLDYgKzYxMiwxMSBAQCBib29sIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpoYW5kbGVK
YXZhU2NyaXB0RGlhbG9nKGJvb2wgYWNjZXB0KQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lk
IFdlYkRldlRvb2xzQWdlbnRJbXBsOjpzZXRUcmFjZUV2ZW50Q2FsbGJhY2soVHJhY2VFdmVudENh
bGxiYWNrIGNhbGxiYWNrKQoreworICAgIG1fY2xpZW50LT5zZXRUcmFjZUV2ZW50Q2FsbGJhY2so
Y2FsbGJhY2spOworfQorCiB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpkaXNwYXRjaE9uSW5z
cGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaW5zcGVjdG9y
Q29udHJvbGxlcigpLT5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQobWVzc2FnZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaAppbmRl
eCAxYWYyNDgwZmIwOGI5NzUzN2M3ZjY4OGE5MTY0NWQ2YzIxZTlhYWUzLi44ZjU1ODQ5ODRjNDcx
M2IxNDZkN2IzODYwZjU4MThiZjhlMDIxODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKQEAgLTExNCw2ICsxMTQsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0QWxsb2NhdGVkT2JqZWN0cyhIYXNoU2V0PGNvbnN0
IHZvaWQqPiYpOwogICAgIHZpcnR1YWwgdm9pZCBkdW1wVW5jb3VudGVkQWxsb2NhdGVkT2JqZWN0
cyhjb25zdCBIYXNoTWFwPGNvbnN0IHZvaWQqLCBzaXplX3Q+Jik7CisgICAgdmlydHVhbCB2b2lk
IHNldFRyYWNlRXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJhY2spOwogCiAgICAgdmlydHVh
bCBib29sIGNhcHR1cmVTY3JlZW5zaG90KFdURjo6U3RyaW5nKiBkYXRhKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>