<?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>79636</bug_id>
          
          <creation_ts>2012-02-26 23:44:48 -0800</creation_ts>
          <short_desc>Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl</short_desc>
          <delta_ts>2012-03-23 17:21:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>79633</dependson>
    
    <dependson>82015</dependson>
    
    <dependson>82026</dependson>
    
    <dependson>82027</dependson>
          <blocked>79327</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>jonlee</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>565397</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-26 23:44:48 -0800</bug_when>
    <thetext>For WebKit modularization, we can move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573687</commentid>
    <comment_count>1</comment_count>
      <attachid>130788</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-08 00:28:50 -0800</bug_when>
    <thetext>Created attachment 130788
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574571</commentid>
    <comment_count>2</comment_count>
      <attachid>130967</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-08 21:07:01 -0800</bug_when>
    <thetext>Created attachment 130967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574591</commentid>
    <comment_count>3</comment_count>
      <attachid>130967</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-08 21:25:36 -0800</bug_when>
    <thetext>Comment on attachment 130967
Patch

Attachment 130967 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11906371</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574650</commentid>
    <comment_count>4</comment_count>
      <attachid>130967</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-08 23:05:47 -0800</bug_when>
    <thetext>Comment on attachment 130967
Patch

Attachment 130967 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11915356</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574700</commentid>
    <comment_count>5</comment_count>
      <attachid>131000</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-09 00:31:17 -0800</bug_when>
    <thetext>Created attachment 131000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574711</commentid>
    <comment_count>6</comment_count>
      <attachid>131000</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-09 00:57:49 -0800</bug_when>
    <thetext>Comment on attachment 131000
Patch

Attachment 131000 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11911437</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574715</commentid>
    <comment_count>7</comment_count>
      <attachid>131004</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-09 01:09:49 -0800</bug_when>
    <thetext>Created attachment 131004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574726</commentid>
    <comment_count>8</comment_count>
      <attachid>131004</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-09 01:38:32 -0800</bug_when>
    <thetext>Comment on attachment 131004
Patch

Attachment 131004 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11903457</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574733</commentid>
    <comment_count>9</comment_count>
      <attachid>131010</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-09 01:50:02 -0800</bug_when>
    <thetext>Created attachment 131010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574737</commentid>
    <comment_count>10</comment_count>
      <attachid>131011</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-09 01:52:39 -0800</bug_when>
    <thetext>Created attachment 131011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574777</commentid>
    <comment_count>11</comment_count>
      <attachid>131011</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-09 03:09:06 -0800</bug_when>
    <thetext>Comment on attachment 131011
Patch

Attachment 131011 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11903491</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574795</commentid>
    <comment_count>12</comment_count>
      <attachid>131011</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-09 03:45:42 -0800</bug_when>
    <thetext>Comment on attachment 131011
Patch

Attachment 131011 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11904491</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574804</commentid>
    <comment_count>13</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-09 04:08:39 -0800</bug_when>
    <thetext>Regarding the Mac bot failure, where do I need to add the mangled signatures to other than WebCore.exp.in and WebKit2.order?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574860</commentid>
    <comment_count>14</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-09 06:43:55 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Regarding the Mac bot failure, where do I need to add the mangled signatures to other than WebCore.exp.in and WebKit2.order?

Looks like it&apos;s missing from the xcodeproj.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574889</commentid>
    <comment_count>15</comment_count>
      <attachid>131011</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-09 07:45:14 -0800</bug_when>
    <thetext>Comment on attachment 131011
Patch

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

&gt; Source/WebCore/WebCore.exp.in:645
&gt; +__ZN7WebCore22DOMWindowNotifications19webkitNotificationsEPNS_9DOMWindowE

Shouldn&apos;t this be encapsulated with an #if ENABLE(NOTIFICATIONS)? I&apos;m not sure what proper style is, but I think there is a separate section for it.

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:74
&gt; +    if (!m_notificationCenter) {

Maybe it&apos;d be better to reverse the test and do an early return instead.

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:101
&gt; +    return;

Not needed.

&gt; Source/WebCore/notifications/DOMWindowNotifications.h:50
&gt; +    static const AtomicString&amp; supplementName();

Is this used externally? If not, it should be private.

&gt; Source/WebCore/notifications/DOMWindowNotifications.h:55
&gt; +    NotificationCenter* notificationCenterSingleton(DOMWindow*);

I don&apos;t understand the name. How does the function use a singleton? It seems like ensureNotificationCenter() would be a more appropriate name.

&gt; Source/WebCore/notifications/NotificationCenter.h:56
&gt; +    static const AtomicString&amp; supplementName();

This isn&apos;t used anywhere is it?

&gt; Source/WebCore/notifications/NotificationCenter.h:58
&gt;      static PassRefPtr&lt;NotificationCenter&gt; create(ScriptExecutionContext*, NotificationPresenter*);

Is this still constructor still needed now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574957</commentid>
    <comment_count>16</comment_count>
      <attachid>131011</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-09 09:39:39 -0800</bug_when>
    <thetext>Comment on attachment 131011
Patch

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

&gt; Source/WebCore/notifications/NotificationCenter.cpp:69
&gt;  NotificationCenter::NotificationCenter(ScriptExecutionContext* context, NotificationPresenter* presenter)
&gt;      : ActiveDOMObject(context, this)
&gt; -    , m_notificationPresenter(presenter) {}
&gt; +    , DOMWindowProperty(0)

An object shouldn&apos;t need to be both an ActiveDOMObject and a DOMWindowProperty.  ActiveDOMObject is needed when the object uses a ScriptExecutionContext as a context object and DOMWindowProperty is needed when using a Frame as a context object.

&gt; Source/WebCore/notifications/NotificationCenter.h:54
&gt; -class NotificationCenter : public RefCounted&lt;NotificationCenter&gt;, public ActiveDOMObject {
&gt; +class NotificationCenter : public RefCounted&lt;NotificationCenter&gt;, public ActiveDOMObject, public Supplement&lt;ScriptExecutionContext&gt;, public DOMWindowProperty {

This can&apos;t be right.  Being RefCounted is incompatible with being a Supplement.  Supplement uses OwnPtr and RefCounted uses RefPtr.

Take a look at how Geolocation solves these problems.  The pattern we&apos;ve been using is for DOMWindowNotifications to be an OwnPtr&apos;d object (i.e., a Supplement&lt;DOMWindow&gt;) that holds a RefPtr to NotificationCenter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575867</commentid>
    <comment_count>17</comment_count>
      <attachid>131265</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-11 18:08:42 -0700</bug_when>
    <thetext>Created attachment 131265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575868</commentid>
    <comment_count>18</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-11 18:09:33 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; Source/WebCore/notifications/NotificationCenter.cpp:69
&gt; &gt;  NotificationCenter::NotificationCenter(ScriptExecutionContext* context, NotificationPresenter* presenter)
&gt; &gt;      : ActiveDOMObject(context, this)
&gt; &gt; -    , m_notificationPresenter(presenter) {}
&gt; &gt; +    , DOMWindowProperty(0)
&gt; 
&gt; An object shouldn&apos;t need to be both an ActiveDOMObject and a DOMWindowProperty.  ActiveDOMObject is needed when the object uses a ScriptExecutionContext as a context object and DOMWindowProperty is needed when using a Frame as a context object.

Fixed.

&gt; &gt; Source/WebCore/notifications/NotificationCenter.h:54
&gt; &gt; -class NotificationCenter : public RefCounted&lt;NotificationCenter&gt;, public ActiveDOMObject {
&gt; &gt; +class NotificationCenter : public RefCounted&lt;NotificationCenter&gt;, public ActiveDOMObject, public Supplement&lt;ScriptExecutionContext&gt;, public DOMWindowProperty {
&gt; 
&gt; This can&apos;t be right.  Being RefCounted is incompatible with being a Supplement.  Supplement uses OwnPtr and RefCounted uses RefPtr.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575869</commentid>
    <comment_count>19</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-11 18:10:15 -0700</bug_when>
    <thetext>(In reply to comment #15)
+__ZN7WebCore22DOMWindowNotifications19webkitNotificationsEPNS_9DOMWindowE
&gt; 
&gt; Shouldn&apos;t this be encapsulated with an #if ENABLE(NOTIFICATIONS)? I&apos;m not sure what proper style is, but I think there is a separate section for it.

Fixed.

&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:74
&gt; &gt; +    if (!m_notificationCenter) {
&gt; 
&gt; Maybe it&apos;d be better to reverse the test and do an early return instead.
&gt; 
&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:101
&gt; &gt; +    return;
&gt; 
&gt; Not needed.
&gt; 
&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.h:50
&gt; &gt; +    static const AtomicString&amp; supplementName();
&gt; 
&gt; Is this used externally? If not, it should be private.
&gt; 
&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.h:55
&gt; &gt; +    NotificationCenter* notificationCenterSingleton(DOMWindow*);
&gt; 
&gt; I don&apos;t understand the name. How does the function use a singleton? It seems like ensureNotificationCenter() would be a more appropriate name.
&gt; 
&gt; &gt; Source/WebCore/notifications/NotificationCenter.h:56
&gt; &gt; +    static const AtomicString&amp; supplementName();
&gt; 
&gt; This isn&apos;t used anywhere is it?
&gt; 
&gt; &gt; Source/WebCore/notifications/NotificationCenter.h:58
&gt; &gt;      static PassRefPtr&lt;NotificationCenter&gt; create(ScriptExecutionContext*, NotificationPresenter*);
&gt; 
&gt; Is this still constructor still needed now?

All fixed. Thank you very much for the comments!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575875</commentid>
    <comment_count>20</comment_count>
      <attachid>131265</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-11 18:22:42 -0700</bug_when>
    <thetext>Comment on attachment 131265
Patch

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

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:51
&gt; +    if (!window-&gt;scriptExecutionContext())
&gt; +        return 0;

When can this happen?

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:53
&gt; +    DOMWindowNotifications* supplement = static_cast&lt;DOMWindowNotifications*&gt;(Supplement&lt;ScriptExecutionContext&gt;::from(window-&gt;scriptExecutionContext(), NotificationCenter::supplementName()));

Why is this a Supplement&lt;ScriptExecutionContext&gt; rather than a Supplement&lt;DOMWindow&gt; ?

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:63
&gt; +    return DOMWindowNotifications::from(window)-&gt;ensureNotificationCenter(window);

One pattern we&apos;ve be using is for Supplement&lt;X&gt; to have a &quot;back&quot; pointer of type X* so that lines like these read better:

DOMWindowNotifications::from(window)-&gt;webkitNotifications();

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:66
&gt; +NotificationCenter* DOMWindowNotifications::ensureNotificationCenter(DOMWindow* window)

ensureNotificationCenter -&gt; webkitNotifications (to match the JavaScript API).

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:98
&gt; +void DOMWindowNotifications::resetNotifications(DOMWindow* window)

You shouldn&apos;t need a special function here.  You can just have DOMWindowNotifications inherit from DOMWindowProperty.  Then you can override disconnectFrame().

&gt; Source/WebCore/notifications/NotificationCenter.cpp:53
&gt; +PassRefPtr&lt;NotificationCenter&gt; NotificationCenter::create(DOMWindow* window, NotificationClient* client)
&gt; +{
&gt; +    RefPtr&lt;NotificationCenter&gt; notificationCenter(adoptRef(new NotificationCenter(window, client)));
&gt; +    notificationCenter-&gt;suspendIfNeeded();
&gt; +    return notificationCenter.release();
&gt; +}

You shouldn&apos;t need a new constructor.  Nothing about NotificationCenter needs to change.

&gt; Source/WebCore/notifications/NotificationCenter.cpp:104
&gt; +    if (m_window)
&gt; +        DOMWindowNotifications::resetNotifications(m_window);
&gt; +}
&gt; +
&gt; +void NotificationCenter::willDetachPage()
&gt; +{
&gt; +    if (m_window)
&gt; +        DOMWindowNotifications::resetNotifications(m_window);
&gt; +}

DOMWindowNotifications can get these callbacks itself by inheriting from DOMWindowProperty.  We don&apos;t need this extra work to forward the calls around.

&gt; Source/WebCore/notifications/NotificationCenter.cpp:110
&gt; +const AtomicString&amp; NotificationCenter::supplementName()
&gt; +{
&gt; +    DEFINE_STATIC_LOCAL(AtomicString, name, (&quot;NotificationCenter&quot;));
&gt; +    return name;
&gt;  }

NotificationCenter shouldn&apos;t be a supplement.  DOMWindowNotification is the supplement.  NotificationCenter shouldn&apos;t know anything about this change.

&gt; Source/WebCore/page/DOMWindow.cpp:-528
&gt; -#if ENABLE(NOTIFICATIONS)
&gt; -    // FIXME: Notifications shouldn&apos;t have different disconnection logic than
&gt; -    // the rest of the DOMWindowProperties.
&gt; -    resetNotifications();
&gt; -#endif

Notice that at the top of this function we call disconnectFrame on all the DOMWindowProperties.  If we override that in DOMWindowNotification, we can do all the work we need to do.

&gt; Source/WebCore/page/Frame.cpp:695
&gt; +// FIXME: This will be split out of here to the notifications module.
&gt;  #if ENABLE(NOTIFICATIONS)
&gt;      if (m_domWindow)
&gt; -        m_domWindow-&gt;resetNotifications();
&gt; +        DOMWindowNotifications::resetNotifications(m_domWindow.get());
&gt;  #endif

This won&apos;t be needed when DOMWindowNotifications is a DOMWindowProperty because DOMWindowProperties get the willDetachPage message that sent out below.

&gt; Source/WebCore/page/Frame.cpp:-743
&gt; -        if (m_domWindow) {
&gt; +// FIXME: This will be split out of here to the notifications module.
&gt;  #if ENABLE(NOTIFICATIONS)
&gt; -            m_domWindow-&gt;resetNotifications();
&gt; +        if (m_domWindow)
&gt; +            DOMWindowNotifications::resetNotifications(m_domWindow.get());
&gt;  #endif
&gt; -        }

Same here.  Being a DOMWindowProperty lets us get the willDetachPage message below.

&gt; Source/WebCore/platform/Supplementable.h:52
&gt; +    static void remove(Supplementable&lt;T&gt;* host, const AtomicString&amp; key)
&gt; +    {
&gt; +        host-&gt;removeSupplement(key);
&gt; +    }

I don&apos;t think we should introduce the removal feature.  It&apos;s not needed.  Supplements are just lazily allocated storage for a class.  In the same way that you can&apos;t &quot;remove&quot; member variables, there shouldn&apos;t be any need to remove supplements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575884</commentid>
    <comment_count>21</comment_count>
      <attachid>131270</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-11 19:07:09 -0700</bug_when>
    <thetext>Created attachment 131270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575886</commentid>
    <comment_count>22</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-11 19:09:36 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:51
&gt; &gt; +    if (!window-&gt;scriptExecutionContext())
&gt; &gt; +        return 0;
&gt; 
&gt; When can this happen?

Removed.

&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:53
&gt; &gt; +    DOMWindowNotifications* supplement = static_cast&lt;DOMWindowNotifications*&gt;(Supplement&lt;ScriptExecutionContext&gt;::from(window-&gt;scriptExecutionContext(), NotificationCenter::supplementName()));
&gt; 
&gt; Why is this a Supplement&lt;ScriptExecutionContext&gt; rather than a Supplement&lt;DOMWindow&gt; ?

Fixed.

&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:63
&gt; &gt; +    return DOMWindowNotifications::from(window)-&gt;ensureNotificationCenter(window);
&gt; 
&gt; One pattern we&apos;ve be using is for Supplement&lt;X&gt; to have a &quot;back&quot; pointer of type X* so that lines like these read better:
&gt; 
&gt; DOMWindowNotifications::from(window)-&gt;webkitNotifications();
&gt; 
&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:66
&gt; &gt; +NotificationCenter* DOMWindowNotifications::ensureNotificationCenter(DOMWindow* window)
&gt; 
&gt; ensureNotificationCenter -&gt; webkitNotifications (to match the JavaScript API).

I guess we cannot overload a static method and a non-static method. I renamed it to ensureWebkitNotifications().

&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:98
&gt; &gt; +void DOMWindowNotifications::resetNotifications(DOMWindow* window)
&gt; 
&gt; You shouldn&apos;t need a special function here.  You can just have DOMWindowNotifications inherit from DOMWindowProperty.  Then you can override disconnectFrame().

Fixed.

&gt; &gt; Source/WebCore/notifications/NotificationCenter.cpp:53
&gt; &gt; +PassRefPtr&lt;NotificationCenter&gt; NotificationCenter::create(DOMWindow* window, NotificationClient* client)
&gt; &gt; +{
&gt; &gt; +    RefPtr&lt;NotificationCenter&gt; notificationCenter(adoptRef(new NotificationCenter(window, client)));
&gt; &gt; +    notificationCenter-&gt;suspendIfNeeded();
&gt; &gt; +    return notificationCenter.release();
&gt; &gt; +}
&gt; 
&gt; You shouldn&apos;t need a new constructor.  Nothing about NotificationCenter needs to change.

Fixed.

&gt; &gt; Source/WebCore/notifications/NotificationCenter.cpp:104
&gt; &gt; +    if (m_window)
&gt; &gt; +        DOMWindowNotifications::resetNotifications(m_window);
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +void NotificationCenter::willDetachPage()
&gt; &gt; +{
&gt; &gt; +    if (m_window)
&gt; &gt; +        DOMWindowNotifications::resetNotifications(m_window);
&gt; &gt; +}
&gt; 
&gt; DOMWindowNotifications can get these callbacks itself by inheriting from DOMWindowProperty.  We don&apos;t need this extra work to forward the calls around.

Fixed.

&gt; &gt; Source/WebCore/notifications/NotificationCenter.cpp:110
&gt; &gt; +const AtomicString&amp; NotificationCenter::supplementName()
&gt; &gt; +{
&gt; &gt; +    DEFINE_STATIC_LOCAL(AtomicString, name, (&quot;NotificationCenter&quot;));
&gt; &gt; +    return name;
&gt; &gt;  }
&gt; 
&gt; NotificationCenter shouldn&apos;t be a supplement.  DOMWindowNotification is the supplement.  NotificationCenter shouldn&apos;t know anything about this change.
&gt; 
&gt; &gt; Source/WebCore/page/DOMWindow.cpp:-528
&gt; &gt; -#if ENABLE(NOTIFICATIONS)
&gt; &gt; -    // FIXME: Notifications shouldn&apos;t have different disconnection logic than
&gt; &gt; -    // the rest of the DOMWindowProperties.
&gt; &gt; -    resetNotifications();
&gt; &gt; -#endif
&gt; 
&gt; Notice that at the top of this function we call disconnectFrame on all the DOMWindowProperties.  If we override that in DOMWindowNotification, we can do all the work we need to do.

Fixed.

&gt; &gt; Source/WebCore/page/Frame.cpp:695
&gt; &gt; +// FIXME: This will be split out of here to the notifications module.
&gt; &gt;  #if ENABLE(NOTIFICATIONS)
&gt; &gt;      if (m_domWindow)
&gt; &gt; -        m_domWindow-&gt;resetNotifications();
&gt; &gt; +        DOMWindowNotifications::resetNotifications(m_domWindow.get());
&gt; &gt;  #endif
&gt; 
&gt; This won&apos;t be needed when DOMWindowNotifications is a DOMWindowProperty because DOMWindowProperties get the willDetachPage message that sent out below.

Fixed. 

&gt; &gt; Source/WebCore/page/Frame.cpp:-743
&gt; &gt; -        if (m_domWindow) {
&gt; &gt; +// FIXME: This will be split out of here to the notifications module.
&gt; &gt;  #if ENABLE(NOTIFICATIONS)
&gt; &gt; -            m_domWindow-&gt;resetNotifications();
&gt; &gt; +        if (m_domWindow)
&gt; &gt; +            DOMWindowNotifications::resetNotifications(m_domWindow.get());
&gt; &gt;  #endif
&gt; &gt; -        }
&gt; 
&gt; Same here.  Being a DOMWindowProperty lets us get the willDetachPage message below.

Fixed. Great clean-up by the way:)

&gt; &gt; Source/WebCore/platform/Supplementable.h:52
&gt; &gt; +    static void remove(Supplementable&lt;T&gt;* host, const AtomicString&amp; key)
&gt; &gt; +    {
&gt; &gt; +        host-&gt;removeSupplement(key);
&gt; &gt; +    }
&gt; 
&gt; I don&apos;t think we should introduce the removal feature.  It&apos;s not needed.  Supplements are just lazily allocated storage for a class.  In the same way that you can&apos;t &quot;remove&quot; member variables, there shouldn&apos;t be any need to remove supplements.

Removed remove().

Thanks for the comments!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575898</commentid>
    <comment_count>23</comment_count>
      <attachid>131270</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-11 19:38:30 -0700</bug_when>
    <thetext>Comment on attachment 131270
Patch

Attachment 131270 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11940663</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575909</commentid>
    <comment_count>24</comment_count>
      <attachid>131270</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-11 20:28:19 -0700</bug_when>
    <thetext>Comment on attachment 131270
Patch

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

Looks like you also have a build problem on mac too.

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:62
&gt; +    return DOMWindowNotifications::from(window)-&gt;ensureWebkitNotifications(window);

We shouldn&apos;t need to pass window here anymore, right?  DOMWindowNotifications has m_window

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:95
&gt; +NotificationCenter* DOMWindowNotifications::notificationCenter(DOMWindow* window)
&gt; +{
&gt; +    return m_notificationCenter.get();
&gt; +}
&gt; +
&gt; +void DOMWindowNotifications::clearNotificationCenter(DOMWindow* window)
&gt; +{
&gt; +    m_notificationCenter = 0;
&gt; +}

These functions aren&apos;t needed.

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:101
&gt; +    DOMWindowNotifications* supplement = static_cast&lt;DOMWindowNotifications*&gt;(Supplement&lt;DOMWindow&gt;::from(m_window, supplementName()));
&gt; +    if (!supplement)
&gt; +        return;

Why do we need to do this?  DOMWindowNotifications::disconnectFrame isn&apos;t a static function.  We can use use |this|.

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:105
&gt; +    NotificationCenter* notificationCenter = supplement-&gt;notificationCenter(m_window);
&gt; +    if (!notificationCenter)
&gt; +        return;

Why not just:

if (m_notificationCenter) {
    m_notificationCenter-&gt;disconnectFrame();
    m_notificationCenter = 0;
}

?

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:115
&gt; +const AtomicString&amp; DOMWindowNotifications::supplementName()
&gt; +{
&gt; +    DEFINE_STATIC_LOCAL(AtomicString, name, (&quot;DOMWindowNotifications&quot;));
&gt; +    return name;
&gt; +}

After you change DOMWindowNotifications::disconnectFrame to use |this|, you&apos;ll only need the supplementName in DOMWindowNotifications::from, which means you can remove this function too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576011</commentid>
    <comment_count>25</comment_count>
      <attachid>131297</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-12 02:06:45 -0700</bug_when>
    <thetext>Created attachment 131297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576013</commentid>
    <comment_count>26</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-12 02:10:03 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Looks like you also have a build problem on mac too.

Do you have any idea for this?

The mangled signatures that Mac build error (http://queues.webkit.org/results/11940663) complains about are already added to WebCore.exp.in and WebKit2.order...

&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:62
&gt; &gt; +    return DOMWindowNotifications::from(window)-&gt;ensureWebkitNotifications(window);
&gt; 
&gt; We shouldn&apos;t need to pass window here anymore, right?  DOMWindowNotifications has m_window
&gt; 
&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:95
&gt; &gt; +NotificationCenter* DOMWindowNotifications::notificationCenter(DOMWindow* window)
&gt; &gt; +{
&gt; &gt; +    return m_notificationCenter.get();
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +void DOMWindowNotifications::clearNotificationCenter(DOMWindow* window)
&gt; &gt; +{
&gt; &gt; +    m_notificationCenter = 0;
&gt; &gt; +}
&gt; 
&gt; These functions aren&apos;t needed.
&gt; 
&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:101
&gt; &gt; +    DOMWindowNotifications* supplement = static_cast&lt;DOMWindowNotifications*&gt;(Supplement&lt;DOMWindow&gt;::from(m_window, supplementName()));
&gt; &gt; +    if (!supplement)
&gt; &gt; +        return;
&gt; 
&gt; Why do we need to do this?  DOMWindowNotifications::disconnectFrame isn&apos;t a static function.  We can use use |this|.
&gt; 
&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:105
&gt; &gt; +    NotificationCenter* notificationCenter = supplement-&gt;notificationCenter(m_window);
&gt; &gt; +    if (!notificationCenter)
&gt; &gt; +        return;
&gt; 
&gt; Why not just:
&gt; 
&gt; if (m_notificationCenter) {
&gt;     m_notificationCenter-&gt;disconnectFrame();
&gt;     m_notificationCenter = 0;
&gt; }
&gt; 
&gt; ?
&gt; 
&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:115
&gt; &gt; +const AtomicString&amp; DOMWindowNotifications::supplementName()
&gt; &gt; +{
&gt; &gt; +    DEFINE_STATIC_LOCAL(AtomicString, name, (&quot;DOMWindowNotifications&quot;));
&gt; &gt; +    return name;
&gt; &gt; +}
&gt; 
&gt; After you change DOMWindowNotifications::disconnectFrame to use |this|, you&apos;ll only need the supplementName in DOMWindowNotifications::from, which means you can remove this function too.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576023</commentid>
    <comment_count>27</comment_count>
      <attachid>131301</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-12 02:34:22 -0700</bug_when>
    <thetext>Created attachment 131301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576062</commentid>
    <comment_count>28</comment_count>
      <attachid>131301</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-12 04:24:10 -0700</bug_when>
    <thetext>Comment on attachment 131301
Patch

Attachment 131301 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11940820</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576256</commentid>
    <comment_count>29</comment_count>
      <attachid>131301</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-12 10:41:25 -0700</bug_when>
    <thetext>Comment on attachment 131301
Patch

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

Maybe the problem with mac is that the symbol is inside the ENABLE(NOTIFICATIONS) block but needs to be outside?  That doesn&apos;t really make sense though.  I&apos;ll look more carefully later today.

&gt; Source/WebCore/notifications/DOMWindowNotifications.h:53
&gt; +    void disconnectFrame();

I&apos;ve been putting OVERRIDE on these since they&apos;re easy to break if this function gets changed in the base class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576770</commentid>
    <comment_count>30</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-12 17:22:09 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 131301 [details])
&gt; Attachment 131301 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/11940820

  Undefined symbols for architecture x86_64:
    &quot;__ZN7WebCore22DOMWindowNotifications19webkitNotificationsEPNS_9DOMWindowE&quot;, referenced from:
  __ZN7WebCore30jsDOMWindowWebkitNotificationsEPN3JSC9ExecStateENS0_7JSValueERKNS0_10IdentifierE in JSDOMWindow.o
  ld: symbol(s) not found for architecture x86_64


The generated JSDOMWindow.cpp is this:

  #if ENABLE(NOTIFICATIONS)
  JSValue jsDOMWindowWebkitNotifications(ExecState* exec, JSValue slotBase, const Identifier&amp;) {
    ...
    DOMWindow* impl = static_cast&lt;DOMWindow*&gt;(castedThis-&gt;impl());
    JSValue result = toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(DOMWindowNotifications::webkitNotifications(impl)));
    return result;
  }
  #endif

Looks sane...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577269</commentid>
    <comment_count>31</comment_count>
      <attachid>131603</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-13 06:49:06 -0700</bug_when>
    <thetext>Created attachment 131603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577272</commentid>
    <comment_count>32</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-13 06:50:57 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Maybe the problem with mac is that the symbol is inside the ENABLE(NOTIFICATIONS) block but needs to be outside?  That doesn&apos;t really make sense though.  I&apos;ll look more carefully later today.

I wrote it outside of ENABLE(NOTIFICATIONS). Watching the mac ews-bot. But I think we do not need to add the symbol to WebCore.exp.in, in the first place...

&gt; &gt; Source/WebCore/notifications/DOMWindowNotifications.h:53
&gt; &gt; +    void disconnectFrame();
&gt; 
&gt; I&apos;ve been putting OVERRIDE on these since they&apos;re easy to break if this function gets changed in the base class.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577283</commentid>
    <comment_count>33</comment_count>
      <attachid>131603</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-13 07:14:07 -0700</bug_when>
    <thetext>Comment on attachment 131603
Patch

Attachment 131603 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11948499</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577380</commentid>
    <comment_count>34</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-03-13 08:58:16 -0700</bug_when>
    <thetext>The DOMWindow parts of this will likely have to adapt to http://trac.webkit.org/changeset/110570 which includes a FIXME referencing this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578088</commentid>
    <comment_count>35</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-13 18:41:30 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; The DOMWindow parts of this will likely have to adapt to http://trac.webkit.org/changeset/110570 which includes a FIXME referencing this bug.

The concern is going to be removed by this patch, and we can remove FIXME from DOMWindow.cpp, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578091</commentid>
    <comment_count>36</comment_count>
      <attachid>131769</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-13 18:46:10 -0700</bug_when>
    <thetext>Created attachment 131769
try to remove mangled symbols</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578098</commentid>
    <comment_count>37</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-03-13 18:55:00 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; (In reply to comment #34)
&gt; &gt; The DOMWindow parts of this will likely have to adapt to http://trac.webkit.org/changeset/110570 which includes a FIXME referencing this bug.
&gt; 
&gt; The concern is going to be removed by this patch, and we can remove FIXME from DOMWindow.cpp, right?

Yup!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578175</commentid>
    <comment_count>38</comment_count>
      <attachid>131791</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-13 22:50:37 -0700</bug_when>
    <thetext>Created attachment 131791
trying to see mac build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578219</commentid>
    <comment_count>39</comment_count>
      <attachid>131791</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-14 00:47:46 -0700</bug_when>
    <thetext>Comment on attachment 131791
trying to see mac build

Attachment 131791 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11949868</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578238</commentid>
    <comment_count>40</comment_count>
      <attachid>131791</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 01:32:28 -0700</bug_when>
    <thetext>Comment on attachment 131791
trying to see mac build

Attachment 131791 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11951109</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578326</commentid>
    <comment_count>41</comment_count>
      <attachid>131791</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-14 05:28:57 -0700</bug_when>
    <thetext>Comment on attachment 131791
trying to see mac build

Attachment 131791 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/11949995</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578338</commentid>
    <comment_count>42</comment_count>
      <attachid>131791</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-14 06:03:41 -0700</bug_when>
    <thetext>Comment on attachment 131791
trying to see mac build

Attachment 131791 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11952183</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578385</commentid>
    <comment_count>43</comment_count>
      <attachid>131845</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-14 07:54:54 -0700</bug_when>
    <thetext>Created attachment 131845
trying to see mac build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578430</commentid>
    <comment_count>44</comment_count>
      <attachid>131845</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-14 08:39:44 -0700</bug_when>
    <thetext>Comment on attachment 131845
trying to see mac build

Attachment 131845 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11954143</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578449</commentid>
    <comment_count>45</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-14 08:57:42 -0700</bug_when>
    <thetext>(In reply to comment #44)
&gt; (From update of attachment 131845 [details])
&gt; Attachment 131845 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/11954143

Does anyone have an idea for fixing the mac build failure? I&apos;ve tried the followings (and all failed):

- Write &quot;__ZN7WebCore22DOMWindowNotifications19webkitNotificationsEPNS_9DOMWindowE&quot; outside of ENABLE(NOTIFICATIONS) in WebCore.exp.in.

- Write &quot;__ZN7WebCore22DOMWindowNotifications19webkitNotificationsEPNS_9DOMWindowE&quot; inside of ENABLE(NOTIFICATIONS) in WebCore.exp.in.


- Do not write &quot;__ZN7WebCore22DOMWindowNotifications19webkitNotificationsEPNS_9DOMWindowE&quot; in WebCore.exp.in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578475</commentid>
    <comment_count>46</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-14 09:20:41 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; (In reply to comment #44)
&gt; &gt; (From update of attachment 131845 [details] [details])
&gt; &gt; Attachment 131845 [details] [details] did not pass mac-ews (mac):
&gt; &gt; Output: http://queues.webkit.org/results/11954143
&gt; 
&gt; Does anyone have an idea for fixing the mac build failure? I&apos;ve tried the followings (and all failed):
&gt; 
The files and derived sources need to be part of the Xcode project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579355</commentid>
    <comment_count>47</comment_count>
      <attachid>132041</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-15 07:18:51 -0700</bug_when>
    <thetext>Created attachment 132041
added xcode file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579921</commentid>
    <comment_count>48</comment_count>
      <attachid>132155</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-15 17:07:56 -0700</bug_when>
    <thetext>Created attachment 132155
try to see mac build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580001</commentid>
    <comment_count>49</comment_count>
      <attachid>132155</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-15 18:24:15 -0700</bug_when>
    <thetext>Comment on attachment 132155
try to see mac build

Attachment 132155 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11954890</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580007</commentid>
    <comment_count>50</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-15 18:25:34 -0700</bug_when>
    <thetext>Kentaro, let me try this locally for you.  I have a mac build so I can iterate more quickly to fix the error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580016</commentid>
    <comment_count>51</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-15 18:36:08 -0700</bug_when>
    <thetext>(In reply to comment #50)
&gt; Kentaro, let me try this locally for you.  I have a mac build so I can iterate more quickly to fix the error.

Thanks Adam! (I also have a Mac build and tried some ideas, but could not solve it...:-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580018</commentid>
    <comment_count>52</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-15 18:37:51 -0700</bug_when>
    <thetext>(In reply to comment #49)
&gt; (From update of attachment 132155 [details])
&gt; Attachment 132155 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/11954890

Ah, this error is different from the previous one. Maybe I&apos;ve added a wrong xcode target for new files. I guess I can fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580021</commentid>
    <comment_count>53</comment_count>
      <attachid>132174</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-15 18:46:56 -0700</bug_when>
    <thetext>Created attachment 132174
hopefully fixed the mac build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580031</commentid>
    <comment_count>54</comment_count>
      <attachid>132174</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-15 19:10:34 -0700</bug_when>
    <thetext>Comment on attachment 132174
hopefully fixed the mac build

Attachment 132174 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11958875</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580038</commentid>
    <comment_count>55</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-15 19:19:01 -0700</bug_when>
    <thetext>(In reply to comment #54)
&gt; (From update of attachment 132174 [details])
&gt; Attachment 132174 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/11958875

Though my local Mac build is passing...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580045</commentid>
    <comment_count>56</comment_count>
      <attachid>132178</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-15 19:35:39 -0700</bug_when>
    <thetext>Created attachment 132178
hopefully fixed the mac build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580145</commentid>
    <comment_count>57</comment_count>
      <attachid>132178</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-15 22:32:08 -0700</bug_when>
    <thetext>Comment on attachment 132178
hopefully fixed the mac build

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

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:40
&gt; +DOMWindowNotifications::DOMWindowNotifications(DOMWindow *window)

DOMWindow *window =&gt; DOMWindow* window

&gt; Source/WebCore/notifications/DOMWindowNotifications.cpp:72
&gt; +    if (m_notificationCenter)
&gt; +        return m_notificationCenter.get();
&gt; +
&gt; +    if (!m_window-&gt;isCurrentlyDisplayedInFrame())
&gt; +        return 0;

You&apos;ve reversed the order of these to checks.  It&apos;s important to return 0 when the window is not currently displayed in a frame.

&gt; Source/WebCore/notifications/DOMWindowNotifications.h:50
&gt; +    DOMWindowNotifications(DOMWindow*);

Please add the explicit keyword to one-argument constructor.s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580175</commentid>
    <comment_count>58</comment_count>
      <attachid>132208</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-15 23:14:52 -0700</bug_when>
    <thetext>Created attachment 132208
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580427</commentid>
    <comment_count>59</comment_count>
      <attachid>132208</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 05:50:17 -0700</bug_when>
    <thetext>Comment on attachment 132208
patch for landing

Clearing flags on attachment: 132208

Committed r110994: &lt;http://trac.webkit.org/changeset/110994&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583616</commentid>
    <comment_count>60</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-20 16:53:22 -0700</bug_when>
    <thetext>The patch was rolled out due to Chromium crash (https://mail.google.com/mail/u/0/?ui=2&amp;shva=1#search/crash+report/13629e8e375fb9bf). It seems the patch caused another crash (I couldn&apos;t show the link for confidentiality).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584219</commentid>
    <comment_count>61</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-21 09:29:28 -0700</bug_when>
    <thetext>I&apos;m inclined to try this again, but in smaller steps.  Kentaro, if you&apos;re busy with bindings performance, I can give this bug a try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584753</commentid>
    <comment_count>62</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-21 16:37:09 -0700</bug_when>
    <thetext>(In reply to comment #61)
&gt; I&apos;m inclined to try this again, but in smaller steps.  Kentaro, if you&apos;re busy with bindings performance, I can give this bug a try.

abarth: Thank you very much. I can have time, but I am happy if you would give a try since I do not fully familiar with the pointer issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586139</commentid>
    <comment_count>63</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-23 00:12:06 -0700</bug_when>
    <thetext>You can see the commit stream in context on GitHub:
https://github.com/abarth/webkit/compare/2757a48897...notification</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586883</commentid>
    <comment_count>64</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-23 17:21:31 -0700</bug_when>
    <thetext>This appears to have landed cleanly.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130788</attachid>
            <date>2012-03-08 00:28:50 -0800</date>
            <delta_ts>2012-03-08 21:06:56 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-79636-20120308172848.patch</filename>
            <type>text/plain</type>
            <size>23179</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM5ZmRhYTM3ZDNhZmY0
M2NmMzcyMzc0Mjg1NWRjZTE4ZmU2YmQ4My4uYzI0MjA5NjU5MWYxNWI4YzRiMWMyN2Q0ZGE4N2U1
OWZhOWRlY2UzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTA4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0lQIGZv
ciBub3cuIE5vdGlmaWNhdGlvbnMgbGF5b3V0IHRlc3RzIGFyZSBjcmFzaGluZy4uLgorCisgICAg
ICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90
aWZpY2F0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dOb3RpZmljYXRpb25zKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5ET01XaW5kb3dOb3RpZmlj
YXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVu
dE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6d2Via2l0
Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25z
OjpyZXNldE5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93
Tm90aWZpY2F0aW9ucy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9N
V2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgICogbm90aWZpY2F0aW9ucy9ET01XaW5kb3dO
b3RpZmljYXRpb25zLmlkbDogQWRkZWQuCisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25DZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRp
b25DZW50ZXI6Ok5vdGlmaWNhdGlvbkNlbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmlj
YXRpb25DZW50ZXI6OmRpc2Nvbm5lY3RGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmlj
YXRpb25DZW50ZXI6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNlbnRlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChOb3RpZmlj
YXRpb25DZW50ZXIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6fkRPTVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3c6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y2xlYXIp
OgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKERPTVdpbmRvdyk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAgICAgICAq
IHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3Vt
ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3VwcGxlbWVudDo6cmVtb3ZlKToKKyAgICAgICAgKFN1cHBsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3VwcGxlbWVudGFibGU6OnJlbW92ZVN1cHBsZW1lbnQpOgorICAgICAgICAo
U3VwcGxlbWVudGFibGUpOgorCiAyMDEyLTAzLTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQ29udGFpbmVyTm9kZTo6d2lsbFJlbW92ZSB1c2VzIGEgd2VhayBp
dGVyYXRpb24gcGF0dGVybgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGU5ZmNlMDZlNjc0YWVmMjJiNzFk
YWIzODgxMTU5YjA1NmExZTRmMDIuLmQ3OTMxNTg1YTgyYTYyMDFhMGMyNzkzN2QzYmQ3MWU3NjY5
M2VjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwNDQsNiArMTA0NCw3IEBACiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
U2NyaXB0UHJvZmlsZU5vZGUuaWRsJywKICAgICAgICAgICAgICdsb2FkZXIvYXBwY2FjaGUvRE9N
QXBwbGljYXRpb25DYWNoZS5pZGwnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5pZGwnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmlkbCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50
ZXIuaWRsJywKICAgICAgICAgICAgICdwYWdlL0Fic3RyYWN0Vmlldy5pZGwnLApAQCAtMjc2MCw2
ICsyNzYxLDggQEAKICAgICAgICAgICAgICdtYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCcsCiAg
ICAgICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAn
bWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMv
RE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMv
RE9NV2luZG93Tm90aWZpY2F0aW9ucy5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
LmgnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlm
aWNhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjcwMWYwZmI5MzVkNmQxNWRlNjQxYzdjZmYxZTJi
MzczYmEzZDdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9u
cy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgorCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
KworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ29udHJvbGxl
ci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitET01XaW5k
b3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dOb3RpZmljYXRpb25zKCkKK3sKK30KKworRE9NV2lu
ZG93Tm90aWZpY2F0aW9uczo6fkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKQoreworfQorCitjb25z
dCBBdG9taWNTdHJpbmcmIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVudE5hbWUoKQorewor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIk5vdGlmaWNhdGlv
bkNlbnRlciIpKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworTm90aWZpY2F0aW9uQ2VudGVyKiBE
T01XaW5kb3dOb3RpZmljYXRpb25zOjp3ZWJraXROb3RpZmljYXRpb25zKERPTVdpbmRvdyogd2lu
ZG93KQoreworICAgIGlmICghd2luZG93LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgTm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZmljYXRpb25zID0g
c3RhdGljX2Nhc3Q8Tm90aWZpY2F0aW9uQ2VudGVyKj4oU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRp
b25Db250ZXh0Pjo6ZnJvbSh3aW5kb3ctPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgTm90aWZp
Y2F0aW9uQ2VudGVyOjpzdXBwbGVtZW50TmFtZSgpKSk7CisgICAgaWYgKG5vdGlmaWNhdGlvbnMg
fHwgIXdpbmRvdy0+aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCisgICAgICAgIHJldHVy
biBub3RpZmljYXRpb25zOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gd2luZG93LT5kb2N1
bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgUGFn
ZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJvdmlkZXIgPSBOb3RpZmljYXRp
b25Db250cm9sbGVyOjpjbGllbnRGcm9tKHBhZ2UpOworICAgIGlmIChwcm92aWRlcikgeworICAg
ICAgICBub3RpZmljYXRpb25zID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUod2luZG93LCBw
cm92aWRlcikuZ2V0KCk7CisgICAgICAgIFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dD46OnByb3ZpZGVUbyh3aW5kb3ctPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgTm90aWZpY2F0
aW9uQ2VudGVyOjpzdXBwbGVtZW50TmFtZSgpLCBhZG9wdFB0cihub3RpZmljYXRpb25zKSk7Cisg
ICAgfQorICAgIHJldHVybiBub3RpZmljYXRpb25zOworfQorCit2b2lkIERPTVdpbmRvd05vdGlm
aWNhdGlvbnM6OnJlc2V0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBp
ZiAoIXdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBOb3RpZmljYXRpb25DZW50ZXIqIG5vdGlmaWNhdGlvbnMgPSBzdGF0aWNfY2FzdDxOb3Rp
ZmljYXRpb25DZW50ZXIqPihTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+Ojpmcm9t
KHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBOb3RpZmljYXRpb25DZW50ZXI6OnN1
cHBsZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIW5vdGlmaWNhdGlvbnMpCisgICAgICAgIHJldHVy
bjsKKyAgICBub3RpZmljYXRpb25zLT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICBTdXBwbGVtZW50
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+OjpyZW1vdmUod2luZG93LT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVudE5hbWUoKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNh
dGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMxMTk5YTExZDMyM2VlMTlkNWE4MWU4ZjU2ZWQ4ZDRjMGIzYWVk
MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdp
bmRvd05vdGlmaWNhdGlvbnMuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERPTVdpbmRvd05vdGlmaWNhdGlvbnNfaAorI2Rl
ZmluZSBET01XaW5kb3dOb3RpZmljYXRpb25zX2gKKworI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBET01XaW5kb3c7CitjbGFzcyBOb3RpZmljYXRpb25DZW50ZXI7CisKK2NsYXNzIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMgeworcHVibGljOgorICAgIHN0YXRpYyBOb3RpZmljYXRpb25D
ZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMoRE9NV2luZG93Kik7CisgICAgLy8gUmVuZGVycyB3
ZWJraXROb3RpZmljYXRpb25zIG9iamVjdCBzYWZlbHkgaW5vcGVyYWJsZSwgZGlzY29ubmVjdHMK
KyAgICAvLyBpZiBmcm9tIGVtYmVkZGVyLXByb3ZpZGVkIE5vdGlmaWNhdGlvblByZXNlbnRlci4K
KyAgICBzdGF0aWMgdm9pZCByZXNldE5vdGlmaWNhdGlvbnMoRE9NV2luZG93Kik7CisgICAgc3Rh
dGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKKworcHJpdmF0ZToKKyAg
ICBET01XaW5kb3dOb3RpZmljYXRpb25zKCk7CisgICAgfkRPTVdpbmRvd05vdGlmaWNhdGlvbnMo
KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShOT1RJ
RklDQVRJT05TKQorCisjZW5kaWYgLy8gRE9NV2luZG93Tm90aWZpY2F0aW9uc19oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMu
aWRsIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25z
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMDc2MDdkMzBkOWI2ODc2ODNhNjg5M2Q1MmYwNzM4MDc5MmVmMWRi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0
aW9uYWw9Tk9USUZJQ0FUSU9OUywKKyAgICAgICAgU3VwcGxlbWVudGFsPURPTVdpbmRvdworICAg
IF0gRE9NV2luZG93Tm90aWZpY2F0aW9ucyB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
VjhFbmFibGVkQXRSdW50aW1lXSBOb3RpZmljYXRpb25DZW50ZXIgd2Via2l0Tm90aWZpY2F0aW9u
czsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNlbnRlci5jcHAKaW5kZXggNzExNDZhZjhkYTM3MjNkMTQ3MTVlZmNiNWQxYWJl
YWM0OGUzNzE1OS4uN2FmNGI1MGY1ZDU4MjVmZjc5MTFhMGJmMjQ0OTllZjZkODU3MDFmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVy
LmNwcApAQCAtMzQsMTMgKzM0LDIzIEBACiAKICNpbmNsdWRlICJOb3RpZmljYXRpb25DZW50ZXIu
aCIKIAorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRPTVdpbmRvd05vdGlmaWNh
dGlvbnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBy
ZXNlbnRlci5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRl
ICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IE5vdGlmaWNhdGlv
bkNlbnRlcjo6Y3JlYXRlKERPTVdpbmRvdyogd2luZG93LCBOb3RpZmljYXRpb25QcmVzZW50ZXIq
IHByZXNlbnRlcikKK3sKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBub3RpZmljYXRp
b25DZW50ZXIoYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvbkNlbnRlcih3aW5kb3csIHByZXNlbnRl
cikpKTsKKyAgICBub3RpZmljYXRpb25DZW50ZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJl
dHVybiBub3RpZmljYXRpb25DZW50ZXIucmVsZWFzZSgpOworfQorCiBQYXNzUmVmUHRyPE5vdGlm
aWNhdGlvbkNlbnRlcj4gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIpCiB7CiAg
ICAgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gbm90aWZpY2F0aW9uQ2VudGVyKGFkb3B0UmVm
KG5ldyBOb3RpZmljYXRpb25DZW50ZXIoY29udGV4dCwgcHJlc2VudGVyKSkpOwpAQCAtNDgsOCAr
NTgsMTUgQEAgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IE5vdGlmaWNhdGlvbkNlbnRl
cjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKICAgICByZXR1cm4gbm90aWZpY2F0aW9u
Q2VudGVyLnJlbGVhc2UoKTsKIH0KIAorTm90aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25D
ZW50ZXIoRE9NV2luZG93KiB3aW5kb3csIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJlc2VudGVy
KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCB0aGlzKQorICAgICwgRE9NV2luZG93UHJvcGVydHkod2luZG93LT5mcmFtZSgpKQorICAgICwg
bV9ub3RpZmljYXRpb25QcmVzZW50ZXIocHJlc2VudGVyKQorICAgICwgbV93aW5kb3cod2luZG93
KSB7fQorCiBOb3RpZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvbkNlbnRlcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcikK
ICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgICwgRE9NV2luZG93UHJv
cGVydHkoMCkKICAgICAsIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyKHByZXNlbnRlcikge30KIAog
aW50IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y2hlY2tQZXJtaXNzaW9uKCkKQEAgLTcyLDkgKzg5LDE5
IEBAIHZvaWQgTm90aWZpY2F0aW9uQ2VudGVyOjpkaXNjb25uZWN0RnJhbWUoKQogICAgIC8vIHRo
aXMgbWV0aG9kIGlzIGludm9rZWQgbW9yZSB0aGVuIG9uY2UuCiAgICAgaWYgKCFtX25vdGlmaWNh
dGlvblByZXNlbnRlcikKICAgICAgICAgcmV0dXJuOworCiAgICAgbV9ub3RpZmljYXRpb25QcmVz
ZW50ZXItPmNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOwogICAgIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLT5jbGVhck5vdGlmaWNhdGlvbnMoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBtX25vdGlmaWNhdGlvblByZXNlbnRlciA9IDA7
CisKKyAgICBpZiAobV93aW5kb3cpCisgICAgICAgIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OnJl
c2V0Tm90aWZpY2F0aW9ucyhtX3dpbmRvdyk7Cit9CisKK3ZvaWQgTm90aWZpY2F0aW9uQ2VudGVy
Ojp3aWxsRGV0YWNoUGFnZSgpCit7CisgICAgaWYgKG1fd2luZG93KQorICAgICAgICBET01XaW5k
b3dOb3RpZmljYXRpb25zOjpyZXNldE5vdGlmaWNhdGlvbnMobV93aW5kb3cpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbkNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25DZW50ZXIuaAppbmRleCA0MDJjY2JhOTM4YjJmZWUwODFmOGE2YThkN2JlY2Vm
Zjc4Y2MyNjkyLi45NWE3OTJjM2E2Y2EwZDY4YmQ1NTcxMTk0M2YxYTQwZmJlNjEyZDUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgK
QEAgLTMyLDEwICszMiwxMiBAQAogI2lmbmRlZiBOb3RpZmljYXRpb25DZW50ZXJfaAogI2RlZmlu
ZSBOb3RpZmljYXRpb25DZW50ZXJfaAogCisjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uLmgiCiAj
aW5jbHVkZSAiTm90aWZpY2F0aW9uQ29udGVudHMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgpAQCAtNDYsMTAgKzQ4LDEzIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIE5vdGlmaWNhdGlvblByZXNlbnRlcjsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CiBjbGFzcyBWb2lkQ2FsbGJhY2s7CiAKLWNsYXNzIE5vdGlmaWNhdGlvbkNlbnRlciA6IHB1Ymxp
YyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbkNlbnRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3Qg
eworY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0
aW9uQ2VudGVyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFN1cHBsZW1lbnQ8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dD4sIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CiBwdWJsaWM6
CisgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IGNyZWF0ZShET01XaW5kb3cqLCBO
b3RpZmljYXRpb25QcmVzZW50ZXIqKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRp
b25DZW50ZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTm90aWZpY2F0aW9uUHJl
c2VudGVyKik7CiAKICAgICBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbj4gY3JlYXRlSFRNTE5vdGlm
aWNhdGlvbihjb25zdCBTdHJpbmcmIFVSSSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC04MSwxMSAr
ODYsMTQgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxW
b2lkQ2FsbGJhY2s+KTsKIAogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7CisgICAgdm9pZCB3
aWxsRGV0YWNoUGFnZSgpOwogCiBwcml2YXRlOgorICAgIE5vdGlmaWNhdGlvbkNlbnRlcihET01X
aW5kb3cqLCBOb3RpZmljYXRpb25QcmVzZW50ZXIqKTsKICAgICBOb3RpZmljYXRpb25DZW50ZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOwogCiAgICAg
Tm90aWZpY2F0aW9uUHJlc2VudGVyKiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsKKyAgICBET01X
aW5kb3cqIG1fd2luZG93OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCmluZGV4IDU2NzQzNDMyZDZiODNiZmRlMWMyMDM1ODc5NjdmYmYxY2E3
YWM2Y2UuLjY2ZGMzMzU4NTQzOThiNDcyZTVmNWYyMzJlMzFlNzA0ZmRhODdlMDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTcyLDggKzcyLDYgQEAKICNpbmNsdWRlICJNZWRpYVF1
ZXJ5TWF0Y2hlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmln
YXRvci5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgotI2luY2x1ZGUgIk5vdGlm
aWNhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdy
b3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgpAQCAtNDE1LDkgKzQxMyw2
IEBAIERPTVdpbmRvdzo6fkRPTVdpbmRvdygpCiAgICAgQVNTRVJUKCFtX3Nlc3Npb25TdG9yYWdl
KTsKICAgICBBU1NFUlQoIW1fbG9jYWxTdG9yYWdlKTsKICAgICBBU1NFUlQoIW1fYXBwbGljYXRp
b25DYWNoZSk7Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgQVNTRVJUKCFtX25vdGlm
aWNhdGlvbnMpOwotI2VuZGlmCiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgQVNTRVJUKCFtX2RvbVVS
TCk7CiAjZW5kaWYKQEAgLTQ3MywxMiArNDY4LDYgQEAgdm9pZCBET01XaW5kb3c6OndpbGxEZXRh
Y2hQYWdlKCkKIHsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93RGlz
Y2FyZGVkKG1fZnJhbWUsIHRoaXMpOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAg
Ly8gQ2xlYXJpbmcgTm90aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZvbHZlcyBhY2Nlc3NpbmcgdGhl
IGNsaWVudCBzbyBpdCBtdXN0IGJlIGRvbmUKLSAgICAvLyBiZWZvcmUgdGhlIGZyYW1lIGlzIGRl
dGFjaGVkLgotICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICAgICBIYXNoU2V0
PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIHN0b3AgPSBtX3Byb3BlcnRpZXMuZW5kKCk7
CiAgICAgZm9yIChIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIGl0ID0gbV9w
cm9wZXJ0aWVzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCiAgICAgICAgICgqaXQpLT53aWxs
RGV0YWNoUGFnZSgpOwpAQCAtNTIxLDExICs1MTAsNiBAQCB2b2lkIERPTVdpbmRvdzo6Y2xlYXIo
KQogICAgIG1fc2Vzc2lvblN0b3JhZ2UgPSAwOwogICAgIG1fbG9jYWxTdG9yYWdlID0gMDsKICAg
ICBtX2FwcGxpY2F0aW9uQ2FjaGUgPSAwOwotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAg
IC8vIEZJWE1FOiBOb3RpZmljYXRpb25zIHNob3VsZG4ndCBoYXZlIGRpZmZlcmVudCBkaXNjb25u
ZWN0aW9uIGxvZ2ljIHRoYW4KLSAgICAvLyB0aGUgcmVzdCBvZiB0aGUgRE9NV2luZG93UHJvcGVy
dGllcy4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgogI2lmIEVOQUJMRShCTE9C
KQogICAgIG1fZG9tVVJMID0gMDsKICNlbmRpZgpAQCAtNzAyLDM2ICs2ODYsNiBAQCBTdG9yYWdl
KiBET01XaW5kb3c6OmxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICBy
ZXR1cm4gbV9sb2NhbFN0b3JhZ2UuZ2V0KCk7CiB9CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKLU5vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93Ojp3ZWJraXROb3RpZmljYXRpb25zKCkg
Y29uc3QKLXsKLSAgICBpZiAobV9ub3RpZmljYXRpb25zIHx8ICFpc0N1cnJlbnRseURpc3BsYXll
ZEluRnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9ucy5nZXQoKTsKLQotICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVu
dCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgCi0gICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5w
YWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIE5vdGlmaWNh
dGlvblByZXNlbnRlciogcHJvdmlkZXIgPSBOb3RpZmljYXRpb25Db250cm9sbGVyOjpjbGllbnRG
cm9tKHBhZ2UpOwotICAgIGlmIChwcm92aWRlcikgCi0gICAgICAgIG1fbm90aWZpY2F0aW9ucyA9
IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRlKGRvY3VtZW50LCBwcm92aWRlcik7ICAgIAotICAg
ICAgCi0gICAgcmV0dXJuIG1fbm90aWZpY2F0aW9ucy5nZXQoKTsKLX0KLQotdm9pZCBET01XaW5k
b3c6OnJlc2V0Tm90aWZpY2F0aW9ucygpCi17Ci0gICAgaWYgKCFtX25vdGlmaWNhdGlvbnMpCi0g
ICAgICAgIHJldHVybjsKLSAgICBtX25vdGlmaWNhdGlvbnMtPmRpc2Nvbm5lY3RGcmFtZSgpOwot
ICAgIG1fbm90aWZpY2F0aW9ucyA9IDA7Ci19Ci0jZW5kaWYKLQogdm9pZCBET01XaW5kb3c6OnBv
c3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBNZXNz
YWdlUG9ydCogcG9ydCwgY29uc3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291
cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBNZXNzYWdlUG9ydEFycmF5IHBvcnRzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggODE2NjQ4ZjhkNDFhZjM1OTZkMDdiZDY5NDhhZDIy
MjQ0NmE3ZWY0My4uZWI1OWI5MjM5NzRjMzZlZGQ5ZjM2YjljOWFhMjI5MmE1MTdlMGQ2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC01Niw3ICs1Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKICAgICBjbGFzcyBOYXZpZ2F0b3I7CiAgICAg
Y2xhc3MgTm9kZTsKLSAgICBjbGFzcyBOb3RpZmljYXRpb25DZW50ZXI7CiAgICAgY2xhc3MgUGFn
ZTsKICAgICBjbGFzcyBQZXJmb3JtYW5jZTsKICAgICBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyOwpA
QCAtMzU0LDEzICszNTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFN0b3JhZ2Uq
IHNlc3Npb25TdG9yYWdlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICAgICAgU3RvcmFnZSog
bG9jYWxTdG9yYWdlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAotI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQotICAgICAgICBOb3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMo
KSBjb25zdDsKLSAgICAgICAgLy8gUmVuZGVycyB3ZWJraXROb3RpZmljYXRpb25zIG9iamVjdCBz
YWZlbHkgaW5vcGVyYWJsZSwgZGlzY29ubmVjdHMKLSAgICAgICAgLy8gaWYgZnJvbSBlbWJlZGRl
ci1wcm92aWRlZCBOb3RpZmljYXRpb25QcmVzZW50ZXIuCi0gICAgICAgIHZvaWQgcmVzZXROb3Rp
ZmljYXRpb25zKCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShRVU9UQSkKICAgICAgICAgU3RvcmFn
ZUluZm8qIHdlYmtpdFN0b3JhZ2VJbmZvKCkgY29uc3Q7CiAjZW5kaWYKQEAgLTQ0MywxMCArNDM1
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTdG9yYWdl
PiBtX2xvY2FsU3RvcmFnZTsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8RE9NQXBwbGljYXRpb25D
YWNoZT4gbV9hcHBsaWNhdGlvbkNhY2hlOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0g
ICAgICAgIG11dGFibGUgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gbV9ub3RpZmljYXRpb25z
OwotI2VuZGlmCi0KICNpZiBFTkFCTEUoV0VCX1RJTUlORykKICAgICAgICAgbXV0YWJsZSBSZWZQ
dHI8UGVyZm9ybWFuY2U+IG1fcGVyZm9ybWFuY2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbAppbmRleCAxNDA4NmJmMjBlOWU0OTc2YWE4ODEyM2I4NjBjMDdiNDU5M2E3OWFkLi4w
ZWZhN2JmMTI0ODkxMDhiYWE1Mzg3ZTIxNzE3ZWY2MzZjYmYxYzJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsCkBAIC0xNzAsMTAgKzE3MCw2IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gU3RvcmFnZSBsb2NhbFN0
b3JhZ2UKICAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotI2lmIGRl
ZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMpICYmIEVOQUJMRV9OT1RJRklDQVRJT05TCi0gICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBOb3RpZmljYXRpb25D
ZW50ZXIgd2Via2l0Tm90aWZpY2F0aW9uczsKLSNlbmRpZgotCiAjaWYgZGVmaW5lZChFTkFCTEVf
T1JJRU5UQVRJT05fRVZFTlRTKSAmJiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCiAgICAgICAg
IC8vIFRoaXMgaXMgdGhlIGludGVyZmFjZSBvcmllbnRhdGlvbiBpbiBkZWdyZWVzLiBTb21lIGV4
YW1wbGVzIGFyZToKICAgICAgICAgLy8gIDAgaXMgc3RyYWlnaHQgdXA7IC05MCBpcyB3aGVuIHRo
ZSBkZXZpY2UgaXMgcm90YXRlZCA5MCBjbG9ja3dpc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4
IGFkOWNhYjhlOWQxM2ExZjViYjc1ODMxN2JiYzc5NjIzY2JlNmFjNDAuLjJjNTRkYzE2ZTk0YjE3
OGJlNTUxOWZjOWExNDY5ZDU4MWYxNzA4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC00MCw2
ICs0MCw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJET01XaW5k
b3dOb3RpZmljYXRpb25zLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAi
RWRpdGluZ1RleHQuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKQEAgLTY4Nyw5ICs2ODgs
MTAgQEAgdm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogICAgIGlmIChGcmFtZSogcGFyZW50
ID0gdHJlZSgpLT5wYXJlbnQoKSkKICAgICAgICAgcGFyZW50LT5sb2FkZXIoKS0+Y2hlY2tMb2Fk
Q29tcGxldGUoKTsKIAorLy8gRklYTUU6IFRoaXMgd2lsbCBiZSBzcGxpdCBvdXQgb2YgaGVyZSB0
byB0aGUgbm90aWZpY2F0aW9ucyBtb2R1bGUuCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAg
ICAgaWYgKG1fZG9tV2luZG93KQotICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXROb3RpZmljYXRp
b25zKCk7CisgICAgICAgIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OnJlc2V0Tm90aWZpY2F0aW9u
cyhtX2RvbVdpbmRvdy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVu
ZCgpOwpAQCAtNzM2LDExICs3MzgsMTEgQEAgdm9pZCBGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1l
VG9OZXdEb2N1bWVudCgpCiAgICAgICAgICAgICAgbV9wYWdlLT5kZWNyZW1lbnRGcmFtZUNvdW50
KCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobV9kb21XaW5kb3cpIHsKKy8vIEZJWE1FOiBU
aGlzIHdpbGwgYmUgc3BsaXQgb3V0IG9mIGhlcmUgdG8gdGhlIG5vdGlmaWNhdGlvbnMgbW9kdWxl
LgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICAgICAgbV9kb21XaW5kb3ctPnJl
c2V0Tm90aWZpY2F0aW9ucygpOworICAgICAgICBpZiAobV9kb21XaW5kb3cpCisgICAgICAgICAg
ICBET01XaW5kb3dOb3RpZmljYXRpb25zOjpyZXNldE5vdGlmaWNhdGlvbnMobV9kb21XaW5kb3cu
Z2V0KCkpOwogI2VuZGlmCi0gICAgICAgIH0KIAogICAgICAgICBIYXNoU2V0PEZyYW1lRGVzdHJ1
Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9wID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5l
bmQoKTsKICAgICAgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+Ojpp
dGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVnaW4oKTsgaXQgIT0gc3RvcDsg
KytpdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCmluZGV4IDg0ZGM5
MDZlMmFmMzQ4YTM0ZDg1YjZiOWQ4M2M2OTcyZWMyZDY2ZTEuLjE3MmM4NGUyMzhiNjZhMjg2NDIw
NGQ1MWUyMmJiMjZlNzdhMjM2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1N1cHBsZW1lbnRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxlbWVu
dGFibGUuaApAQCAtNDYsNiArNDYsMTEgQEAgcHVibGljOgogICAgICAgICBob3N0LT5wcm92aWRl
U3VwcGxlbWVudChrZXksIHN1cHBsZW1lbnQpOwogICAgIH0KIAorICAgIHN0YXRpYyB2b2lkIHJl
bW92ZShTdXBwbGVtZW50YWJsZTxUPiogaG9zdCwgY29uc3QgQXRvbWljU3RyaW5nJiBrZXkpCisg
ICAgeworICAgICAgICBob3N0LT5yZW1vdmVTdXBwbGVtZW50KGtleSk7CisgICAgfQorCiAgICAg
c3RhdGljIFN1cHBsZW1lbnQ8VD4qIGZyb20oU3VwcGxlbWVudGFibGU8VD4qIGhvc3QsIGNvbnN0
IEF0b21pY1N0cmluZyYga2V5KQogICAgIHsKICAgICAgICAgcmV0dXJuIGhvc3QgPyBob3N0LT5y
ZXF1aXJlU3VwcGxlbWVudChrZXkpIDogMDsKQEAgLTYxLDYgKzY2LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgbV9zdXBwbGVtZW50cy5zZXQoa2V5LCBzdXBwbGVtZW50KTsKICAgICB9CiAKKyAgICB2
b2lkIHJlbW92ZVN1cHBsZW1lbnQoY29uc3QgQXRvbWljU3RyaW5nJiBrZXkpCisgICAgeworICAg
ICAgICBtX3N1cHBsZW1lbnRzLnJlbW92ZShrZXkpOworICAgIH0KKwogICAgIFN1cHBsZW1lbnQ8
VD4qIHJlcXVpcmVTdXBwbGVtZW50KGNvbnN0IEF0b21pY1N0cmluZyYga2V5KQogICAgIHsKICAg
ICAgICAgcmV0dXJuIG1fc3VwcGxlbWVudHMuZ2V0KGtleSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130967</attachid>
            <date>2012-03-08 21:07:01 -0800</date>
            <delta_ts>2012-03-09 00:31:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79636-20120309140700.patch</filename>
            <type>text/plain</type>
            <size>30099</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkyZTc2Y2VjNzQ1MDU5
ZmIwNGRkNTk3ZDVjNDE1ZDg2MzcyMDc5Mi4uYzViMjJiYzIzNmM1OWJmN2ZmN2E4YTZlYWUxNTNm
NjllOGQxYzJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTAzLTA4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdl
YktpdCBtb2R1bGFyaXphdGlvbiwgdGhpcyBwYXRjaCBtb3ZlcyBOb3RpZmljYXRpb25zLXJlbGF0
ZWQgQVBJcworICAgICAgICBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvbm90aWZpY2F0aW9ucy8qIChObyBjaGFu
Z2UgaW4gdGVzdCByZXN1bHRzKQorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMue2gsY3BwLGlkbH0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOiBEaXR0by4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJp
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKworICAgICAgICAqIG5vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dOb3Rp
ZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5E
T01XaW5kb3dOb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNl
bnRlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZp
Y2F0aW9uczo6ZnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25z
Ojp3ZWJraXROb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlm
aWNhdGlvbnM6Om5vdGlmaWNhdGlvbkNlbnRlclNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25DZW50ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6Y2xlYXJOb3RpZmljYXRpb25DZW50ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmlj
YXRpb25zKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvd05vdGlmaWNh
dGlvbnMpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGw6IEFkZGVkLgorCisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6Ok5v
dGlmaWNhdGlvbkNlbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6
OmRpc2Nvbm5lY3RGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6
OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChOb3RpZmljYXRpb25DZW50ZXIp
OgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOiBSZW1vdmVkIEVOQUJMRShOT1RJRklD
QVRJT05TKS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6fkRPTVdpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6Y2xlYXIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmlkbDogRGl0dG8uCisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToKKworICAgICAg
ICAqIHBsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmg6IEFkZGVkIHJlbW92ZSgpIG1ldGhvZCwgd2hp
Y2ggcmVtb3ZlcyBhIHN1cHBsZW1lbnQgZW50cnkuCisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVt
ZW50OjpyZW1vdmUpOgorICAgICAgICAoU3VwcGxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
dXBwbGVtZW50YWJsZTo6cmVtb3ZlU3VwcGxlbWVudCk6CisgICAgICAgIChTdXBwbGVtZW50YWJs
ZSk6CisKIDIwMTItMDMtMDggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIxMDUzOTYpOiBEcmFnZ2luZyBhbiBpV29yayBkb2N1bWVudCBpbnRv
IGljbG91ZC5jb20gb3BlbnMgaXQgaW4gdGhlIE1hYyBhcHAgaW5zdGVhZCBvZiB1cGxvYWRpbmcg
aXQgdG8gaWNsb3VkLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1MTc1MGRlMmMxYzJlYWZl
MjVkYjA2N2JiN2MzMWYzNjk3ODY2YTZkLi5kZjgxMGI5NGVkY2ZhYTAyYWU5NGYzNjU3OTJhMmI4
OTc0NGYxYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYyMiwxMiArMTYyMiwxNCBAQCBF
TkRJRiAoKQogCiBJRiAoRU5BQkxFX05PVElGSUNBVElPTlMpCiAgICAgTElTVChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTCisgICAgICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCiAgICAg
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKICAgICAgICAgbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCiAgICAgKQogCiAgICAgTElTVChBUFBFTkQgV2Vi
Q29yZV9JRExfRklMRVMKKyAgICAgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRp
b25zLmlkbAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKICAgICAgICAg
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCiAgICAgKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjQ2MDY4MzNhNTc2ZDhkN2ZiNTgxYzFiMzY1YWY2ZDYwOGQy
MWM2NS4uNjljODBjNDZlNGFkYzhiNGY5MTNlMWRlNjAzMDhkNGMyYjgzYzdmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNTMsNiArMzUzLDcgQEAgQklORElOR19JRExTID0g
XAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
bG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQoV2ViQ29y
ZSkvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0Fi
c3RyYWN0Vmlldy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IGFmNGY1YjUw
Yjg1N2YyMmYxMGI0YzU3YjNkYWQ4ZTFkMjg4MzVhZDguLmU1NTM5MjQ0OWJkMWQ2OTZjMjk1ZjNh
MzRkODBkZmM4YjI1YmRkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTM3NSw2
ICszNzUsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2luc3BlY3Rvci9TY3JpcHRQ
cm9maWxlLmlkbCBcCiAgICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBc
CiAgICAgJCRQV0QvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAg
ICAkJFBXRC9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKICAgICAk
JFBXRC9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgXAogICAgICQkUFdEL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJCRQV0QvcGFnZS9CYXJJbmZvLmlk
bCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzNDc4MmJmODM3OWQ5ZjcxNTlk
N2U4YTc1ZjdmOWNhNTg5YTc5NGQxLi5jMGE3M2Y3MGViNWQ5NDRhYmE1ODM5MDIyYTQ3N2U5MWU2
MDhjZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTg5OCw2ICs4OTgsNyBA
QCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2luc3BlY3Rvci9TY3JpcHRQcm9m
aWxlLmlkbCBcCiAJJChXZWJDb3JlKS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsIFwK
IAkkKFdlYkNvcmUpL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbCBcCisJ
JChXZWJDb3JlKS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKIAkk
KFdlYkNvcmUpL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCiAJJChXZWJDb3JlKS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5pZGwgXAogCSQoV2ViQ29yZSkvcGFnZS9C
YXJJbmZvLmlkbCBcCkBAIC0yODIwLDYgKzI4MjEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9E
T01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCBcCisJU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9u
cy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmggXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25DZW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25Db250ZW50cy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDdmYTQzNGJjMmE2MzlkODAz
ZDJlNDg3YWVlNmU0ZjE0M2JjNWIwNzUuLjZiNGNlNGY1YmQ1MDE1MDQzODYwNjI3YTllZmRiZmZh
Nzg3ZThhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTgwLDYgKzk4MCw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9UZXh0UmVzb3Vy
Y2VEZWNvZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwIFwKKyAgICBu
b3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwKICAgICBub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2Vu
dGVyLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcCBc
CkBAIC0yMDc1LDYgKzIwNzYsNyBAQCBIRUFERVJTICs9IFwKICAgICBtYXRobWwvTWF0aE1MSW5s
aW5lQ29udGFpbmVyRWxlbWVudC5oIFwKICAgICBtYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCBc
CiAgICAgbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmggXAorICAgIG5vdGlmaWNhdGlvbnMvRE9N
V2luZG93Tm90aWZpY2F0aW9ucy5oIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5o
IFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKICAgICBub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblByZXNlbnRlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwNmI5
ZjYxMjZiM2Q5MGVhZmMwZmM2NzdhNmFjOTk2YmY3YWQwNzdhLi5jNTRkMmMxZjUzYjdiNzJlM2M0
YzcwMWM2MzQ0MTliNDgxMTM4OWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMDQ3LDYgKzEwNDcs
NyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCcsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCcsCiAgICAgICAgICAgICAnbG9h
ZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsJywKKyAgICAgICAgICAgICdub3Rp
ZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsJywKICAgICAgICAgICAgICdub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2VudGVyLmlkbCcsCiAgICAgICAgICAgICAncGFnZS9BYnN0cmFjdFZpZXcu
aWRsJywKQEAgLTI3NjksNiArMjc3MCw4IEBACiAgICAgICAgICAgICAnbWF0aG1sL01hdGhNTE1h
dGhFbGVtZW50LmgnLAogICAgICAgICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAn
LAogICAgICAgICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oJywKKyAgICAgICAgICAg
ICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwJywKKyAgICAgICAgICAg
ICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCcsCiAgICAgICAgICAgICAn
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwJywKICAgICAgICAgICAgICdub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbkNlbnRlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCA2YWM5N2E1MmVkZTQxNTJhYjliMDQ4NWIxMWI5ZTZjYTM0NWY5NjBmLi4z
M2EwMDlkOWEzNzM0NTEyM2E2N2I1ODU4YmY3ZTUxYzQzYTUwMTdlIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTM1MjIsNiArNTM1MjIsMTQg
QEAKIAkJCU5hbWU9Im5vdGlmaWNhdGlvbnMiCiAJCQk+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cbm90aWZpY2F0aW9uc1xET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9u
c1xET01XaW5kb3dOb3RpZmljYXRpb25zLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uLmNwcCIKIAkJ
CQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25z
L0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9u
cy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2E0ZTJiYjQ1NzI5ZjFl
YTA3ZjczOGI1ZmUxODhlMGRlYTY3MjQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApAQCAtMCwwICsxLDEy
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkRPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKKworI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25DZW50ZXIuaCIKKyNpbmNsdWRlICJOb3Rp
ZmljYXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnM6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnMo
KQoreworfQorCitET01XaW5kb3dOb3RpZmljYXRpb25zOjp+RE9NV2luZG93Tm90aWZpY2F0aW9u
cygpCit7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgTm90aWZpY2F0aW9uQ2VudGVyOjpzdXBw
bGVtZW50TmFtZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5h
bWUsICgiTm90aWZpY2F0aW9uQ2VudGVyIikpOworICAgIHJldHVybiBuYW1lOworfQorCitET01X
aW5kb3dOb3RpZmljYXRpb25zKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKERPTVdpbmRv
dyogd2luZG93KQoreworICAgIGlmICghd2luZG93LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
CisgICAgICAgIHJldHVybiAwOworCisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyogc3VwcGxl
bWVudCA9IHN0YXRpY19jYXN0PERPTVdpbmRvd05vdGlmaWNhdGlvbnMqPihTdXBwbGVtZW50PFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ+Ojpmcm9tKHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLCBOb3RpZmljYXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXN1
cHBsZW1lbnQpIHsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBET01XaW5kb3dOb3RpZmljYXRp
b25zKCk7CisgICAgICAgIFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OnByb3Zp
ZGVUbyh3aW5kb3ctPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgTm90aWZpY2F0aW9uQ2VudGVy
OjpzdXBwbGVtZW50TmFtZSgpLCBhZG9wdFB0cihzdXBwbGVtZW50KSk7CisgICAgfQorICAgIHJl
dHVybiBzdXBwbGVtZW50OworfQorCitOb3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRvd05vdGlm
aWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnMoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAg
cmV0dXJuIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmZyb20od2luZG93KS0+bm90aWZpY2F0aW9u
Q2VudGVyU2luZ2xldG9uKHdpbmRvdyk7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2lu
ZG93Tm90aWZpY2F0aW9uczo6bm90aWZpY2F0aW9uQ2VudGVyU2luZ2xldG9uKERPTVdpbmRvdyog
d2luZG93KQoreworICAgIGlmICghbV9ub3RpZmljYXRpb25DZW50ZXIpIHsKKyAgICAgICAgaWYg
KCF3aW5kb3ctPmlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQorICAgICAgICAgICAgcmV0
dXJuIDA7CisKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gd2luZG93LT5kb2N1bWVudCgp
OworICAgICAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAg
ICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgICAgIGlmICghcGFnZSkKKyAg
ICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJv
dmlkZXIgPSBOb3RpZmljYXRpb25Db250cm9sbGVyOjpjbGllbnRGcm9tKHBhZ2UpOworICAgICAg
ICBpZiAocHJvdmlkZXIpCisgICAgICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRlciA9IE5vdGlm
aWNhdGlvbkNlbnRlcjo6Y3JlYXRlKHdpbmRvdywgcHJvdmlkZXIpOworICAgIH0KKyAgICByZXR1
cm4gbV9ub3RpZmljYXRpb25DZW50ZXIuZ2V0KCk7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciog
RE9NV2luZG93Tm90aWZpY2F0aW9uczo6bm90aWZpY2F0aW9uQ2VudGVyKERPTVdpbmRvdyogd2lu
ZG93KQoreworICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsKK30KKwordm9p
ZCBET01XaW5kb3dOb3RpZmljYXRpb25zOjpjbGVhck5vdGlmaWNhdGlvbkNlbnRlcihET01XaW5k
b3cqIHdpbmRvdykKK3sKKyAgICBtX25vdGlmaWNhdGlvbkNlbnRlciA9IDA7CisgICAgcmV0dXJu
OworfQorCit2b2lkIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OnJlc2V0Tm90aWZpY2F0aW9ucyhE
T01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIXdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQorICAgICAgICByZXR1cm47CisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyogc3Vw
cGxlbWVudCA9IHN0YXRpY19jYXN0PERPTVdpbmRvd05vdGlmaWNhdGlvbnMqPihTdXBwbGVtZW50
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+Ojpmcm9tKHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBOb3RpZmljYXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCkpKTsKKyAgICBpZiAo
IXN1cHBsZW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIE5vdGlmaWNhdGlvbkNlbnRlciog
bm90aWZpY2F0aW9uQ2VudGVyID0gc3VwcGxlbWVudC0+bm90aWZpY2F0aW9uQ2VudGVyKHdpbmRv
dyk7CisgICAgaWYgKCFub3RpZmljYXRpb25DZW50ZXIpIHsKKyAgICAgICAgU3VwcGxlbWVudDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6cmVtb3ZlKHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBOb3RpZmljYXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgbm90aWZpY2F0aW9uQ2VudGVyLT5kaXNjb25uZWN0RnJhbWUo
KTsKKyAgICBzdXBwbGVtZW50LT5jbGVhck5vdGlmaWNhdGlvbkNlbnRlcih3aW5kb3cpOworICAg
IFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OnJlbW92ZSh3aW5kb3ctPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgTm90aWZpY2F0aW9uQ2VudGVyOjpzdXBwbGVtZW50TmFtZSgp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE5PVElG
SUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdp
bmRvd05vdGlmaWNhdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlMDFlNzBhOWRkZGFhMjY0MjQ2YWZjNTQz
MjMyNjU3YmIwNzJlNjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaApAQCAtMCwwICsxLDY3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERPTVdpbmRvd05vdGlmaWNh
dGlvbnNfaAorI2RlZmluZSBET01XaW5kb3dOb3RpZmljYXRpb25zX2gKKworI2lmIEVOQUJMRShO
T1RJRklDQVRJT05TKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJS
ZWZQdHIuaCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIE5vdGlmaWNhdGlvbkNlbnRlcjsKK2NsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIERPTVdpbmRvd05vdGlmaWNhdGlvbnMg
OiBwdWJsaWMgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+RE9NV2luZG93Tm90aWZpY2F0aW9ucygpOworCisgICAgc3RhdGljIE5vdGlm
aWNhdGlvbkNlbnRlciogd2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsKKyAgICBzdGF0
aWMgRE9NV2luZG93Tm90aWZpY2F0aW9ucyogZnJvbShET01XaW5kb3cqKTsKKyAgICAvLyBSZW5k
ZXJzIHdlYmtpdE5vdGlmaWNhdGlvbnMgb2JqZWN0IHNhZmVseSBpbm9wZXJhYmxlLCBkaXNjb25u
ZWN0cworICAgIC8vIGlmIGZyb20gZW1iZWRkZXItcHJvdmlkZWQgTm90aWZpY2F0aW9uUHJlc2Vu
dGVyLgorICAgIHN0YXRpYyB2b2lkIHJlc2V0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsKKyAg
ICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOworCitwcml2YXRl
OgorICAgIERPTVdpbmRvd05vdGlmaWNhdGlvbnMoKTsKKworICAgIE5vdGlmaWNhdGlvbkNlbnRl
ciogbm90aWZpY2F0aW9uQ2VudGVyU2luZ2xldG9uKERPTVdpbmRvdyopOworICAgIE5vdGlmaWNh
dGlvbkNlbnRlciogbm90aWZpY2F0aW9uQ2VudGVyKERPTVdpbmRvdyopOworICAgIHZvaWQgY2xl
YXJOb3RpZmljYXRpb25DZW50ZXIoRE9NV2luZG93Kik7CisKKyAgICBSZWZQdHI8Tm90aWZpY2F0
aW9uQ2VudGVyPiBtX25vdGlmaWNhdGlvbkNlbnRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQorCisjZW5kaWYgLy8gRE9N
V2luZG93Tm90aWZpY2F0aW9uc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvbm90aWZp
Y2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDc2MDdkMzBk
OWI2ODc2ODNhNjg5M2Q1MmYwNzM4MDc5MmVmMWRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbApAQCAtMCww
ICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisg
ICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9Tk9USUZJQ0FUSU9OUywKKyAgICAg
ICAgU3VwcGxlbWVudGFsPURPTVdpbmRvdworICAgIF0gRE9NV2luZG93Tm90aWZpY2F0aW9ucyB7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBOb3RpZmlj
YXRpb25DZW50ZXIgd2Via2l0Tm90aWZpY2F0aW9uczsKKyAgICB9OworCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKaW5kZXgg
NzExNDZhZjhkYTM3MjNkMTQ3MTVlZmNiNWQxYWJlYWM0OGUzNzE1OS4uY2M2MGIxNDJjNGIwNzc5
OTQ2NzUwMTE0MzNlM2YwNWY3ZTZmOTcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcApAQCAtMzQsMTMgKzM0LDIzIEBACiAK
ICNpbmNsdWRlICJOb3RpZmljYXRpb25DZW50ZXIuaCIKIAorI2luY2x1ZGUgIkRPTVdpbmRvdy5o
IgorI2luY2x1ZGUgIkRPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgorI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRl
ICJXb3JrZXJDb250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorUGFzc1JlZlB0cjxO
b3RpZmljYXRpb25DZW50ZXI+IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRlKERPTVdpbmRvdyog
d2luZG93LCBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcikKK3sKKyAgICBSZWZQdHI8
Tm90aWZpY2F0aW9uQ2VudGVyPiBub3RpZmljYXRpb25DZW50ZXIoYWRvcHRSZWYobmV3IE5vdGlm
aWNhdGlvbkNlbnRlcih3aW5kb3csIHByZXNlbnRlcikpKTsKKyAgICBub3RpZmljYXRpb25DZW50
ZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBub3RpZmljYXRpb25DZW50ZXIucmVs
ZWFzZSgpOworfQorCiBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gTm90aWZpY2F0aW9u
Q2VudGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTm90aWZpY2F0
aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIpCiB7CiAgICAgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRl
cj4gbm90aWZpY2F0aW9uQ2VudGVyKGFkb3B0UmVmKG5ldyBOb3RpZmljYXRpb25DZW50ZXIoY29u
dGV4dCwgcHJlc2VudGVyKSkpOwpAQCAtNDgsOSArNTgsMTYgQEAgUGFzc1JlZlB0cjxOb3RpZmlj
YXRpb25DZW50ZXI+IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQKICAgICByZXR1cm4gbm90aWZpY2F0aW9uQ2VudGVyLnJlbGVhc2UoKTsKIH0KIAorTm90
aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25DZW50ZXIoRE9NV2luZG93KiB3aW5kb3csIE5v
dGlmaWNhdGlvblByZXNlbnRlciogcHJlc2VudGVyKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KHdp
bmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlzKQorICAgICwgRE9NV2luZG93UHJv
cGVydHkod2luZG93LT5mcmFtZSgpKQorICAgICwgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIocHJl
c2VudGVyKQorICAgICwgbV93aW5kb3cod2luZG93KSB7IH0KKwogTm90aWZpY2F0aW9uQ2VudGVy
OjpOb3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTm90
aWZpY2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIpCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29u
dGV4dCwgdGhpcykKLSAgICAsIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyKHByZXNlbnRlcikge30K
KyAgICAsIERPTVdpbmRvd1Byb3BlcnR5KDApCisgICAgLCBtX25vdGlmaWNhdGlvblByZXNlbnRl
cihwcmVzZW50ZXIpIHsgfQogCiBpbnQgTm90aWZpY2F0aW9uQ2VudGVyOjpjaGVja1Blcm1pc3Np
b24oKQogewpAQCAtNzIsOSArODksMTkgQEAgdm9pZCBOb3RpZmljYXRpb25DZW50ZXI6OmRpc2Nv
bm5lY3RGcmFtZSgpCiAgICAgLy8gdGhpcyBtZXRob2QgaXMgaW52b2tlZCBtb3JlIHRoZW4gb25j
ZS4KICAgICBpZiAoIW1fbm90aWZpY2F0aW9uUHJlc2VudGVyKQogICAgICAgICByZXR1cm47CisK
ICAgICBtX25vdGlmaWNhdGlvblByZXNlbnRlci0+Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9u
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIt
PmNsZWFyTm90aWZpY2F0aW9ucyhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIG1fbm90
aWZpY2F0aW9uUHJlc2VudGVyID0gMDsKKworICAgIGlmIChtX3dpbmRvdykKKyAgICAgICAgRE9N
V2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmljYXRpb25zKG1fd2luZG93KTsKK30KKwor
dm9pZCBOb3RpZmljYXRpb25DZW50ZXI6OndpbGxEZXRhY2hQYWdlKCkKK3sKKyAgICBpZiAobV93
aW5kb3cpCisgICAgICAgIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OnJlc2V0Tm90aWZpY2F0aW9u
cyhtX3dpbmRvdyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCmluZGV4IDQwMmNjYmE5
MzhiMmZlZTA4MWY4YTZhOGQ3YmVjZWZmNzhjYzI2OTIuLjk1YTc5MmMzYTZjYTBkNjhiZDU1NzEx
OTQzZjFhNDBmYmU2MTJkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25DZW50ZXIuaApAQCAtMzIsMTAgKzMyLDEyIEBACiAjaWZuZGVmIE5vdGlm
aWNhdGlvbkNlbnRlcl9oCiAjZGVmaW5lIE5vdGlmaWNhdGlvbkNlbnRlcl9oCiAKKyNpbmNsdWRl
ICJET01XaW5kb3dQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25Db250ZW50cy5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTdXBwbGVtZW50
YWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00NiwxMCArNDgsMTMgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVyOworY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFZvaWRDYWxsYmFjazsKIAotY2xhc3MgTm90
aWZpY2F0aW9uQ2VudGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uQ2VudGVyPiwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitjbGFzcyBOb3RpZmljYXRpb25DZW50ZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxOb3RpZmljYXRpb25DZW50ZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
LCBwdWJsaWMgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiwgcHVibGljIERPTVdp
bmRvd1Byb3BlcnR5IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBz
dXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRl
cj4gY3JlYXRlKERPTVdpbmRvdyosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOwogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBOb3RpZmljYXRpb25QcmVzZW50ZXIqKTsKIAogICAgIFBhc3NSZWZQdHI8Tm90aWZp
Y2F0aW9uPiBjcmVhdGVIVE1MTm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgVVJJLCBFeGNlcHRp
b25Db2RlJiBlYykKQEAgLTgxLDExICs4NiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0
UGVybWlzc2lvbihQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4pOwogCiAgICAgdm9pZCBkaXNjb25u
ZWN0RnJhbWUoKTsKKyAgICB2b2lkIHdpbGxEZXRhY2hQYWdlKCk7CiAKIHByaXZhdGU6CisgICAg
Tm90aWZpY2F0aW9uQ2VudGVyKERPTVdpbmRvdyosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOwog
ICAgIE5vdGlmaWNhdGlvbkNlbnRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTm90aWZpY2F0
aW9uUHJlc2VudGVyKik7CiAKICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG1fbm90aWZpY2F0
aW9uUHJlc2VudGVyOworICAgIERPTVdpbmRvdyogbV93aW5kb3c7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggNTY3NDM0MzJkNmI4
M2JmZGUxYzIwMzU4Nzk2N2ZiZjFjYTdhYzZjZS4uNjZkYzMzNTg1NDM5OGI0NzJlNWY1ZjIzMmUz
MWU3MDRmZGE4N2UwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNzIsOCArNzIs
NiBAQAogI2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2
ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2Vu
dGVyLmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWdlVHJhbnNpdGlvbkV2
ZW50LmgiCkBAIC00MTUsOSArNDEzLDYgQEAgRE9NV2luZG93Ojp+RE9NV2luZG93KCkKICAgICBB
U1NFUlQoIW1fc2Vzc2lvblN0b3JhZ2UpOwogICAgIEFTU0VSVCghbV9sb2NhbFN0b3JhZ2UpOwog
ICAgIEFTU0VSVCghbV9hcHBsaWNhdGlvbkNhY2hlKTsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKLSAgICBBU1NFUlQoIW1fbm90aWZpY2F0aW9ucyk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQkxP
QikKICAgICBBU1NFUlQoIW1fZG9tVVJMKTsKICNlbmRpZgpAQCAtNDczLDEyICs0NjgsNiBAQCB2
b2lkIERPTVdpbmRvdzo6d2lsbERldGFjaFBhZ2UoKQogewogICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVXaW5kb3dEaXNjYXJkZWQobV9mcmFtZSwgdGhpcyk7CiAKLSNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKLSAgICAvLyBDbGVhcmluZyBOb3RpZmljYXRpb25zIHJlcXVlc3Rz
IGludm9sdmVzIGFjY2Vzc2luZyB0aGUgY2xpZW50IHNvIGl0IG11c3QgYmUgZG9uZQotICAgIC8v
IGJlZm9yZSB0aGUgZnJhbWUgaXMgZGV0YWNoZWQuCi0gICAgcmVzZXROb3RpZmljYXRpb25zKCk7
Ci0jZW5kaWYKLQogICAgIEhhc2hTZXQ8RE9NV2luZG93UHJvcGVydHkqPjo6aXRlcmF0b3Igc3Rv
cCA9IG1fcHJvcGVydGllcy5lbmQoKTsKICAgICBmb3IgKEhhc2hTZXQ8RE9NV2luZG93UHJvcGVy
dHkqPjo6aXRlcmF0b3IgaXQgPSBtX3Byb3BlcnRpZXMuYmVnaW4oKTsgaXQgIT0gc3RvcDsgKytp
dCkKICAgICAgICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7CkBAIC01MjEsMTEgKzUxMCw2IEBA
IHZvaWQgRE9NV2luZG93OjpjbGVhcigpCiAgICAgbV9zZXNzaW9uU3RvcmFnZSA9IDA7CiAgICAg
bV9sb2NhbFN0b3JhZ2UgPSAwOwogICAgIG1fYXBwbGljYXRpb25DYWNoZSA9IDA7Ci0jaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCi0gICAgLy8gRklYTUU6IE5vdGlmaWNhdGlvbnMgc2hvdWxkbid0
IGhhdmUgZGlmZmVyZW50IGRpc2Nvbm5lY3Rpb24gbG9naWMgdGhhbgotICAgIC8vIHRoZSByZXN0
IG9mIHRoZSBET01XaW5kb3dQcm9wZXJ0aWVzLgotICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOwot
I2VuZGlmCiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgbV9kb21VUkwgPSAwOwogI2VuZGlmCkBAIC03
MDIsMzYgKzY4Niw2IEBAIFN0b3JhZ2UqIERPTVdpbmRvdzo6bG9jYWxTdG9yYWdlKEV4Y2VwdGlv
bkNvZGUmIGVjKSBjb25zdAogICAgIHJldHVybiBtX2xvY2FsU3RvcmFnZS5nZXQoKTsKIH0KIAot
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3c6
OndlYmtpdE5vdGlmaWNhdGlvbnMoKSBjb25zdAotewotICAgIGlmIChtX25vdGlmaWNhdGlvbnMg
fHwgIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQotICAgICAgICByZXR1cm4gbV9ub3Rp
ZmljYXRpb25zLmdldCgpOwotCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1l
bnQoKTsKLSAgICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm4gMDsKLSAgICAKLSAgICBQ
YWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJl
dHVybiAwOwotCi0gICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBwcm92aWRlciA9IE5vdGlmaWNh
dGlvbkNvbnRyb2xsZXI6OmNsaWVudEZyb20ocGFnZSk7Ci0gICAgaWYgKHByb3ZpZGVyKSAKLSAg
ICAgICAgbV9ub3RpZmljYXRpb25zID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoZG9jdW1l
bnQsIHByb3ZpZGVyKTsgICAgCi0gICAgICAKLSAgICByZXR1cm4gbV9ub3RpZmljYXRpb25zLmdl
dCgpOwotfQotCi12b2lkIERPTVdpbmRvdzo6cmVzZXROb3RpZmljYXRpb25zKCkKLXsKLSAgICBp
ZiAoIW1fbm90aWZpY2F0aW9ucykKLSAgICAgICAgcmV0dXJuOwotICAgIG1fbm90aWZpY2F0aW9u
cy0+ZGlzY29ubmVjdEZyYW1lKCk7Ci0gICAgbV9ub3RpZmljYXRpb25zID0gMDsKLX0KLSNlbmRp
ZgotCiB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiBwb3J0LCBjb25zdCBTdHJpbmcmIHRhcmdl
dE9yaWdpbiwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIE1l
c3NhZ2VQb3J0QXJyYXkgcG9ydHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCA4MTY2NDhm
OGQ0MWFmMzU5NmQwN2JkNjk0OGFkMjIyNDQ2YTdlZjQzLi5lYjU5YjkyMzk3NGMzNmVkZDlmMzZi
OWM5YWEyMjkyYTUxN2UwZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTU2LDcgKzU2
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogICAg
IGNsYXNzIE5hdmlnYXRvcjsKICAgICBjbGFzcyBOb2RlOwotICAgIGNsYXNzIE5vdGlmaWNhdGlv
bkNlbnRlcjsKICAgICBjbGFzcyBQYWdlOwogICAgIGNsYXNzIFBlcmZvcm1hbmNlOwogICAgIGNs
YXNzIFBvc3RNZXNzYWdlVGltZXI7CkBAIC0zNTQsMTMgKzM1Myw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgU3RvcmFnZSogc2Vzc2lvblN0b3JhZ2UoRXhjZXB0aW9uQ29kZSYpIGNv
bnN0OwogICAgICAgICBTdG9yYWdlKiBsb2NhbFN0b3JhZ2UoRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgICAgIE5vdGlmaWNhdGlvbkNlbnRl
ciogd2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0OwotICAgICAgICAvLyBSZW5kZXJzIHdlYmtp
dE5vdGlmaWNhdGlvbnMgb2JqZWN0IHNhZmVseSBpbm9wZXJhYmxlLCBkaXNjb25uZWN0cwotICAg
ICAgICAvLyBpZiBmcm9tIGVtYmVkZGVyLXByb3ZpZGVkIE5vdGlmaWNhdGlvblByZXNlbnRlci4K
LSAgICAgICAgdm9pZCByZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotCiAjaWYgRU5BQkxF
KFFVT1RBKQogICAgICAgICBTdG9yYWdlSW5mbyogd2Via2l0U3RvcmFnZUluZm8oKSBjb25zdDsK
ICNlbmRpZgpAQCAtNDQzLDEwICs0MzUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IG11dGFibGUgUmVmUHRyPFN0b3JhZ2U+IG1fbG9jYWxTdG9yYWdlOwogICAgICAgICBtdXRhYmxl
IFJlZlB0cjxET01BcHBsaWNhdGlvbkNhY2hlPiBtX2FwcGxpY2F0aW9uQ2FjaGU7CiAKLSNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgbXV0YWJsZSBSZWZQdHI8Tm90aWZpY2F0aW9u
Q2VudGVyPiBtX25vdGlmaWNhdGlvbnM7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShXRUJfVElNSU5H
KQogICAgICAgICBtdXRhYmxlIFJlZlB0cjxQZXJmb3JtYW5jZT4gbV9wZXJmb3JtYW5jZTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDE0MDg2YmYyMGU5ZTQ5NzZhYTg4
MTIzYjg2MGMwN2I0NTkzYTc5YWQuLjBlZmE3YmYxMjQ4OTEwOGJhYTUzODdlMjE3MTdlZjYzNmNi
ZjFjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE3MCwxMCArMTcwLDYgQEAg
bW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRS
dW50aW1lXSBTdG9yYWdlIGxvY2FsU3RvcmFnZQogICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogCi0jaWYgZGVmaW5lZChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJiYgRU5B
QkxFX05PVElGSUNBVElPTlMKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRB
dFJ1bnRpbWVdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOwotI2VuZGlm
Ci0KICNpZiBkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklF
TlRBVElPTl9FVkVOVFMKICAgICAgICAgLy8gVGhpcyBpcyB0aGUgaW50ZXJmYWNlIG9yaWVudGF0
aW9uIGluIGRlZ3JlZXMuIFNvbWUgZXhhbXBsZXMgYXJlOgogICAgICAgICAvLyAgMCBpcyBzdHJh
aWdodCB1cDsgLTkwIGlzIHdoZW4gdGhlIGRldmljZSBpcyByb3RhdGVkIDkwIGNsb2Nrd2lzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggYWQ5Y2FiOGU5ZDEzYTFmNWJiNzU4MzE3YmJjNzk2MjNj
YmU2YWM0MC4uMmM1NGRjMTZlOTRiMTc4YmU1NTE5ZmM5YTE0NjlkNTgxZjE3MDgwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQu
aCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgorI2luY2x1ZGUgIkRPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKICNpbmNsdWRlICJEb2N1
bWVudFR5cGUuaCIKICNpbmNsdWRlICJFZGl0aW5nVGV4dC5oIgogI2luY2x1ZGUgIkVkaXRvckNs
aWVudC5oIgpAQCAtNjg3LDkgKzY4OCwxMCBAQCB2b2lkIEZyYW1lOjp3aWxsRGV0YWNoUGFnZSgp
CiAgICAgaWYgKEZyYW1lKiBwYXJlbnQgPSB0cmVlKCktPnBhcmVudCgpKQogICAgICAgICBwYXJl
bnQtPmxvYWRlcigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOwogCisvLyBGSVhNRTogVGhpcyB3aWxs
IGJlIHNwbGl0IG91dCBvZiBoZXJlIHRvIHRoZSBub3RpZmljYXRpb25zIG1vZHVsZS4KICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBpZiAobV9kb21XaW5kb3cpCi0gICAgICAgIG1fZG9t
V2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKKyAgICAgICAgRE9NV2luZG93Tm90aWZpY2F0
aW9uczo6cmVzZXROb3RpZmljYXRpb25zKG1fZG9tV2luZG93LmdldCgpKTsKICNlbmRpZgogCiAg
ICAgSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1f
ZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7CkBAIC03MzYsMTEgKzczOCwxMSBAQCB2b2lkIEZy
YW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KCkKICAgICAgICAgICAgICBtX3Bh
Z2UtPmRlY3JlbWVudEZyYW1lQ291bnQoKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX2Rv
bVdpbmRvdykgeworLy8gRklYTUU6IFRoaXMgd2lsbCBiZSBzcGxpdCBvdXQgb2YgaGVyZSB0byB0
aGUgbm90aWZpY2F0aW9ucyBtb2R1bGUuCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAg
ICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXROb3RpZmljYXRpb25zKCk7CisgICAgICAgIGlmICht
X2RvbVdpbmRvdykKKyAgICAgICAgICAgIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OnJlc2V0Tm90
aWZpY2F0aW9ucyhtX2RvbVdpbmRvdy5nZXQoKSk7CiAjZW5kaWYKLSAgICAgICAgfQogCiAgICAg
ICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBt
X2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8RnJhbWVE
ZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIGl0ID0gbV9kZXN0cnVjdGlvbk9ic2VydmVy
cy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU3VwcGxlbWVudGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBs
ZW1lbnRhYmxlLmgKaW5kZXggODRkYzkwNmUyYWYzNDhhMzRkODViNmI5ZDgzYzY5NzJlYzJkNjZl
MS4uMTcyYzg0ZTIzOGI2NmEyODY0MjA0ZDUxZTIyYmIyNmU3N2EyMzY4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxlbWVudGFibGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCkBAIC00Niw2ICs0NiwxMSBAQCBwdWJsaWM6
CiAgICAgICAgIGhvc3QtPnByb3ZpZGVTdXBwbGVtZW50KGtleSwgc3VwcGxlbWVudCk7CiAgICAg
fQogCisgICAgc3RhdGljIHZvaWQgcmVtb3ZlKFN1cHBsZW1lbnRhYmxlPFQ+KiBob3N0LCBjb25z
dCBBdG9taWNTdHJpbmcmIGtleSkKKyAgICB7CisgICAgICAgIGhvc3QtPnJlbW92ZVN1cHBsZW1l
bnQoa2V5KTsKKyAgICB9CisKICAgICBzdGF0aWMgU3VwcGxlbWVudDxUPiogZnJvbShTdXBwbGVt
ZW50YWJsZTxUPiogaG9zdCwgY29uc3QgQXRvbWljU3RyaW5nJiBrZXkpCiAgICAgewogICAgICAg
ICByZXR1cm4gaG9zdCA/IGhvc3QtPnJlcXVpcmVTdXBwbGVtZW50KGtleSkgOiAwOwpAQCAtNjEs
NiArNjYsMTEgQEAgcHVibGljOgogICAgICAgICBtX3N1cHBsZW1lbnRzLnNldChrZXksIHN1cHBs
ZW1lbnQpOwogICAgIH0KIAorICAgIHZvaWQgcmVtb3ZlU3VwcGxlbWVudChjb25zdCBBdG9taWNT
dHJpbmcmIGtleSkKKyAgICB7CisgICAgICAgIG1fc3VwcGxlbWVudHMucmVtb3ZlKGtleSk7Cisg
ICAgfQorCiAgICAgU3VwcGxlbWVudDxUPiogcmVxdWlyZVN1cHBsZW1lbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBrZXkpCiAgICAgewogICAgICAgICByZXR1cm4gbV9zdXBwbGVtZW50cy5nZXQoa2V5
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131000</attachid>
            <date>2012-03-09 00:31:17 -0800</date>
            <delta_ts>2012-03-09 01:09:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79636-20120309173116.patch</filename>
            <type>text/plain</type>
            <size>29705</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkyZTc2Y2VjNzQ1MDU5
ZmIwNGRkNTk3ZDVjNDE1ZDg2MzcyMDc5Mi4uYzViMjJiYzIzNmM1OWJmN2ZmN2E4YTZlYWUxNTNm
NjllOGQxYzJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTAzLTA4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdl
YktpdCBtb2R1bGFyaXphdGlvbiwgdGhpcyBwYXRjaCBtb3ZlcyBOb3RpZmljYXRpb25zLXJlbGF0
ZWQgQVBJcworICAgICAgICBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvbm90aWZpY2F0aW9ucy8qIChObyBjaGFu
Z2UgaW4gdGVzdCByZXN1bHRzKQorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMue2gsY3BwLGlkbH0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOiBEaXR0by4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJp
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKworICAgICAgICAqIG5vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dOb3Rp
ZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5E
T01XaW5kb3dOb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNl
bnRlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZp
Y2F0aW9uczo6ZnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25z
Ojp3ZWJraXROb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlm
aWNhdGlvbnM6Om5vdGlmaWNhdGlvbkNlbnRlclNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25DZW50ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6Y2xlYXJOb3RpZmljYXRpb25DZW50ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmlj
YXRpb25zKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvd05vdGlmaWNh
dGlvbnMpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGw6IEFkZGVkLgorCisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6Ok5v
dGlmaWNhdGlvbkNlbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6
OmRpc2Nvbm5lY3RGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6
OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChOb3RpZmljYXRpb25DZW50ZXIp
OgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOiBSZW1vdmVkIEVOQUJMRShOT1RJRklD
QVRJT05TKS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6fkRPTVdpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6Y2xlYXIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmlkbDogRGl0dG8uCisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToKKworICAgICAg
ICAqIHBsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmg6IEFkZGVkIHJlbW92ZSgpIG1ldGhvZCwgd2hp
Y2ggcmVtb3ZlcyBhIHN1cHBsZW1lbnQgZW50cnkuCisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVt
ZW50OjpyZW1vdmUpOgorICAgICAgICAoU3VwcGxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
dXBwbGVtZW50YWJsZTo6cmVtb3ZlU3VwcGxlbWVudCk6CisgICAgICAgIChTdXBwbGVtZW50YWJs
ZSk6CisKIDIwMTItMDMtMDggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIxMDUzOTYpOiBEcmFnZ2luZyBhbiBpV29yayBkb2N1bWVudCBpbnRv
IGljbG91ZC5jb20gb3BlbnMgaXQgaW4gdGhlIE1hYyBhcHAgaW5zdGVhZCBvZiB1cGxvYWRpbmcg
aXQgdG8gaWNsb3VkLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1MTc1MGRlMmMxYzJlYWZl
MjVkYjA2N2JiN2MzMWYzNjk3ODY2YTZkLi5kZjgxMGI5NGVkY2ZhYTAyYWU5NGYzNjU3OTJhMmI4
OTc0NGYxYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYyMiwxMiArMTYyMiwxNCBAQCBF
TkRJRiAoKQogCiBJRiAoRU5BQkxFX05PVElGSUNBVElPTlMpCiAgICAgTElTVChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTCisgICAgICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCiAgICAg
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKICAgICAgICAgbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCiAgICAgKQogCiAgICAgTElTVChBUFBFTkQgV2Vi
Q29yZV9JRExfRklMRVMKKyAgICAgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRp
b25zLmlkbAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKICAgICAgICAg
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCiAgICAgKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjQ2MDY4MzNhNTc2ZDhkN2ZiNTgxYzFiMzY1YWY2ZDYwOGQy
MWM2NS4uNjljODBjNDZlNGFkYzhiNGY5MTNlMWRlNjAzMDhkNGMyYjgzYzdmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNTMsNiArMzUzLDcgQEAgQklORElOR19JRExTID0g
XAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
bG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQoV2ViQ29y
ZSkvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0Fi
c3RyYWN0Vmlldy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IGFmNGY1YjUw
Yjg1N2YyMmYxMGI0YzU3YjNkYWQ4ZTFkMjg4MzVhZDguLmU1NTM5MjQ0OWJkMWQ2OTZjMjk1ZjNh
MzRkODBkZmM4YjI1YmRkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTM3NSw2
ICszNzUsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2luc3BlY3Rvci9TY3JpcHRQ
cm9maWxlLmlkbCBcCiAgICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBc
CiAgICAgJCRQV0QvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAg
ICAkJFBXRC9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKICAgICAk
JFBXRC9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgXAogICAgICQkUFdEL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJCRQV0QvcGFnZS9CYXJJbmZvLmlk
bCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzNDc4MmJmODM3OWQ5ZjcxNTlk
N2U4YTc1ZjdmOWNhNTg5YTc5NGQxLi4zNWNiMmI4MDVlZjUzNzA4M2JhMzlmOTA0YzRiMjFmODY2
MTllZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4MjAsNiArMjgyMCw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1h
dGhFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRzLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKaW5kZXggN2ZhNDM0YmMyYTYzOWQ4MDNkMmU0ODdhZWU2ZTRmMTQzYmM1YjA3NS4uNmI0Y2U0
ZjViZDUwMTUwNDM4NjA2MjdhOWVmZGJmZmE3ODdlOGE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC05ODAs
NiArOTgwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNw
cCBcCiAgICAgbG9hZGVyL1RleHRSZXNvdXJjZURlY29kZXIuY3BwIFwKICAgICBsb2FkZXIvVGhy
ZWFkYWJsZUxvYWRlci5jcHAgXAorICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBcCiAgICAgbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKICAgICBub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIFwKQEAgLTIwNzUsNiArMjA3Niw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIG1hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmggXAogICAgIG1h
dGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIFwKICAgICBtYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQu
aCBcCisgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmggXAogICAgIG5v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2VudGVyLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDA2YjlmNjEyNmIzZDkwZWFmYzBmYzY3N2E2YWM5OTZiZjdh
ZDA3N2EuLmM1NGQyYzFmNTNiN2I3MmUzYzRjNzAxYzYzNDQxOWI0ODExMzg5ZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTEwNDcsNiArMTA0Nyw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL1Nj
cmlwdFByb2ZpbGUuaWRsJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5v
ZGUuaWRsJywKICAgICAgICAgICAgICdsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNo
ZS5pZGwnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5pZGwnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCcsCiAg
ICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsJywKICAgICAg
ICAgICAgICdwYWdlL0Fic3RyYWN0Vmlldy5pZGwnLApAQCAtMjc2OSw2ICsyNzcwLDggQEAKICAg
ICAgICAgICAgICdtYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnbWF0
aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnbWF0aG1sL01hdGhNTFRl
eHRFbGVtZW50LmgnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZp
Y2F0aW9ucy5jcHAnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZp
Y2F0aW9ucy5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAn
LAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgnLAogICAgICAgICAg
ICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDZhYzk3YTUyZWRlNDE1MmFi
OWIwNDg1YjExYjllNmNhMzQ1Zjk2MGYuLjMzYTAwOWQ5YTM3MzQ1MTIzYTY3YjU4NThiZjdlNTFj
NDNhNTAxN2UgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC01MzUyMiw2ICs1MzUyMiwxNCBAQAogCQkJTmFtZT0ibm90aWZpY2F0aW9ucyIKIAkJ
CT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXERPTVdpbmRv
d05vdGlmaWNhdGlvbnMuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0
aW9uc1xOb3RpZmljYXRpb24uY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBjYTRlMmJiNDU3MjlmMWVhMDdmNzM4YjVmZTE4OGUwZGVhNjcyNDEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlm
aWNhdGlvbnMuY3BwCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2
LCAyMDA3LCAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90
aWZpY2F0aW9ucy5oIgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJE
T01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlv
bkNlbnRlci5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9NV2luZG93Tm90aWZpY2F0aW9u
czo6RE9NV2luZG93Tm90aWZpY2F0aW9ucygpCit7Cit9CisKK0RPTVdpbmRvd05vdGlmaWNhdGlv
bnM6On5ET01XaW5kb3dOb3RpZmljYXRpb25zKCkKK3sKK30KKworY29uc3QgQXRvbWljU3RyaW5n
JiBOb3RpZmljYXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJOb3RpZmljYXRpb25DZW50ZXIiKSk7Cisg
ICAgcmV0dXJuIG5hbWU7Cit9CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnMqIERPTVdpbmRvd05v
dGlmaWNhdGlvbnM6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCF3aW5kb3ct
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBET01X
aW5kb3dOb3RpZmljYXRpb25zKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93Tm90
aWZpY2F0aW9ucyo+KFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20od2lu
ZG93LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxl
bWVudE5hbWUoKSkpOworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBzdXBwbGVtZW50
ID0gbmV3IERPTVdpbmRvd05vdGlmaWNhdGlvbnMoKTsKKyAgICAgICAgU3VwcGxlbWVudDxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Pjo6cHJvdmlkZVRvKHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBOb3RpZmljYXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCksIGFkb3B0UHRyKHN1
cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK05vdGlmaWNh
dGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9ucyhE
T01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93Tm90aWZpY2F0aW9uczo6
ZnJvbSh3aW5kb3cpLT5ub3RpZmljYXRpb25DZW50ZXJTaW5nbGV0b24od2luZG93KTsKK30KKwor
Tm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25D
ZW50ZXJTaW5nbGV0b24oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCFtX25vdGlmaWNh
dGlvbkNlbnRlcikgeworICAgICAgICBpZiAoIXdpbmRvdy0+aXNDdXJyZW50bHlEaXNwbGF5ZWRJ
bkZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSB3aW5kb3ctPmRvY3VtZW50KCk7CisgICAgICAgIGlmICghZG9jdW1lbnQpCisgICAg
ICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2Uo
KTsKKyAgICAgICAgaWYgKCFwYWdlKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAg
Tm90aWZpY2F0aW9uUHJlc2VudGVyKiBwcm92aWRlciA9IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6
OmNsaWVudEZyb20ocGFnZSk7CisgICAgICAgIGlmIChwcm92aWRlcikKKyAgICAgICAgICAgIG1f
bm90aWZpY2F0aW9uQ2VudGVyID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUod2luZG93LCBw
cm92aWRlcik7CisgICAgfQorICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsK
K30KKworTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpub3RpZmlj
YXRpb25DZW50ZXIoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgcmV0dXJuIG1fbm90aWZpY2F0
aW9uQ2VudGVyLmdldCgpOworfQorCit2b2lkIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmNsZWFy
Tm90aWZpY2F0aW9uQ2VudGVyKERPTVdpbmRvdyogd2luZG93KQoreworICAgIG1fbm90aWZpY2F0
aW9uQ2VudGVyID0gMDsKKyAgICByZXR1cm47Cit9CisKK3ZvaWQgRE9NV2luZG93Tm90aWZpY2F0
aW9uczo6cmVzZXROb3RpZmljYXRpb25zKERPTVdpbmRvdyogd2luZG93KQoreworICAgIGlmICgh
d2luZG93LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBE
T01XaW5kb3dOb3RpZmljYXRpb25zKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93
Tm90aWZpY2F0aW9ucyo+KFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20o
d2luZG93LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3Vw
cGxlbWVudE5hbWUoKSkpOworICAgIGlmICghc3VwcGxlbWVudCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgTm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZmljYXRpb25DZW50ZXIgPSBzdXBwbGVtZW50
LT5ub3RpZmljYXRpb25DZW50ZXIod2luZG93KTsKKyAgICBpZiAoIW5vdGlmaWNhdGlvbkNlbnRl
cikgeworICAgICAgICBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+OjpyZW1vdmUo
d2luZG93LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3Vw
cGxlbWVudE5hbWUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBub3RpZmljYXRp
b25DZW50ZXItPmRpc2Nvbm5lY3RGcmFtZSgpOworICAgIHN1cHBsZW1lbnQtPmNsZWFyTm90aWZp
Y2F0aW9uQ2VudGVyKHdpbmRvdyk7CisgICAgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0Pjo6cmVtb3ZlKHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBOb3RpZmljYXRp
b25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIGIvU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjIyY2E3MDk4MGU1YmE1ZWYzZTQ2NjJiMTc5ZTc1MjA4YWE0ODhlMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5o
CkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDks
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgRE9NV2luZG93Tm90aWZpY2F0aW9uc19oCisjZGVmaW5lIERPTVdpbmRvd05vdGlm
aWNhdGlvbnNfaAorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRE9NV2luZG93OworY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOwor
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgRE9NV2luZG93Tm90aWZpY2F0
aW9ucyA6IHB1YmxpYyBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IHsKK3B1Ymxp
YzoKKyAgICB2aXJ0dWFsIH5ET01XaW5kb3dOb3RpZmljYXRpb25zKCk7CisKKyAgICBzdGF0aWMg
Tm90aWZpY2F0aW9uQ2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25zKERPTVdpbmRvdyopOworICAg
IHN0YXRpYyBET01XaW5kb3dOb3RpZmljYXRpb25zKiBmcm9tKERPTVdpbmRvdyopOworICAgIC8v
IFJlbmRlcnMgd2Via2l0Tm90aWZpY2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRp
c2Nvbm5lY3RzCisgICAgLy8gaWYgZnJvbSBlbWJlZGRlci1wcm92aWRlZCBOb3RpZmljYXRpb25Q
cmVzZW50ZXIuCisgICAgc3RhdGljIHZvaWQgcmVzZXROb3RpZmljYXRpb25zKERPTVdpbmRvdyop
OworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisKK3By
aXZhdGU6CisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucygpOworCisgICAgTm90aWZpY2F0aW9u
Q2VudGVyKiBub3RpZmljYXRpb25DZW50ZXJTaW5nbGV0b24oRE9NV2luZG93Kik7CisgICAgTm90
aWZpY2F0aW9uQ2VudGVyKiBub3RpZmljYXRpb25DZW50ZXIoRE9NV2luZG93Kik7CisgICAgdm9p
ZCBjbGVhck5vdGlmaWNhdGlvbkNlbnRlcihET01XaW5kb3cqKTsKKworICAgIFJlZlB0cjxOb3Rp
ZmljYXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9uQ2VudGVyOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNlbmRpZiAv
LyBET01XaW5kb3dOb3RpZmljYXRpb25zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25v
dGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNzYw
N2QzMGQ5YjY4NzY4M2E2ODkzZDUyZjA3MzgwNzkyZWYxZGIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCkBA
IC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIw
MDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7
CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1OT1RJRklDQVRJT05TLAor
ICAgICAgICBTdXBwbGVtZW50YWw9RE9NV2luZG93CisgICAgXSBET01XaW5kb3dOb3RpZmljYXRp
b25zIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5v
dGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOworICAgIH07CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcApp
bmRleCA3MTE0NmFmOGRhMzcyM2QxNDcxNWVmY2I1ZDFhYmVhYzQ4ZTM3MTU5Li5jYzYwYjE0MmM0
YjA3Nzk5NDY3NTAxMTQzM2UzZjA1ZjdlNmY5NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCkBAIC0zNCwxMyArMzQsMjMg
QEAKIAogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgogCisjaW5jbHVkZSAiRE9NV2lu
ZG93LmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIldvcmtlckNvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitQYXNzUmVm
UHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoRE9NV2lu
ZG93KiB3aW5kb3csIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJlc2VudGVyKQoreworICAgIFJl
ZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG5vdGlmaWNhdGlvbkNlbnRlcihhZG9wdFJlZihuZXcg
Tm90aWZpY2F0aW9uQ2VudGVyKHdpbmRvdywgcHJlc2VudGVyKSkpOworICAgIG5vdGlmaWNhdGlv
bkNlbnRlci0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIG5vdGlmaWNhdGlvbkNlbnRl
ci5yZWxlYXNlKCk7Cit9CisKIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBOb3RpZmlj
YXRpb25DZW50ZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3Rp
ZmljYXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcikKIHsKICAgICBSZWZQdHI8Tm90aWZpY2F0aW9u
Q2VudGVyPiBub3RpZmljYXRpb25DZW50ZXIoYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvbkNlbnRl
cihjb250ZXh0LCBwcmVzZW50ZXIpKSk7CkBAIC00OCw5ICs1OCwxNiBAQCBQYXNzUmVmUHRyPE5v
dGlmaWNhdGlvbkNlbnRlcj4gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dAogICAgIHJldHVybiBub3RpZmljYXRpb25DZW50ZXIucmVsZWFzZSgpOwogfQog
CitOb3RpZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvbkNlbnRlcihET01XaW5kb3cqIHdpbmRv
dywgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIpCisgICAgOiBBY3RpdmVET01PYmpl
Y3Qod2luZG93LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMpCisgICAgLCBET01XaW5k
b3dQcm9wZXJ0eSh3aW5kb3ctPmZyYW1lKCkpCisgICAgLCBtX25vdGlmaWNhdGlvblByZXNlbnRl
cihwcmVzZW50ZXIpCisgICAgLCBtX3dpbmRvdyh3aW5kb3cpIHsgfQorCiBOb3RpZmljYXRpb25D
ZW50ZXI6Ok5vdGlmaWNhdGlvbkNlbnRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcikKICAgICA6IEFjdGl2ZURPTU9iamVj
dChjb250ZXh0LCB0aGlzKQotICAgICwgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIocHJlc2VudGVy
KSB7fQorICAgICwgRE9NV2luZG93UHJvcGVydHkoMCkKKyAgICAsIG1fbm90aWZpY2F0aW9uUHJl
c2VudGVyKHByZXNlbnRlcikgeyB9CiAKIGludCBOb3RpZmljYXRpb25DZW50ZXI6OmNoZWNrUGVy
bWlzc2lvbigpCiB7CkBAIC03Miw5ICs4OSwxOSBAQCB2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6
ZGlzY29ubmVjdEZyYW1lKCkKICAgICAvLyB0aGlzIG1ldGhvZCBpcyBpbnZva2VkIG1vcmUgdGhl
biBvbmNlLgogICAgIGlmICghbV9ub3RpZmljYXRpb25QcmVzZW50ZXIpCiAgICAgICAgIHJldHVy
bjsKKwogICAgIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLT5jYW5jZWxSZXF1ZXN0c0ZvclBlcm1p
c3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBtX25vdGlmaWNhdGlvblByZXNl
bnRlci0+Y2xlYXJOb3RpZmljYXRpb25zKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAg
bV9ub3RpZmljYXRpb25QcmVzZW50ZXIgPSAwOworCisgICAgaWYgKG1fd2luZG93KQorICAgICAg
ICBET01XaW5kb3dOb3RpZmljYXRpb25zOjpyZXNldE5vdGlmaWNhdGlvbnMobV93aW5kb3cpOwor
fQorCit2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6d2lsbERldGFjaFBhZ2UoKQoreworICAgIGlm
IChtX3dpbmRvdykKKyAgICAgICAgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmlj
YXRpb25zKG1fd2luZG93KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKaW5kZXggNDAy
Y2NiYTkzOGIyZmVlMDgxZjhhNmE4ZDdiZWNlZmY3OGNjMjY5Mi4uOTVhNzkyYzNhNmNhMGQ2OGJk
NTU3MTE5NDNmMWE0MGZiZTYxMmQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCkBAIC0zMiwxMCArMzIsMTIgQEAKICNpZm5kZWYg
Tm90aWZpY2F0aW9uQ2VudGVyX2gKICNkZWZpbmUgTm90aWZpY2F0aW9uQ2VudGVyX2gKIAorI2lu
Y2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgog
I2luY2x1ZGUgIk5vdGlmaWNhdGlvbi5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRlbnRz
LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlN1cHBs
ZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ2LDEwICs0OCwxMyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7Citj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgVm9pZENhbGxiYWNrOwogCi1jbGFz
cyBOb3RpZmljYXRpb25DZW50ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb3RpZmljYXRpb25DZW50
ZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK2NsYXNzIE5vdGlmaWNhdGlvbkNlbnRlciA6
IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbkNlbnRlcj4sIHB1YmxpYyBBY3RpdmVET01P
YmplY3QsIHB1YmxpYyBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+LCBwdWJsaWMg
RE9NV2luZG93UHJvcGVydHkgewogcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9u
Q2VudGVyPiBjcmVhdGUoRE9NV2luZG93KiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOwogCiAgICAgUGFzc1JlZlB0cjxO
b3RpZmljYXRpb24+IGNyZWF0ZUhUTUxOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiBVUkksIEV4
Y2VwdGlvbkNvZGUmIGVjKQpAQCAtODEsMTEgKzg2LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
cXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPik7CiAKICAgICB2b2lkIGRp
c2Nvbm5lY3RGcmFtZSgpOworICAgIHZvaWQgd2lsbERldGFjaFBhZ2UoKTsKIAogcHJpdmF0ZToK
KyAgICBOb3RpZmljYXRpb25DZW50ZXIoRE9NV2luZG93KiwgTm90aWZpY2F0aW9uUHJlc2VudGVy
Kik7CiAgICAgTm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3Rp
ZmljYXRpb25QcmVzZW50ZXIqKTsKIAogICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbV9ub3Rp
ZmljYXRpb25QcmVzZW50ZXI7CisgICAgRE9NV2luZG93KiBtX3dpbmRvdzsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA1Njc0MzQz
MmQ2YjgzYmZkZTFjMjAzNTg3OTY3ZmJmMWNhN2FjNmNlLi42NmRjMzM1ODU0Mzk4YjQ3MmU1ZjVm
MjMyZTMxZTcwNGZkYTg3ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03Miw4
ICs3Miw2IEBACiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKICNpbmNsdWRlICJNZXNz
YWdlRXZlbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRp
b25DZW50ZXIuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0
aW9uRXZlbnQuaCIKQEAgLTQxNSw5ICs0MTMsNiBAQCBET01XaW5kb3c6On5ET01XaW5kb3coKQog
ICAgIEFTU0VSVCghbV9zZXNzaW9uU3RvcmFnZSk7CiAgICAgQVNTRVJUKCFtX2xvY2FsU3RvcmFn
ZSk7CiAgICAgQVNTRVJUKCFtX2FwcGxpY2F0aW9uQ2FjaGUpOwotI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQotICAgIEFTU0VSVCghbV9ub3RpZmljYXRpb25zKTsKLSNlbmRpZgogI2lmIEVOQUJM
RShCTE9CKQogICAgIEFTU0VSVCghbV9kb21VUkwpOwogI2VuZGlmCkBAIC00NzMsMTIgKzQ2OCw2
IEBAIHZvaWQgRE9NV2luZG93Ojp3aWxsRGV0YWNoUGFnZSgpCiB7CiAgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChtX2ZyYW1lLCB0aGlzKTsKIAotI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIC8vIENsZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVx
dWVzdHMgaW52b2x2ZXMgYWNjZXNzaW5nIHRoZSBjbGllbnQgc28gaXQgbXVzdCBiZSBkb25lCi0g
ICAgLy8gYmVmb3JlIHRoZSBmcmFtZSBpcyBkZXRhY2hlZC4KLSAgICByZXNldE5vdGlmaWNhdGlv
bnMoKTsKLSNlbmRpZgotCiAgICAgSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRv
ciBzdG9wID0gbV9wcm9wZXJ0aWVzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxET01XaW5kb3dQ
cm9wZXJ0eSo+OjppdGVyYXRvciBpdCA9IG1fcHJvcGVydGllcy5iZWdpbigpOyBpdCAhPSBzdG9w
OyArK2l0KQogICAgICAgICAoKml0KS0+d2lsbERldGFjaFBhZ2UoKTsKQEAgLTUyMSwxMSArNTEw
LDYgQEAgdm9pZCBET01XaW5kb3c6OmNsZWFyKCkKICAgICBtX3Nlc3Npb25TdG9yYWdlID0gMDsK
ICAgICBtX2xvY2FsU3RvcmFnZSA9IDA7CiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlID0gMDsKLSNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAvLyBGSVhNRTogTm90aWZpY2F0aW9ucyBzaG91
bGRuJ3QgaGF2ZSBkaWZmZXJlbnQgZGlzY29ubmVjdGlvbiBsb2dpYyB0aGFuCi0gICAgLy8gdGhl
IHJlc3Qgb2YgdGhlIERPTVdpbmRvd1Byb3BlcnRpZXMuCi0gICAgcmVzZXROb3RpZmljYXRpb25z
KCk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQkxPQikKICAgICBtX2RvbVVSTCA9IDA7CiAjZW5kaWYK
QEAgLTcwMiwzNiArNjg2LDYgQEAgU3RvcmFnZSogRE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UoRXhj
ZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9jYWxTdG9yYWdlLmdldCgpOwog
fQogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi1Ob3RpZmljYXRpb25DZW50ZXIqIERPTVdp
bmRvdzo6d2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0Ci17Ci0gICAgaWYgKG1fbm90aWZpY2F0
aW9ucyB8fCAhaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCi0gICAgICAgIHJldHVybiBt
X25vdGlmaWNhdGlvbnMuZ2V0KCk7Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5k
b2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIAot
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0KLSAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByb3ZpZGVyID0gTm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKLSAgICBpZiAocHJvdmlkZXIp
IAotICAgICAgICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShk
b2N1bWVudCwgcHJvdmlkZXIpOyAgICAKLSAgICAgIAotICAgIHJldHVybiBtX25vdGlmaWNhdGlv
bnMuZ2V0KCk7Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpyZXNldE5vdGlmaWNhdGlvbnMoKQotewot
ICAgIGlmICghbV9ub3RpZmljYXRpb25zKQotICAgICAgICByZXR1cm47Ci0gICAgbV9ub3RpZmlj
YXRpb25zLT5kaXNjb25uZWN0RnJhbWUoKTsKLSAgICBtX25vdGlmaWNhdGlvbnMgPSAwOwotfQot
I2VuZGlmCi0KIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIGNvbnN0IFN0cmluZyYg
dGFyZ2V0T3JpZ2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgTWVzc2FnZVBvcnRBcnJheSBwb3J0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDgx
NjY0OGY4ZDQxYWYzNTk2ZDA3YmQ2OTQ4YWQyMjI0NDZhN2VmNDMuLmViNTliOTIzOTc0YzM2ZWRk
OWYzNmI5YzlhYTIyOTJhNTE3ZTBkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtNTYs
NyArNTYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgTWVkaWFRdWVyeUxpc3Q7
CiAgICAgY2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgTm90aWZp
Y2F0aW9uQ2VudGVyOwogICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAg
ICAgY2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKQEAgLTM1NCwxMyArMzUzLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBTdG9yYWdlKiBzZXNzaW9uU3RvcmFnZShFeGNlcHRpb25Db2Rl
JikgY29uc3Q7CiAgICAgICAgIFN0b3JhZ2UqIGxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJikg
Y29uc3Q7CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgTm90aWZpY2F0aW9u
Q2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25zKCkgY29uc3Q7Ci0gICAgICAgIC8vIFJlbmRlcnMg
d2Via2l0Tm90aWZpY2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRpc2Nvbm5lY3Rz
Ci0gICAgICAgIC8vIGlmIGZyb20gZW1iZWRkZXItcHJvdmlkZWQgTm90aWZpY2F0aW9uUHJlc2Vu
dGVyLgotICAgICAgICB2b2lkIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICNpZiBF
TkFCTEUoUVVPVEEpCiAgICAgICAgIFN0b3JhZ2VJbmZvKiB3ZWJraXRTdG9yYWdlSW5mbygpIGNv
bnN0OwogI2VuZGlmCkBAIC00NDMsMTAgKzQzNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgbXV0YWJsZSBSZWZQdHI8U3RvcmFnZT4gbV9sb2NhbFN0b3JhZ2U7CiAgICAgICAgIG11
dGFibGUgUmVmUHRyPERPTUFwcGxpY2F0aW9uQ2FjaGU+IG1fYXBwbGljYXRpb25DYWNoZTsKIAot
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICBtdXRhYmxlIFJlZlB0cjxOb3RpZmlj
YXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9uczsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFdFQl9U
SU1JTkcpCiAgICAgICAgIG11dGFibGUgUmVmUHRyPFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNl
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMTQwODZiZjIwZTllNDk3
NmFhODgxMjNiODYwYzA3YjQ1OTNhNzlhZC4uMGVmYTdiZjEyNDg5MTA4YmFhNTM4N2UyMTcxN2Vm
NjM2Y2JmMWMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMTcwLDEwICsxNzAs
NiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJs
ZWRBdFJ1bnRpbWVdIFN0b3JhZ2UgbG9jYWxTdG9yYWdlCiAgICAgICAgICAgICBnZXR0ZXIgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAm
JiBFTkFCTEVfTk9USUZJQ0FUSU9OUwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5h
YmxlZEF0UnVudGltZV0gTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7Ci0j
ZW5kaWYKLQogI2lmIGRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5BQkxF
X09SSUVOVEFUSU9OX0VWRU5UUwogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3Jp
ZW50YXRpb24gaW4gZGVncmVlcy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlz
IHN0cmFpZ2h0IHVwOyAtOTAgaXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3
aXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBhZDljYWI4ZTlkMTNhMWY1YmI3NTgzMTdiYmM3
OTYyM2NiZTZhYzQwLi4yYzU0ZGMxNmU5NGIxNzhiZTU1MTlmYzlhMTQ2OWQ1ODFmMTcwODBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNs
aWVudC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
TG9hZGVyLmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgogI2luY2x1ZGUg
IkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdUZXh0LmgiCiAjaW5jbHVkZSAiRWRp
dG9yQ2xpZW50LmgiCkBAIC02ODcsOSArNjg4LDEwIEBAIHZvaWQgRnJhbWU6OndpbGxEZXRhY2hQ
YWdlKCkKICAgICBpZiAoRnJhbWUqIHBhcmVudCA9IHRyZWUoKS0+cGFyZW50KCkpCiAgICAgICAg
IHBhcmVudC0+bG9hZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7CiAKKy8vIEZJWE1FOiBUaGlz
IHdpbGwgYmUgc3BsaXQgb3V0IG9mIGhlcmUgdG8gdGhlIG5vdGlmaWNhdGlvbnMgbW9kdWxlLgog
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIGlmIChtX2RvbVdpbmRvdykKLSAgICAgICAg
bV9kb21XaW5kb3ctPnJlc2V0Tm90aWZpY2F0aW9ucygpOworICAgICAgICBET01XaW5kb3dOb3Rp
ZmljYXRpb25zOjpyZXNldE5vdGlmaWNhdGlvbnMobV9kb21XaW5kb3cuZ2V0KCkpOwogI2VuZGlm
CiAKICAgICBIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9w
ID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5lbmQoKTsKQEAgLTczNiwxMSArNzM4LDExIEBAIHZv
aWQgRnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoKQogICAgICAgICAgICAg
IG1fcGFnZS0+ZGVjcmVtZW50RnJhbWVDb3VudCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYg
KG1fZG9tV2luZG93KSB7CisvLyBGSVhNRTogVGhpcyB3aWxsIGJlIHNwbGl0IG91dCBvZiBoZXJl
IHRvIHRoZSBub3RpZmljYXRpb25zIG1vZHVsZS4KICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
LSAgICAgICAgICAgIG1fZG9tV2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKKyAgICAgICAg
aWYgKG1fZG9tV2luZG93KQorICAgICAgICAgICAgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVz
ZXROb3RpZmljYXRpb25zKG1fZG9tV2luZG93LmdldCgpKTsKICNlbmRpZgotICAgICAgICB9CiAK
ICAgICAgICAgSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3Rv
cCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7CiAgICAgICAgIGZvciAoSGFzaFNldDxG
cmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2Jz
ZXJ2ZXJzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U3VwcGxlbWVudGFibGUuaAppbmRleCA4NGRjOTA2ZTJhZjM0OGEzNGQ4NWI2YjlkODNjNjk3MmVj
MmQ2NmUxLi4xNzJjODRlMjM4YjY2YTI4NjQyMDRkNTFlMjJiYjI2ZTc3YTIzNjhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmgKQEAgLTQ2LDYgKzQ2LDExIEBAIHB1
YmxpYzoKICAgICAgICAgaG9zdC0+cHJvdmlkZVN1cHBsZW1lbnQoa2V5LCBzdXBwbGVtZW50KTsK
ICAgICB9CiAKKyAgICBzdGF0aWMgdm9pZCByZW1vdmUoU3VwcGxlbWVudGFibGU8VD4qIGhvc3Qs
IGNvbnN0IEF0b21pY1N0cmluZyYga2V5KQorICAgIHsKKyAgICAgICAgaG9zdC0+cmVtb3ZlU3Vw
cGxlbWVudChrZXkpOworICAgIH0KKwogICAgIHN0YXRpYyBTdXBwbGVtZW50PFQ+KiBmcm9tKFN1
cHBsZW1lbnRhYmxlPFQ+KiBob3N0LCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBob3N0ID8gaG9zdC0+cmVxdWlyZVN1cHBsZW1lbnQoa2V5KSA6IDA7CkBA
IC02MSw2ICs2NiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fc3VwcGxlbWVudHMuc2V0KGtleSwg
c3VwcGxlbWVudCk7CiAgICAgfQogCisgICAgdm9pZCByZW1vdmVTdXBwbGVtZW50KGNvbnN0IEF0
b21pY1N0cmluZyYga2V5KQorICAgIHsKKyAgICAgICAgbV9zdXBwbGVtZW50cy5yZW1vdmUoa2V5
KTsKKyAgICB9CisKICAgICBTdXBwbGVtZW50PFQ+KiByZXF1aXJlU3VwcGxlbWVudChjb25zdCBB
dG9taWNTdHJpbmcmIGtleSkKICAgICB7CiAgICAgICAgIHJldHVybiBtX3N1cHBsZW1lbnRzLmdl
dChrZXkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131004</attachid>
            <date>2012-03-09 01:09:49 -0800</date>
            <delta_ts>2012-03-09 01:49:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79636-20120309180948.patch</filename>
            <type>text/plain</type>
            <size>30494</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkyZTc2Y2VjNzQ1MDU5
ZmIwNGRkNTk3ZDVjNDE1ZDg2MzcyMDc5Mi4uYzViMjJiYzIzNmM1OWJmN2ZmN2E4YTZlYWUxNTNm
NjllOGQxYzJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTAzLTA4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdl
YktpdCBtb2R1bGFyaXphdGlvbiwgdGhpcyBwYXRjaCBtb3ZlcyBOb3RpZmljYXRpb25zLXJlbGF0
ZWQgQVBJcworICAgICAgICBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvbm90aWZpY2F0aW9ucy8qIChObyBjaGFu
Z2UgaW4gdGVzdCByZXN1bHRzKQorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMue2gsY3BwLGlkbH0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOiBEaXR0by4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJp
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKworICAgICAgICAqIG5vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dOb3Rp
ZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5E
T01XaW5kb3dOb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNl
bnRlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZp
Y2F0aW9uczo6ZnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25z
Ojp3ZWJraXROb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlm
aWNhdGlvbnM6Om5vdGlmaWNhdGlvbkNlbnRlclNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25DZW50ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6Y2xlYXJOb3RpZmljYXRpb25DZW50ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmlj
YXRpb25zKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvd05vdGlmaWNh
dGlvbnMpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGw6IEFkZGVkLgorCisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6Ok5v
dGlmaWNhdGlvbkNlbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6
OmRpc2Nvbm5lY3RGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6
OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChOb3RpZmljYXRpb25DZW50ZXIp
OgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOiBSZW1vdmVkIEVOQUJMRShOT1RJRklD
QVRJT05TKS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6fkRPTVdpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6Y2xlYXIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmlkbDogRGl0dG8uCisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToKKworICAgICAg
ICAqIHBsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmg6IEFkZGVkIHJlbW92ZSgpIG1ldGhvZCwgd2hp
Y2ggcmVtb3ZlcyBhIHN1cHBsZW1lbnQgZW50cnkuCisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVt
ZW50OjpyZW1vdmUpOgorICAgICAgICAoU3VwcGxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
dXBwbGVtZW50YWJsZTo6cmVtb3ZlU3VwcGxlbWVudCk6CisgICAgICAgIChTdXBwbGVtZW50YWJs
ZSk6CisKIDIwMTItMDMtMDggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIxMDUzOTYpOiBEcmFnZ2luZyBhbiBpV29yayBkb2N1bWVudCBpbnRv
IGljbG91ZC5jb20gb3BlbnMgaXQgaW4gdGhlIE1hYyBhcHAgaW5zdGVhZCBvZiB1cGxvYWRpbmcg
aXQgdG8gaWNsb3VkLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1MTc1MGRlMmMxYzJlYWZl
MjVkYjA2N2JiN2MzMWYzNjk3ODY2YTZkLi5kZjgxMGI5NGVkY2ZhYTAyYWU5NGYzNjU3OTJhMmI4
OTc0NGYxYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYyMiwxMiArMTYyMiwxNCBAQCBF
TkRJRiAoKQogCiBJRiAoRU5BQkxFX05PVElGSUNBVElPTlMpCiAgICAgTElTVChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTCisgICAgICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCiAgICAg
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKICAgICAgICAgbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCiAgICAgKQogCiAgICAgTElTVChBUFBFTkQgV2Vi
Q29yZV9JRExfRklMRVMKKyAgICAgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRp
b25zLmlkbAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKICAgICAgICAg
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCiAgICAgKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjQ2MDY4MzNhNTc2ZDhkN2ZiNTgxYzFiMzY1YWY2ZDYwOGQy
MWM2NS4uNjljODBjNDZlNGFkYzhiNGY5MTNlMWRlNjAzMDhkNGMyYjgzYzdmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNTMsNiArMzUzLDcgQEAgQklORElOR19JRExTID0g
XAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
bG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQoV2ViQ29y
ZSkvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0Fi
c3RyYWN0Vmlldy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IGFmNGY1YjUw
Yjg1N2YyMmYxMGI0YzU3YjNkYWQ4ZTFkMjg4MzVhZDguLmU1NTM5MjQ0OWJkMWQ2OTZjMjk1ZjNh
MzRkODBkZmM4YjI1YmRkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTM3NSw2
ICszNzUsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2luc3BlY3Rvci9TY3JpcHRQ
cm9maWxlLmlkbCBcCiAgICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBc
CiAgICAgJCRQV0QvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAg
ICAkJFBXRC9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKICAgICAk
JFBXRC9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgXAogICAgICQkUFdEL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJCRQV0QvcGFnZS9CYXJJbmZvLmlk
bCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzNDc4MmJmODM3OWQ5ZjcxNTlk
N2U4YTc1ZjdmOWNhNTg5YTc5NGQxLi4zNWNiMmI4MDVlZjUzNzA4M2JhMzlmOTA0YzRiMjFmODY2
MTllZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4MjAsNiArMjgyMCw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1h
dGhFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRzLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKaW5kZXggN2ZhNDM0YmMyYTYzOWQ4MDNkMmU0ODdhZWU2ZTRmMTQzYmM1YjA3NS4uNmI0Y2U0
ZjViZDUwMTUwNDM4NjA2MjdhOWVmZGJmZmE3ODdlOGE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC05ODAs
NiArOTgwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNw
cCBcCiAgICAgbG9hZGVyL1RleHRSZXNvdXJjZURlY29kZXIuY3BwIFwKICAgICBsb2FkZXIvVGhy
ZWFkYWJsZUxvYWRlci5jcHAgXAorICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBcCiAgICAgbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKICAgICBub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIFwKQEAgLTIwNzUsNiArMjA3Niw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIG1hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmggXAogICAgIG1h
dGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIFwKICAgICBtYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQu
aCBcCisgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmggXAogICAgIG5v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2VudGVyLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBiZjYzYmYzNDZjZTY0ZDNlMGE4ZWE4MWNlODI3NjQw
NzcxZDY4MzZmLi4wNTU5NWNlMmFlMWY1ZWYxZmNhMTQyZjlkZjZlM2IwYzE3Y2M3ZGFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjQxLDYgKzY0MSw4IEBAIF9fWk43V2ViQ29yZTIxcmVwb3J0
VGhyZWFkVmlvbGF0aW9uRVBLY05TXzIwVGhyZWFkVmlvbGF0aW9uUm91bmRFCiBfX1pON1dlYkNv
cmUyMXJlc291cmNlTG9hZFNjaGVkdWxlckV2CiBfX1pON1dlYkNvcmUyMXNldEdsb2JhbEljb25E
YXRhYmFzZUVQTlNfMTZJY29uRGF0YWJhc2VCYXNlRQogX19aTjdXZWJDb3JlMjFzZXRQbGF0Zm9y
bVN0cmF0ZWdpZXNFUE5TXzE4UGxhdGZvcm1TdHJhdGVnaWVzRQorX19aTjdXZWJDb3JlMjJET01X
aW5kb3dOb3RpZmljYXRpb25zMThyZXNldE5vdGlmaWNhdGlvbnNFUE5TXzlET01XaW5kb3dFCitf
X1pON1dlYkNvcmUyMkRPTVdpbmRvd05vdGlmaWNhdGlvbnMxOXdlYmtpdE5vdGlmaWNhdGlvbnNF
UE5TXzlET01XaW5kb3dFCiBfX1pON1dlYkNvcmUyMlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQyNmNh
blN1c3BlbmRBY3RpdmVET01PYmplY3RzRXYKIF9fWk43V2ViQ29yZTIyYXBwbGljYXRpb25Jc0Fw
cGxlTWFpbEV2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ0JvbGRFdgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDA2YjlmNjEyNmIzZDkwZWFmYzBmYzY3N2E2YWM5OTZiZjdhZDA3N2EuLmM1
NGQyYzFmNTNiN2I3MmUzYzRjNzAxYzYzNDQxOWI0ODExMzg5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTEwNDcsNiArMTA0Nyw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2Zp
bGUuaWRsJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsJywK
ICAgICAgICAgICAgICdsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwnLAor
ICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwnLAog
ICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCcsCiAgICAgICAgICAg
ICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsJywKICAgICAgICAgICAgICdw
YWdlL0Fic3RyYWN0Vmlldy5pZGwnLApAQCAtMjc2OSw2ICsyNzcwLDggQEAKICAgICAgICAgICAg
ICdtYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnbWF0aG1sL01hdGhN
TFRleHRFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50
LmgnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5j
cHAnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5o
JywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAnLAogICAgICAg
ICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgnLAogICAgICAgICAgICAgJ25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDZhYzk3YTUyZWRlNDE1MmFiOWIwNDg1YjEx
YjllNmNhMzQ1Zjk2MGYuLjMzYTAwOWQ5YTM3MzQ1MTIzYTY3YjU4NThiZjdlNTFjNDNhNTAxN2Ug
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01
MzUyMiw2ICs1MzUyMiwxNCBAQAogCQkJTmFtZT0ibm90aWZpY2F0aW9ucyIKIAkJCT4KIAkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXERPTVdpbmRvd05vdGlmaWNh
dGlvbnMuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxub3RpZmljYXRpb25zXERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xOb3Rp
ZmljYXRpb24uY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBjYTRlMmJiNDU3MjlmMWVhMDdmNzM4YjVmZTE4OGUwZGVhNjcyNDEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMu
Y3BwCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5oIgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJET01XaW5kb3cu
aCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5o
IgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9NV2luZG93Tm90aWZpY2F0aW9uczo6RE9NV2lu
ZG93Tm90aWZpY2F0aW9ucygpCit7Cit9CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5ET01X
aW5kb3dOb3RpZmljYXRpb25zKCkKK3sKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBOb3RpZmlj
YXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgbmFtZSwgKCJOb3RpZmljYXRpb25DZW50ZXIiKSk7CisgICAgcmV0dXJu
IG5hbWU7Cit9CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnMqIERPTVdpbmRvd05vdGlmaWNhdGlv
bnM6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCF3aW5kb3ctPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBET01XaW5kb3dOb3Rp
ZmljYXRpb25zKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93Tm90aWZpY2F0aW9u
cyo+KFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20od2luZG93LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVudE5hbWUo
KSkpOworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBzdXBwbGVtZW50ID0gbmV3IERP
TVdpbmRvd05vdGlmaWNhdGlvbnMoKTsKKyAgICAgICAgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRp
b25Db250ZXh0Pjo6cHJvdmlkZVRvKHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBO
b3RpZmljYXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCksIGFkb3B0UHRyKHN1cHBsZW1lbnQp
KTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRl
ciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cq
IHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZnJvbSh3aW5k
b3cpLT5ub3RpZmljYXRpb25DZW50ZXJTaW5nbGV0b24od2luZG93KTsKK30KKworTm90aWZpY2F0
aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25DZW50ZXJTaW5n
bGV0b24oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCFtX25vdGlmaWNhdGlvbkNlbnRl
cikgeworICAgICAgICBpZiAoIXdpbmRvdy0+aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkp
CisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB3
aW5kb3ctPmRvY3VtZW50KCk7CisgICAgICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgICAgICBy
ZXR1cm4gMDsKKworICAgICAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICAg
ICAgaWYgKCFwYWdlKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgTm90aWZpY2F0
aW9uUHJlc2VudGVyKiBwcm92aWRlciA9IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVudEZy
b20ocGFnZSk7CisgICAgICAgIGlmIChwcm92aWRlcikKKyAgICAgICAgICAgIG1fbm90aWZpY2F0
aW9uQ2VudGVyID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUod2luZG93LCBwcm92aWRlcik7
CisgICAgfQorICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsKK30KKworTm90
aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25DZW50
ZXIoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uQ2VudGVy
LmdldCgpOworfQorCit2b2lkIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmNsZWFyTm90aWZpY2F0
aW9uQ2VudGVyKERPTVdpbmRvdyogd2luZG93KQoreworICAgIG1fbm90aWZpY2F0aW9uQ2VudGVy
ID0gMDsKKyAgICByZXR1cm47Cit9CisKK3ZvaWQgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVz
ZXROb3RpZmljYXRpb25zKERPTVdpbmRvdyogd2luZG93KQoreworICAgIGlmICghd2luZG93LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBET01XaW5kb3dO
b3RpZmljYXRpb25zKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93Tm90aWZpY2F0
aW9ucyo+KFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20od2luZG93LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVudE5h
bWUoKSkpOworICAgIGlmICghc3VwcGxlbWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTm90
aWZpY2F0aW9uQ2VudGVyKiBub3RpZmljYXRpb25DZW50ZXIgPSBzdXBwbGVtZW50LT5ub3RpZmlj
YXRpb25DZW50ZXIod2luZG93KTsKKyAgICBpZiAoIW5vdGlmaWNhdGlvbkNlbnRlcikgeworICAg
ICAgICBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+OjpyZW1vdmUod2luZG93LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVudE5h
bWUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBub3RpZmljYXRpb25DZW50ZXIt
PmRpc2Nvbm5lY3RGcmFtZSgpOworICAgIHN1cHBsZW1lbnQtPmNsZWFyTm90aWZpY2F0aW9uQ2Vu
dGVyKHdpbmRvdyk7CisgICAgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6cmVt
b3ZlKHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBOb3RpZmljYXRpb25DZW50ZXI6
OnN1cHBsZW1lbnROYW1lKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25v
dGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjIyY2E3MDk4
MGU1YmE1ZWYzZTQ2NjJiMTc5ZTc1MjA4YWE0ODhlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oCkBAIC0wLDAg
KzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
RE9NV2luZG93Tm90aWZpY2F0aW9uc19oCisjZGVmaW5lIERPTVdpbmRvd05vdGlmaWNhdGlvbnNf
aAorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgRE9NV2luZG93OworY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOworY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgRE9NV2luZG93Tm90aWZpY2F0aW9ucyA6IHB1
YmxpYyBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5ET01XaW5kb3dOb3RpZmljYXRpb25zKCk7CisKKyAgICBzdGF0aWMgTm90aWZpY2F0
aW9uQ2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25zKERPTVdpbmRvdyopOworICAgIHN0YXRpYyBE
T01XaW5kb3dOb3RpZmljYXRpb25zKiBmcm9tKERPTVdpbmRvdyopOworICAgIC8vIFJlbmRlcnMg
d2Via2l0Tm90aWZpY2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRpc2Nvbm5lY3Rz
CisgICAgLy8gaWYgZnJvbSBlbWJlZGRlci1wcm92aWRlZCBOb3RpZmljYXRpb25QcmVzZW50ZXIu
CisgICAgc3RhdGljIHZvaWQgcmVzZXROb3RpZmljYXRpb25zKERPTVdpbmRvdyopOworICAgIHN0
YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisKK3ByaXZhdGU6Cisg
ICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucygpOworCisgICAgTm90aWZpY2F0aW9uQ2VudGVyKiBu
b3RpZmljYXRpb25DZW50ZXJTaW5nbGV0b24oRE9NV2luZG93Kik7CisgICAgTm90aWZpY2F0aW9u
Q2VudGVyKiBub3RpZmljYXRpb25DZW50ZXIoRE9NV2luZG93Kik7CisgICAgdm9pZCBjbGVhck5v
dGlmaWNhdGlvbkNlbnRlcihET01XaW5kb3cqKTsKKworICAgIFJlZlB0cjxOb3RpZmljYXRpb25D
ZW50ZXI+IG1fbm90aWZpY2F0aW9uQ2VudGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNlbmRpZiAvLyBET01XaW5k
b3dOb3RpZmljYXRpb25zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNzYwN2QzMGQ5YjY4
NzY4M2E2ODkzZDUyZjA3MzgwNzkyZWYxZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCkBAIC0wLDAgKzEs
MzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBp
bnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1OT1RJRklDQVRJT05TLAorICAgICAgICBT
dXBwbGVtZW50YWw9RE9NV2luZG93CisgICAgXSBET01XaW5kb3dOb3RpZmljYXRpb25zIHsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5vdGlmaWNhdGlv
bkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAppbmRleCA3MTE0
NmFmOGRhMzcyM2QxNDcxNWVmY2I1ZDFhYmVhYzQ4ZTM3MTU5Li5jYzYwYjE0MmM0YjA3Nzk5NDY3
NTAxMTQzM2UzZjA1ZjdlNmY5NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCkBAIC0zNCwxMyArMzQsMjMgQEAKIAogI2lu
Y2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisj
aW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogI2luY2x1ZGUgIldv
cmtlckNvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitQYXNzUmVmUHRyPE5vdGlm
aWNhdGlvbkNlbnRlcj4gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoRE9NV2luZG93KiB3aW5k
b3csIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJlc2VudGVyKQoreworICAgIFJlZlB0cjxOb3Rp
ZmljYXRpb25DZW50ZXI+IG5vdGlmaWNhdGlvbkNlbnRlcihhZG9wdFJlZihuZXcgTm90aWZpY2F0
aW9uQ2VudGVyKHdpbmRvdywgcHJlc2VudGVyKSkpOworICAgIG5vdGlmaWNhdGlvbkNlbnRlci0+
c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIG5vdGlmaWNhdGlvbkNlbnRlci5yZWxlYXNl
KCk7Cit9CisKIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBOb3RpZmljYXRpb25DZW50
ZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3RpZmljYXRpb25Q
cmVzZW50ZXIqIHByZXNlbnRlcikKIHsKICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBu
b3RpZmljYXRpb25DZW50ZXIoYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvbkNlbnRlcihjb250ZXh0
LCBwcmVzZW50ZXIpKSk7CkBAIC00OCw5ICs1OCwxNiBAQCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlv
bkNlbnRlcj4gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dAogICAgIHJldHVybiBub3RpZmljYXRpb25DZW50ZXIucmVsZWFzZSgpOwogfQogCitOb3RpZmlj
YXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvbkNlbnRlcihET01XaW5kb3cqIHdpbmRvdywgTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIpCisgICAgOiBBY3RpdmVET01PYmplY3Qod2luZG93
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMpCisgICAgLCBET01XaW5kb3dQcm9wZXJ0
eSh3aW5kb3ctPmZyYW1lKCkpCisgICAgLCBtX25vdGlmaWNhdGlvblByZXNlbnRlcihwcmVzZW50
ZXIpCisgICAgLCBtX3dpbmRvdyh3aW5kb3cpIHsgfQorCiBOb3RpZmljYXRpb25DZW50ZXI6Ok5v
dGlmaWNhdGlvbkNlbnRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3RpZmlj
YXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcikKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0
LCB0aGlzKQotICAgICwgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIocHJlc2VudGVyKSB7fQorICAg
ICwgRE9NV2luZG93UHJvcGVydHkoMCkKKyAgICAsIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyKHBy
ZXNlbnRlcikgeyB9CiAKIGludCBOb3RpZmljYXRpb25DZW50ZXI6OmNoZWNrUGVybWlzc2lvbigp
CiB7CkBAIC03Miw5ICs4OSwxOSBAQCB2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6ZGlzY29ubmVj
dEZyYW1lKCkKICAgICAvLyB0aGlzIG1ldGhvZCBpcyBpbnZva2VkIG1vcmUgdGhlbiBvbmNlLgog
ICAgIGlmICghbV9ub3RpZmljYXRpb25QcmVzZW50ZXIpCiAgICAgICAgIHJldHVybjsKKwogICAg
IG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLT5jYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBtX25vdGlmaWNhdGlvblByZXNlbnRlci0+Y2xl
YXJOb3RpZmljYXRpb25zKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgbV9ub3RpZmlj
YXRpb25QcmVzZW50ZXIgPSAwOworCisgICAgaWYgKG1fd2luZG93KQorICAgICAgICBET01XaW5k
b3dOb3RpZmljYXRpb25zOjpyZXNldE5vdGlmaWNhdGlvbnMobV93aW5kb3cpOworfQorCit2b2lk
IE5vdGlmaWNhdGlvbkNlbnRlcjo6d2lsbERldGFjaFBhZ2UoKQoreworICAgIGlmIChtX3dpbmRv
dykKKyAgICAgICAgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmljYXRpb25zKG1f
d2luZG93KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKaW5kZXggNDAyY2NiYTkzOGIy
ZmVlMDgxZjhhNmE4ZDdiZWNlZmY3OGNjMjY5Mi4uOTVhNzkyYzNhNmNhMGQ2OGJkNTU3MTE5NDNm
MWE0MGZiZTYxMmQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25DZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNlbnRlci5oCkBAIC0zMiwxMCArMzIsMTIgQEAKICNpZm5kZWYgTm90aWZpY2F0
aW9uQ2VudGVyX2gKICNkZWZpbmUgTm90aWZpY2F0aW9uQ2VudGVyX2gKIAorI2luY2x1ZGUgIkRP
TVdpbmRvd1Byb3BlcnR5LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvbi5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRlbnRzLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxl
LmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ2LDEwICs0OCwxMyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7CitjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgVm9pZENhbGxiYWNrOwogCi1jbGFzcyBOb3RpZmlj
YXRpb25DZW50ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb3RpZmljYXRpb25DZW50ZXI+LCBwdWJs
aWMgQWN0aXZlRE9NT2JqZWN0IHsKK2NsYXNzIE5vdGlmaWNhdGlvbkNlbnRlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPE5vdGlmaWNhdGlvbkNlbnRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1
YmxpYyBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+LCBwdWJsaWMgRE9NV2luZG93
UHJvcGVydHkgewogcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBs
ZW1lbnROYW1lKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBj
cmVhdGUoRE9NV2luZG93KiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOwogCiAgICAgUGFzc1JlZlB0cjxOb3RpZmljYXRp
b24+IGNyZWF0ZUhUTUxOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiBVUkksIEV4Y2VwdGlvbkNv
ZGUmIGVjKQpAQCAtODEsMTEgKzg2LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RQZXJt
aXNzaW9uKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPik7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RG
cmFtZSgpOworICAgIHZvaWQgd2lsbERldGFjaFBhZ2UoKTsKIAogcHJpdmF0ZToKKyAgICBOb3Rp
ZmljYXRpb25DZW50ZXIoRE9NV2luZG93KiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CiAgICAg
Tm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRpb25Q
cmVzZW50ZXIqKTsKIAogICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbV9ub3RpZmljYXRpb25Q
cmVzZW50ZXI7CisgICAgRE9NV2luZG93KiBtX3dpbmRvdzsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA1Njc0MzQzMmQ2YjgzYmZk
ZTFjMjAzNTg3OTY3ZmJmMWNhN2FjNmNlLi42NmRjMzM1ODU0Mzk4YjQ3MmU1ZjVmMjMyZTMxZTcw
NGZkYTg3ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03Miw4ICs3Miw2IEBA
CiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQu
aCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25DZW50ZXIu
aCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQu
aCIKQEAgLTQxNSw5ICs0MTMsNiBAQCBET01XaW5kb3c6On5ET01XaW5kb3coKQogICAgIEFTU0VS
VCghbV9zZXNzaW9uU3RvcmFnZSk7CiAgICAgQVNTRVJUKCFtX2xvY2FsU3RvcmFnZSk7CiAgICAg
QVNTRVJUKCFtX2FwcGxpY2F0aW9uQ2FjaGUpOwotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQot
ICAgIEFTU0VSVCghbV9ub3RpZmljYXRpb25zKTsKLSNlbmRpZgogI2lmIEVOQUJMRShCTE9CKQog
ICAgIEFTU0VSVCghbV9kb21VUkwpOwogI2VuZGlmCkBAIC00NzMsMTIgKzQ2OCw2IEBAIHZvaWQg
RE9NV2luZG93Ojp3aWxsRGV0YWNoUGFnZSgpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChtX2ZyYW1lLCB0aGlzKTsKIAotI2lmIEVOQUJMRShO
T1RJRklDQVRJT05TKQotICAgIC8vIENsZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVxdWVzdHMgaW52
b2x2ZXMgYWNjZXNzaW5nIHRoZSBjbGllbnQgc28gaXQgbXVzdCBiZSBkb25lCi0gICAgLy8gYmVm
b3JlIHRoZSBmcmFtZSBpcyBkZXRhY2hlZC4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNl
bmRpZgotCiAgICAgSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBzdG9wID0g
bV9wcm9wZXJ0aWVzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+
OjppdGVyYXRvciBpdCA9IG1fcHJvcGVydGllcy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQog
ICAgICAgICAoKml0KS0+d2lsbERldGFjaFBhZ2UoKTsKQEAgLTUyMSwxMSArNTEwLDYgQEAgdm9p
ZCBET01XaW5kb3c6OmNsZWFyKCkKICAgICBtX3Nlc3Npb25TdG9yYWdlID0gMDsKICAgICBtX2xv
Y2FsU3RvcmFnZSA9IDA7CiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlID0gMDsKLSNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKLSAgICAvLyBGSVhNRTogTm90aWZpY2F0aW9ucyBzaG91bGRuJ3QgaGF2
ZSBkaWZmZXJlbnQgZGlzY29ubmVjdGlvbiBsb2dpYyB0aGFuCi0gICAgLy8gdGhlIHJlc3Qgb2Yg
dGhlIERPTVdpbmRvd1Byb3BlcnRpZXMuCi0gICAgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5k
aWYKICNpZiBFTkFCTEUoQkxPQikKICAgICBtX2RvbVVSTCA9IDA7CiAjZW5kaWYKQEAgLTcwMiwz
NiArNjg2LDYgQEAgU3RvcmFnZSogRE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UoRXhjZXB0aW9uQ29k
ZSYgZWMpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9jYWxTdG9yYWdlLmdldCgpOwogfQogCi0jaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpCi1Ob3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRvdzo6d2Vi
a2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0Ci17Ci0gICAgaWYgKG1fbm90aWZpY2F0aW9ucyB8fCAh
aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCi0gICAgICAgIHJldHVybiBtX25vdGlmaWNh
dGlvbnMuZ2V0KCk7Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgp
OwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIAotICAgIFBhZ2Uq
IHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJu
IDA7Ci0KLSAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByb3ZpZGVyID0gTm90aWZpY2F0aW9u
Q29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKLSAgICBpZiAocHJvdmlkZXIpIAotICAgICAg
ICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShkb2N1bWVudCwg
cHJvdmlkZXIpOyAgICAKLSAgICAgIAotICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMuZ2V0KCk7
Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpyZXNldE5vdGlmaWNhdGlvbnMoKQotewotICAgIGlmICgh
bV9ub3RpZmljYXRpb25zKQotICAgICAgICByZXR1cm47Ci0gICAgbV9ub3RpZmljYXRpb25zLT5k
aXNjb25uZWN0RnJhbWUoKTsKLSAgICBtX25vdGlmaWNhdGlvbnMgPSAwOwotfQotI2VuZGlmCi0K
IHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIGNvbnN0IFN0cmluZyYgdGFyZ2V0T3Jp
Z2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTWVzc2Fn
ZVBvcnRBcnJheSBwb3J0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDgxNjY0OGY4ZDQx
YWYzNTk2ZDA3YmQ2OTQ4YWQyMjI0NDZhN2VmNDMuLmViNTliOTIzOTc0YzM2ZWRkOWYzNmI5Yzlh
YTIyOTJhNTE3ZTBkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtNTYsNyArNTYsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiAgICAgY2xh
c3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgTm90aWZpY2F0aW9uQ2Vu
dGVyOwogICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAgY2xhc3Mg
UG9zdE1lc3NhZ2VUaW1lcjsKQEAgLTM1NCwxMyArMzUzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBTdG9yYWdlKiBzZXNzaW9uU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29uc3Q7
CiAgICAgICAgIFN0b3JhZ2UqIGxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAK
LSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgTm90aWZpY2F0aW9uQ2VudGVyKiB3
ZWJraXROb3RpZmljYXRpb25zKCkgY29uc3Q7Ci0gICAgICAgIC8vIFJlbmRlcnMgd2Via2l0Tm90
aWZpY2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRpc2Nvbm5lY3RzCi0gICAgICAg
IC8vIGlmIGZyb20gZW1iZWRkZXItcHJvdmlkZWQgTm90aWZpY2F0aW9uUHJlc2VudGVyLgotICAg
ICAgICB2b2lkIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoUVVP
VEEpCiAgICAgICAgIFN0b3JhZ2VJbmZvKiB3ZWJraXRTdG9yYWdlSW5mbygpIGNvbnN0OwogI2Vu
ZGlmCkBAIC00NDMsMTAgKzQzNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0
YWJsZSBSZWZQdHI8U3RvcmFnZT4gbV9sb2NhbFN0b3JhZ2U7CiAgICAgICAgIG11dGFibGUgUmVm
UHRyPERPTUFwcGxpY2F0aW9uQ2FjaGU+IG1fYXBwbGljYXRpb25DYWNoZTsKIAotI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQotICAgICAgICBtdXRhYmxlIFJlZlB0cjxOb3RpZmljYXRpb25DZW50
ZXI+IG1fbm90aWZpY2F0aW9uczsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAg
ICAgICAgIG11dGFibGUgUmVmUHRyPFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMTQwODZiZjIwZTllNDk3NmFhODgxMjNi
ODYwYzA3YjQ1OTNhNzlhZC4uMGVmYTdiZjEyNDg5MTA4YmFhNTM4N2UyMTcxN2VmNjM2Y2JmMWMy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMTcwLDEwICsxNzAsNiBAQCBtb2R1
bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRp
bWVdIFN0b3JhZ2UgbG9jYWxTdG9yYWdlCiAgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAmJiBFTkFCTEVf
Tk9USUZJQ0FUSU9OUwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVu
dGltZV0gTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7Ci0jZW5kaWYKLQog
I2lmIGRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5BQkxFX09SSUVOVEFU
SU9OX0VWRU5UUwogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24g
aW4gZGVncmVlcy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFpZ2h0
IHVwOyAtOTAgaXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAppbmRleCBhZDljYWI4ZTlkMTNhMWY1YmI3NTgzMTdiYmM3OTYyM2NiZTZh
YzQwLi4yYzU0ZGMxNmU5NGIxNzhiZTU1MTlmYzlhMTQ2OWQ1ODFmMTcwODBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgog
I2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgi
CisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
VHlwZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdUZXh0LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50
LmgiCkBAIC02ODcsOSArNjg4LDEwIEBAIHZvaWQgRnJhbWU6OndpbGxEZXRhY2hQYWdlKCkKICAg
ICBpZiAoRnJhbWUqIHBhcmVudCA9IHRyZWUoKS0+cGFyZW50KCkpCiAgICAgICAgIHBhcmVudC0+
bG9hZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7CiAKKy8vIEZJWE1FOiBUaGlzIHdpbGwgYmUg
c3BsaXQgb3V0IG9mIGhlcmUgdG8gdGhlIG5vdGlmaWNhdGlvbnMgbW9kdWxlLgogI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQogICAgIGlmIChtX2RvbVdpbmRvdykKLSAgICAgICAgbV9kb21XaW5k
b3ctPnJlc2V0Tm90aWZpY2F0aW9ucygpOworICAgICAgICBET01XaW5kb3dOb3RpZmljYXRpb25z
OjpyZXNldE5vdGlmaWNhdGlvbnMobV9kb21XaW5kb3cuZ2V0KCkpOwogI2VuZGlmCiAKICAgICBI
YXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9wID0gbV9kZXN0
cnVjdGlvbk9ic2VydmVycy5lbmQoKTsKQEAgLTczNiwxMSArNzM4LDExIEBAIHZvaWQgRnJhbWU6
OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoKQogICAgICAgICAgICAgIG1fcGFnZS0+
ZGVjcmVtZW50RnJhbWVDb3VudCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fZG9tV2lu
ZG93KSB7CisvLyBGSVhNRTogVGhpcyB3aWxsIGJlIHNwbGl0IG91dCBvZiBoZXJlIHRvIHRoZSBu
b3RpZmljYXRpb25zIG1vZHVsZS4KICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAg
ICAgIG1fZG9tV2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKKyAgICAgICAgaWYgKG1fZG9t
V2luZG93KQorICAgICAgICAgICAgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmlj
YXRpb25zKG1fZG9tV2luZG93LmdldCgpKTsKICNlbmRpZgotICAgICAgICB9CiAKICAgICAgICAg
SGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1fZGVz
dHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7CiAgICAgICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3Ry
dWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJl
Z2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TdXBwbGVtZW50YWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxlbWVu
dGFibGUuaAppbmRleCA4NGRjOTA2ZTJhZjM0OGEzNGQ4NWI2YjlkODNjNjk3MmVjMmQ2NmUxLi4x
NzJjODRlMjM4YjY2YTI4NjQyMDRkNTFlMjJiYjI2ZTc3YTIzNjhlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmgKQEAgLTQ2LDYgKzQ2LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgaG9zdC0+cHJvdmlkZVN1cHBsZW1lbnQoa2V5LCBzdXBwbGVtZW50KTsKICAgICB9CiAK
KyAgICBzdGF0aWMgdm9pZCByZW1vdmUoU3VwcGxlbWVudGFibGU8VD4qIGhvc3QsIGNvbnN0IEF0
b21pY1N0cmluZyYga2V5KQorICAgIHsKKyAgICAgICAgaG9zdC0+cmVtb3ZlU3VwcGxlbWVudChr
ZXkpOworICAgIH0KKwogICAgIHN0YXRpYyBTdXBwbGVtZW50PFQ+KiBmcm9tKFN1cHBsZW1lbnRh
YmxlPFQ+KiBob3N0LCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBob3N0ID8gaG9zdC0+cmVxdWlyZVN1cHBsZW1lbnQoa2V5KSA6IDA7CkBAIC02MSw2ICs2
NiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fc3VwcGxlbWVudHMuc2V0KGtleSwgc3VwcGxlbWVu
dCk7CiAgICAgfQogCisgICAgdm9pZCByZW1vdmVTdXBwbGVtZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYga2V5KQorICAgIHsKKyAgICAgICAgbV9zdXBwbGVtZW50cy5yZW1vdmUoa2V5KTsKKyAgICB9
CisKICAgICBTdXBwbGVtZW50PFQ+KiByZXF1aXJlU3VwcGxlbWVudChjb25zdCBBdG9taWNTdHJp
bmcmIGtleSkKICAgICB7CiAgICAgICAgIHJldHVybiBtX3N1cHBsZW1lbnRzLmdldChrZXkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131010</attachid>
            <date>2012-03-09 01:50:02 -0800</date>
            <delta_ts>2012-03-09 01:52:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79636-20120309185001.patch</filename>
            <type>text/plain</type>
            <size>31516</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkyZTc2Y2VjNzQ1MDU5
ZmIwNGRkNTk3ZDVjNDE1ZDg2MzcyMDc5Mi4uYzViMjJiYzIzNmM1OWJmN2ZmN2E4YTZlYWUxNTNm
NjllOGQxYzJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTAzLTA4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdl
YktpdCBtb2R1bGFyaXphdGlvbiwgdGhpcyBwYXRjaCBtb3ZlcyBOb3RpZmljYXRpb25zLXJlbGF0
ZWQgQVBJcworICAgICAgICBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvbm90aWZpY2F0aW9ucy8qIChObyBjaGFu
Z2UgaW4gdGVzdCByZXN1bHRzKQorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMue2gsY3BwLGlkbH0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOiBEaXR0by4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJp
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKworICAgICAgICAqIG5vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dOb3Rp
ZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5E
T01XaW5kb3dOb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNl
bnRlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZp
Y2F0aW9uczo6ZnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25z
Ojp3ZWJraXROb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlm
aWNhdGlvbnM6Om5vdGlmaWNhdGlvbkNlbnRlclNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25DZW50ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6Y2xlYXJOb3RpZmljYXRpb25DZW50ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmlj
YXRpb25zKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvd05vdGlmaWNh
dGlvbnMpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGw6IEFkZGVkLgorCisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6Ok5v
dGlmaWNhdGlvbkNlbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6
OmRpc2Nvbm5lY3RGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6
OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChOb3RpZmljYXRpb25DZW50ZXIp
OgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOiBSZW1vdmVkIEVOQUJMRShOT1RJRklD
QVRJT05TKS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6fkRPTVdpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6Y2xlYXIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmlkbDogRGl0dG8uCisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToKKworICAgICAg
ICAqIHBsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmg6IEFkZGVkIHJlbW92ZSgpIG1ldGhvZCwgd2hp
Y2ggcmVtb3ZlcyBhIHN1cHBsZW1lbnQgZW50cnkuCisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVt
ZW50OjpyZW1vdmUpOgorICAgICAgICAoU3VwcGxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
dXBwbGVtZW50YWJsZTo6cmVtb3ZlU3VwcGxlbWVudCk6CisgICAgICAgIChTdXBwbGVtZW50YWJs
ZSk6CisKIDIwMTItMDMtMDggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIxMDUzOTYpOiBEcmFnZ2luZyBhbiBpV29yayBkb2N1bWVudCBpbnRv
IGljbG91ZC5jb20gb3BlbnMgaXQgaW4gdGhlIE1hYyBhcHAgaW5zdGVhZCBvZiB1cGxvYWRpbmcg
aXQgdG8gaWNsb3VkLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1MTc1MGRlMmMxYzJlYWZl
MjVkYjA2N2JiN2MzMWYzNjk3ODY2YTZkLi5kZjgxMGI5NGVkY2ZhYTAyYWU5NGYzNjU3OTJhMmI4
OTc0NGYxYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYyMiwxMiArMTYyMiwxNCBAQCBF
TkRJRiAoKQogCiBJRiAoRU5BQkxFX05PVElGSUNBVElPTlMpCiAgICAgTElTVChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTCisgICAgICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCiAgICAg
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKICAgICAgICAgbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCiAgICAgKQogCiAgICAgTElTVChBUFBFTkQgV2Vi
Q29yZV9JRExfRklMRVMKKyAgICAgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRp
b25zLmlkbAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKICAgICAgICAg
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCiAgICAgKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjQ2MDY4MzNhNTc2ZDhkN2ZiNTgxYzFiMzY1YWY2ZDYwOGQy
MWM2NS4uNjljODBjNDZlNGFkYzhiNGY5MTNlMWRlNjAzMDhkNGMyYjgzYzdmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNTMsNiArMzUzLDcgQEAgQklORElOR19JRExTID0g
XAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
bG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQoV2ViQ29y
ZSkvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0Fi
c3RyYWN0Vmlldy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IGFmNGY1YjUw
Yjg1N2YyMmYxMGI0YzU3YjNkYWQ4ZTFkMjg4MzVhZDguLmU1NTM5MjQ0OWJkMWQ2OTZjMjk1ZjNh
MzRkODBkZmM4YjI1YmRkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTM3NSw2
ICszNzUsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2luc3BlY3Rvci9TY3JpcHRQ
cm9maWxlLmlkbCBcCiAgICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBc
CiAgICAgJCRQV0QvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAg
ICAkJFBXRC9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKICAgICAk
JFBXRC9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgXAogICAgICQkUFdEL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJCRQV0QvcGFnZS9CYXJJbmZvLmlk
bCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzNDc4MmJmODM3OWQ5ZjcxNTlk
N2U4YTc1ZjdmOWNhNTg5YTc5NGQxLi4zNWNiMmI4MDVlZjUzNzA4M2JhMzlmOTA0YzRiMjFmODY2
MTllZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4MjAsNiArMjgyMCw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1h
dGhFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRzLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKaW5kZXggN2ZhNDM0YmMyYTYzOWQ4MDNkMmU0ODdhZWU2ZTRmMTQzYmM1YjA3NS4uNmI0Y2U0
ZjViZDUwMTUwNDM4NjA2MjdhOWVmZGJmZmE3ODdlOGE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC05ODAs
NiArOTgwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNw
cCBcCiAgICAgbG9hZGVyL1RleHRSZXNvdXJjZURlY29kZXIuY3BwIFwKICAgICBsb2FkZXIvVGhy
ZWFkYWJsZUxvYWRlci5jcHAgXAorICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBcCiAgICAgbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKICAgICBub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIFwKQEAgLTIwNzUsNiArMjA3Niw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIG1hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmggXAogICAgIG1h
dGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIFwKICAgICBtYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQu
aCBcCisgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmggXAogICAgIG5v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2VudGVyLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBiZjYzYmYzNDZjZTY0ZDNlMGE4ZWE4MWNlODI3NjQw
NzcxZDY4MzZmLi4wNTU5NWNlMmFlMWY1ZWYxZmNhMTQyZjlkZjZlM2IwYzE3Y2M3ZGFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjQxLDYgKzY0MSw4IEBAIF9fWk43V2ViQ29yZTIxcmVwb3J0
VGhyZWFkVmlvbGF0aW9uRVBLY05TXzIwVGhyZWFkVmlvbGF0aW9uUm91bmRFCiBfX1pON1dlYkNv
cmUyMXJlc291cmNlTG9hZFNjaGVkdWxlckV2CiBfX1pON1dlYkNvcmUyMXNldEdsb2JhbEljb25E
YXRhYmFzZUVQTlNfMTZJY29uRGF0YWJhc2VCYXNlRQogX19aTjdXZWJDb3JlMjFzZXRQbGF0Zm9y
bVN0cmF0ZWdpZXNFUE5TXzE4UGxhdGZvcm1TdHJhdGVnaWVzRQorX19aTjdXZWJDb3JlMjJET01X
aW5kb3dOb3RpZmljYXRpb25zMThyZXNldE5vdGlmaWNhdGlvbnNFUE5TXzlET01XaW5kb3dFCitf
X1pON1dlYkNvcmUyMkRPTVdpbmRvd05vdGlmaWNhdGlvbnMxOXdlYmtpdE5vdGlmaWNhdGlvbnNF
UE5TXzlET01XaW5kb3dFCiBfX1pON1dlYkNvcmUyMlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQyNmNh
blN1c3BlbmRBY3RpdmVET01PYmplY3RzRXYKIF9fWk43V2ViQ29yZTIyYXBwbGljYXRpb25Jc0Fw
cGxlTWFpbEV2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ0JvbGRFdgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDA2YjlmNjEyNmIzZDkwZWFmYzBmYzY3N2E2YWM5OTZiZjdhZDA3N2EuLmM1
NGQyYzFmNTNiN2I3MmUzYzRjNzAxYzYzNDQxOWI0ODExMzg5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTEwNDcsNiArMTA0Nyw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2Zp
bGUuaWRsJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsJywK
ICAgICAgICAgICAgICdsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwnLAor
ICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwnLAog
ICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCcsCiAgICAgICAgICAg
ICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsJywKICAgICAgICAgICAgICdw
YWdlL0Fic3RyYWN0Vmlldy5pZGwnLApAQCAtMjc2OSw2ICsyNzcwLDggQEAKICAgICAgICAgICAg
ICdtYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnbWF0aG1sL01hdGhN
TFRleHRFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50
LmgnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5j
cHAnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5o
JywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAnLAogICAgICAg
ICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgnLAogICAgICAgICAgICAgJ25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDZhYzk3YTUyZWRlNDE1MmFiOWIwNDg1YjEx
YjllNmNhMzQ1Zjk2MGYuLjMzYTAwOWQ5YTM3MzQ1MTIzYTY3YjU4NThiZjdlNTFjNDNhNTAxN2Ug
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01
MzUyMiw2ICs1MzUyMiwxNCBAQAogCQkJTmFtZT0ibm90aWZpY2F0aW9ucyIKIAkJCT4KIAkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXERPTVdpbmRvd05vdGlmaWNh
dGlvbnMuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxub3RpZmljYXRpb25zXERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xOb3Rp
ZmljYXRpb24uY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBjYTRlMmJiNDU3MjlmMWVhMDdmNzM4YjVmZTE4OGUwZGVhNjcyNDEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMu
Y3BwCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5oIgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJET01XaW5kb3cu
aCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5o
IgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9NV2luZG93Tm90aWZpY2F0aW9uczo6RE9NV2lu
ZG93Tm90aWZpY2F0aW9ucygpCit7Cit9CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5ET01X
aW5kb3dOb3RpZmljYXRpb25zKCkKK3sKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBOb3RpZmlj
YXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgbmFtZSwgKCJOb3RpZmljYXRpb25DZW50ZXIiKSk7CisgICAgcmV0dXJu
IG5hbWU7Cit9CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnMqIERPTVdpbmRvd05vdGlmaWNhdGlv
bnM6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCF3aW5kb3ctPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBET01XaW5kb3dOb3Rp
ZmljYXRpb25zKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93Tm90aWZpY2F0aW9u
cyo+KFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20od2luZG93LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVudE5hbWUo
KSkpOworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBzdXBwbGVtZW50ID0gbmV3IERP
TVdpbmRvd05vdGlmaWNhdGlvbnMoKTsKKyAgICAgICAgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRp
b25Db250ZXh0Pjo6cHJvdmlkZVRvKHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBO
b3RpZmljYXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCksIGFkb3B0UHRyKHN1cHBsZW1lbnQp
KTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRl
ciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cq
IHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZnJvbSh3aW5k
b3cpLT5ub3RpZmljYXRpb25DZW50ZXJTaW5nbGV0b24od2luZG93KTsKK30KKworTm90aWZpY2F0
aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25DZW50ZXJTaW5n
bGV0b24oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCFtX25vdGlmaWNhdGlvbkNlbnRl
cikgeworICAgICAgICBpZiAoIXdpbmRvdy0+aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkp
CisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB3
aW5kb3ctPmRvY3VtZW50KCk7CisgICAgICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgICAgICBy
ZXR1cm4gMDsKKworICAgICAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICAg
ICAgaWYgKCFwYWdlKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgTm90aWZpY2F0
aW9uUHJlc2VudGVyKiBwcm92aWRlciA9IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVudEZy
b20ocGFnZSk7CisgICAgICAgIGlmIChwcm92aWRlcikKKyAgICAgICAgICAgIG1fbm90aWZpY2F0
aW9uQ2VudGVyID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUod2luZG93LCBwcm92aWRlcik7
CisgICAgfQorICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsKK30KKworTm90
aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25DZW50
ZXIoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uQ2VudGVy
LmdldCgpOworfQorCit2b2lkIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmNsZWFyTm90aWZpY2F0
aW9uQ2VudGVyKERPTVdpbmRvdyogd2luZG93KQoreworICAgIG1fbm90aWZpY2F0aW9uQ2VudGVy
ID0gMDsKKyAgICByZXR1cm47Cit9CisKK3ZvaWQgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVz
ZXROb3RpZmljYXRpb25zKERPTVdpbmRvdyogd2luZG93KQoreworICAgIGlmICghd2luZG93LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBET01XaW5kb3dO
b3RpZmljYXRpb25zKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93Tm90aWZpY2F0
aW9ucyo+KFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20od2luZG93LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVudE5h
bWUoKSkpOworICAgIGlmICghc3VwcGxlbWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTm90
aWZpY2F0aW9uQ2VudGVyKiBub3RpZmljYXRpb25DZW50ZXIgPSBzdXBwbGVtZW50LT5ub3RpZmlj
YXRpb25DZW50ZXIod2luZG93KTsKKyAgICBpZiAoIW5vdGlmaWNhdGlvbkNlbnRlcikgeworICAg
ICAgICBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+OjpyZW1vdmUod2luZG93LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVudE5h
bWUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBub3RpZmljYXRpb25DZW50ZXIt
PmRpc2Nvbm5lY3RGcmFtZSgpOworICAgIHN1cHBsZW1lbnQtPmNsZWFyTm90aWZpY2F0aW9uQ2Vu
dGVyKHdpbmRvdyk7CisgICAgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6cmVt
b3ZlKHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBOb3RpZmljYXRpb25DZW50ZXI6
OnN1cHBsZW1lbnROYW1lKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25v
dGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjIyY2E3MDk4
MGU1YmE1ZWYzZTQ2NjJiMTc5ZTc1MjA4YWE0ODhlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oCkBAIC0wLDAg
KzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
RE9NV2luZG93Tm90aWZpY2F0aW9uc19oCisjZGVmaW5lIERPTVdpbmRvd05vdGlmaWNhdGlvbnNf
aAorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgRE9NV2luZG93OworY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOworY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgRE9NV2luZG93Tm90aWZpY2F0aW9ucyA6IHB1
YmxpYyBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5ET01XaW5kb3dOb3RpZmljYXRpb25zKCk7CisKKyAgICBzdGF0aWMgTm90aWZpY2F0
aW9uQ2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25zKERPTVdpbmRvdyopOworICAgIHN0YXRpYyBE
T01XaW5kb3dOb3RpZmljYXRpb25zKiBmcm9tKERPTVdpbmRvdyopOworICAgIC8vIFJlbmRlcnMg
d2Via2l0Tm90aWZpY2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRpc2Nvbm5lY3Rz
CisgICAgLy8gaWYgZnJvbSBlbWJlZGRlci1wcm92aWRlZCBOb3RpZmljYXRpb25QcmVzZW50ZXIu
CisgICAgc3RhdGljIHZvaWQgcmVzZXROb3RpZmljYXRpb25zKERPTVdpbmRvdyopOworICAgIHN0
YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisKK3ByaXZhdGU6Cisg
ICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucygpOworCisgICAgTm90aWZpY2F0aW9uQ2VudGVyKiBu
b3RpZmljYXRpb25DZW50ZXJTaW5nbGV0b24oRE9NV2luZG93Kik7CisgICAgTm90aWZpY2F0aW9u
Q2VudGVyKiBub3RpZmljYXRpb25DZW50ZXIoRE9NV2luZG93Kik7CisgICAgdm9pZCBjbGVhck5v
dGlmaWNhdGlvbkNlbnRlcihET01XaW5kb3cqKTsKKworICAgIFJlZlB0cjxOb3RpZmljYXRpb25D
ZW50ZXI+IG1fbm90aWZpY2F0aW9uQ2VudGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNlbmRpZiAvLyBET01XaW5k
b3dOb3RpZmljYXRpb25zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNzYwN2QzMGQ5YjY4
NzY4M2E2ODkzZDUyZjA3MzgwNzkyZWYxZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCkBAIC0wLDAgKzEs
MzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBp
bnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1OT1RJRklDQVRJT05TLAorICAgICAgICBT
dXBwbGVtZW50YWw9RE9NV2luZG93CisgICAgXSBET01XaW5kb3dOb3RpZmljYXRpb25zIHsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5vdGlmaWNhdGlv
bkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAppbmRleCA3MTE0
NmFmOGRhMzcyM2QxNDcxNWVmY2I1ZDFhYmVhYzQ4ZTM3MTU5Li5jYzYwYjE0MmM0YjA3Nzk5NDY3
NTAxMTQzM2UzZjA1ZjdlNmY5NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCkBAIC0zNCwxMyArMzQsMjMgQEAKIAogI2lu
Y2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisj
aW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogI2luY2x1ZGUgIldv
cmtlckNvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitQYXNzUmVmUHRyPE5vdGlm
aWNhdGlvbkNlbnRlcj4gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoRE9NV2luZG93KiB3aW5k
b3csIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJlc2VudGVyKQoreworICAgIFJlZlB0cjxOb3Rp
ZmljYXRpb25DZW50ZXI+IG5vdGlmaWNhdGlvbkNlbnRlcihhZG9wdFJlZihuZXcgTm90aWZpY2F0
aW9uQ2VudGVyKHdpbmRvdywgcHJlc2VudGVyKSkpOworICAgIG5vdGlmaWNhdGlvbkNlbnRlci0+
c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIG5vdGlmaWNhdGlvbkNlbnRlci5yZWxlYXNl
KCk7Cit9CisKIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBOb3RpZmljYXRpb25DZW50
ZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3RpZmljYXRpb25Q
cmVzZW50ZXIqIHByZXNlbnRlcikKIHsKICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBu
b3RpZmljYXRpb25DZW50ZXIoYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvbkNlbnRlcihjb250ZXh0
LCBwcmVzZW50ZXIpKSk7CkBAIC00OCw5ICs1OCwxNiBAQCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlv
bkNlbnRlcj4gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dAogICAgIHJldHVybiBub3RpZmljYXRpb25DZW50ZXIucmVsZWFzZSgpOwogfQogCitOb3RpZmlj
YXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvbkNlbnRlcihET01XaW5kb3cqIHdpbmRvdywgTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIpCisgICAgOiBBY3RpdmVET01PYmplY3Qod2luZG93
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMpCisgICAgLCBET01XaW5kb3dQcm9wZXJ0
eSh3aW5kb3ctPmZyYW1lKCkpCisgICAgLCBtX25vdGlmaWNhdGlvblByZXNlbnRlcihwcmVzZW50
ZXIpCisgICAgLCBtX3dpbmRvdyh3aW5kb3cpIHsgfQorCiBOb3RpZmljYXRpb25DZW50ZXI6Ok5v
dGlmaWNhdGlvbkNlbnRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3RpZmlj
YXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcikKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0
LCB0aGlzKQotICAgICwgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIocHJlc2VudGVyKSB7fQorICAg
ICwgRE9NV2luZG93UHJvcGVydHkoMCkKKyAgICAsIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyKHBy
ZXNlbnRlcikgeyB9CiAKIGludCBOb3RpZmljYXRpb25DZW50ZXI6OmNoZWNrUGVybWlzc2lvbigp
CiB7CkBAIC03Miw5ICs4OSwxOSBAQCB2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6ZGlzY29ubmVj
dEZyYW1lKCkKICAgICAvLyB0aGlzIG1ldGhvZCBpcyBpbnZva2VkIG1vcmUgdGhlbiBvbmNlLgog
ICAgIGlmICghbV9ub3RpZmljYXRpb25QcmVzZW50ZXIpCiAgICAgICAgIHJldHVybjsKKwogICAg
IG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLT5jYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBtX25vdGlmaWNhdGlvblByZXNlbnRlci0+Y2xl
YXJOb3RpZmljYXRpb25zKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgbV9ub3RpZmlj
YXRpb25QcmVzZW50ZXIgPSAwOworCisgICAgaWYgKG1fd2luZG93KQorICAgICAgICBET01XaW5k
b3dOb3RpZmljYXRpb25zOjpyZXNldE5vdGlmaWNhdGlvbnMobV93aW5kb3cpOworfQorCit2b2lk
IE5vdGlmaWNhdGlvbkNlbnRlcjo6d2lsbERldGFjaFBhZ2UoKQoreworICAgIGlmIChtX3dpbmRv
dykKKyAgICAgICAgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmljYXRpb25zKG1f
d2luZG93KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKaW5kZXggNDAyY2NiYTkzOGIy
ZmVlMDgxZjhhNmE4ZDdiZWNlZmY3OGNjMjY5Mi4uOTVhNzkyYzNhNmNhMGQ2OGJkNTU3MTE5NDNm
MWE0MGZiZTYxMmQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25DZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNlbnRlci5oCkBAIC0zMiwxMCArMzIsMTIgQEAKICNpZm5kZWYgTm90aWZpY2F0
aW9uQ2VudGVyX2gKICNkZWZpbmUgTm90aWZpY2F0aW9uQ2VudGVyX2gKIAorI2luY2x1ZGUgIkRP
TVdpbmRvd1Byb3BlcnR5LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvbi5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRlbnRzLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxl
LmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ2LDEwICs0OCwxMyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7CitjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgVm9pZENhbGxiYWNrOwogCi1jbGFzcyBOb3RpZmlj
YXRpb25DZW50ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb3RpZmljYXRpb25DZW50ZXI+LCBwdWJs
aWMgQWN0aXZlRE9NT2JqZWN0IHsKK2NsYXNzIE5vdGlmaWNhdGlvbkNlbnRlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPE5vdGlmaWNhdGlvbkNlbnRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1
YmxpYyBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+LCBwdWJsaWMgRE9NV2luZG93
UHJvcGVydHkgewogcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBs
ZW1lbnROYW1lKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBj
cmVhdGUoRE9NV2luZG93KiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOwogCiAgICAgUGFzc1JlZlB0cjxOb3RpZmljYXRp
b24+IGNyZWF0ZUhUTUxOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiBVUkksIEV4Y2VwdGlvbkNv
ZGUmIGVjKQpAQCAtODEsMTEgKzg2LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RQZXJt
aXNzaW9uKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPik7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RG
cmFtZSgpOworICAgIHZvaWQgd2lsbERldGFjaFBhZ2UoKTsKIAogcHJpdmF0ZToKKyAgICBOb3Rp
ZmljYXRpb25DZW50ZXIoRE9NV2luZG93KiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CiAgICAg
Tm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRpb25Q
cmVzZW50ZXIqKTsKIAogICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbV9ub3RpZmljYXRpb25Q
cmVzZW50ZXI7CisgICAgRE9NV2luZG93KiBtX3dpbmRvdzsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA1Njc0MzQzMmQ2YjgzYmZk
ZTFjMjAzNTg3OTY3ZmJmMWNhN2FjNmNlLi42NmRjMzM1ODU0Mzk4YjQ3MmU1ZjVmMjMyZTMxZTcw
NGZkYTg3ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03Miw4ICs3Miw2IEBA
CiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQu
aCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25DZW50ZXIu
aCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQu
aCIKQEAgLTQxNSw5ICs0MTMsNiBAQCBET01XaW5kb3c6On5ET01XaW5kb3coKQogICAgIEFTU0VS
VCghbV9zZXNzaW9uU3RvcmFnZSk7CiAgICAgQVNTRVJUKCFtX2xvY2FsU3RvcmFnZSk7CiAgICAg
QVNTRVJUKCFtX2FwcGxpY2F0aW9uQ2FjaGUpOwotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQot
ICAgIEFTU0VSVCghbV9ub3RpZmljYXRpb25zKTsKLSNlbmRpZgogI2lmIEVOQUJMRShCTE9CKQog
ICAgIEFTU0VSVCghbV9kb21VUkwpOwogI2VuZGlmCkBAIC00NzMsMTIgKzQ2OCw2IEBAIHZvaWQg
RE9NV2luZG93Ojp3aWxsRGV0YWNoUGFnZSgpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChtX2ZyYW1lLCB0aGlzKTsKIAotI2lmIEVOQUJMRShO
T1RJRklDQVRJT05TKQotICAgIC8vIENsZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVxdWVzdHMgaW52
b2x2ZXMgYWNjZXNzaW5nIHRoZSBjbGllbnQgc28gaXQgbXVzdCBiZSBkb25lCi0gICAgLy8gYmVm
b3JlIHRoZSBmcmFtZSBpcyBkZXRhY2hlZC4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNl
bmRpZgotCiAgICAgSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBzdG9wID0g
bV9wcm9wZXJ0aWVzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+
OjppdGVyYXRvciBpdCA9IG1fcHJvcGVydGllcy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQog
ICAgICAgICAoKml0KS0+d2lsbERldGFjaFBhZ2UoKTsKQEAgLTUyMSwxMSArNTEwLDYgQEAgdm9p
ZCBET01XaW5kb3c6OmNsZWFyKCkKICAgICBtX3Nlc3Npb25TdG9yYWdlID0gMDsKICAgICBtX2xv
Y2FsU3RvcmFnZSA9IDA7CiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlID0gMDsKLSNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKLSAgICAvLyBGSVhNRTogTm90aWZpY2F0aW9ucyBzaG91bGRuJ3QgaGF2
ZSBkaWZmZXJlbnQgZGlzY29ubmVjdGlvbiBsb2dpYyB0aGFuCi0gICAgLy8gdGhlIHJlc3Qgb2Yg
dGhlIERPTVdpbmRvd1Byb3BlcnRpZXMuCi0gICAgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5k
aWYKICNpZiBFTkFCTEUoQkxPQikKICAgICBtX2RvbVVSTCA9IDA7CiAjZW5kaWYKQEAgLTcwMiwz
NiArNjg2LDYgQEAgU3RvcmFnZSogRE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UoRXhjZXB0aW9uQ29k
ZSYgZWMpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9jYWxTdG9yYWdlLmdldCgpOwogfQogCi0jaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpCi1Ob3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRvdzo6d2Vi
a2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0Ci17Ci0gICAgaWYgKG1fbm90aWZpY2F0aW9ucyB8fCAh
aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCi0gICAgICAgIHJldHVybiBtX25vdGlmaWNh
dGlvbnMuZ2V0KCk7Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgp
OwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIAotICAgIFBhZ2Uq
IHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJu
IDA7Ci0KLSAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByb3ZpZGVyID0gTm90aWZpY2F0aW9u
Q29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKLSAgICBpZiAocHJvdmlkZXIpIAotICAgICAg
ICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShkb2N1bWVudCwg
cHJvdmlkZXIpOyAgICAKLSAgICAgIAotICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMuZ2V0KCk7
Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpyZXNldE5vdGlmaWNhdGlvbnMoKQotewotICAgIGlmICgh
bV9ub3RpZmljYXRpb25zKQotICAgICAgICByZXR1cm47Ci0gICAgbV9ub3RpZmljYXRpb25zLT5k
aXNjb25uZWN0RnJhbWUoKTsKLSAgICBtX25vdGlmaWNhdGlvbnMgPSAwOwotfQotI2VuZGlmCi0K
IHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIGNvbnN0IFN0cmluZyYgdGFyZ2V0T3Jp
Z2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTWVzc2Fn
ZVBvcnRBcnJheSBwb3J0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDgxNjY0OGY4ZDQx
YWYzNTk2ZDA3YmQ2OTQ4YWQyMjI0NDZhN2VmNDMuLmViNTliOTIzOTc0YzM2ZWRkOWYzNmI5Yzlh
YTIyOTJhNTE3ZTBkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtNTYsNyArNTYsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiAgICAgY2xh
c3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgTm90aWZpY2F0aW9uQ2Vu
dGVyOwogICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAgY2xhc3Mg
UG9zdE1lc3NhZ2VUaW1lcjsKQEAgLTM1NCwxMyArMzUzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBTdG9yYWdlKiBzZXNzaW9uU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29uc3Q7
CiAgICAgICAgIFN0b3JhZ2UqIGxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAK
LSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgTm90aWZpY2F0aW9uQ2VudGVyKiB3
ZWJraXROb3RpZmljYXRpb25zKCkgY29uc3Q7Ci0gICAgICAgIC8vIFJlbmRlcnMgd2Via2l0Tm90
aWZpY2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRpc2Nvbm5lY3RzCi0gICAgICAg
IC8vIGlmIGZyb20gZW1iZWRkZXItcHJvdmlkZWQgTm90aWZpY2F0aW9uUHJlc2VudGVyLgotICAg
ICAgICB2b2lkIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoUVVP
VEEpCiAgICAgICAgIFN0b3JhZ2VJbmZvKiB3ZWJraXRTdG9yYWdlSW5mbygpIGNvbnN0OwogI2Vu
ZGlmCkBAIC00NDMsMTAgKzQzNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0
YWJsZSBSZWZQdHI8U3RvcmFnZT4gbV9sb2NhbFN0b3JhZ2U7CiAgICAgICAgIG11dGFibGUgUmVm
UHRyPERPTUFwcGxpY2F0aW9uQ2FjaGU+IG1fYXBwbGljYXRpb25DYWNoZTsKIAotI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQotICAgICAgICBtdXRhYmxlIFJlZlB0cjxOb3RpZmljYXRpb25DZW50
ZXI+IG1fbm90aWZpY2F0aW9uczsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAg
ICAgICAgIG11dGFibGUgUmVmUHRyPFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMTQwODZiZjIwZTllNDk3NmFhODgxMjNi
ODYwYzA3YjQ1OTNhNzlhZC4uMGVmYTdiZjEyNDg5MTA4YmFhNTM4N2UyMTcxN2VmNjM2Y2JmMWMy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMTcwLDEwICsxNzAsNiBAQCBtb2R1
bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRp
bWVdIFN0b3JhZ2UgbG9jYWxTdG9yYWdlCiAgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAmJiBFTkFCTEVf
Tk9USUZJQ0FUSU9OUwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVu
dGltZV0gTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7Ci0jZW5kaWYKLQog
I2lmIGRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5BQkxFX09SSUVOVEFU
SU9OX0VWRU5UUwogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24g
aW4gZGVncmVlcy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFpZ2h0
IHVwOyAtOTAgaXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAppbmRleCBhZDljYWI4ZTlkMTNhMWY1YmI3NTgzMTdiYmM3OTYyM2NiZTZh
YzQwLi4yYzU0ZGMxNmU5NGIxNzhiZTU1MTlmYzlhMTQ2OWQ1ODFmMTcwODBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgog
I2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgi
CisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
VHlwZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdUZXh0LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50
LmgiCkBAIC02ODcsOSArNjg4LDEwIEBAIHZvaWQgRnJhbWU6OndpbGxEZXRhY2hQYWdlKCkKICAg
ICBpZiAoRnJhbWUqIHBhcmVudCA9IHRyZWUoKS0+cGFyZW50KCkpCiAgICAgICAgIHBhcmVudC0+
bG9hZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7CiAKKy8vIEZJWE1FOiBUaGlzIHdpbGwgYmUg
c3BsaXQgb3V0IG9mIGhlcmUgdG8gdGhlIG5vdGlmaWNhdGlvbnMgbW9kdWxlLgogI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQogICAgIGlmIChtX2RvbVdpbmRvdykKLSAgICAgICAgbV9kb21XaW5k
b3ctPnJlc2V0Tm90aWZpY2F0aW9ucygpOworICAgICAgICBET01XaW5kb3dOb3RpZmljYXRpb25z
OjpyZXNldE5vdGlmaWNhdGlvbnMobV9kb21XaW5kb3cuZ2V0KCkpOwogI2VuZGlmCiAKICAgICBI
YXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9wID0gbV9kZXN0
cnVjdGlvbk9ic2VydmVycy5lbmQoKTsKQEAgLTczNiwxMSArNzM4LDExIEBAIHZvaWQgRnJhbWU6
OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoKQogICAgICAgICAgICAgIG1fcGFnZS0+
ZGVjcmVtZW50RnJhbWVDb3VudCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fZG9tV2lu
ZG93KSB7CisvLyBGSVhNRTogVGhpcyB3aWxsIGJlIHNwbGl0IG91dCBvZiBoZXJlIHRvIHRoZSBu
b3RpZmljYXRpb25zIG1vZHVsZS4KICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAg
ICAgIG1fZG9tV2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKKyAgICAgICAgaWYgKG1fZG9t
V2luZG93KQorICAgICAgICAgICAgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmlj
YXRpb25zKG1fZG9tV2luZG93LmdldCgpKTsKICNlbmRpZgotICAgICAgICB9CiAKICAgICAgICAg
SGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1fZGVz
dHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7CiAgICAgICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3Ry
dWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJl
Z2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TdXBwbGVtZW50YWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxlbWVu
dGFibGUuaAppbmRleCA4NGRjOTA2ZTJhZjM0OGEzNGQ4NWI2YjlkODNjNjk3MmVjMmQ2NmUxLi4x
NzJjODRlMjM4YjY2YTI4NjQyMDRkNTFlMjJiYjI2ZTc3YTIzNjhlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmgKQEAgLTQ2LDYgKzQ2LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgaG9zdC0+cHJvdmlkZVN1cHBsZW1lbnQoa2V5LCBzdXBwbGVtZW50KTsKICAgICB9CiAK
KyAgICBzdGF0aWMgdm9pZCByZW1vdmUoU3VwcGxlbWVudGFibGU8VD4qIGhvc3QsIGNvbnN0IEF0
b21pY1N0cmluZyYga2V5KQorICAgIHsKKyAgICAgICAgaG9zdC0+cmVtb3ZlU3VwcGxlbWVudChr
ZXkpOworICAgIH0KKwogICAgIHN0YXRpYyBTdXBwbGVtZW50PFQ+KiBmcm9tKFN1cHBsZW1lbnRh
YmxlPFQ+KiBob3N0LCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBob3N0ID8gaG9zdC0+cmVxdWlyZVN1cHBsZW1lbnQoa2V5KSA6IDA7CkBAIC02MSw2ICs2
NiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fc3VwcGxlbWVudHMuc2V0KGtleSwgc3VwcGxlbWVu
dCk7CiAgICAgfQogCisgICAgdm9pZCByZW1vdmVTdXBwbGVtZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYga2V5KQorICAgIHsKKyAgICAgICAgbV9zdXBwbGVtZW50cy5yZW1vdmUoa2V5KTsKKyAgICB9
CisKICAgICBTdXBwbGVtZW50PFQ+KiByZXF1aXJlU3VwcGxlbWVudChjb25zdCBBdG9taWNTdHJp
bmcmIGtleSkKICAgICB7CiAgICAgICAgIHJldHVybiBtX3N1cHBsZW1lbnRzLmdldChrZXkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIgYi9Tb3VyY2UvV2Vi
S2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgppbmRleCA0NTdhMDYzZTBiODNiNzA0N2RlZjQ1YmVhY2Rm
ZWY5MzJhY2RkMWI3Li5jN2NhMTY1MDhmNzk2YThlNjRmYmM4ZjE4Y2NkYzA2MzkyMzdiNDM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgpAQCAtOTg4LDYgKzk4OCw4IEBAIF9fWk43V2ViQ29y
ZTE2UmVzb3VyY2VSZXNwb25zZWFTRVJLUzBfCiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9u
c2VCYXNlYVNFUktTMF8KIF9fWk43V2ViQ29yZTE2UmVzb3VyY2VSZXNwb25zZUQyRXYKIF9fWk43
V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2VEMkV2CitfX1pON1dlYkNvcmUyMkRPTVdpbmRv
d05vdGlmaWNhdGlvbnMxOHJlc2V0Tm90aWZpY2F0aW9uc0VQTlNfOURPTVdpbmRvd0UKK19fWk43
V2ViQ29yZTIyRE9NV2luZG93Tm90aWZpY2F0aW9uczE5d2Via2l0Tm90aWZpY2F0aW9uc0VQTlNf
OURPTVdpbmRvd0UKIF9fWk43Q29yZUlQQzE4Y2FsbE1lbWJlckZ1bmN0aW9uSU42V2ViS2l0MTJX
ZWJQYWdlUHJveHlFTVMyX0Z2eXlSS043V2ViQ29yZTE1UmVzb3VyY2VSZXF1ZXN0RVJLTlMzXzE2
UmVzb3VyY2VSZXNwb25zZUVFeXlTNF9TN19FRXZSS05TXzEwQXJndW1lbnRzNElUMV9UMl9UM19U
NF9FRVBUX1QwXwogX19aTjZXZWJLaXQxMldlYlBhZ2VQcm94eTI1ZGlkU2VuZFJlcXVlc3RGb3JS
ZXNvdXJjZUV5eVJLTjdXZWJDb3JlMTVSZXNvdXJjZVJlcXVlc3RFUktOUzFfMTZSZXNvdXJjZVJl
c3BvbnNlRQogX19aTjZXZWJLaXQyMVdlYlJlc291cmNlTG9hZENsaWVudDI1ZGlkU2VuZFJlcXVl
c3RGb3JSZXNvdXJjZUVQTlNfMTJXZWJQYWdlUHJveHlFUE5TXzEzV2ViRnJhbWVQcm94eUV5UktO
N1dlYkNvcmUxNVJlc291cmNlUmVxdWVzdEVSS05TNV8xNlJlc291cmNlUmVzcG9uc2VFCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131011</attachid>
            <date>2012-03-09 01:52:39 -0800</date>
            <delta_ts>2012-03-11 18:08:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79636-20120309185238.patch</filename>
            <type>text/plain</type>
            <size>32431</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkyZTc2Y2VjNzQ1MDU5
ZmIwNGRkNTk3ZDVjNDE1ZDg2MzcyMDc5Mi4uMWQ1NjViYzNjNGU4ZGQyYWViMWZkM2U3YTg5OWM1
YTg5N2Q4YTlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDEyLTAzLTA4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdl
YktpdCBtb2R1bGFyaXphdGlvbiwgdGhpcyBwYXRjaCBtb3ZlcyBOb3RpZmljYXRpb25zLXJlbGF0
ZWQgQVBJcworICAgICAgICBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvbm90aWZpY2F0aW9ucy8qIChObyBjaGFu
Z2UgaW4gdGVzdCByZXN1bHRzKQorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMue2gsY3BwLGlkbH0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOiBEaXR0by4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJp
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKworICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOiBBZGRlZCBtYW5nbGVkIHNpZ25hdHVyZXMgb2YgcmVzZXROb3RpZmljYXRpb25zKCkgYW5k
IHdlYmtpdE5vdGlmaWNhdGlvbnMoKS4KKworICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dOb3RpZmljYXRpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5ET01XaW5kb3dO
b3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6c3Vw
cGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6
ZnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjp3ZWJraXRO
b3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6
Om5vdGlmaWNhdGlvbkNlbnRlclNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25DZW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Tm90aWZpY2F0aW9uczo6Y2xlYXJOb3RpZmljYXRpb25DZW50ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmljYXRpb25zKToK
KyAgICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvd05vdGlmaWNhdGlvbnMpOgor
ICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGw6IEFkZGVk
LgorCisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlv
bkNlbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6OmRpc2Nvbm5l
Y3RGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6OndpbGxEZXRh
Y2hQYWdlKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChOb3RpZmljYXRpb25DZW50ZXIpOgorCisgICAg
ICAgICogcGFnZS9ET01XaW5kb3cuY3BwOiBSZW1vdmVkIEVOQUJMRShOT1RJRklDQVRJT05TKS4K
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6fkRPTVdpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6Y2xlYXIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmlkbDogRGl0dG8uCisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToKKworICAgICAgICAqIHBsYXRm
b3JtL1N1cHBsZW1lbnRhYmxlLmg6IEFkZGVkIHJlbW92ZSgpIG1ldGhvZCwgd2hpY2ggcmVtb3Zl
cyBhIHN1cHBsZW1lbnQgZW50cnkuCisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVtZW50OjpyZW1v
dmUpOgorICAgICAgICAoU3VwcGxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVtZW50
YWJsZTo6cmVtb3ZlU3VwcGxlbWVudCk6CisgICAgICAgIChTdXBwbGVtZW50YWJsZSk6CisKIDIw
MTItMDMtMDggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKHIxMDUzOTYpOiBEcmFnZ2luZyBhbiBpV29yayBkb2N1bWVudCBpbnRvIGljbG91ZC5j
b20gb3BlbnMgaXQgaW4gdGhlIE1hYyBhcHAgaW5zdGVhZCBvZiB1cGxvYWRpbmcgaXQgdG8gaWNs
b3VkLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDBiODlkMTYxODQ0ZWRiYjI4NmQwYWFjYjhjNmFlY2VjNmNi
ODIxYjkuLmIxZDVjZmFkYjhlNjNlMTE1ZWNkZTNmOWQ1MzQ5ZTQ4ZTFkYWUwNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0wOSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBOb3RpZmljYXRpb25zIEFQSXMgZnJvbSBET01X
aW5kb3cuaWRsIHRvIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYzNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBXZWJLaXQgbW9kdWxhcml6YXRpb24s
IHRoaXMgcGF0Y2ggbW92ZXMgTm90aWZpY2F0aW9ucy1yZWxhdGVkIEFQSXMKKyAgICAgICAgZnJv
bSBET01XaW5kb3cuaWRsIHRvIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsLgorCisgICAgICAg
ICogbWFjL1dlYktpdDIub3JkZXI6IEFkZGVkIG1hbmdsZWQgc2lnbmF0dXJlcyBvZiByZXNldE5v
dGlmaWNhdGlvbnMoKSBhbmQgd2Via2l0Tm90aWZpY2F0aW9ucygpLgorCiAyMDEyLTAzLTA4ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1hYyBidWlsZCBmaXgg
Zm9yIG1pY3JvIGRhdGEgQVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1MTc1MGRlMmMxYzJl
YWZlMjVkYjA2N2JiN2MzMWYzNjk3ODY2YTZkLi5kZjgxMGI5NGVkY2ZhYTAyYWU5NGYzNjU3OTJh
MmI4OTc0NGYxYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYyMiwxMiArMTYyMiwxNCBA
QCBFTkRJRiAoKQogCiBJRiAoRU5BQkxFX05PVElGSUNBVElPTlMpCiAgICAgTElTVChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCiAg
ICAgICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKICAgICAgICAg
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCiAgICAgKQogCiAgICAgTElTVChBUFBFTkQg
V2ViQ29yZV9JRExfRklMRVMKKyAgICAgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmlj
YXRpb25zLmlkbAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKICAgICAg
ICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCiAgICAgKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjQ2MDY4MzNhNTc2ZDhkN2ZiNTgxYzFiMzY1YWY2ZDYw
OGQyMWM2NS4uNjljODBjNDZlNGFkYzhiNGY5MTNlMWRlNjAzMDhkNGMyYjgzYzdmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNTMsNiArMzUzLDcgQEAgQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQoV2Vi
Q29yZSkvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdl
L0Fic3RyYWN0Vmlldy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IGFmNGY1
YjUwYjg1N2YyMmYxMGI0YzU3YjNkYWQ4ZTFkMjg4MzVhZDguLmU1NTM5MjQ0OWJkMWQ2OTZjMjk1
ZjNhMzRkODBkZmM4YjI1YmRkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTM3
NSw2ICszNzUsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2luc3BlY3Rvci9TY3Jp
cHRQcm9maWxlLmlkbCBcCiAgICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlk
bCBcCiAgICAgJCRQV0QvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwK
KyAgICAkJFBXRC9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKICAg
ICAkJFBXRC9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgXAogICAgICQkUFdEL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJCRQV0QvcGFnZS9CYXJJbmZv
LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzNDc4MmJmODM3OWQ5Zjcx
NTlkN2U4YTc1ZjdmOWNhNTg5YTc5NGQxLi4zNWNiMmI4MDVlZjUzNzA4M2JhMzlmOTA0YzRiMjFm
ODY2MTllZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4MjAsNiArMjgy
MCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TE1hdGhFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVu
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBc
CiAJU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRzLmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKaW5kZXggN2ZhNDM0YmMyYTYzOWQ4MDNkMmU0ODdhZWU2ZTRmMTQzYmM1YjA3NS4uNmI0
Y2U0ZjViZDUwMTUwNDM4NjA2MjdhOWVmZGJmZmE3ODdlOGE5MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC05
ODAsNiArOTgwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL1N1YnJlc291cmNlTG9hZGVy
LmNwcCBcCiAgICAgbG9hZGVyL1RleHRSZXNvdXJjZURlY29kZXIuY3BwIFwKICAgICBsb2FkZXIv
VGhyZWFkYWJsZUxvYWRlci5jcHAgXAorICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZp
Y2F0aW9ucy5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBcCiAgICAg
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKICAgICBub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIFwKQEAgLTIwNzUsNiArMjA3Niw3IEBAIEhFQURF
UlMgKz0gXAogICAgIG1hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmggXAogICAg
IG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIFwKICAgICBtYXRobWwvTWF0aE1MVGV4dEVsZW1l
bnQuaCBcCisgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmggXAogICAg
IG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uQ2VudGVyLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVy
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBiZjYzYmYzNDZjZTY0ZDNlMGE4ZWE4MWNlODI3
NjQwNzcxZDY4MzZmLi4wNTU5NWNlMmFlMWY1ZWYxZmNhMTQyZjlkZjZlM2IwYzE3Y2M3ZGFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjQxLDYgKzY0MSw4IEBAIF9fWk43V2ViQ29yZTIxcmVw
b3J0VGhyZWFkVmlvbGF0aW9uRVBLY05TXzIwVGhyZWFkVmlvbGF0aW9uUm91bmRFCiBfX1pON1dl
YkNvcmUyMXJlc291cmNlTG9hZFNjaGVkdWxlckV2CiBfX1pON1dlYkNvcmUyMXNldEdsb2JhbElj
b25EYXRhYmFzZUVQTlNfMTZJY29uRGF0YWJhc2VCYXNlRQogX19aTjdXZWJDb3JlMjFzZXRQbGF0
Zm9ybVN0cmF0ZWdpZXNFUE5TXzE4UGxhdGZvcm1TdHJhdGVnaWVzRQorX19aTjdXZWJDb3JlMjJE
T01XaW5kb3dOb3RpZmljYXRpb25zMThyZXNldE5vdGlmaWNhdGlvbnNFUE5TXzlET01XaW5kb3dF
CitfX1pON1dlYkNvcmUyMkRPTVdpbmRvd05vdGlmaWNhdGlvbnMxOXdlYmtpdE5vdGlmaWNhdGlv
bnNFUE5TXzlET01XaW5kb3dFCiBfX1pON1dlYkNvcmUyMlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQy
NmNhblN1c3BlbmRBY3RpdmVET01PYmplY3RzRXYKIF9fWk43V2ViQ29yZTIyYXBwbGljYXRpb25J
c0FwcGxlTWFpbEV2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ0JvbGRFdgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IDA2YjlmNjEyNmIzZDkwZWFmYzBmYzY3N2E2YWM5OTZiZjdhZDA3N2Eu
LmM1NGQyYzFmNTNiN2I3MmUzYzRjNzAxYzYzNDQxOWI0ODExMzg5ZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTEwNDcsNiArMTA0Nyw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFBy
b2ZpbGUuaWRsJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRs
JywKICAgICAgICAgICAgICdsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwn
LAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwn
LAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCcsCiAgICAgICAg
ICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsJywKICAgICAgICAgICAg
ICdwYWdlL0Fic3RyYWN0Vmlldy5pZGwnLApAQCAtMjc2OSw2ICsyNzcwLDggQEAKICAgICAgICAg
ICAgICdtYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnbWF0aG1sL01h
dGhNTFRleHRFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVt
ZW50LmgnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5jcHAnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAnLAogICAg
ICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgnLAogICAgICAgICAgICAgJ25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDZhYzk3YTUyZWRlNDE1MmFiOWIwNDg1
YjExYjllNmNhMzQ1Zjk2MGYuLjMzYTAwOWQ5YTM3MzQ1MTIzYTY3YjU4NThiZjdlNTFjNDNhNTAx
N2UgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC01MzUyMiw2ICs1MzUyMiwxNCBAQAogCQkJTmFtZT0ibm90aWZpY2F0aW9ucyIKIAkJCT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXERPTVdpbmRvd05vdGlm
aWNhdGlvbnMuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxub3RpZmljYXRpb25zXERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xO
b3RpZmljYXRpb24uY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBjYTRlMmJiNDU3MjlmMWVhMDdmNzM4YjVmZTE4OGUwZGVhNjcyNDEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlv
bnMuY3BwCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5oIgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJET01XaW5k
b3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRl
ci5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9NV2luZG93Tm90aWZpY2F0aW9uczo6RE9N
V2luZG93Tm90aWZpY2F0aW9ucygpCit7Cit9CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5E
T01XaW5kb3dOb3RpZmljYXRpb25zKCkKK3sKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBOb3Rp
ZmljYXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJOb3RpZmljYXRpb25DZW50ZXIiKSk7CisgICAgcmV0
dXJuIG5hbWU7Cit9CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnMqIERPTVdpbmRvd05vdGlmaWNh
dGlvbnM6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCF3aW5kb3ctPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBET01XaW5kb3dO
b3RpZmljYXRpb25zKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93Tm90aWZpY2F0
aW9ucyo+KFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20od2luZG93LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVudE5h
bWUoKSkpOworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBzdXBwbGVtZW50ID0gbmV3
IERPTVdpbmRvd05vdGlmaWNhdGlvbnMoKTsKKyAgICAgICAgU3VwcGxlbWVudDxTY3JpcHRFeGVj
dXRpb25Db250ZXh0Pjo6cHJvdmlkZVRvKHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBOb3RpZmljYXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCksIGFkb3B0UHRyKHN1cHBsZW1l
bnQpKTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK05vdGlmaWNhdGlvbkNl
bnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5k
b3cqIHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZnJvbSh3
aW5kb3cpLT5ub3RpZmljYXRpb25DZW50ZXJTaW5nbGV0b24od2luZG93KTsKK30KKworTm90aWZp
Y2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25DZW50ZXJT
aW5nbGV0b24oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCFtX25vdGlmaWNhdGlvbkNl
bnRlcikgeworICAgICAgICBpZiAoIXdpbmRvdy0+aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1l
KCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSB3aW5kb3ctPmRvY3VtZW50KCk7CisgICAgICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgICAg
ICByZXR1cm4gMDsKKworICAgICAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAg
ICAgICAgaWYgKCFwYWdlKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBwcm92aWRlciA9IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVu
dEZyb20ocGFnZSk7CisgICAgICAgIGlmIChwcm92aWRlcikKKyAgICAgICAgICAgIG1fbm90aWZp
Y2F0aW9uQ2VudGVyID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUod2luZG93LCBwcm92aWRl
cik7CisgICAgfQorICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsKK30KKwor
Tm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25D
ZW50ZXIoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uQ2Vu
dGVyLmdldCgpOworfQorCit2b2lkIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmNsZWFyTm90aWZp
Y2F0aW9uQ2VudGVyKERPTVdpbmRvdyogd2luZG93KQoreworICAgIG1fbm90aWZpY2F0aW9uQ2Vu
dGVyID0gMDsKKyAgICByZXR1cm47Cit9CisKK3ZvaWQgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6
cmVzZXROb3RpZmljYXRpb25zKERPTVdpbmRvdyogd2luZG93KQoreworICAgIGlmICghd2luZG93
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBET01XaW5k
b3dOb3RpZmljYXRpb25zKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93Tm90aWZp
Y2F0aW9ucyo+KFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20od2luZG93
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVu
dE5hbWUoKSkpOworICAgIGlmICghc3VwcGxlbWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Tm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZmljYXRpb25DZW50ZXIgPSBzdXBwbGVtZW50LT5ub3Rp
ZmljYXRpb25DZW50ZXIod2luZG93KTsKKyAgICBpZiAoIW5vdGlmaWNhdGlvbkNlbnRlcikgewor
ICAgICAgICBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+OjpyZW1vdmUod2luZG93
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVu
dE5hbWUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBub3RpZmljYXRpb25DZW50
ZXItPmRpc2Nvbm5lY3RGcmFtZSgpOworICAgIHN1cHBsZW1lbnQtPmNsZWFyTm90aWZpY2F0aW9u
Q2VudGVyKHdpbmRvdyk7CisgICAgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6
cmVtb3ZlKHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBOb3RpZmljYXRpb25DZW50
ZXI6OnN1cHBsZW1lbnROYW1lKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUv
bm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjIyY2E3
MDk4MGU1YmE1ZWYzZTQ2NjJiMTc5ZTc1MjA4YWE0ODhlMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oCkBAIC0w
LDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgRE9NV2luZG93Tm90aWZpY2F0aW9uc19oCisjZGVmaW5lIERPTVdpbmRvd05vdGlmaWNhdGlv
bnNfaAorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgRE9NV2luZG93OworY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOworY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgRE9NV2luZG93Tm90aWZpY2F0aW9ucyA6
IHB1YmxpYyBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5ET01XaW5kb3dOb3RpZmljYXRpb25zKCk7CisKKyAgICBzdGF0aWMgTm90aWZp
Y2F0aW9uQ2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25zKERPTVdpbmRvdyopOworICAgIHN0YXRp
YyBET01XaW5kb3dOb3RpZmljYXRpb25zKiBmcm9tKERPTVdpbmRvdyopOworICAgIC8vIFJlbmRl
cnMgd2Via2l0Tm90aWZpY2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRpc2Nvbm5l
Y3RzCisgICAgLy8gaWYgZnJvbSBlbWJlZGRlci1wcm92aWRlZCBOb3RpZmljYXRpb25QcmVzZW50
ZXIuCisgICAgc3RhdGljIHZvaWQgcmVzZXROb3RpZmljYXRpb25zKERPTVdpbmRvdyopOworICAg
IHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisKK3ByaXZhdGU6
CisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucygpOworCisgICAgTm90aWZpY2F0aW9uQ2VudGVy
KiBub3RpZmljYXRpb25DZW50ZXJTaW5nbGV0b24oRE9NV2luZG93Kik7CisgICAgTm90aWZpY2F0
aW9uQ2VudGVyKiBub3RpZmljYXRpb25DZW50ZXIoRE9NV2luZG93Kik7CisgICAgdm9pZCBjbGVh
ck5vdGlmaWNhdGlvbkNlbnRlcihET01XaW5kb3cqKTsKKworICAgIFJlZlB0cjxOb3RpZmljYXRp
b25DZW50ZXI+IG1fbm90aWZpY2F0aW9uQ2VudGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNlbmRpZiAvLyBET01X
aW5kb3dOb3RpZmljYXRpb25zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNzYwN2QzMGQ5
YjY4NzY4M2E2ODkzZDUyZjA3MzgwNzkyZWYxZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCkBAIC0wLDAg
KzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAg
ICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1OT1RJRklDQVRJT05TLAorICAgICAg
ICBTdXBwbGVtZW50YWw9RE9NV2luZG93CisgICAgXSBET01XaW5kb3dOb3RpZmljYXRpb25zIHsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5vdGlmaWNh
dGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOworICAgIH07CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAppbmRleCA3
MTE0NmFmOGRhMzcyM2QxNDcxNWVmY2I1ZDFhYmVhYzQ4ZTM3MTU5Li5jYzYwYjE0MmM0YjA3Nzk5
NDY3NTAxMTQzM2UzZjA1ZjdlNmY5NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCkBAIC0zNCwxMyArMzQsMjMgQEAKIAog
I2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93Lmgi
CisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogI2luY2x1ZGUg
IldvcmtlckNvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitQYXNzUmVmUHRyPE5v
dGlmaWNhdGlvbkNlbnRlcj4gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoRE9NV2luZG93KiB3
aW5kb3csIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJlc2VudGVyKQoreworICAgIFJlZlB0cjxO
b3RpZmljYXRpb25DZW50ZXI+IG5vdGlmaWNhdGlvbkNlbnRlcihhZG9wdFJlZihuZXcgTm90aWZp
Y2F0aW9uQ2VudGVyKHdpbmRvdywgcHJlc2VudGVyKSkpOworICAgIG5vdGlmaWNhdGlvbkNlbnRl
ci0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIG5vdGlmaWNhdGlvbkNlbnRlci5yZWxl
YXNlKCk7Cit9CisKIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBOb3RpZmljYXRpb25D
ZW50ZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3RpZmljYXRp
b25QcmVzZW50ZXIqIHByZXNlbnRlcikKIHsKICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVy
PiBub3RpZmljYXRpb25DZW50ZXIoYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvbkNlbnRlcihjb250
ZXh0LCBwcmVzZW50ZXIpKSk7CkBAIC00OCw5ICs1OCwxNiBAQCBQYXNzUmVmUHRyPE5vdGlmaWNh
dGlvbkNlbnRlcj4gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dAogICAgIHJldHVybiBub3RpZmljYXRpb25DZW50ZXIucmVsZWFzZSgpOwogfQogCitOb3Rp
ZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvbkNlbnRlcihET01XaW5kb3cqIHdpbmRvdywgTm90
aWZpY2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIpCisgICAgOiBBY3RpdmVET01PYmplY3Qod2lu
ZG93LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMpCisgICAgLCBET01XaW5kb3dQcm9w
ZXJ0eSh3aW5kb3ctPmZyYW1lKCkpCisgICAgLCBtX25vdGlmaWNhdGlvblByZXNlbnRlcihwcmVz
ZW50ZXIpCisgICAgLCBtX3dpbmRvdyh3aW5kb3cpIHsgfQorCiBOb3RpZmljYXRpb25DZW50ZXI6
Ok5vdGlmaWNhdGlvbkNlbnRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3Rp
ZmljYXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcikKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250
ZXh0LCB0aGlzKQotICAgICwgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIocHJlc2VudGVyKSB7fQor
ICAgICwgRE9NV2luZG93UHJvcGVydHkoMCkKKyAgICAsIG1fbm90aWZpY2F0aW9uUHJlc2VudGVy
KHByZXNlbnRlcikgeyB9CiAKIGludCBOb3RpZmljYXRpb25DZW50ZXI6OmNoZWNrUGVybWlzc2lv
bigpCiB7CkBAIC03Miw5ICs4OSwxOSBAQCB2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6ZGlzY29u
bmVjdEZyYW1lKCkKICAgICAvLyB0aGlzIG1ldGhvZCBpcyBpbnZva2VkIG1vcmUgdGhlbiBvbmNl
LgogICAgIGlmICghbV9ub3RpZmljYXRpb25QcmVzZW50ZXIpCiAgICAgICAgIHJldHVybjsKKwog
ICAgIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLT5jYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24o
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBtX25vdGlmaWNhdGlvblByZXNlbnRlci0+
Y2xlYXJOb3RpZmljYXRpb25zKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgbV9ub3Rp
ZmljYXRpb25QcmVzZW50ZXIgPSAwOworCisgICAgaWYgKG1fd2luZG93KQorICAgICAgICBET01X
aW5kb3dOb3RpZmljYXRpb25zOjpyZXNldE5vdGlmaWNhdGlvbnMobV93aW5kb3cpOworfQorCit2
b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6d2lsbERldGFjaFBhZ2UoKQoreworICAgIGlmIChtX3dp
bmRvdykKKyAgICAgICAgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmljYXRpb25z
KG1fd2luZG93KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKaW5kZXggNDAyY2NiYTkz
OGIyZmVlMDgxZjhhNmE4ZDdiZWNlZmY3OGNjMjY5Mi4uOTVhNzkyYzNhNmNhMGQ2OGJkNTU3MTE5
NDNmMWE0MGZiZTYxMmQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25DZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5oCkBAIC0zMiwxMCArMzIsMTIgQEAKICNpZm5kZWYgTm90aWZp
Y2F0aW9uQ2VudGVyX2gKICNkZWZpbmUgTm90aWZpY2F0aW9uQ2VudGVyX2gKIAorI2luY2x1ZGUg
IkRPTVdpbmRvd1Byb3BlcnR5LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1
ZGUgIk5vdGlmaWNhdGlvbi5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRlbnRzLmgiCiAj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRh
YmxlLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ2LDEwICs0OCwxMyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7CitjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgVm9pZENhbGxiYWNrOwogCi1jbGFzcyBOb3Rp
ZmljYXRpb25DZW50ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb3RpZmljYXRpb25DZW50ZXI+LCBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK2NsYXNzIE5vdGlmaWNhdGlvbkNlbnRlciA6IHB1Ymxp
YyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbkNlbnRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3Qs
IHB1YmxpYyBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+LCBwdWJsaWMgRE9NV2lu
ZG93UHJvcGVydHkgewogcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1
cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVy
PiBjcmVhdGUoRE9NV2luZG93KiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOwogCiAgICAgUGFzc1JlZlB0cjxOb3RpZmlj
YXRpb24+IGNyZWF0ZUhUTUxOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiBVUkksIEV4Y2VwdGlv
bkNvZGUmIGVjKQpAQCAtODEsMTEgKzg2LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RQ
ZXJtaXNzaW9uKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPik7CiAKICAgICB2b2lkIGRpc2Nvbm5l
Y3RGcmFtZSgpOworICAgIHZvaWQgd2lsbERldGFjaFBhZ2UoKTsKIAogcHJpdmF0ZToKKyAgICBO
b3RpZmljYXRpb25DZW50ZXIoRE9NV2luZG93KiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CiAg
ICAgTm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRp
b25QcmVzZW50ZXIqKTsKIAogICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbV9ub3RpZmljYXRp
b25QcmVzZW50ZXI7CisgICAgRE9NV2luZG93KiBtX3dpbmRvdzsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA1Njc0MzQzMmQ2Yjgz
YmZkZTFjMjAzNTg3OTY3ZmJmMWNhN2FjNmNlLi42NmRjMzM1ODU0Mzk4YjQ3MmU1ZjVmMjMyZTMx
ZTcwNGZkYTg3ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03Miw4ICs3Miw2
IEBACiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZl
bnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25DZW50
ZXIuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZl
bnQuaCIKQEAgLTQxNSw5ICs0MTMsNiBAQCBET01XaW5kb3c6On5ET01XaW5kb3coKQogICAgIEFT
U0VSVCghbV9zZXNzaW9uU3RvcmFnZSk7CiAgICAgQVNTRVJUKCFtX2xvY2FsU3RvcmFnZSk7CiAg
ICAgQVNTRVJUKCFtX2FwcGxpY2F0aW9uQ2FjaGUpOwotI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQotICAgIEFTU0VSVCghbV9ub3RpZmljYXRpb25zKTsKLSNlbmRpZgogI2lmIEVOQUJMRShCTE9C
KQogICAgIEFTU0VSVCghbV9kb21VUkwpOwogI2VuZGlmCkBAIC00NzMsMTIgKzQ2OCw2IEBAIHZv
aWQgRE9NV2luZG93Ojp3aWxsRGV0YWNoUGFnZSgpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChtX2ZyYW1lLCB0aGlzKTsKIAotI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQotICAgIC8vIENsZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVxdWVzdHMg
aW52b2x2ZXMgYWNjZXNzaW5nIHRoZSBjbGllbnQgc28gaXQgbXVzdCBiZSBkb25lCi0gICAgLy8g
YmVmb3JlIHRoZSBmcmFtZSBpcyBkZXRhY2hlZC4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsK
LSNlbmRpZgotCiAgICAgSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBzdG9w
ID0gbV9wcm9wZXJ0aWVzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0
eSo+OjppdGVyYXRvciBpdCA9IG1fcHJvcGVydGllcy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0
KQogICAgICAgICAoKml0KS0+d2lsbERldGFjaFBhZ2UoKTsKQEAgLTUyMSwxMSArNTEwLDYgQEAg
dm9pZCBET01XaW5kb3c6OmNsZWFyKCkKICAgICBtX3Nlc3Npb25TdG9yYWdlID0gMDsKICAgICBt
X2xvY2FsU3RvcmFnZSA9IDA7CiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlID0gMDsKLSNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKLSAgICAvLyBGSVhNRTogTm90aWZpY2F0aW9ucyBzaG91bGRuJ3Qg
aGF2ZSBkaWZmZXJlbnQgZGlzY29ubmVjdGlvbiBsb2dpYyB0aGFuCi0gICAgLy8gdGhlIHJlc3Qg
b2YgdGhlIERPTVdpbmRvd1Byb3BlcnRpZXMuCi0gICAgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0j
ZW5kaWYKICNpZiBFTkFCTEUoQkxPQikKICAgICBtX2RvbVVSTCA9IDA7CiAjZW5kaWYKQEAgLTcw
MiwzNiArNjg2LDYgQEAgU3RvcmFnZSogRE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UoRXhjZXB0aW9u
Q29kZSYgZWMpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9jYWxTdG9yYWdlLmdldCgpOwogfQogCi0j
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi1Ob3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRvdzo6
d2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0Ci17Ci0gICAgaWYgKG1fbm90aWZpY2F0aW9ucyB8
fCAhaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCi0gICAgICAgIHJldHVybiBtX25vdGlm
aWNhdGlvbnMuZ2V0KCk7Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVu
dCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIAotICAgIFBh
Z2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0
dXJuIDA7Ci0KLSAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByb3ZpZGVyID0gTm90aWZpY2F0
aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKLSAgICBpZiAocHJvdmlkZXIpIAotICAg
ICAgICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShkb2N1bWVu
dCwgcHJvdmlkZXIpOyAgICAKLSAgICAgIAotICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMuZ2V0
KCk7Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpyZXNldE5vdGlmaWNhdGlvbnMoKQotewotICAgIGlm
ICghbV9ub3RpZmljYXRpb25zKQotICAgICAgICByZXR1cm47Ci0gICAgbV9ub3RpZmljYXRpb25z
LT5kaXNjb25uZWN0RnJhbWUoKTsKLSAgICBtX25vdGlmaWNhdGlvbnMgPSAwOwotfQotI2VuZGlm
Ci0KIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIGNvbnN0IFN0cmluZyYgdGFyZ2V0
T3JpZ2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTWVz
c2FnZVBvcnRBcnJheSBwb3J0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDgxNjY0OGY4
ZDQxYWYzNTk2ZDA3YmQ2OTQ4YWQyMjI0NDZhN2VmNDMuLmViNTliOTIzOTc0YzM2ZWRkOWYzNmI5
YzlhYTIyOTJhNTE3ZTBkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtNTYsNyArNTYs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiAgICAg
Y2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgTm90aWZpY2F0aW9u
Q2VudGVyOwogICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAgY2xh
c3MgUG9zdE1lc3NhZ2VUaW1lcjsKQEAgLTM1NCwxMyArMzUzLDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBTdG9yYWdlKiBzZXNzaW9uU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29u
c3Q7CiAgICAgICAgIFN0b3JhZ2UqIGxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29uc3Q7
CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgTm90aWZpY2F0aW9uQ2VudGVy
KiB3ZWJraXROb3RpZmljYXRpb25zKCkgY29uc3Q7Ci0gICAgICAgIC8vIFJlbmRlcnMgd2Via2l0
Tm90aWZpY2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRpc2Nvbm5lY3RzCi0gICAg
ICAgIC8vIGlmIGZyb20gZW1iZWRkZXItcHJvdmlkZWQgTm90aWZpY2F0aW9uUHJlc2VudGVyLgot
ICAgICAgICB2b2lkIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICNpZiBFTkFCTEUo
UVVPVEEpCiAgICAgICAgIFN0b3JhZ2VJbmZvKiB3ZWJraXRTdG9yYWdlSW5mbygpIGNvbnN0Owog
I2VuZGlmCkBAIC00NDMsMTAgKzQzNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
bXV0YWJsZSBSZWZQdHI8U3RvcmFnZT4gbV9sb2NhbFN0b3JhZ2U7CiAgICAgICAgIG11dGFibGUg
UmVmUHRyPERPTUFwcGxpY2F0aW9uQ2FjaGU+IG1fYXBwbGljYXRpb25DYWNoZTsKIAotI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICBtdXRhYmxlIFJlZlB0cjxOb3RpZmljYXRpb25D
ZW50ZXI+IG1fbm90aWZpY2F0aW9uczsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcp
CiAgICAgICAgIG11dGFibGUgUmVmUHRyPFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMTQwODZiZjIwZTllNDk3NmFhODgx
MjNiODYwYzA3YjQ1OTNhNzlhZC4uMGVmYTdiZjEyNDg5MTA4YmFhNTM4N2UyMTcxN2VmNjM2Y2Jm
MWMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMTcwLDEwICsxNzAsNiBAQCBt
b2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1
bnRpbWVdIFN0b3JhZ2UgbG9jYWxTdG9yYWdlCiAgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAmJiBFTkFC
TEVfTk9USUZJQ0FUSU9OUwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0
UnVudGltZV0gTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7Ci0jZW5kaWYK
LQogI2lmIGRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5BQkxFX09SSUVO
VEFUSU9OX0VWRU5UUwogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRp
b24gaW4gZGVncmVlcy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFp
Z2h0IHVwOyAtOTAgaXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBhZDljYWI4ZTlkMTNhMWY1YmI3NTgzMTdiYmM3OTYyM2Ni
ZTZhYzQwLi4yYzU0ZGMxNmU5NGIxNzhiZTU1MTlmYzlhMTQ2OWQ1ODFmMTcwODBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5o
IgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVy
LmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50VHlwZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdUZXh0LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xp
ZW50LmgiCkBAIC02ODcsOSArNjg4LDEwIEBAIHZvaWQgRnJhbWU6OndpbGxEZXRhY2hQYWdlKCkK
ICAgICBpZiAoRnJhbWUqIHBhcmVudCA9IHRyZWUoKS0+cGFyZW50KCkpCiAgICAgICAgIHBhcmVu
dC0+bG9hZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7CiAKKy8vIEZJWE1FOiBUaGlzIHdpbGwg
YmUgc3BsaXQgb3V0IG9mIGhlcmUgdG8gdGhlIG5vdGlmaWNhdGlvbnMgbW9kdWxlLgogI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQogICAgIGlmIChtX2RvbVdpbmRvdykKLSAgICAgICAgbV9kb21X
aW5kb3ctPnJlc2V0Tm90aWZpY2F0aW9ucygpOworICAgICAgICBET01XaW5kb3dOb3RpZmljYXRp
b25zOjpyZXNldE5vdGlmaWNhdGlvbnMobV9kb21XaW5kb3cuZ2V0KCkpOwogI2VuZGlmCiAKICAg
ICBIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9wID0gbV9k
ZXN0cnVjdGlvbk9ic2VydmVycy5lbmQoKTsKQEAgLTczNiwxMSArNzM4LDExIEBAIHZvaWQgRnJh
bWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoKQogICAgICAgICAgICAgIG1fcGFn
ZS0+ZGVjcmVtZW50RnJhbWVDb3VudCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fZG9t
V2luZG93KSB7CisvLyBGSVhNRTogVGhpcyB3aWxsIGJlIHNwbGl0IG91dCBvZiBoZXJlIHRvIHRo
ZSBub3RpZmljYXRpb25zIG1vZHVsZS4KICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAg
ICAgICAgIG1fZG9tV2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKKyAgICAgICAgaWYgKG1f
ZG9tV2luZG93KQorICAgICAgICAgICAgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3Rp
ZmljYXRpb25zKG1fZG9tV2luZG93LmdldCgpKTsKICNlbmRpZgotICAgICAgICB9CiAKICAgICAg
ICAgSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1f
ZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7CiAgICAgICAgIGZvciAoSGFzaFNldDxGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJz
LmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxl
bWVudGFibGUuaAppbmRleCA4NGRjOTA2ZTJhZjM0OGEzNGQ4NWI2YjlkODNjNjk3MmVjMmQ2NmUx
Li4xNzJjODRlMjM4YjY2YTI4NjQyMDRkNTFlMjJiYjI2ZTc3YTIzNjhlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmgKQEAgLTQ2LDYgKzQ2LDExIEBAIHB1YmxpYzoK
ICAgICAgICAgaG9zdC0+cHJvdmlkZVN1cHBsZW1lbnQoa2V5LCBzdXBwbGVtZW50KTsKICAgICB9
CiAKKyAgICBzdGF0aWMgdm9pZCByZW1vdmUoU3VwcGxlbWVudGFibGU8VD4qIGhvc3QsIGNvbnN0
IEF0b21pY1N0cmluZyYga2V5KQorICAgIHsKKyAgICAgICAgaG9zdC0+cmVtb3ZlU3VwcGxlbWVu
dChrZXkpOworICAgIH0KKwogICAgIHN0YXRpYyBTdXBwbGVtZW50PFQ+KiBmcm9tKFN1cHBsZW1l
bnRhYmxlPFQ+KiBob3N0LCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSkKICAgICB7CiAgICAgICAg
IHJldHVybiBob3N0ID8gaG9zdC0+cmVxdWlyZVN1cHBsZW1lbnQoa2V5KSA6IDA7CkBAIC02MSw2
ICs2NiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fc3VwcGxlbWVudHMuc2V0KGtleSwgc3VwcGxl
bWVudCk7CiAgICAgfQogCisgICAgdm9pZCByZW1vdmVTdXBwbGVtZW50KGNvbnN0IEF0b21pY1N0
cmluZyYga2V5KQorICAgIHsKKyAgICAgICAgbV9zdXBwbGVtZW50cy5yZW1vdmUoa2V5KTsKKyAg
ICB9CisKICAgICBTdXBwbGVtZW50PFQ+KiByZXF1aXJlU3VwcGxlbWVudChjb25zdCBBdG9taWNT
dHJpbmcmIGtleSkKICAgICB7CiAgICAgICAgIHJldHVybiBtX3N1cHBsZW1lbnRzLmdldChrZXkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIgYi9Tb3VyY2Uv
V2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgppbmRleCA0NTdhMDYzZTBiODNiNzA0N2RlZjQ1YmVh
Y2RmZWY5MzJhY2RkMWI3Li5jN2NhMTY1MDhmNzk2YThlNjRmYmM4ZjE4Y2NkYzA2MzkyMzdiNDM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgpAQCAtOTg4LDYgKzk4OCw4IEBAIF9fWk43V2Vi
Q29yZTE2UmVzb3VyY2VSZXNwb25zZWFTRVJLUzBfCiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVz
cG9uc2VCYXNlYVNFUktTMF8KIF9fWk43V2ViQ29yZTE2UmVzb3VyY2VSZXNwb25zZUQyRXYKIF9f
Wk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2VEMkV2CitfX1pON1dlYkNvcmUyMkRPTVdp
bmRvd05vdGlmaWNhdGlvbnMxOHJlc2V0Tm90aWZpY2F0aW9uc0VQTlNfOURPTVdpbmRvd0UKK19f
Wk43V2ViQ29yZTIyRE9NV2luZG93Tm90aWZpY2F0aW9uczE5d2Via2l0Tm90aWZpY2F0aW9uc0VQ
TlNfOURPTVdpbmRvd0UKIF9fWk43Q29yZUlQQzE4Y2FsbE1lbWJlckZ1bmN0aW9uSU42V2ViS2l0
MTJXZWJQYWdlUHJveHlFTVMyX0Z2eXlSS043V2ViQ29yZTE1UmVzb3VyY2VSZXF1ZXN0RVJLTlMz
XzE2UmVzb3VyY2VSZXNwb25zZUVFeXlTNF9TN19FRXZSS05TXzEwQXJndW1lbnRzNElUMV9UMl9U
M19UNF9FRVBUX1QwXwogX19aTjZXZWJLaXQxMldlYlBhZ2VQcm94eTI1ZGlkU2VuZFJlcXVlc3RG
b3JSZXNvdXJjZUV5eVJLTjdXZWJDb3JlMTVSZXNvdXJjZVJlcXVlc3RFUktOUzFfMTZSZXNvdXJj
ZVJlc3BvbnNlRQogX19aTjZXZWJLaXQyMVdlYlJlc291cmNlTG9hZENsaWVudDI1ZGlkU2VuZFJl
cXVlc3RGb3JSZXNvdXJjZUVQTlNfMTJXZWJQYWdlUHJveHlFUE5TXzEzV2ViRnJhbWVQcm94eUV5
UktON1dlYkNvcmUxNVJlc291cmNlUmVxdWVzdEVSS05TNV8xNlJlc291cmNlUmVzcG9uc2VFCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131265</attachid>
            <date>2012-03-11 18:08:42 -0700</date>
            <delta_ts>2012-03-11 19:06:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79636-20120312100840.patch</filename>
            <type>text/plain</type>
            <size>31375</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmIyZThkNmFlMGQ5ZDVl
YjUwMDExMDE2OWU2OTE4ZjY5YTg2YTAyNy4uNWEzYWVjZWVjMzgwM2M0MDJkZWQ3NjE4NTc2MWM1
ZTVhNTcwY2U1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDEyLTAzLTA4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdl
YktpdCBtb2R1bGFyaXphdGlvbiwgdGhpcyBwYXRjaCBtb3ZlcyBOb3RpZmljYXRpb25zLXJlbGF0
ZWQgQVBJcworICAgICAgICBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvbm90aWZpY2F0aW9ucy8qIChObyBjaGFu
Z2UgaW4gdGVzdCByZXN1bHRzKQorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMue2gsY3BwLGlkbH0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOiBEaXR0by4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJp
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKworICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOiBBZGRlZCBtYW5nbGVkIHNpZ25hdHVyZXMgb2YgcmVzZXROb3RpZmljYXRpb25zKCkgYW5k
IHdlYmtpdE5vdGlmaWNhdGlvbnMoKS4KKworICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dOb3RpZmljYXRpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5ET01XaW5kb3dO
b3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6c3Vw
cGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6
ZnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjp3ZWJraXRO
b3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6
Om5vdGlmaWNhdGlvbkNlbnRlclNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dOb3RpZmljYXRpb25zOjpub3RpZmljYXRpb25DZW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Tm90aWZpY2F0aW9uczo6Y2xlYXJOb3RpZmljYXRpb25DZW50ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmljYXRpb25zKToK
KyAgICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvd05vdGlmaWNhdGlvbnMpOgor
ICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGw6IEFkZGVk
LgorCisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlv
bkNlbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6OmRpc2Nvbm5l
Y3RGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6OndpbGxEZXRh
Y2hQYWdlKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChOb3RpZmljYXRpb25DZW50ZXIpOgorCisgICAg
ICAgICogcGFnZS9ET01XaW5kb3cuY3BwOiBSZW1vdmVkIEVOQUJMRShOT1RJRklDQVRJT05TKS4K
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6fkRPTVdpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6Y2xlYXIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmlkbDogRGl0dG8uCisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToKKworICAgICAgICAqIHBsYXRm
b3JtL1N1cHBsZW1lbnRhYmxlLmg6IEFkZGVkIHJlbW92ZSgpIG1ldGhvZCwgd2hpY2ggcmVtb3Zl
cyBhIHN1cHBsZW1lbnQgZW50cnkuCisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVtZW50OjpyZW1v
dmUpOgorICAgICAgICAoU3VwcGxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVtZW50
YWJsZTo6cmVtb3ZlU3VwcGxlbWVudCk6CisgICAgICAgIChTdXBwbGVtZW50YWJsZSk6CisKIDIw
MTItMDMtMTEgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjkzNjE0KTogc2Nyb2xsaW5nIGRpdiBkb2VzIG5vdCByZXBhaW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggNmEwMjU5ZjUzZTNhODE1NzMxNjhhNTU2Mjc5MDc0OWYyN2M2ZjAyNi4uZTg0
ZGMyNTMxNzE1N2Q2Mzg1YWM1MjBiMWQ5ZDEyNjE2NTdiM2VhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDEyLTAzLTA5ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNhdGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwg
dG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRm9yIFdlYktpdCBtb2R1bGFyaXphdGlvbiwgdGhpcyBwYXRj
aCBtb3ZlcyBOb3RpZmljYXRpb25zLXJlbGF0ZWQgQVBJcworICAgICAgICBmcm9tIERPTVdpbmRv
dy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwuCisKKyAgICAgICAgKiBtYWMvV2Vi
S2l0Mi5vcmRlcjogQWRkZWQgbWFuZ2xlZCBzaWduYXR1cmVzIG9mIHJlc2V0Tm90aWZpY2F0aW9u
cygpIGFuZCB3ZWJraXROb3RpZmljYXRpb25zKCkuCisKIDIwMTItMDMtMTEgIERhbiBCZXJuc3Rl
aW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQyIGxhY2tzIEFQSSBmb3Igb2J0
YWluaW5nIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIFJlbmRlckxheWVyIHRyZWUgb2YgYSBwYWdl
LCBsaWtlIFdlYlJlbmRlckxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJmY2MyNjU1NzMz
MjYzOTVjYTQ0MDI0NDRjZDAwYThlOGNjYWMyMjAuLjllNDAwMTI3ZDFmM2Y1NWE1OGZkNjc4NDA4
OGU4MTdhZTJlNDJiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjIzLDEyICsxNjIzLDE0
IEBAIEVORElGICgpCiAKIElGIChFTkFCTEVfTk9USUZJQ0FUSU9OUykKICAgICBMSVNUKEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmlj
YXRpb25zLmNwcAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAK
ICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcAogICAgICAg
ICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKICAgICApCiAKICAgICBMSVNUKEFQUEVO
RCBXZWJDb3JlX0lETF9GSUxFUworICAgICAgICBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlm
aWNhdGlvbnMuaWRsCiAgICAgICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbAogICAg
ICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5pZGwKICAgICApCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAyNDYwNjgzM2E1NzZkOGQ3ZmI1ODFjMWIzNjVhZjZk
NjA4ZDIxYzY1Li42OWM4MGM0NmU0YWRjOGI0ZjkxM2UxZGU2MDMwOGQ0YzJiODNjN2Y2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM1Myw2ICszNTMsNyBAQCBCSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwgXAorICAgICQoV2Vi
Q29yZSkvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3Bh
Z2UvQWJzdHJhY3RWaWV3LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKaW5kZXggYWY0
ZjViNTBiODU3ZjIyZjEwYjRjNTdiM2RhZDhlMWQyODgzNWFkOC4uZTU1MzkyNDQ5YmQxZDY5NmMy
OTVmM2EzNGQ4MGRmYzhiMjViZGRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAt
Mzc1LDYgKzM3NSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvaW5zcGVjdG9yL1Nj
cmlwdFByb2ZpbGUuaWRsIFwKICAgICAkJFBXRC9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUu
aWRsIFwKICAgICAkJFBXRC9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwg
XAorICAgICQkUFdEL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAog
ICAgICQkUFdEL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCiAgICAgJCRQV0Qvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsIFwKICAgICAkJFBXRC9wYWdlL0Jhcklu
Zm8uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDJiZDFmNjU0YzkwZGM3
MjU5YWI5MjYzNzUzZWJiZDczMjMzMWJkMWIuLmRhZDFlNGNjNTc3ZjM1OGQ2ODEzNzk2MjU2NmNh
ZTMwNDUyZWYxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjgyMCw2ICsy
ODIwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MTWF0aEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVt
ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmggXAor
CVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAog
CVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50LmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKaW5kZXggNTZjMTdmM2ZjYWJlNjA2Y2RiMGFjYmU2ZWVlZDRkMzAxM2Q5NDFkNi4uYTZk
YjQzY2JkYTc1MDYwOGFjNzllOWFiODAzMmNmOGIzYTExZTIxNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC05
ODAsNiArOTgwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL1N1YnJlc291cmNlTG9hZGVy
LmNwcCBcCiAgICAgbG9hZGVyL1RleHRSZXNvdXJjZURlY29kZXIuY3BwIFwKICAgICBsb2FkZXIv
VGhyZWFkYWJsZUxvYWRlci5jcHAgXAorICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZp
Y2F0aW9ucy5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBcCiAgICAg
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKICAgICBub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIFwKQEAgLTIwNzYsNiArMjA3Nyw3IEBAIEhFQURF
UlMgKz0gXAogICAgIG1hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmggXAogICAg
IG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIFwKICAgICBtYXRobWwvTWF0aE1MVGV4dEVsZW1l
bnQuaCBcCisgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmggXAogICAg
IG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uQ2VudGVyLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50Lmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA1OTBiN2M1MGZiYjljMjhiZjIyZWYyZjNlM2ZjMjRl
NDE4NjAyNTg1Li4yOThiYjdhZTQ5ODY4NDhlYTI0MTU5MmFkYjVmNmRjNjQ5ZDI4M2IxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjEyNCw2ICsyMTI0LDggQEAgX19aTjdXZWJDb3JlMTJOb3Rp
ZmljYXRpb24xOGRpc3BhdGNoQ2xpY2tFdmVudEV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlv
bjE4ZGlzcGF0Y2hDbG9zZUV2ZW50RXYKIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMThkaXNw
YXRjaEVycm9yRXZlbnRFdgogX19aTjdXZWJDb3JlMTlwcm92aWRlTm90aWZpY2F0aW9uRVBOU180
UGFnZUVQTlNfMThOb3RpZmljYXRpb25DbGllbnRFCitfX1pON1dlYkNvcmUyMkRPTVdpbmRvd05v
dGlmaWNhdGlvbnMxOHJlc2V0Tm90aWZpY2F0aW9uc0VQTlNfOURPTVdpbmRvd0UKK19fWk43V2Vi
Q29yZTIyRE9NV2luZG93Tm90aWZpY2F0aW9uczE5d2Via2l0Tm90aWZpY2F0aW9uc0VQTlNfOURP
TVdpbmRvd0UKICNlbmRpZgogCiAjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCA3Njg1NzI2NzRmMTVlYjNjOWEwMDIxMzFiZDA3M2ZlYzExMTRkZTdlLi4w
MjJjNGVmOWY3YmMyZjU1YzVmYWVhYzkxMzQ0ODlmNzhlNWM5NGE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0xMDUxLDYgKzEwNTEsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQcm9m
aWxlLmlkbCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCcs
CiAgICAgICAgICAgICAnbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsJywK
KyAgICAgICAgICAgICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsJywK
ICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwnLAogICAgICAgICAg
ICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCcsCiAgICAgICAgICAgICAn
cGFnZS9BYnN0cmFjdFZpZXcuaWRsJywKQEAgLTI3NzcsNiArMjc3OCw4IEBACiAgICAgICAgICAg
ICAnbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgnLAogICAgICAgICAgICAgJ21hdGhtbC9NYXRo
TUxUZXh0RWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVu
dC5oJywKKyAgICAgICAgICAgICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMu
Y3BwJywKKyAgICAgICAgICAgICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMu
aCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwJywKICAgICAg
ICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oJywKICAgICAgICAgICAgICdub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzYWQwOWNmNDU0OGVkOGQzZjQ2OWU3YzYw
OTI0ZDkxZjM0N2E4MmFlLi4zOGRiZDk2NmJmZTNjZmViZTVkNDc2Nzk5ZTcxODk2ODg0YzRlOTg2
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NTM1NzgsNiArNTM1NzgsMTQgQEAKIAkJCU5hbWU9Im5vdGlmaWNhdGlvbnMiCiAJCQk+CiAJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xET01XaW5kb3dOb3RpZmlj
YXRpb25zLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cbm90aWZpY2F0aW9uc1xET01XaW5kb3dOb3RpZmljYXRpb25zLmgiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcTm90
aWZpY2F0aW9uLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yNGY1ZTAyYWRkMzc4ZTA5YjRiZDI4ZjQ0ZmU5YWRkNjlkOTI2Y2JlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25z
LmNwcApAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywg
MjAwOCwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVdpbmRvd05vdGlmaWNhdGlv
bnMuaCIKKworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorCisjaW5jbHVkZSAiRE9NV2luZG93
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25DZW50ZXIu
aCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiUGFnZS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnM6OkRPTVdp
bmRvd05vdGlmaWNhdGlvbnMoKQoreworfQorCitET01XaW5kb3dOb3RpZmljYXRpb25zOjp+RE9N
V2luZG93Tm90aWZpY2F0aW9ucygpCit7Cit9CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnMqIERP
TVdpbmRvd05vdGlmaWNhdGlvbnM6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYg
KCF3aW5kb3ctPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBET01XaW5kb3dOb3RpZmljYXRpb25zKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9N
V2luZG93Tm90aWZpY2F0aW9ucyo+KFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46
OmZyb20od2luZG93LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRl
cjo6c3VwcGxlbWVudE5hbWUoKSkpOworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBz
dXBwbGVtZW50ID0gbmV3IERPTVdpbmRvd05vdGlmaWNhdGlvbnMoKTsKKyAgICAgICAgU3VwcGxl
bWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6cHJvdmlkZVRvKHdpbmRvdy0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCBOb3RpZmljYXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCksIGFk
b3B0UHRyKHN1cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisK
K05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZp
Y2F0aW9ucyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93Tm90aWZp
Y2F0aW9uczo6ZnJvbSh3aW5kb3cpLT5lbnN1cmVOb3RpZmljYXRpb25DZW50ZXIod2luZG93KTsK
K30KKworTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjplbnN1cmVO
b3RpZmljYXRpb25DZW50ZXIoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYgKG1fbm90aWZp
Y2F0aW9uQ2VudGVyKQorICAgICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25DZW50ZXIuZ2V0KCk7
CisKKyAgICBpZiAoIXdpbmRvdy0+aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gd2luZG93LT5kb2N1bWVu
dCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgUGFnZSog
cGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIE5vdGlmaWNhdGlvbkNsaWVudCogcHJvdmlkZXIgPSBOb3RpZmljYXRpb25Db250
cm9sbGVyOjpjbGllbnRGcm9tKHBhZ2UpOworICAgIGlmIChwcm92aWRlcikKKyAgICAgICAgbV9u
b3RpZmljYXRpb25DZW50ZXIgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZSh3aW5kb3csIHBy
b3ZpZGVyKTsKKyAgICByZXR1cm4gbV9ub3RpZmljYXRpb25DZW50ZXIuZ2V0KCk7Cit9CisKK05v
dGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6bm90aWZpY2F0aW9uQ2Vu
dGVyKERPTVdpbmRvdyogd2luZG93KQoreworICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRl
ci5nZXQoKTsKK30KKwordm9pZCBET01XaW5kb3dOb3RpZmljYXRpb25zOjpjbGVhck5vdGlmaWNh
dGlvbkNlbnRlcihET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBtX25vdGlmaWNhdGlvbkNlbnRl
ciA9IDA7Cit9CisKK3ZvaWQgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmljYXRp
b25zKERPTVdpbmRvdyogd2luZG93KQoreworICAgIGlmICghd2luZG93LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBET01XaW5kb3dOb3RpZmljYXRpb25z
KiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93Tm90aWZpY2F0aW9ucyo+KFN1cHBs
ZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20od2luZG93LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVudE5hbWUoKSkpOworICAg
IGlmICghc3VwcGxlbWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTm90aWZpY2F0aW9uQ2Vu
dGVyKiBub3RpZmljYXRpb25DZW50ZXIgPSBzdXBwbGVtZW50LT5ub3RpZmljYXRpb25DZW50ZXIo
d2luZG93KTsKKyAgICBpZiAoIW5vdGlmaWNhdGlvbkNlbnRlcikgeworICAgICAgICBTdXBwbGVt
ZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+OjpyZW1vdmUod2luZG93LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3VwcGxlbWVudE5hbWUoKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBub3RpZmljYXRpb25DZW50ZXItPmRpc2Nvbm5lY3RG
cmFtZSgpOworICAgIHN1cHBsZW1lbnQtPmNsZWFyTm90aWZpY2F0aW9uQ2VudGVyKHdpbmRvdyk7
CisgICAgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6cmVtb3ZlKHdpbmRvdy0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBOb3RpZmljYXRpb25DZW50ZXI6OnN1cHBsZW1lbnRO
YW1lKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
RE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9E
T01XaW5kb3dOb3RpZmljYXRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY5MmM4MjFiNDA0OGFmYTU5N2Vj
NTIxZjNmYzJmODJiOGUwODllMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL25v
dGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oCkBAIC0wLDAgKzEsNjUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRE9NV2luZG93Tm90
aWZpY2F0aW9uc19oCisjZGVmaW5lIERPTVdpbmRvd05vdGlmaWNhdGlvbnNfaAorCisjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1
ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9N
V2luZG93OworY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOworY2xhc3MgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsKKworY2xhc3MgRE9NV2luZG93Tm90aWZpY2F0aW9ucyA6IHB1YmxpYyBTdXBwbGVt
ZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5ET01X
aW5kb3dOb3RpZmljYXRpb25zKCk7CisKKyAgICBzdGF0aWMgTm90aWZpY2F0aW9uQ2VudGVyKiB3
ZWJraXROb3RpZmljYXRpb25zKERPTVdpbmRvdyopOworICAgIHN0YXRpYyBET01XaW5kb3dOb3Rp
ZmljYXRpb25zKiBmcm9tKERPTVdpbmRvdyopOworICAgIC8vIFJlbmRlcnMgd2Via2l0Tm90aWZp
Y2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRpc2Nvbm5lY3RzCisgICAgLy8gaWYg
ZnJvbSBlbWJlZGRlci1wcm92aWRlZCBOb3RpZmljYXRpb25DbGllbnQuCisgICAgc3RhdGljIHZv
aWQgcmVzZXROb3RpZmljYXRpb25zKERPTVdpbmRvdyopOworCitwcml2YXRlOgorICAgIERPTVdp
bmRvd05vdGlmaWNhdGlvbnMoKTsKKworICAgIE5vdGlmaWNhdGlvbkNlbnRlciogZW5zdXJlTm90
aWZpY2F0aW9uQ2VudGVyKERPTVdpbmRvdyopOworICAgIE5vdGlmaWNhdGlvbkNlbnRlciogbm90
aWZpY2F0aW9uQ2VudGVyKERPTVdpbmRvdyopOworICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25D
ZW50ZXIoRE9NV2luZG93Kik7CisKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBtX25v
dGlmaWNhdGlvbkNlbnRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQorCisjZW5kaWYgLy8gRE9NV2luZG93Tm90aWZpY2F0
aW9uc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRv
d05vdGlmaWNhdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDc2MDdkMzBkOWI2ODc2ODNhNjg5M2Q1
MmYwNzM4MDc5MmVmMWRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZp
Y2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNlIFsK
KyAgICAgICAgQ29uZGl0aW9uYWw9Tk9USUZJQ0FUSU9OUywKKyAgICAgICAgU3VwcGxlbWVudGFs
PURPTVdpbmRvdworICAgIF0gRE9NV2luZG93Tm90aWZpY2F0aW9ucyB7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBOb3RpZmljYXRpb25DZW50ZXIgd2Vi
a2l0Tm90aWZpY2F0aW9uczsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKaW5kZXggZmY2MDQ0NTMxYTE1NDI4
MjMyNGMxNTRlMzU5ZjI1ZGI0Zjc3ZDVhMy4uMGNkNGNiMWQwMDVkZDliYzJiODhmODE3MzA4NGRh
OTA2YjI5MWJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25DZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2VudGVyLmNwcApAQCAtMzUsMTMgKzM1LDIzIEBACiAKICNpbmNsdWRlICJOb3Rp
ZmljYXRpb25DZW50ZXIuaCIKIAorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRP
TVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+
IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRlKERPTVdpbmRvdyogd2luZG93LCBOb3RpZmljYXRp
b25DbGllbnQqIGNsaWVudCkKK3sKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBub3Rp
ZmljYXRpb25DZW50ZXIoYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvbkNlbnRlcih3aW5kb3csIGNs
aWVudCkpKTsKKyAgICBub3RpZmljYXRpb25DZW50ZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAg
IHJldHVybiBub3RpZmljYXRpb25DZW50ZXIucmVsZWFzZSgpOworfQorCiBQYXNzUmVmUHRyPE5v
dGlmaWNhdGlvbkNlbnRlcj4gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgTm90aWZpY2F0aW9uQ2xpZW50KiBjbGllbnQpCiB7CiAgICAg
UmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gbm90aWZpY2F0aW9uQ2VudGVyKGFkb3B0UmVmKG5l
dyBOb3RpZmljYXRpb25DZW50ZXIoY29udGV4dCwgY2xpZW50KSkpOwpAQCAtNDksNiArNTksMTEg
QEAgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKICAgICByZXR1cm4gbm90aWZpY2F0aW9uQ2VudGVy
LnJlbGVhc2UoKTsKIH0KIAorTm90aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25DZW50ZXIo
RE9NV2luZG93KiB3aW5kb3csIE5vdGlmaWNhdGlvbkNsaWVudCogY2xpZW50KQorICAgIDogQWN0
aXZlRE9NT2JqZWN0KHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlzKQorICAg
ICwgbV9jbGllbnQoY2xpZW50KQorICAgICwgbV93aW5kb3cod2luZG93KSB7IH0KKwogTm90aWZp
Y2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgTm90aWZpY2F0aW9uQ2xpZW50KiBjbGllbnQpCiAgICAgOiBBY3RpdmVET01PYmpl
Y3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fY2xpZW50KGNsaWVudCkgeyB9CkBAIC03Myw5ICs4
OCwyNSBAQCB2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6ZGlzY29ubmVjdEZyYW1lKCkKICAgICAv
LyB0aGlzIG1ldGhvZCBpcyBpbnZva2VkIG1vcmUgdGhlbiBvbmNlLgogICAgIGlmICghbV9jbGll
bnQpCiAgICAgICAgIHJldHVybjsKKwogICAgIG1fY2xpZW50LT5jYW5jZWxSZXF1ZXN0c0ZvclBl
cm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBtX2NsaWVudC0+Y2xlYXJO
b3RpZmljYXRpb25zKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgbV9jbGllbnQgPSAw
OworCisgICAgaWYgKG1fd2luZG93KQorICAgICAgICBET01XaW5kb3dOb3RpZmljYXRpb25zOjpy
ZXNldE5vdGlmaWNhdGlvbnMobV93aW5kb3cpOworfQorCit2b2lkIE5vdGlmaWNhdGlvbkNlbnRl
cjo6d2lsbERldGFjaFBhZ2UoKQoreworICAgIGlmIChtX3dpbmRvdykKKyAgICAgICAgRE9NV2lu
ZG93Tm90aWZpY2F0aW9uczo6cmVzZXROb3RpZmljYXRpb25zKG1fd2luZG93KTsKK30KKworY29u
c3QgQXRvbWljU3RyaW5nJiBOb3RpZmljYXRpb25DZW50ZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJOb3RpZmljYXRp
b25DZW50ZXIiKSk7CisgICAgcmV0dXJuIG5hbWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
Q2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRl
ci5oCmluZGV4IDJjY2NjMGRmY2M2YTZiN2E2MWRjMjkyNGFkYjc1OWFhOGFjZGY1OTUuLjUzZGQ5
ODFhNDRmOTUyNDI5M2MzNTQzZmNkOTI2MjYyZmIwNGRlN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaApAQCAtMzIsMTAgKzMyLDEy
IEBACiAjaWZuZGVmIE5vdGlmaWNhdGlvbkNlbnRlcl9oCiAjZGVmaW5lIE5vdGlmaWNhdGlvbkNl
bnRlcl9oCiAKKyNpbmNsdWRlICJET01XaW5kb3dQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJOb3RpZmlj
YXRpb25Db250ZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNp
bmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00
NiwxMCArNDgsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTm90aWZpY2F0aW9u
Q2xpZW50OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFZvaWRDYWxsYmFj
azsKIAogY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZp
Y2F0aW9uQ2VudGVyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CisgICAgc3Rh
dGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IGNyZWF0ZShET01XaW5kb3cqLCBOb3RpZmljYXRp
b25DbGllbnQqKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTm90aWZpY2F0aW9uQ2xpZW50Kik7CiAKICAg
ICBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbj4gY3JlYXRlSFRNTE5vdGlmaWNhdGlvbihjb25zdCBT
dHJpbmcmIFVSSSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC04MSwxMSArODYsMTQgQEAgcHVibGlj
OgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+KTsK
IAogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7CisgICAgdm9pZCB3aWxsRGV0YWNoUGFnZSgp
OwogCiBwcml2YXRlOgorICAgIE5vdGlmaWNhdGlvbkNlbnRlcihET01XaW5kb3cqLCBOb3RpZmlj
YXRpb25DbGllbnQqKTsKICAgICBOb3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIE5vdGlmaWNhdGlvbkNsaWVudCopOwogCiAgICAgTm90aWZpY2F0aW9uQ2xpZW50KiBt
X2NsaWVudDsKKyAgICBET01XaW5kb3cqIG1fd2luZG93OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGVlYzk2OWZmNjc2OGEwZGYx
NTY5MTA4ZGQzZjRiMTEzZjBmOWNhYjYuLjY2ZGMzMzU4NTQzOThiNDcyZTVmNWYyMzJlMzFlNzA0
ZmRhODdlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTcyLDggKzcyLDYgQEAK
ICNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5o
IgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5o
IgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5o
IgpAQCAtNDE1LDkgKzQxMyw2IEBAIERPTVdpbmRvdzo6fkRPTVdpbmRvdygpCiAgICAgQVNTRVJU
KCFtX3Nlc3Npb25TdG9yYWdlKTsKICAgICBBU1NFUlQoIW1fbG9jYWxTdG9yYWdlKTsKICAgICBB
U1NFUlQoIW1fYXBwbGljYXRpb25DYWNoZSk7Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0g
ICAgQVNTRVJUKCFtX25vdGlmaWNhdGlvbnMpOwotI2VuZGlmCiAjaWYgRU5BQkxFKEJMT0IpCiAg
ICAgQVNTRVJUKCFtX2RvbVVSTCk7CiAjZW5kaWYKQEAgLTQ3MywxMiArNDY4LDYgQEAgdm9pZCBE
T01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKCkKIHsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmZyYW1lV2luZG93RGlzY2FyZGVkKG1fZnJhbWUsIHRoaXMpOwogCi0jaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCi0gICAgLy8gQ2xlYXJpbmcgTm90aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZv
bHZlcyBhY2Nlc3NpbmcgdGhlIGNsaWVudCBzbyBpdCBtdXN0IGJlIGRvbmUKLSAgICAvLyBiZWZv
cmUgdGhlIGZyYW1lIGlzIGRldGFjaGVkLgotICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2Vu
ZGlmCi0KICAgICBIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIHN0b3AgPSBt
X3Byb3BlcnRpZXMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46
Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCiAg
ICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOwpAQCAtNTIxLDExICs1MTAsNiBAQCB2b2lk
IERPTVdpbmRvdzo6Y2xlYXIoKQogICAgIG1fc2Vzc2lvblN0b3JhZ2UgPSAwOwogICAgIG1fbG9j
YWxTdG9yYWdlID0gMDsKICAgICBtX2FwcGxpY2F0aW9uQ2FjaGUgPSAwOwotI2lmIEVOQUJMRShO
T1RJRklDQVRJT05TKQotICAgIC8vIEZJWE1FOiBOb3RpZmljYXRpb25zIHNob3VsZG4ndCBoYXZl
IGRpZmZlcmVudCBkaXNjb25uZWN0aW9uIGxvZ2ljIHRoYW4KLSAgICAvLyB0aGUgcmVzdCBvZiB0
aGUgRE9NV2luZG93UHJvcGVydGllcy4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRp
ZgogI2lmIEVOQUJMRShCTE9CKQogICAgIG1fZG9tVVJMID0gMDsKICNlbmRpZgpAQCAtNzAyLDM2
ICs2ODYsNiBAQCBTdG9yYWdlKiBET01XaW5kb3c6OmxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2Rl
JiBlYykgY29uc3QKICAgICByZXR1cm4gbV9sb2NhbFN0b3JhZ2UuZ2V0KCk7CiB9CiAKLSNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKLU5vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93Ojp3ZWJr
aXROb3RpZmljYXRpb25zKCkgY29uc3QKLXsKLSAgICBpZiAobV9ub3RpZmljYXRpb25zIHx8ICFp
c0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIG1fbm90aWZpY2F0
aW9ucy5nZXQoKTsKLQotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7
Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgCi0gICAgUGFnZSog
cGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4g
MDsKLQotICAgIE5vdGlmaWNhdGlvbkNsaWVudCogcHJvdmlkZXIgPSBOb3RpZmljYXRpb25Db250
cm9sbGVyOjpjbGllbnRGcm9tKHBhZ2UpOwotICAgIGlmIChwcm92aWRlcikgCi0gICAgICAgIG1f
bm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRlKGRvY3VtZW50LCBwcm92
aWRlcik7ICAgIAotICAgICAgCi0gICAgcmV0dXJuIG1fbm90aWZpY2F0aW9ucy5nZXQoKTsKLX0K
LQotdm9pZCBET01XaW5kb3c6OnJlc2V0Tm90aWZpY2F0aW9ucygpCi17Ci0gICAgaWYgKCFtX25v
dGlmaWNhdGlvbnMpCi0gICAgICAgIHJldHVybjsKLSAgICBtX25vdGlmaWNhdGlvbnMtPmRpc2Nv
bm5lY3RGcmFtZSgpOwotICAgIG1fbm90aWZpY2F0aW9ucyA9IDA7Ci19Ci0jZW5kaWYKLQogdm9p
ZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBtZXNzYWdlLCBNZXNzYWdlUG9ydCogcG9ydCwgY29uc3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4s
IERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBNZXNzYWdlUG9y
dEFycmF5IHBvcnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggY2RmZDMyMmQ4ZGE4NmE2
ZWY2M2IyYWExM2VkYzllYTczYzUwNzY5Yi4uZWI1OWI5MjM5NzRjMzZlZGQ5ZjM2YjljOWFhMjI5
MmE1MTdlMGQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC01Niw3ICs1Niw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKICAgICBjbGFzcyBO
YXZpZ2F0b3I7CiAgICAgY2xhc3MgTm9kZTsKLSAgICBjbGFzcyBOb3RpZmljYXRpb25DZW50ZXI7
CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBQZXJmb3JtYW5jZTsKICAgICBjbGFzcyBQb3N0
TWVzc2FnZVRpbWVyOwpAQCAtMzU0LDEzICszNTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFN0b3JhZ2UqIHNlc3Npb25TdG9yYWdlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAg
ICAgICAgU3RvcmFnZSogbG9jYWxTdG9yYWdlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAotI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICBOb3RpZmljYXRpb25DZW50ZXIqIHdlYmtp
dE5vdGlmaWNhdGlvbnMoKSBjb25zdDsKLSAgICAgICAgLy8gUmVuZGVycyB3ZWJraXROb3RpZmlj
YXRpb25zIG9iamVjdCBzYWZlbHkgaW5vcGVyYWJsZSwgZGlzY29ubmVjdHMKLSAgICAgICAgLy8g
aWYgZnJvbSBlbWJlZGRlci1wcm92aWRlZCBOb3RpZmljYXRpb25DbGllbnQuCi0gICAgICAgIHZv
aWQgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShRVU9UQSkKICAg
ICAgICAgU3RvcmFnZUluZm8qIHdlYmtpdFN0b3JhZ2VJbmZvKCkgY29uc3Q7CiAjZW5kaWYKQEAg
LTQ0MywxMCArNDM1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBtdXRhYmxlIFJl
ZlB0cjxTdG9yYWdlPiBtX2xvY2FsU3RvcmFnZTsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8RE9N
QXBwbGljYXRpb25DYWNoZT4gbV9hcHBsaWNhdGlvbkNhY2hlOwogCi0jaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpCi0gICAgICAgIG11dGFibGUgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gbV9u
b3RpZmljYXRpb25zOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoV0VCX1RJTUlORykKICAgICAgICAg
bXV0YWJsZSBSZWZQdHI8UGVyZm9ybWFuY2U+IG1fcGVyZm9ybWFuY2U7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCAxNDA4NmJmMjBlOWU0OTc2YWE4ODEyM2I4NjBjMDdi
NDU5M2E3OWFkLi4wZWZhN2JmMTI0ODkxMDhiYWE1Mzg3ZTIxNzE3ZWY2MzZjYmYxYzJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0xNzAsMTAgKzE3MCw2IEBAIG1vZHVsZSB3aW5k
b3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gU3Rv
cmFnZSBsb2NhbFN0b3JhZ2UKICAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKIAotI2lmIGRlZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMpICYmIEVOQUJMRV9OT1RJRklD
QVRJT05TCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBO
b3RpZmljYXRpb25DZW50ZXIgd2Via2l0Tm90aWZpY2F0aW9uczsKLSNlbmRpZgotCiAjaWYgZGVm
aW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKSAmJiBFTkFCTEVfT1JJRU5UQVRJT05fRVZF
TlRTCiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGludGVyZmFjZSBvcmllbnRhdGlvbiBpbiBkZWdy
ZWVzLiBTb21lIGV4YW1wbGVzIGFyZToKICAgICAgICAgLy8gIDAgaXMgc3RyYWlnaHQgdXA7IC05
MCBpcyB3aGVuIHRoZSBkZXZpY2UgaXMgcm90YXRlZCA5MCBjbG9ja3dpc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCmluZGV4IGFkOWNhYjhlOWQxM2ExZjViYjc1ODMxN2JiYzc5NjIzY2JlNmFjNDAuLjJj
NTRkYzE2ZTk0YjE3OGJlNTUxOWZjOWExNDY5ZDU4MWYxNzA4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNs
dWRlICJET01XaW5kb3dOb3RpZmljYXRpb25zLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgi
CiAjaW5jbHVkZSAiRWRpdGluZ1RleHQuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKQEAg
LTY4Nyw5ICs2ODgsMTAgQEAgdm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogICAgIGlmIChG
cmFtZSogcGFyZW50ID0gdHJlZSgpLT5wYXJlbnQoKSkKICAgICAgICAgcGFyZW50LT5sb2FkZXIo
KS0+Y2hlY2tMb2FkQ29tcGxldGUoKTsKIAorLy8gRklYTUU6IFRoaXMgd2lsbCBiZSBzcGxpdCBv
dXQgb2YgaGVyZSB0byB0aGUgbm90aWZpY2F0aW9ucyBtb2R1bGUuCiAjaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpCiAgICAgaWYgKG1fZG9tV2luZG93KQotICAgICAgICBtX2RvbVdpbmRvdy0+cmVz
ZXROb3RpZmljYXRpb25zKCk7CisgICAgICAgIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OnJlc2V0
Tm90aWZpY2F0aW9ucyhtX2RvbVdpbmRvdy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIEhhc2hTZXQ8
RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9u
T2JzZXJ2ZXJzLmVuZCgpOwpAQCAtNzM2LDExICs3MzgsMTEgQEAgdm9pZCBGcmFtZTo6dHJhbnNm
ZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgpCiAgICAgICAgICAgICAgbV9wYWdlLT5kZWNyZW1l
bnRGcmFtZUNvdW50KCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobV9kb21XaW5kb3cpIHsK
Ky8vIEZJWE1FOiBUaGlzIHdpbGwgYmUgc3BsaXQgb3V0IG9mIGhlcmUgdG8gdGhlIG5vdGlmaWNh
dGlvbnMgbW9kdWxlLgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICAgICAgbV9k
b21XaW5kb3ctPnJlc2V0Tm90aWZpY2F0aW9ucygpOworICAgICAgICBpZiAobV9kb21XaW5kb3cp
CisgICAgICAgICAgICBET01XaW5kb3dOb3RpZmljYXRpb25zOjpyZXNldE5vdGlmaWNhdGlvbnMo
bV9kb21XaW5kb3cuZ2V0KCkpOwogI2VuZGlmCi0gICAgICAgIH0KIAogICAgICAgICBIYXNoU2V0
PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9wID0gbV9kZXN0cnVjdGlv
bk9ic2VydmVycy5lbmQoKTsKICAgICAgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25P
YnNlcnZlcio+OjppdGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVnaW4oKTsg
aXQgIT0gc3RvcDsgKytpdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1
cHBsZW1lbnRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5o
CmluZGV4IDg0ZGM5MDZlMmFmMzQ4YTM0ZDg1YjZiOWQ4M2M2OTcyZWMyZDY2ZTEuLjE3MmM4NGUy
MzhiNjZhMjg2NDIwNGQ1MWUyMmJiMjZlNzdhMjM2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU3VwcGxlbWVudGFibGUuaApAQCAtNDYsNiArNDYsMTEgQEAgcHVibGljOgogICAgICAgICBo
b3N0LT5wcm92aWRlU3VwcGxlbWVudChrZXksIHN1cHBsZW1lbnQpOwogICAgIH0KIAorICAgIHN0
YXRpYyB2b2lkIHJlbW92ZShTdXBwbGVtZW50YWJsZTxUPiogaG9zdCwgY29uc3QgQXRvbWljU3Ry
aW5nJiBrZXkpCisgICAgeworICAgICAgICBob3N0LT5yZW1vdmVTdXBwbGVtZW50KGtleSk7Cisg
ICAgfQorCiAgICAgc3RhdGljIFN1cHBsZW1lbnQ8VD4qIGZyb20oU3VwcGxlbWVudGFibGU8VD4q
IGhvc3QsIGNvbnN0IEF0b21pY1N0cmluZyYga2V5KQogICAgIHsKICAgICAgICAgcmV0dXJuIGhv
c3QgPyBob3N0LT5yZXF1aXJlU3VwcGxlbWVudChrZXkpIDogMDsKQEAgLTYxLDYgKzY2LDExIEBA
IHB1YmxpYzoKICAgICAgICAgbV9zdXBwbGVtZW50cy5zZXQoa2V5LCBzdXBwbGVtZW50KTsKICAg
ICB9CiAKKyAgICB2b2lkIHJlbW92ZVN1cHBsZW1lbnQoY29uc3QgQXRvbWljU3RyaW5nJiBrZXkp
CisgICAgeworICAgICAgICBtX3N1cHBsZW1lbnRzLnJlbW92ZShrZXkpOworICAgIH0KKwogICAg
IFN1cHBsZW1lbnQ8VD4qIHJlcXVpcmVTdXBwbGVtZW50KGNvbnN0IEF0b21pY1N0cmluZyYga2V5
KQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fc3VwcGxlbWVudHMuZ2V0KGtleSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlciBiL1NvdXJjZS9XZWJLaXQyL21h
Yy9XZWJLaXQyLm9yZGVyCmluZGV4IDQ1N2EwNjNlMGI4M2I3MDQ3ZGVmNDViZWFjZGZlZjkzMmFj
ZGQxYjcuLmI1MmU0NGU3ZDllMTU1MGYxMzMzYjJmODI2NzZhMjczNDQ0YWRhYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQyLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJLaXQy
L21hYy9XZWJLaXQyLm9yZGVyCkBAIC0zMzg0LDMgKzMzODQsOCBAQCBfV0tBZHZhbmNlRGVmYXVs
dEJ1dHRvblB1bHNlQW5pbWF0aW9uCiBfV0tBcHBLaXREcmF3RGVjb3lXaW5kb3dfaXNLZXlXaW5k
b3cKIF9fWk42V2ViS2l0N1dlYlBhZ2UzNnN1c3BlbmRBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0
aW9uc0V2CiBfX1pONldlYktpdDdXZWJQYWdlMzVyZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5p
bWF0aW9uc0V2CisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKK19fWk43V2ViQ29yZTIyRE9N
V2luZG93Tm90aWZpY2F0aW9uczE4cmVzZXROb3RpZmljYXRpb25zRVBOU185RE9NV2luZG93RQor
X19aTjdXZWJDb3JlMjJET01XaW5kb3dOb3RpZmljYXRpb25zMTl3ZWJraXROb3RpZmljYXRpb25z
RVBOU185RE9NV2luZG93RQorI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131270</attachid>
            <date>2012-03-11 19:07:09 -0700</date>
            <delta_ts>2012-03-12 02:06:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79636-20120312110707.patch</filename>
            <type>text/plain</type>
            <size>25170</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmIyZThkNmFlMGQ5ZDVl
YjUwMDExMDE2OWU2OTE4ZjY5YTg2YTAyNy4uM2YwMDQ4MDkyOGQyNWFlMWZlZTBlMmE1MGZkOTI4
YWQ1OTQxMThlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdl
YktpdCBtb2R1bGFyaXphdGlvbiwgdGhpcyBwYXRjaCBtb3ZlcyBOb3RpZmljYXRpb25zLXJlbGF0
ZWQgQVBJcworICAgICAgICBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvbm90aWZpY2F0aW9ucy8qIChObyBjaGFu
Z2UgaW4gdGVzdCByZXN1bHRzKQorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMue2gsY3BwLGlkbH0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOiBEaXR0by4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJp
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKworICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOiBBZGRlZCBtYW5nbGVkIHNpZ25hdHVyZXMgb2YgcmVzZXROb3RpZmljYXRpb25zKCkgYW5k
IHdlYmtpdE5vdGlmaWNhdGlvbnMoKS4KKworICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dOb3RpZmljYXRpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5ET01XaW5kb3dO
b3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6
OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6d2Via2l0
Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25z
OjplbnN1cmVXZWJraXROb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRv
d05vdGlmaWNhdGlvbnM6Om5vdGlmaWNhdGlvbkNlbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3dOb3RpZmljYXRpb25zOjpjbGVhck5vdGlmaWNhdGlvbkNlbnRlcik6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJhbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6c3VwcGxlbWVudE5hbWUpOgor
ICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93Tm90aWZpY2F0aW9ucyk6Cisg
ICAgICAgICogbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDogQWRkZWQu
CisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IFJlbW92ZWQgRU5BQkxFKE5PVElGSUNB
VElPTlMpLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6d2lsbERldGFjaFBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpjbGVhcik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAgICogcGFn
ZS9ET01XaW5kb3cuaWRsOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6d2lsbERldGFjaFBhZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQpOgorCiAyMDEyLTAz
LTExICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJF
R1JFU1NJT04gKHI5MzYxNCk6IHNjcm9sbGluZyBkaXYgZG9lcyBub3QgcmVwYWludApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDZhMDI1OWY1M2UzYTgxNTczMTY4YTU1NjI3OTA3NDlmMjdjNmYwMjYuLjNjMmZlYmEw
YjA1NTcxOGI5ZDlkNGZjYzA3NGQ5ODNhYzAwM2JmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMi0wMy0xMSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgTW92ZSBOb3RpZmljYXRpb25zIEFQSXMgZnJvbSBET01XaW5kb3cuaWRsIHRvIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03OTYzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZvciBXZWJLaXQgbW9kdWxhcml6YXRpb24sIHRoaXMgcGF0Y2ggbW92
ZXMgTm90aWZpY2F0aW9ucy1yZWxhdGVkIEFQSXMKKyAgICAgICAgZnJvbSBET01XaW5kb3cuaWRs
IHRvIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsLgorCisgICAgICAgICogbWFjL1dlYktpdDIu
b3JkZXI6IEFkZGVkIG1hbmdsZWQgc2lnbmF0dXJlcyBvZiByZXNldE5vdGlmaWNhdGlvbnMoKSBh
bmQgd2Via2l0Tm90aWZpY2F0aW9ucygpLgorCiAyMDEyLTAzLTExICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0MiBsYWNrcyBBUEkgZm9yIG9idGFpbmlu
ZyBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBSZW5kZXJMYXllciB0cmVlIG9mIGEgcGFnZSwgbGlr
ZSBXZWJSZW5kZXJMYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyZmNjMjY1NTczMzI2Mzk1
Y2E0NDAyNDQ0Y2QwMGE4ZThjY2FjMjIwLi45ZTQwMDEyN2QxZjNmNTVhNThmZDY3ODQwODhlODE3
YWUyZTQyYmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYyMywxMiArMTYyMywxNCBAQCBF
TkRJRiAoKQogCiBJRiAoRU5BQkxFX05PVElGSUNBVElPTlMpCiAgICAgTElTVChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTCisgICAgICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCiAgICAg
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKICAgICAgICAgbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCiAgICAgKQogCiAgICAgTElTVChBUFBFTkQgV2Vi
Q29yZV9JRExfRklMRVMKKyAgICAgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRp
b25zLmlkbAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKICAgICAgICAg
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCiAgICAgKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjQ2MDY4MzNhNTc2ZDhkN2ZiNTgxYzFiMzY1YWY2ZDYwOGQy
MWM2NS4uNjljODBjNDZlNGFkYzhiNGY5MTNlMWRlNjAzMDhkNGMyYjgzYzdmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNTMsNiArMzUzLDcgQEAgQklORElOR19JRExTID0g
XAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
bG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQoV2ViQ29y
ZSkvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0Fi
c3RyYWN0Vmlldy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IGFmNGY1YjUw
Yjg1N2YyMmYxMGI0YzU3YjNkYWQ4ZTFkMjg4MzVhZDguLmU1NTM5MjQ0OWJkMWQ2OTZjMjk1ZjNh
MzRkODBkZmM4YjI1YmRkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTM3NSw2
ICszNzUsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2luc3BlY3Rvci9TY3JpcHRQ
cm9maWxlLmlkbCBcCiAgICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBc
CiAgICAgJCRQV0QvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAg
ICAkJFBXRC9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKICAgICAk
JFBXRC9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgXAogICAgICQkUFdEL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJCRQV0QvcGFnZS9CYXJJbmZvLmlk
bCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyYmQxZjY1NGM5MGRjNzI1OWFi
OTI2Mzc1M2ViYmQ3MzIzMzFiZDFiLi5kYWQxZTRjYzU3N2YzNThkNjgxMzc5NjI1NjZjYWUzMDQ1
MmVmMWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4MjAsNiArMjgyMCw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1h
dGhFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CmluZGV4IDU2YzE3ZjNmY2FiZTYwNmNkYjBhY2JlNmVlZWQ0ZDMwMTNkOTQxZDYuLmE2ZGI0M2Ni
ZGE3NTA2MDhhYzc5ZTlhYjgwMzJjZjhiM2ExMWUyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTgwLDYg
Kzk4MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAg
XAogICAgIGxvYWRlci9UZXh0UmVzb3VyY2VEZWNvZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RocmVh
ZGFibGVMb2FkZXIuY3BwIFwKKyAgICBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlv
bnMuY3BwIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgXAogICAgIG5vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25Db250cm9sbGVyLmNwcCBcCkBAIC0yMDc2LDYgKzIwNzcsNyBAQCBIRUFERVJTICs9
IFwKICAgICBtYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIFwKICAgICBtYXRo
bWwvTWF0aE1MTWF0aEVsZW1lbnQuaCBcCiAgICAgbWF0aG1sL01hdGhNTFRleHRFbGVtZW50Lmgg
XAorICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIFwKICAgICBub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5oIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bkNlbnRlci5oIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KaW5kZXggNTkwYjdjNTBmYmI5YzI4YmYyMmVmMmYzZTNmYzI0ZTQxODYw
MjU4NS4uMjk4YmI3YWU0OTg2ODQ4ZWEyNDE1OTJhZGI1ZjZkYzY0OWQyODNiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KQEAgLTIxMjQsNiArMjEyNCw4IEBAIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0
aW9uMThkaXNwYXRjaENsaWNrRXZlbnRFdgogX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb24xOGRp
c3BhdGNoQ2xvc2VFdmVudEV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjE4ZGlzcGF0Y2hF
cnJvckV2ZW50RXYKIF9fWk43V2ViQ29yZTE5cHJvdmlkZU5vdGlmaWNhdGlvbkVQTlNfNFBhZ2VF
UE5TXzE4Tm90aWZpY2F0aW9uQ2xpZW50RQorX19aTjdXZWJDb3JlMjJET01XaW5kb3dOb3RpZmlj
YXRpb25zMThyZXNldE5vdGlmaWNhdGlvbnNFUE5TXzlET01XaW5kb3dFCitfX1pON1dlYkNvcmUy
MkRPTVdpbmRvd05vdGlmaWNhdGlvbnMxOXdlYmtpdE5vdGlmaWNhdGlvbnNFUE5TXzlET01XaW5k
b3dFCiAjZW5kaWYKIAogI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggNzY4NTcyNjc0ZjE1ZWIzYzlhMDAyMTMxYmQwNzNmZWMxMTE0ZGU3ZS4uMDIyYzRl
ZjlmN2JjMmY1NWM1ZmFlYWM5MTM0NDg5Zjc4ZTVjOTRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
MTA1MSw2ICsxMDUxLDcgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5p
ZGwnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwnLAogICAg
ICAgICAgICAgJ2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbCcsCisgICAg
ICAgICAgICAnbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCcsCiAgICAg
ICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsJywKICAgICAgICAgICAgICdu
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5pZGwnLAogICAgICAgICAgICAgJ3BhZ2Uv
QWJzdHJhY3RWaWV3LmlkbCcsCkBAIC0yNzc3LDYgKzI3NzgsOCBAQAogICAgICAgICAgICAgJ21h
dGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oJywKICAgICAgICAgICAgICdtYXRobWwvTWF0aE1MVGV4
dEVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdtYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCcs
CisgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCcs
CisgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgnLAog
ICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCcsCiAgICAgICAgICAg
ICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggM2FkMDljZjQ1NDhlZDhkM2Y0NjllN2M2MDkyNGQ5
MWYzNDdhODJhZS4uMzhkYmQ5NjZiZmUzY2ZlYmU1ZDQ3Njc5OWU3MTg5Njg4NGM0ZTk4NiAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTUzNTc4
LDYgKzUzNTc4LDE0IEBACiAJCQlOYW1lPSJub3RpZmljYXRpb25zIgogCQkJPgogCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XG5vdGlmaWNhdGlvbnNcRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXE5vdGlmaWNh
dGlvbi5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I1
ODNhZDQzZjA5ZGQ4MzkwOTc0OGEyMjZjYmFhOTU2OTliODU4NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAK
QEAgLTAsMCArMSwxMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJET01XaW5kb3dOb3RpZmljYXRpb25zLmgi
CisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCisj
aW5jbHVkZSAiTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitET01XaW5kb3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dO
b3RpZmljYXRpb25zKERPTVdpbmRvdyAqd2luZG93KQorICAgIDogRE9NV2luZG93UHJvcGVydHko
d2luZG93LT5mcmFtZSgpKQorICAgICwgbV93aW5kb3cod2luZG93KQoreworfQorCitET01XaW5k
b3dOb3RpZmljYXRpb25zOjp+RE9NV2luZG93Tm90aWZpY2F0aW9ucygpCit7Cit9CisKK0RPTVdp
bmRvd05vdGlmaWNhdGlvbnMqIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmZyb20oRE9NV2luZG93
KiB3aW5kb3cpCit7CisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyogc3VwcGxlbWVudCA9IHN0
YXRpY19jYXN0PERPTVdpbmRvd05vdGlmaWNhdGlvbnMqPihTdXBwbGVtZW50PERPTVdpbmRvdz46
OmZyb20od2luZG93LCBzdXBwbGVtZW50TmFtZSgpKSk7CisgICAgaWYgKCFzdXBwbGVtZW50KSB7
CisgICAgICAgIHN1cHBsZW1lbnQgPSBuZXcgRE9NV2luZG93Tm90aWZpY2F0aW9ucyh3aW5kb3cp
OworICAgICAgICBTdXBwbGVtZW50PERPTVdpbmRvdz46OnByb3ZpZGVUbyh3aW5kb3csIHN1cHBs
ZW1lbnROYW1lKCksIGFkb3B0UHRyKHN1cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuIHN1
cHBsZW1lbnQ7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9u
czo6d2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICByZXR1cm4g
RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZnJvbSh3aW5kb3cpLT5lbnN1cmVXZWJraXROb3RpZmlj
YXRpb25zKHdpbmRvdyk7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZp
Y2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqIHdpbmRvdykKK3sK
KyAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXIpCisgICAgICAgIHJldHVybiBtX25vdGlmaWNh
dGlvbkNlbnRlci5nZXQoKTsKKworICAgIGlmICghd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXll
ZEluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSB3aW5kb3ctPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2Up
CisgICAgICAgIHJldHVybiAwOworCisgICAgTm90aWZpY2F0aW9uQ2xpZW50KiBwcm92aWRlciA9
IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVudEZyb20ocGFnZSk7CisgICAgaWYgKHByb3Zp
ZGVyKQorICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRlciA9IE5vdGlmaWNhdGlvbkNlbnRlcjo6
Y3JlYXRlKHdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBwcm92aWRlcik7CisgICAg
cmV0dXJuIG1fbm90aWZpY2F0aW9uQ2VudGVyLmdldCgpOworfQorCitOb3RpZmljYXRpb25DZW50
ZXIqIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6Om5vdGlmaWNhdGlvbkNlbnRlcihET01XaW5kb3cq
IHdpbmRvdykKK3sKKyAgICByZXR1cm4gbV9ub3RpZmljYXRpb25DZW50ZXIuZ2V0KCk7Cit9CisK
K3ZvaWQgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6Y2xlYXJOb3RpZmljYXRpb25DZW50ZXIoRE9N
V2luZG93KiB3aW5kb3cpCit7CisgICAgbV9ub3RpZmljYXRpb25DZW50ZXIgPSAwOworfQorCit2
b2lkIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmRpc2Nvbm5lY3RGcmFtZSgpCit7CisgICAgRE9N
V2luZG93Tm90aWZpY2F0aW9ucyogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PERPTVdpbmRvd05v
dGlmaWNhdGlvbnMqPihTdXBwbGVtZW50PERPTVdpbmRvdz46OmZyb20obV93aW5kb3csIHN1cHBs
ZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIE5vdGlmaWNhdGlvbkNlbnRlciogbm90aWZpY2F0aW9uQ2VudGVyID0gc3VwcGxlbWVudC0+
bm90aWZpY2F0aW9uQ2VudGVyKG1fd2luZG93KTsKKyAgICBpZiAoIW5vdGlmaWNhdGlvbkNlbnRl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbm90aWZpY2F0aW9uQ2VudGVyLT5kaXNjb25uZWN0
RnJhbWUoKTsKKyAgICBzdXBwbGVtZW50LT5jbGVhck5vdGlmaWNhdGlvbkNlbnRlcihtX3dpbmRv
dyk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgRE9NV2luZG93Tm90aWZpY2F0aW9uczo6c3Vw
cGxlbWVudE5hbWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBu
YW1lLCAoIkRPTVdpbmRvd05vdGlmaWNhdGlvbnMiKSk7CisgICAgcmV0dXJuIG5hbWU7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlm
aWNhdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTY3ZGZkZmJhZmNiMWM2N2U0ZjE5NDMzNTllOWJhNjMx
NTNlZGFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9E
T01XaW5kb3dOb3RpZmljYXRpb25zLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBET01XaW5kb3dOb3RpZmljYXRpb25zX2gK
KyNkZWZpbmUgRE9NV2luZG93Tm90aWZpY2F0aW9uc19oCisKKyNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKKworI2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIE5vdGlmaWNhdGlvbkNlbnRlcjsKK2Ns
YXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIERPTVdpbmRvd05vdGlmaWNhdGlv
bnMgOiBwdWJsaWMgU3VwcGxlbWVudDxET01XaW5kb3c+LCBwdWJsaWMgRE9NV2luZG93UHJvcGVy
dHkgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKTsKKwor
ICAgIHN0YXRpYyBOb3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMoRE9NV2lu
ZG93Kik7CisgICAgc3RhdGljIERPTVdpbmRvd05vdGlmaWNhdGlvbnMqIGZyb20oRE9NV2luZG93
Kik7CisKK3ByaXZhdGU6CisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsK
KworICAgIE5vdGlmaWNhdGlvbkNlbnRlciogZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucyhET01X
aW5kb3cqKTsKKyAgICBOb3RpZmljYXRpb25DZW50ZXIqIG5vdGlmaWNhdGlvbkNlbnRlcihET01X
aW5kb3cqKTsKKyAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9uQ2VudGVyKERPTVdpbmRvdyopOwor
ICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7CisKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4g
bV9ub3RpZmljYXRpb25DZW50ZXI7CisgICAgRE9NV2luZG93KiBtX3dpbmRvdzsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQor
CisjZW5kaWYgLy8gRE9NV2luZG93Tm90aWZpY2F0aW9uc19oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIGIvU291cmNl
L1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lMDc2MDdkMzBkOWI2ODc2ODNhNjg5M2Q1MmYwNzM4MDc5MmVmMWRiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRp
b25zLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVs
ZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9Tk9USUZJ
Q0FUSU9OUywKKyAgICAgICAgU3VwcGxlbWVudGFsPURPTVdpbmRvdworICAgIF0gRE9NV2luZG93
Tm90aWZpY2F0aW9ucyB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRS
dW50aW1lXSBOb3RpZmljYXRpb25DZW50ZXIgd2Via2l0Tm90aWZpY2F0aW9uczsKKyAgICB9Owor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZWVjOTY5ZmY2NzY4YTBkZjE1Njkx
MDhkZDNmNGIxMTNmMGY5Y2FiNi4uNjZkYzMzNTg1NDM5OGI0NzJlNWY1ZjIzMmUzMWU3MDRmZGE4
N2UwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNzIsOCArNzIsNiBAQAogI2lu
Y2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAj
aW5jbHVkZSAiTmF2aWdhdG9yLmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCi0j
aW5jbHVkZSAiTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWdlVHJhbnNpdGlvbkV2ZW50LmgiCkBA
IC00MTUsOSArNDEzLDYgQEAgRE9NV2luZG93Ojp+RE9NV2luZG93KCkKICAgICBBU1NFUlQoIW1f
c2Vzc2lvblN0b3JhZ2UpOwogICAgIEFTU0VSVCghbV9sb2NhbFN0b3JhZ2UpOwogICAgIEFTU0VS
VCghbV9hcHBsaWNhdGlvbkNhY2hlKTsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICBB
U1NFUlQoIW1fbm90aWZpY2F0aW9ucyk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQkxPQikKICAgICBB
U1NFUlQoIW1fZG9tVVJMKTsKICNlbmRpZgpAQCAtNDczLDEyICs0NjgsNiBAQCB2b2lkIERPTVdp
bmRvdzo6d2lsbERldGFjaFBhZ2UoKQogewogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZnJhbWVXaW5kb3dEaXNjYXJkZWQobV9mcmFtZSwgdGhpcyk7CiAKLSNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OUykKLSAgICAvLyBDbGVhcmluZyBOb3RpZmljYXRpb25zIHJlcXVlc3RzIGludm9sdmVz
IGFjY2Vzc2luZyB0aGUgY2xpZW50IHNvIGl0IG11c3QgYmUgZG9uZQotICAgIC8vIGJlZm9yZSB0
aGUgZnJhbWUgaXMgZGV0YWNoZWQuCi0gICAgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYK
LQogICAgIEhhc2hTZXQ8RE9NV2luZG93UHJvcGVydHkqPjo6aXRlcmF0b3Igc3RvcCA9IG1fcHJv
cGVydGllcy5lbmQoKTsKICAgICBmb3IgKEhhc2hTZXQ8RE9NV2luZG93UHJvcGVydHkqPjo6aXRl
cmF0b3IgaXQgPSBtX3Byb3BlcnRpZXMuYmVnaW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKICAgICAg
ICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7CkBAIC01MjEsMTEgKzUxMCw2IEBAIHZvaWQgRE9N
V2luZG93OjpjbGVhcigpCiAgICAgbV9zZXNzaW9uU3RvcmFnZSA9IDA7CiAgICAgbV9sb2NhbFN0
b3JhZ2UgPSAwOwogICAgIG1fYXBwbGljYXRpb25DYWNoZSA9IDA7Ci0jaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpCi0gICAgLy8gRklYTUU6IE5vdGlmaWNhdGlvbnMgc2hvdWxkbid0IGhhdmUgZGlm
ZmVyZW50IGRpc2Nvbm5lY3Rpb24gbG9naWMgdGhhbgotICAgIC8vIHRoZSByZXN0IG9mIHRoZSBE
T01XaW5kb3dQcm9wZXJ0aWVzLgotICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCiAj
aWYgRU5BQkxFKEJMT0IpCiAgICAgbV9kb21VUkwgPSAwOwogI2VuZGlmCkBAIC03MDIsMzYgKzY4
Niw2IEBAIFN0b3JhZ2UqIERPTVdpbmRvdzo6bG9jYWxTdG9yYWdlKEV4Y2VwdGlvbkNvZGUmIGVj
KSBjb25zdAogICAgIHJldHVybiBtX2xvY2FsU3RvcmFnZS5nZXQoKTsKIH0KIAotI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQotTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3c6OndlYmtpdE5v
dGlmaWNhdGlvbnMoKSBjb25zdAotewotICAgIGlmIChtX25vdGlmaWNhdGlvbnMgfHwgIWlzQ3Vy
cmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQotICAgICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25z
LmdldCgpOwotCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKLSAg
ICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm4gMDsKLSAgICAKLSAgICBQYWdlKiBwYWdl
ID0gZG9jdW1lbnQtPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybiAwOwot
Ci0gICAgTm90aWZpY2F0aW9uQ2xpZW50KiBwcm92aWRlciA9IE5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXI6OmNsaWVudEZyb20ocGFnZSk7Ci0gICAgaWYgKHByb3ZpZGVyKSAKLSAgICAgICAgbV9ub3Rp
ZmljYXRpb25zID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoZG9jdW1lbnQsIHByb3ZpZGVy
KTsgICAgCi0gICAgICAKLSAgICByZXR1cm4gbV9ub3RpZmljYXRpb25zLmdldCgpOwotfQotCi12
b2lkIERPTVdpbmRvdzo6cmVzZXROb3RpZmljYXRpb25zKCkKLXsKLSAgICBpZiAoIW1fbm90aWZp
Y2F0aW9ucykKLSAgICAgICAgcmV0dXJuOwotICAgIG1fbm90aWZpY2F0aW9ucy0+ZGlzY29ubmVj
dEZyYW1lKCk7Ci0gICAgbV9ub3RpZmljYXRpb25zID0gMDsKLX0KLSNlbmRpZgotCiB2b2lkIERP
TVdpbmRvdzo6cG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1l
c3NhZ2UsIE1lc3NhZ2VQb3J0KiBwb3J0LCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgRE9N
V2luZG93KiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIE1lc3NhZ2VQb3J0QXJy
YXkgcG9ydHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBjZGZkMzIyZDhkYTg2YTZlZjYz
YjJhYTEzZWRjOWVhNzNjNTA3NjliLi5lYjU5YjkyMzk3NGMzNmVkZDlmMzZiOWM5YWEyMjkyYTUx
N2UwZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTU2LDcgKzU2LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogICAgIGNsYXNzIE5hdmln
YXRvcjsKICAgICBjbGFzcyBOb2RlOwotICAgIGNsYXNzIE5vdGlmaWNhdGlvbkNlbnRlcjsKICAg
ICBjbGFzcyBQYWdlOwogICAgIGNsYXNzIFBlcmZvcm1hbmNlOwogICAgIGNsYXNzIFBvc3RNZXNz
YWdlVGltZXI7CkBAIC0zNTQsMTMgKzM1Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgU3RvcmFnZSogc2Vzc2lvblN0b3JhZ2UoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgICAg
ICBTdG9yYWdlKiBsb2NhbFN0b3JhZ2UoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCi0jaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCi0gICAgICAgIE5vdGlmaWNhdGlvbkNlbnRlciogd2Via2l0Tm90
aWZpY2F0aW9ucygpIGNvbnN0OwotICAgICAgICAvLyBSZW5kZXJzIHdlYmtpdE5vdGlmaWNhdGlv
bnMgb2JqZWN0IHNhZmVseSBpbm9wZXJhYmxlLCBkaXNjb25uZWN0cwotICAgICAgICAvLyBpZiBm
cm9tIGVtYmVkZGVyLXByb3ZpZGVkIE5vdGlmaWNhdGlvbkNsaWVudC4KLSAgICAgICAgdm9pZCBy
ZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFFVT1RBKQogICAgICAg
ICBTdG9yYWdlSW5mbyogd2Via2l0U3RvcmFnZUluZm8oKSBjb25zdDsKICNlbmRpZgpAQCAtNDQz
LDEwICs0MzUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIG11dGFibGUgUmVmUHRy
PFN0b3JhZ2U+IG1fbG9jYWxTdG9yYWdlOwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxET01BcHBs
aWNhdGlvbkNhY2hlPiBtX2FwcGxpY2F0aW9uQ2FjaGU7CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKLSAgICAgICAgbXV0YWJsZSBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBtX25vdGlm
aWNhdGlvbnM7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgICAgICBtdXRh
YmxlIFJlZlB0cjxQZXJmb3JtYW5jZT4gbV9wZXJmb3JtYW5jZTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCmluZGV4IDE0MDg2YmYyMGU5ZTQ5NzZhYTg4MTIzYjg2MGMwN2I0NTkz
YTc5YWQuLjBlZmE3YmYxMjQ4OTEwOGJhYTUzODdlMjE3MTdlZjYzNmNiZjFjMmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE3MCwxMCArMTcwLDYgQEAgbW9kdWxlIHdpbmRvdyB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBTdG9yYWdl
IGxvY2FsU3RvcmFnZQogICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwog
Ci0jaWYgZGVmaW5lZChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX05PVElGSUNBVElP
TlMKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5vdGlm
aWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOwotI2VuZGlmCi0KICNpZiBkZWZpbmVk
KEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMK
ICAgICAgICAgLy8gVGhpcyBpcyB0aGUgaW50ZXJmYWNlIG9yaWVudGF0aW9uIGluIGRlZ3JlZXMu
IFNvbWUgZXhhbXBsZXMgYXJlOgogICAgICAgICAvLyAgMCBpcyBzdHJhaWdodCB1cDsgLTkwIGlz
IHdoZW4gdGhlIGRldmljZSBpcyByb3RhdGVkIDkwIGNsb2Nrd2lzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKaW5kZXggYWQ5Y2FiOGU5ZDEzYTFmNWJiNzU4MzE3YmJjNzk2MjNjYmU2YWM0MC4uZmJkMmRi
Mzk2MjM3NzliNjllNDk4ZTMyZDU0NzkzYjI1ZWY3Yzg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
QEAgLTY4NywxMSArNjg3LDYgQEAgdm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogICAgIGlm
IChGcmFtZSogcGFyZW50ID0gdHJlZSgpLT5wYXJlbnQoKSkKICAgICAgICAgcGFyZW50LT5sb2Fk
ZXIoKS0+Y2hlY2tMb2FkQ29tcGxldGUoKTsKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQot
ICAgIGlmIChtX2RvbVdpbmRvdykKLSAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0Tm90aWZpY2F0
aW9ucygpOwotI2VuZGlmCi0KICAgICBIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+
OjppdGVyYXRvciBzdG9wID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5lbmQoKTsKICAgICBmb3Ig
KEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIGl0ID0gbV9kZXN0
cnVjdGlvbk9ic2VydmVycy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQogICAgICAgICAoKml0
KS0+d2lsbERldGFjaFBhZ2UoKTsKQEAgLTczNiwxMiArNzMxLDYgQEAgdm9pZCBGcmFtZTo6dHJh
bnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgpCiAgICAgICAgICAgICAgbV9wYWdlLT5kZWNy
ZW1lbnRGcmFtZUNvdW50KCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobV9kb21XaW5kb3cp
IHsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgICAgIG1fZG9tV2luZG93LT5y
ZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotICAgICAgICB9Ci0KICAgICAgICAgSGFzaFNl
dDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1fZGVzdHJ1Y3Rp
b25PYnNlcnZlcnMuZW5kKCk7CiAgICAgICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7
IGl0ICE9IHN0b3A7ICsraXQpCiAgICAgICAgICAgICAoKml0KS0+d2lsbERldGFjaFBhZ2UoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQyLm9yZGVyIGIvU291cmNlL1dl
YktpdDIvbWFjL1dlYktpdDIub3JkZXIKaW5kZXggNDU3YTA2M2UwYjgzYjcwNDdkZWY0NWJlYWNk
ZmVmOTMyYWNkZDFiNy4uYjUyZTQ0ZTdkOWUxNTUwZjEzMzNiMmY4MjY3NmEyNzM0NDRhZGFjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIKKysrIGIvU291cmNl
L1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIKQEAgLTMzODQsMyArMzM4NCw4IEBAIF9XS0FkdmFu
Y2VEZWZhdWx0QnV0dG9uUHVsc2VBbmltYXRpb24KIF9XS0FwcEtpdERyYXdEZWNveVdpbmRvd19p
c0tleVdpbmRvdwogX19aTjZXZWJLaXQ3V2ViUGFnZTM2c3VzcGVuZEFjdGl2ZURPTU9iamVjdHNB
bmRBbmltYXRpb25zRXYKIF9fWk42V2ViS2l0N1dlYlBhZ2UzNXJlc3VtZUFjdGl2ZURPTU9iamVj
dHNBbmRBbmltYXRpb25zRXYKKworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorX19aTjdXZWJD
b3JlMjJET01XaW5kb3dOb3RpZmljYXRpb25zMThyZXNldE5vdGlmaWNhdGlvbnNFUE5TXzlET01X
aW5kb3dFCitfX1pON1dlYkNvcmUyMkRPTVdpbmRvd05vdGlmaWNhdGlvbnMxOXdlYmtpdE5vdGlm
aWNhdGlvbnNFUE5TXzlET01XaW5kb3dFCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131297</attachid>
            <date>2012-03-12 02:06:45 -0700</date>
            <delta_ts>2012-03-12 02:34:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79636-20120312180644.patch</filename>
            <type>text/plain</type>
            <size>24182</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmIyZThkNmFlMGQ5ZDVl
YjUwMDExMDE2OWU2OTE4ZjY5YTg2YTAyNy4uZjkzMzlkODRkMDA4YmE3NGM3OWIzNzgzYjk4ZGVk
OTZiM2UyMjkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdl
YktpdCBtb2R1bGFyaXphdGlvbiwgdGhpcyBwYXRjaCBtb3ZlcyBOb3RpZmljYXRpb25zLXJlbGF0
ZWQgQVBJcworICAgICAgICBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvbm90aWZpY2F0aW9ucy8qIChObyBjaGFu
Z2UgaW4gdGVzdCByZXN1bHRzKQorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMue2gsY3BwLGlkbH0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOiBEaXR0by4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJp
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKworICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOiBBZGRlZCBtYW5nbGVkIHNpZ25hdHVyZXMgb2YgcmVzZXROb3RpZmljYXRpb25zKCkgYW5k
IHdlYmtpdE5vdGlmaWNhdGlvbnMoKS4KKworICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dOb3RpZmljYXRpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5ET01XaW5kb3dO
b3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6
OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6d2Via2l0
Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25z
OjplbnN1cmVXZWJraXROb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRv
d05vdGlmaWNhdGlvbnM6OmRpc2Nvbm5lY3RGcmFtZSk6CisgICAgICAgICogbm90aWZpY2F0aW9u
cy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChET01XaW5kb3dOb3RpZmljYXRpb25zKToKKyAgICAgICAgKiBub3RpZmljYXRpb25z
L0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsOiBBZGRlZC4KKworICAgICAgICAqIHBhZ2UvRE9N
V2luZG93LmNwcDogUmVtb3ZlZCBFTkFCTEUoTk9USUZJQ0FUSU9OUykuCisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6On5ET01XaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93
Ojp3aWxsRGV0YWNoUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNsZWFyKToK
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoRE9NV2luZG93KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lOjp3aWxsRGV0YWNoUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6dHJhbnNmZXJD
aGlsZEZyYW1lVG9OZXdEb2N1bWVudCk6CisKIDIwMTItMDMtMTEgIFNoYXduIFNpbmdoICA8c2hh
d25zaW5naEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjkzNjE0KTogc2Ny
b2xsaW5nIGRpdiBkb2VzIG5vdCByZXBhaW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmEwMjU5ZjUzZTNhODE1
NzMxNjhhNTU2Mjc5MDc0OWYyN2M2ZjAyNi4uM2MyZmViYTBiMDU1NzE4YjlkOWQ0ZmNjMDc0ZDk4
M2FjMDAzYmY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdl
YktpdCBtb2R1bGFyaXphdGlvbiwgdGhpcyBwYXRjaCBtb3ZlcyBOb3RpZmljYXRpb25zLXJlbGF0
ZWQgQVBJcworICAgICAgICBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwuCisKKyAgICAgICAgKiBtYWMvV2ViS2l0Mi5vcmRlcjogQWRkZWQgbWFuZ2xlZCBz
aWduYXR1cmVzIG9mIHJlc2V0Tm90aWZpY2F0aW9ucygpIGFuZCB3ZWJraXROb3RpZmljYXRpb25z
KCkuCisKIDIwMTItMDMtMTEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWJLaXQyIGxhY2tzIEFQSSBmb3Igb2J0YWluaW5nIGEgcmVwcmVzZW50YXRpb24gb2Yg
dGhlIFJlbmRlckxheWVyIHRyZWUgb2YgYSBwYWdlLCBsaWtlIFdlYlJlbmRlckxheWVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDJmY2MyNjU1NzMzMjYzOTVjYTQ0MDI0NDRjZDAwYThlOGNjYWMy
MjAuLjllNDAwMTI3ZDFmM2Y1NWE1OGZkNjc4NDA4OGU4MTdhZTJlNDJiZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xNjIzLDEyICsxNjIzLDE0IEBAIEVORElGICgpCiAKIElGIChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAg
bm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcAogICAgICAgICBub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25Db250cm9sbGVyLmNwcAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5jcHAKICAgICApCiAKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUworICAgICAg
ICBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCiAgICAgICAgIG5vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbkNlbnRlci5pZGwKICAgICApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAy
NDYwNjgzM2E1NzZkOGQ3ZmI1ODFjMWIzNjVhZjZkNjA4ZDIxYzY1Li42OWM4MGM0NmU0YWRjOGI0
ZjkxM2UxZGU2MDMwOGQ0YzJiODNjN2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTM1Myw2ICszNTMsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9pbnNw
ZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1Njcmlw
dFByb2ZpbGVOb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBw
bGljYXRpb25DYWNoZS5pZGwgXAorICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25D
ZW50ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvQWJzdHJhY3RWaWV3LmlkbCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5wcmkKaW5kZXggYWY0ZjViNTBiODU3ZjIyZjEwYjRjNTdiM2RhZDhl
MWQyODgzNWFkOC4uZTU1MzkyNDQ5YmQxZDY5NmMyOTVmM2EzNGQ4MGRmYzhiMjViZGRmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtMzc1LDYgKzM3NSw3IEBAIElETF9CSU5ESU5H
UyArPSBcCiAgICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkJFBX
RC9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsIFwKICAgICAkJFBXRC9sb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwgXAorICAgICQkUFdEL25vdGlmaWNhdGlvbnMv
RE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQkUFdEL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uLmlkbCBcCiAgICAgJCRQV0Qvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50
ZXIuaWRsIFwKICAgICAkJFBXRC9wYWdlL0JhckluZm8uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDJiZDFmNjU0YzkwZGM3MjU5YWI5MjYzNzUzZWJiZDczMjMzMWJkMWIu
LmRhZDFlNGNjNTc3ZjM1OGQ2ODEzNzk2MjU2NmNhZTMwNDUyZWYxYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtMjgyMCw2ICsyODIwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCBcCiAJU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNTZjMTdmM2ZjYWJlNjA2
Y2RiMGFjYmU2ZWVlZDRkMzAxM2Q5NDFkNi4uYTZkYjQzY2JkYTc1MDYwOGFjNzllOWFiODAzMmNm
OGIzYTExZTIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC05ODAsNiArOTgwLDcgQEAgU09VUkNFUyArPSBc
CiAgICAgbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RleHRSZXNv
dXJjZURlY29kZXIuY3BwIFwKICAgICBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAgXAorICAg
IG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgXAogICAgIG5vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25D
ZW50ZXIuY3BwIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3Bw
IFwKQEAgLTIwNzYsNiArMjA3Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIG1hdGhtbC9NYXRoTUxJ
bmxpbmVDb250YWluZXJFbGVtZW50LmggXAogICAgIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5o
IFwKICAgICBtYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBcCisgICAgbm90aWZpY2F0aW9ucy9E
T01XaW5kb3dOb3RpZmljYXRpb25zLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
LmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAogICAgIG5vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA1
OTBiN2M1MGZiYjljMjhiZjIyZWYyZjNlM2ZjMjRlNDE4NjAyNTg1Li4yOThiYjdhZTQ5ODY4NDhl
YTI0MTU5MmFkYjVmNmRjNjQ5ZDI4M2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjEyNCw2
ICsyMTI0LDggQEAgX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb24xOGRpc3BhdGNoQ2xpY2tFdmVu
dEV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjE4ZGlzcGF0Y2hDbG9zZUV2ZW50RXYKIF9f
Wk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaEVycm9yRXZlbnRFdgogX19aTjdXZWJD
b3JlMTlwcm92aWRlTm90aWZpY2F0aW9uRVBOU180UGFnZUVQTlNfMThOb3RpZmljYXRpb25DbGll
bnRFCitfX1pON1dlYkNvcmUyMkRPTVdpbmRvd05vdGlmaWNhdGlvbnMxOHJlc2V0Tm90aWZpY2F0
aW9uc0VQTlNfOURPTVdpbmRvd0UKK19fWk43V2ViQ29yZTIyRE9NV2luZG93Tm90aWZpY2F0aW9u
czE5d2Via2l0Tm90aWZpY2F0aW9uc0VQTlNfOURPTVdpbmRvd0UKICNlbmRpZgogCiAjaWYgRU5B
QkxFKFRIUkVBREVEX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA3Njg1NzI2NzRmMTVl
YjNjOWEwMDIxMzFiZDA3M2ZlYzExMTRkZTdlLi4wMjJjNGVmOWY3YmMyZjU1YzVmYWVhYzkxMzQ0
ODlmNzhlNWM5NGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMDUxLDYgKzEwNTEsNyBAQAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCcsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCcsCiAgICAgICAgICAgICAnbG9hZGVyL2FwcGNh
Y2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsJywKKyAgICAgICAgICAgICdub3RpZmljYXRpb25z
L0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbi5pZGwnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2VudGVyLmlkbCcsCiAgICAgICAgICAgICAncGFnZS9BYnN0cmFjdFZpZXcuaWRsJywKQEAg
LTI3NzcsNiArMjc3OCw4IEBACiAgICAgICAgICAgICAnbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50
LmgnLAogICAgICAgICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAnLAogICAgICAg
ICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oJywKKyAgICAgICAgICAgICdub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwJywKKyAgICAgICAgICAgICdub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb24uY3BwJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbi5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRl
ci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpp
bmRleCAzYWQwOWNmNDU0OGVkOGQzZjQ2OWU3YzYwOTI0ZDkxZjM0N2E4MmFlLi4zOGRiZDk2NmJm
ZTNjZmViZTVkNDc2Nzk5ZTcxODk2ODg0YzRlOTg2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTM1NzgsNiArNTM1NzgsMTQgQEAKIAkJCU5h
bWU9Im5vdGlmaWNhdGlvbnMiCiAJCQk+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
bm90aWZpY2F0aW9uc1xET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xET01XaW5k
b3dOb3RpZmljYXRpb25zLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uLmNwcCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRv
d05vdGlmaWNhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTAzOGFiMDU0NWY0MDAxY2MyZWM2ZjZi
ZjM0MzU4ODA4NmVjMDNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZp
Y2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApAQCAtMCwwICsxLDk4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgorCisjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
RE9NV2luZG93Tm90aWZpY2F0aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9ucyhET01XaW5kb3cg
KndpbmRvdykKKyAgICA6IERPTVdpbmRvd1Byb3BlcnR5KHdpbmRvdy0+ZnJhbWUoKSkKKyAgICAs
IG1fd2luZG93KHdpbmRvdykKK3sKK30KKworRE9NV2luZG93Tm90aWZpY2F0aW9uczo6fkRPTVdp
bmRvd05vdGlmaWNhdGlvbnMoKQoreworfQorCitET01XaW5kb3dOb3RpZmljYXRpb25zKiBET01X
aW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQoreworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzdXBwbGVtZW50TmFtZSwgKCJET01XaW5kb3dO
b3RpZmljYXRpb25zIikpOworICAgIERPTVdpbmRvd05vdGlmaWNhdGlvbnMqIHN1cHBsZW1lbnQg
PSBzdGF0aWNfY2FzdDxET01XaW5kb3dOb3RpZmljYXRpb25zKj4oU3VwcGxlbWVudDxET01XaW5k
b3c+Ojpmcm9tKHdpbmRvdywgc3VwcGxlbWVudE5hbWUpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQp
IHsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBET01XaW5kb3dOb3RpZmljYXRpb25zKHdpbmRv
dyk7CisgICAgICAgIFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6cHJvdmlkZVRvKHdpbmRvdywgc3Vw
cGxlbWVudE5hbWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuIHN1
cHBsZW1lbnQ7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9u
czo6d2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICByZXR1cm4g
RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZnJvbSh3aW5kb3cpLT5lbnN1cmVXZWJraXROb3RpZmlj
YXRpb25zKCk7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9u
czo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucygpCit7CisgICAgaWYgKG1fbm90aWZpY2F0aW9u
Q2VudGVyKQorICAgICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25DZW50ZXIuZ2V0KCk7CisKKyAg
ICBpZiAoIW1fd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKKyAgICAgICAg
cmV0dXJuIDA7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX3dpbmRvdy0+ZG9jdW1lbnQo
KTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIFBhZ2UqIHBh
Z2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3ZpZGVyID0gTm90aWZpY2F0aW9uQ29udHJv
bGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKKyAgICBpZiAocHJvdmlkZXIpCisgICAgICAgIG1fbm90
aWZpY2F0aW9uQ2VudGVyID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUobV93aW5kb3ctPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgcHJvdmlkZXIpOworICAgIHJldHVybiBtX25vdGlmaWNh
dGlvbkNlbnRlci5nZXQoKTsKK30KKwordm9pZCBET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNj
b25uZWN0RnJhbWUoKQoreworICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRlcikgeworICAgICAg
ICBtX25vdGlmaWNhdGlvbkNlbnRlci0+ZGlzY29ubmVjdEZyYW1lKCk7CisgICAgICAgIG1fbm90
aWZpY2F0aW9uQ2VudGVyID0gMDsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZjcyZDQ5YzU0OWQ1ZTllNWY4M2FlMzliNWE0ODUyNGZmNzllMTVmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgK
QEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBET01XaW5kb3dOb3RpZmljYXRpb25zX2gKKyNkZWZpbmUgRE9NV2luZG93Tm90aWZp
Y2F0aW9uc19oCisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKworI2luY2x1ZGUgIkRPTVdp
bmRvd1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJT
dXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRv
dzsKK2NsYXNzIE5vdGlmaWNhdGlvbkNlbnRlcjsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7CisKK2NsYXNzIERPTVdpbmRvd05vdGlmaWNhdGlvbnMgOiBwdWJsaWMgU3VwcGxlbWVudDxE
T01XaW5kb3c+LCBwdWJsaWMgRE9NV2luZG93UHJvcGVydHkgeworcHVibGljOgorICAgIHZpcnR1
YWwgfkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKTsKKworICAgIHN0YXRpYyBOb3RpZmljYXRpb25D
ZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMoRE9NV2luZG93Kik7CisgICAgc3RhdGljIERPTVdp
bmRvd05vdGlmaWNhdGlvbnMqIGZyb20oRE9NV2luZG93Kik7CisKK3ByaXZhdGU6CisgICAgRE9N
V2luZG93Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsKKworICAgIE5vdGlmaWNhdGlvbkNlbnRl
ciogZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucygpOworICAgIHZvaWQgZGlzY29ubmVjdEZyYW1l
KCk7CisKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBtX25vdGlmaWNhdGlvbkNlbnRl
cjsKKyAgICBET01XaW5kb3cqIG1fd2luZG93OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNlbmRpZiAvLyBET01XaW5k
b3dOb3RpZmljYXRpb25zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNzYwN2QzMGQ5YjY4
NzY4M2E2ODkzZDUyZjA3MzgwNzkyZWYxZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCkBAIC0wLDAgKzEs
MzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBp
bnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1OT1RJRklDQVRJT05TLAorICAgICAgICBT
dXBwbGVtZW50YWw9RE9NV2luZG93CisgICAgXSBET01XaW5kb3dOb3RpZmljYXRpb25zIHsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5vdGlmaWNhdGlv
bkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAppbmRleCBlZWM5NjlmZjY3NjhhMGRmMTU2OTEwOGRkM2Y0YjExM2YwZjljYWI2
Li42NmRjMzM1ODU0Mzk4YjQ3MmU1ZjVmMjMyZTMxZTcwNGZkYTg3ZTA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCkBAIC03Miw4ICs3Miw2IEBACiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1h
dGNoZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3Iu
aCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25DZW50ZXIuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRp
b25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5o
IgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKQEAgLTQxNSw5ICs0MTMsNiBAQCBE
T01XaW5kb3c6On5ET01XaW5kb3coKQogICAgIEFTU0VSVCghbV9zZXNzaW9uU3RvcmFnZSk7CiAg
ICAgQVNTRVJUKCFtX2xvY2FsU3RvcmFnZSk7CiAgICAgQVNTRVJUKCFtX2FwcGxpY2F0aW9uQ2Fj
aGUpOwotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIEFTU0VSVCghbV9ub3RpZmljYXRp
b25zKTsKLSNlbmRpZgogI2lmIEVOQUJMRShCTE9CKQogICAgIEFTU0VSVCghbV9kb21VUkwpOwog
I2VuZGlmCkBAIC00NzMsMTIgKzQ2OCw2IEBAIHZvaWQgRE9NV2luZG93Ojp3aWxsRGV0YWNoUGFn
ZSgpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVdpbmRvd0Rpc2NhcmRl
ZChtX2ZyYW1lLCB0aGlzKTsKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIC8vIENs
ZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVxdWVzdHMgaW52b2x2ZXMgYWNjZXNzaW5nIHRoZSBjbGll
bnQgc28gaXQgbXVzdCBiZSBkb25lCi0gICAgLy8gYmVmb3JlIHRoZSBmcmFtZSBpcyBkZXRhY2hl
ZC4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotCiAgICAgSGFzaFNldDxET01X
aW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBzdG9wID0gbV9wcm9wZXJ0aWVzLmVuZCgpOwogICAg
IGZvciAoSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBpdCA9IG1fcHJvcGVy
dGllcy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQogICAgICAgICAoKml0KS0+d2lsbERldGFj
aFBhZ2UoKTsKQEAgLTUyMSwxMSArNTEwLDYgQEAgdm9pZCBET01XaW5kb3c6OmNsZWFyKCkKICAg
ICBtX3Nlc3Npb25TdG9yYWdlID0gMDsKICAgICBtX2xvY2FsU3RvcmFnZSA9IDA7CiAgICAgbV9h
cHBsaWNhdGlvbkNhY2hlID0gMDsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAvLyBG
SVhNRTogTm90aWZpY2F0aW9ucyBzaG91bGRuJ3QgaGF2ZSBkaWZmZXJlbnQgZGlzY29ubmVjdGlv
biBsb2dpYyB0aGFuCi0gICAgLy8gdGhlIHJlc3Qgb2YgdGhlIERPTVdpbmRvd1Byb3BlcnRpZXMu
Ci0gICAgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQkxPQikKICAg
ICBtX2RvbVVSTCA9IDA7CiAjZW5kaWYKQEAgLTcwMiwzNiArNjg2LDYgQEAgU3RvcmFnZSogRE9N
V2luZG93Ojpsb2NhbFN0b3JhZ2UoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgcmV0dXJu
IG1fbG9jYWxTdG9yYWdlLmdldCgpOwogfQogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi1O
b3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRvdzo6d2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0
Ci17Ci0gICAgaWYgKG1fbm90aWZpY2F0aW9ucyB8fCAhaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZy
YW1lKCkpCi0gICAgICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMuZ2V0KCk7Ci0KLSAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0g
ICAgICAgIHJldHVybiAwOwotICAgIAotICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgp
OwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBOb3RpZmljYXRpb25D
bGllbnQqIHByb3ZpZGVyID0gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdl
KTsKLSAgICBpZiAocHJvdmlkZXIpIAotICAgICAgICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmlj
YXRpb25DZW50ZXI6OmNyZWF0ZShkb2N1bWVudCwgcHJvdmlkZXIpOyAgICAKLSAgICAgIAotICAg
IHJldHVybiBtX25vdGlmaWNhdGlvbnMuZ2V0KCk7Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpyZXNl
dE5vdGlmaWNhdGlvbnMoKQotewotICAgIGlmICghbV9ub3RpZmljYXRpb25zKQotICAgICAgICBy
ZXR1cm47Ci0gICAgbV9ub3RpZmljYXRpb25zLT5kaXNjb25uZWN0RnJhbWUoKTsKLSAgICBtX25v
dGlmaWNhdGlvbnMgPSAwOwotfQotI2VuZGlmCi0KIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2Fn
ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQq
IHBvcnQsIGNvbnN0IFN0cmluZyYgdGFyZ2V0T3JpZ2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTWVzc2FnZVBvcnRBcnJheSBwb3J0czsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oCmluZGV4IGNkZmQzMjJkOGRhODZhNmVmNjNiMmFhMTNlZGM5ZWE3M2M1MDc2
OWIuLmViNTliOTIzOTc0YzM2ZWRkOWYzNmI5YzlhYTIyOTJhNTE3ZTBkNmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaApAQCAtNTYsNyArNTYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiAgICAgY2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5v
ZGU7Ci0gICAgY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOwogICAgIGNsYXNzIFBhZ2U7CiAgICAg
Y2xhc3MgUGVyZm9ybWFuY2U7CiAgICAgY2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKQEAgLTM1NCwx
MyArMzUzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTdG9yYWdlKiBzZXNzaW9u
U3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgICAgIFN0b3JhZ2UqIGxvY2FsU3Rv
cmFnZShFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
LSAgICAgICAgTm90aWZpY2F0aW9uQ2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25zKCkgY29uc3Q7
Ci0gICAgICAgIC8vIFJlbmRlcnMgd2Via2l0Tm90aWZpY2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlu
b3BlcmFibGUsIGRpc2Nvbm5lY3RzCi0gICAgICAgIC8vIGlmIGZyb20gZW1iZWRkZXItcHJvdmlk
ZWQgTm90aWZpY2F0aW9uQ2xpZW50LgotICAgICAgICB2b2lkIHJlc2V0Tm90aWZpY2F0aW9ucygp
OwotI2VuZGlmCi0KICNpZiBFTkFCTEUoUVVPVEEpCiAgICAgICAgIFN0b3JhZ2VJbmZvKiB3ZWJr
aXRTdG9yYWdlSW5mbygpIGNvbnN0OwogI2VuZGlmCkBAIC00NDMsMTAgKzQzNSw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U3RvcmFnZT4gbV9sb2NhbFN0
b3JhZ2U7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPERPTUFwcGxpY2F0aW9uQ2FjaGU+IG1fYXBw
bGljYXRpb25DYWNoZTsKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICBtdXRh
YmxlIFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9uczsKLSNlbmRpZgot
CiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgICAgIG11dGFibGUgUmVmUHRyPFBlcmZvcm1h
bmNlPiBtX3BlcmZvcm1hbmNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5k
ZXggMTQwODZiZjIwZTllNDk3NmFhODgxMjNiODYwYzA3YjQ1OTNhNzlhZC4uMGVmYTdiZjEyNDg5
MTA4YmFhNTM4N2UyMTcxN2VmNjM2Y2JmMWMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bApAQCAtMTcwLDEwICsxNzAsNiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIFN0b3JhZ2UgbG9jYWxTdG9yYWdlCiAgICAg
ICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSNpZiBkZWZpbmVkKEVOQUJM
RV9OT1RJRklDQVRJT05TKSAmJiBFTkFCTEVfTk9USUZJQ0FUSU9OUwotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtp
dE5vdGlmaWNhdGlvbnM7Ci0jZW5kaWYKLQogI2lmIGRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9O
X0VWRU5UUykgJiYgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUwogICAgICAgICAvLyBUaGlzIGlz
IHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24gaW4gZGVncmVlcy4gU29tZSBleGFtcGxlcyBhcmU6
CiAgICAgICAgIC8vICAwIGlzIHN0cmFpZ2h0IHVwOyAtOTAgaXMgd2hlbiB0aGUgZGV2aWNlIGlz
IHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBhZDljYWI4ZTlk
MTNhMWY1YmI3NTgzMTdiYmM3OTYyM2NiZTZhYzQwLi5mYmQyZGIzOTYyMzc3OWI2OWU0OThlMzJk
NTQ3OTNiMjVlZjdjODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNjg3LDExICs2ODcsNiBA
QCB2b2lkIEZyYW1lOjp3aWxsRGV0YWNoUGFnZSgpCiAgICAgaWYgKEZyYW1lKiBwYXJlbnQgPSB0
cmVlKCktPnBhcmVudCgpKQogICAgICAgICBwYXJlbnQtPmxvYWRlcigpLT5jaGVja0xvYWRDb21w
bGV0ZSgpOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgaWYgKG1fZG9tV2luZG93
KQotICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKLQog
ICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBt
X2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3Ry
dWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJl
Z2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCiAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgp
OwpAQCAtNzM2LDEyICs3MzEsNiBAQCB2b2lkIEZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05l
d0RvY3VtZW50KCkKICAgICAgICAgICAgICBtX3BhZ2UtPmRlY3JlbWVudEZyYW1lQ291bnQoKTsK
ICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX2RvbVdpbmRvdykgewotI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQotICAgICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0Tm90aWZpY2F0aW9ucygp
OwotI2VuZGlmCi0gICAgICAgIH0KLQogICAgICAgICBIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25P
YnNlcnZlcio+OjppdGVyYXRvciBzdG9wID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5lbmQoKTsK
ICAgICAgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRv
ciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVnaW4oKTsgaXQgIT0gc3RvcDsgKytpdCkK
ICAgICAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIgYi9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5v
cmRlcgppbmRleCA0NTdhMDYzZTBiODNiNzA0N2RlZjQ1YmVhY2RmZWY5MzJhY2RkMWI3Li5iNTJl
NDRlN2Q5ZTE1NTBmMTMzM2IyZjgyNjc2YTI3MzQ0NGFkYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0
Mi5vcmRlcgpAQCAtMzM4NCwzICszMzg0LDggQEAgX1dLQWR2YW5jZURlZmF1bHRCdXR0b25QdWxz
ZUFuaW1hdGlvbgogX1dLQXBwS2l0RHJhd0RlY295V2luZG93X2lzS2V5V2luZG93CiBfX1pONldl
YktpdDdXZWJQYWdlMzZzdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnNFdgogX19a
TjZXZWJLaXQ3V2ViUGFnZTM1cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnNFdgor
CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCitfX1pON1dlYkNvcmUyMkRPTVdpbmRvd05vdGlm
aWNhdGlvbnMxOHJlc2V0Tm90aWZpY2F0aW9uc0VQTlNfOURPTVdpbmRvd0UKK19fWk43V2ViQ29y
ZTIyRE9NV2luZG93Tm90aWZpY2F0aW9uczE5d2Via2l0Tm90aWZpY2F0aW9uc0VQTlNfOURPTVdp
bmRvd0UKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131301</attachid>
            <date>2012-03-12 02:34:22 -0700</date>
            <delta_ts>2012-03-13 06:48:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79636-20120312183421.patch</filename>
            <type>text/plain</type>
            <size>23984</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmIyZThkNmFlMGQ5ZDVl
YjUwMDExMDE2OWU2OTE4ZjY5YTg2YTAyNy4uMWQ1YzNmZWNjNzU5YjM3M2RlYzE5MTBlZGQ4MDNm
OWZiNjBkMDczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdl
YktpdCBtb2R1bGFyaXphdGlvbiwgdGhpcyBwYXRjaCBtb3ZlcyBOb3RpZmljYXRpb25zLXJlbGF0
ZWQgQVBJcworICAgICAgICBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvbm90aWZpY2F0aW9ucy8qIChObyBjaGFu
Z2UgaW4gdGVzdCByZXN1bHRzKQorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMue2gsY3BwLGlkbH0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOiBEaXR0by4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJp
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKworICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOiBBZGRlZCBtYW5nbGVkIHNpZ25hdHVyZXMgb2Ygd2Via2l0Tm90aWZpY2F0aW9ucygpLgor
CisgICAgICAgICogbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlm
aWNhdGlvbnM6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93Tm90aWZpY2F0aW9uczo6fkRPTVdpbmRvd05vdGlmaWNhdGlvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZnJvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3dOb3RpZmljYXRpb25zOjp3ZWJraXROb3RpZmljYXRpb25zKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmVuc3VyZVdlYmtpdE5vdGlmaWNhdGlv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZGlzY29ubmVj
dEZyYW1lKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvd05vdGlmaWNh
dGlvbnMpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGw6IEFkZGVkLgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOiBSZW1vdmVkIEVOQUJM
RShOT1RJRklDQVRJT05TKS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6fkRPTVdpbmRv
dyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y2xlYXIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
Lmg6IERpdHRvLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChET01XaW5kb3cpOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogRGl0dG8uCisgICAgICAgICogcGFnZS9GcmFtZS5j
cHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToK
KwogMjAxMi0wMy0xMSAgU2hhd24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSRUdSRVNTSU9OIChyOTM2MTQpOiBzY3JvbGxpbmcgZGl2IGRvZXMgbm90IHJlcGFp
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCA2YTAyNTlmNTNlM2E4MTU3MzE2OGE1NTYyNzkwNzQ5ZjI3YzZmMDI2
Li45NmMwNDRlMWIzMmUwY2MzOGMyOTRlMjk0ZTE2NGU0YmJlN2VlNzNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMTEgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIE1vdmUgTm90aWZpY2F0aW9ucyBBUElzIGZyb20gRE9NV2luZG93
LmlkbCB0byBET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk2MzYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgV2ViS2l0IG1vZHVsYXJpemF0aW9uLCB0aGlz
IHBhdGNoIG1vdmVzIE5vdGlmaWNhdGlvbnMtcmVsYXRlZCBBUElzCisgICAgICAgIGZyb20gRE9N
V2luZG93LmlkbCB0byBET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbC4KKworICAgICAgICAqIG1h
Yy9XZWJLaXQyLm9yZGVyOiBBZGRlZCBtYW5nbGVkIHNpZ25hdHVyZXMgb2Ygd2Via2l0Tm90aWZp
Y2F0aW9ucygpLgorCiAyMDEyLTAzLTExICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViS2l0MiBsYWNrcyBBUEkgZm9yIG9idGFpbmluZyBhIHJlcHJlc2VudGF0
aW9uIG9mIHRoZSBSZW5kZXJMYXllciB0cmVlIG9mIGEgcGFnZSwgbGlrZSBXZWJSZW5kZXJMYXll
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyZmNjMjY1NTczMzI2Mzk1Y2E0NDAyNDQ0Y2QwMGE4
ZThjY2FjMjIwLi45ZTQwMDEyN2QxZjNmNTVhNThmZDY3ODQwODhlODE3YWUyZTQyYmY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYyMywxMiArMTYyMywxNCBAQCBFTkRJRiAoKQogCiBJRiAo
RU5BQkxFX05PVElGSUNBVElPTlMpCiAgICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisg
ICAgICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAKICAgICAgICAg
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCiAgICAgICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb24uY3BwCiAgICAgKQogCiAgICAgTElTVChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMK
KyAgICAgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbAogICAgICAg
ICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKICAgICAgICAgbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25DZW50ZXIuaWRsCiAgICAgKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggMjQ2MDY4MzNhNTc2ZDhkN2ZiNTgxYzFiMzY1YWY2ZDYwOGQyMWM2NS4uNjljODBjNDZl
NGFkYzhiNGY5MTNlMWRlNjAzMDhkNGMyYjgzYzdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0zNTMsNiArMzUzLDcgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29y
ZSkvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2luc3BlY3Rv
ci9TY3JpcHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvbG9hZGVyL2FwcGNhY2hl
L0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL25vdGlmaWNhdGlvbnMv
RE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0Fic3RyYWN0Vmlldy5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IGFmNGY1YjUwYjg1N2YyMmYxMGI0YzU3
YjNkYWQ4ZTFkMjg4MzVhZDguLmU1NTM5MjQ0OWJkMWQ2OTZjMjk1ZjNhMzRkODBkZmM4YjI1YmRk
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTM3NSw2ICszNzUsNyBAQCBJRExf
QklORElOR1MgKz0gXAogICAgICQkUFdEL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCBcCiAg
ICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBcCiAgICAgJCRQV0QvbG9h
ZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkJFBXRC9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKICAgICAkJFBXRC9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5pZGwgXAogICAgICQkUFdEL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2VudGVyLmlkbCBcCiAgICAgJCRQV0QvcGFnZS9CYXJJbmZvLmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCAyYmQxZjY1NGM5MGRjNzI1OWFiOTI2Mzc1M2ViYmQ3MzIz
MzFiZDFiLi5kYWQxZTRjYzU3N2YzNThkNjgxMzc5NjI1NjZjYWUzMDQ1MmVmMWE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4MjAsNiArMjgyMCw4IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmggXAog
CVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBcCiAJU291cmNlL1dlYkNvcmUv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDU2YzE3ZjNm
Y2FiZTYwNmNkYjBhY2JlNmVlZWQ0ZDMwMTNkOTQxZDYuLmE2ZGI0M2NiZGE3NTA2MDhhYzc5ZTlh
YjgwMzJjZjhiM2ExMWUyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
KysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTgwLDYgKzk4MCw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9U
ZXh0UmVzb3VyY2VEZWNvZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3Bw
IFwKKyAgICBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwKICAgICBu
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uQ2VudGVyLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9s
bGVyLmNwcCBcCkBAIC0yMDc2LDYgKzIwNzcsNyBAQCBIRUFERVJTICs9IFwKICAgICBtYXRobWwv
TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIFwKICAgICBtYXRobWwvTWF0aE1MTWF0aEVs
ZW1lbnQuaCBcCiAgICAgbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmggXAorICAgIG5vdGlmaWNh
dGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIFwKICAgICBub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbi5oIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKICAg
ICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
aW5kZXggNTkwYjdjNTBmYmI5YzI4YmYyMmVmMmYzZTNmYzI0ZTQxODYwMjU4NS4uZGJlMDE5ZGYw
Mjc3ZGUzZTAzNGRlN2I3MzIzMDI3ZTY1NmVhMWM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAg
LTIxMjQsNiArMjEyNCw3IEBAIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaENs
aWNrRXZlbnRFdgogX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb24xOGRpc3BhdGNoQ2xvc2VFdmVu
dEV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjE4ZGlzcGF0Y2hFcnJvckV2ZW50RXYKIF9f
Wk43V2ViQ29yZTE5cHJvdmlkZU5vdGlmaWNhdGlvbkVQTlNfNFBhZ2VFUE5TXzE4Tm90aWZpY2F0
aW9uQ2xpZW50RQorX19aTjdXZWJDb3JlMjJET01XaW5kb3dOb3RpZmljYXRpb25zMTl3ZWJraXRO
b3RpZmljYXRpb25zRVBOU185RE9NV2luZG93RQogI2VuZGlmCiAKICNpZiBFTkFCTEUoVEhSRUFE
RURfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDc2ODU3MjY3NGYxNWViM2M5YTAwMjEz
MWJkMDczZmVjMTExNGRlN2UuLjAyMmM0ZWY5ZjdiYzJmNTVjNWZhZWFjOTEzNDQ4OWY3OGU1Yzk0
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwNTEsNiArMTA1MSw3IEBACiAgICAgICAgICAgICAn
aW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvU2Ny
aXB0UHJvZmlsZU5vZGUuaWRsJywKICAgICAgICAgICAgICdsb2FkZXIvYXBwY2FjaGUvRE9NQXBw
bGljYXRpb25DYWNoZS5pZGwnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9NV2luZG93
Tm90aWZpY2F0aW9ucy5pZGwnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmlkbCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
aWRsJywKICAgICAgICAgICAgICdwYWdlL0Fic3RyYWN0Vmlldy5pZGwnLApAQCAtMjc3Nyw2ICsy
Nzc4LDggQEAKICAgICAgICAgICAgICdtYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCcsCiAgICAg
ICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnbWF0
aG1sL01hdGhNTFRleHRFbGVtZW50LmgnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9N
V2luZG93Tm90aWZpY2F0aW9ucy5jcHAnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvRE9N
V2luZG93Tm90aWZpY2F0aW9ucy5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgn
LAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDNhZDA5
Y2Y0NTQ4ZWQ4ZDNmNDY5ZTdjNjA5MjRkOTFmMzQ3YTgyYWUuLjM4ZGJkOTY2YmZlM2NmZWJlNWQ0
NzY3OTllNzE4OTY4ODRjNGU5ODYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC01MzU3OCw2ICs1MzU3OCwxNCBAQAogCQkJTmFtZT0ibm90aWZp
Y2F0aW9ucyIKIAkJCT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRp
b25zXERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXERPTVdpbmRvd05vdGlmaWNh
dGlvbnMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cbm90aWZpY2F0aW9uc1xOb3RpZmljYXRpb24uY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNh
dGlvbnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMDM4YWIwNTQ1ZjQwMDFjYzJlYzZmNmJmMzQzNTg4MDg2
ZWMwM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RP
TVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
T01XaW5kb3dOb3RpZmljYXRpb25zLmgiCisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKwor
I2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
Tm90aWZpY2F0aW9uQ2VudGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ29udHJvbGxlci5o
IgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitET01XaW5kb3dO
b3RpZmljYXRpb25zOjpET01XaW5kb3dOb3RpZmljYXRpb25zKERPTVdpbmRvdyAqd2luZG93KQor
ICAgIDogRE9NV2luZG93UHJvcGVydHkod2luZG93LT5mcmFtZSgpKQorICAgICwgbV93aW5kb3co
d2luZG93KQoreworfQorCitET01XaW5kb3dOb3RpZmljYXRpb25zOjp+RE9NV2luZG93Tm90aWZp
Y2F0aW9ucygpCit7Cit9CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnMqIERPTVdpbmRvd05vdGlm
aWNhdGlvbnM6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHN1cHBsZW1lbnROYW1lLCAoIkRPTVdpbmRvd05vdGlmaWNhdGlv
bnMiKSk7CisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyogc3VwcGxlbWVudCA9IHN0YXRpY19j
YXN0PERPTVdpbmRvd05vdGlmaWNhdGlvbnMqPihTdXBwbGVtZW50PERPTVdpbmRvdz46OmZyb20o
d2luZG93LCBzdXBwbGVtZW50TmFtZSkpOworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAg
ICBzdXBwbGVtZW50ID0gbmV3IERPTVdpbmRvd05vdGlmaWNhdGlvbnMod2luZG93KTsKKyAgICAg
ICAgU3VwcGxlbWVudDxET01XaW5kb3c+Ojpwcm92aWRlVG8od2luZG93LCBzdXBwbGVtZW50TmFt
ZSwgYWRvcHRQdHIoc3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1cm4gc3VwcGxlbWVudDsK
K30KKworTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjp3ZWJraXRO
b3RpZmljYXRpb25zKERPTVdpbmRvdyogd2luZG93KQoreworICAgIHJldHVybiBET01XaW5kb3dO
b3RpZmljYXRpb25zOjpmcm9tKHdpbmRvdyktPmVuc3VyZVdlYmtpdE5vdGlmaWNhdGlvbnMoKTsK
K30KKworTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjplbnN1cmVX
ZWJraXROb3RpZmljYXRpb25zKCkKK3sKKyAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXIpCisg
ICAgICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsKKworICAgIGlmICghbV93
aW5kb3ctPmlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fd2luZG93LT5kb2N1bWVudCgpOworICAgIGlm
ICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgUGFnZSogcGFnZSA9IGRvY3Vt
ZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIE5v
dGlmaWNhdGlvbkNsaWVudCogcHJvdmlkZXIgPSBOb3RpZmljYXRpb25Db250cm9sbGVyOjpjbGll
bnRGcm9tKHBhZ2UpOworICAgIGlmIChwcm92aWRlcikKKyAgICAgICAgbV9ub3RpZmljYXRpb25D
ZW50ZXIgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShtX3dpbmRvdy0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBwcm92aWRlcik7CisgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uQ2VudGVy
LmdldCgpOworfQorCit2b2lkIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmRpc2Nvbm5lY3RGcmFt
ZSgpCit7CisgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyKSB7CisgICAgICAgIG1fbm90aWZp
Y2F0aW9uQ2VudGVyLT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICAgICAgbV9ub3RpZmljYXRpb25D
ZW50ZXIgPSAwOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKE5PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmNzJkNDljNTQ5
ZDVlOWU1ZjgzYWUzOWI1YTQ4NTI0ZmY3OWUxNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaApAQCAtMCwwICsx
LDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERP
TVdpbmRvd05vdGlmaWNhdGlvbnNfaAorI2RlZmluZSBET01XaW5kb3dOb3RpZmljYXRpb25zX2gK
KworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorCisjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVy
dHkuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRh
YmxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NV2luZG93OworY2xhc3Mg
Tm90aWZpY2F0aW9uQ2VudGVyOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xh
c3MgRE9NV2luZG93Tm90aWZpY2F0aW9ucyA6IHB1YmxpYyBTdXBwbGVtZW50PERPTVdpbmRvdz4s
IHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RE9NV2lu
ZG93Tm90aWZpY2F0aW9ucygpOworCisgICAgc3RhdGljIE5vdGlmaWNhdGlvbkNlbnRlciogd2Vi
a2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsKKyAgICBzdGF0aWMgRE9NV2luZG93Tm90aWZp
Y2F0aW9ucyogZnJvbShET01XaW5kb3cqKTsKKworcHJpdmF0ZToKKyAgICBET01XaW5kb3dOb3Rp
ZmljYXRpb25zKERPTVdpbmRvdyopOworCisgICAgTm90aWZpY2F0aW9uQ2VudGVyKiBlbnN1cmVX
ZWJraXROb3RpZmljYXRpb25zKCk7CisgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsKKworICAg
IFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9uQ2VudGVyOworICAgIERP
TVdpbmRvdyogbV93aW5kb3c7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKworI2VuZGlmIC8vIERPTVdpbmRvd05vdGlmaWNh
dGlvbnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTA3NjA3ZDMwZDliNjg3NjgzYTY4OTNk
NTJmMDczODA3OTJlZjFkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgd2luZG93IHsKKworICAgIGludGVyZmFjZSBb
CisgICAgICAgIENvbmRpdGlvbmFsPU5PVElGSUNBVElPTlMsCisgICAgICAgIFN1cHBsZW1lbnRh
bD1ET01XaW5kb3cKKyAgICBdIERPTVdpbmRvd05vdGlmaWNhdGlvbnMgeworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gTm90aWZpY2F0aW9uQ2VudGVyIHdl
YmtpdE5vdGlmaWNhdGlvbnM7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CmluZGV4IGVlYzk2OWZmNjc2OGEwZGYxNTY5MTA4ZGQzZjRiMTEzZjBmOWNhYjYuLjY2ZGMzMzU4
NTQzOThiNDcyZTVmNWYyMzJlMzFlNzA0ZmRhODdlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKQEAgLTcyLDggKzcyLDYgQEAKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgotI2luY2x1
ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVk
ZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgpAQCAtNDE1LDkgKzQxMyw2IEBAIERPTVdpbmRvdzo6
fkRPTVdpbmRvdygpCiAgICAgQVNTRVJUKCFtX3Nlc3Npb25TdG9yYWdlKTsKICAgICBBU1NFUlQo
IW1fbG9jYWxTdG9yYWdlKTsKICAgICBBU1NFUlQoIW1fYXBwbGljYXRpb25DYWNoZSk7Ci0jaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgQVNTRVJUKCFtX25vdGlmaWNhdGlvbnMpOwotI2Vu
ZGlmCiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgQVNTRVJUKCFtX2RvbVVSTCk7CiAjZW5kaWYKQEAg
LTQ3MywxMiArNDY4LDYgQEAgdm9pZCBET01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKCkKIHsKICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93RGlzY2FyZGVkKG1fZnJhbWUs
IHRoaXMpOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgLy8gQ2xlYXJpbmcgTm90
aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZvbHZlcyBhY2Nlc3NpbmcgdGhlIGNsaWVudCBzbyBpdCBt
dXN0IGJlIGRvbmUKLSAgICAvLyBiZWZvcmUgdGhlIGZyYW1lIGlzIGRldGFjaGVkLgotICAgIHJl
c2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICAgICBIYXNoU2V0PERPTVdpbmRvd1Byb3Bl
cnR5Kj46Oml0ZXJhdG9yIHN0b3AgPSBtX3Byb3BlcnRpZXMuZW5kKCk7CiAgICAgZm9yIChIYXNo
U2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLmJlZ2lu
KCk7IGl0ICE9IHN0b3A7ICsraXQpCiAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOwpA
QCAtNTIxLDExICs1MTAsNiBAQCB2b2lkIERPTVdpbmRvdzo6Y2xlYXIoKQogICAgIG1fc2Vzc2lv
blN0b3JhZ2UgPSAwOwogICAgIG1fbG9jYWxTdG9yYWdlID0gMDsKICAgICBtX2FwcGxpY2F0aW9u
Q2FjaGUgPSAwOwotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIC8vIEZJWE1FOiBOb3Rp
ZmljYXRpb25zIHNob3VsZG4ndCBoYXZlIGRpZmZlcmVudCBkaXNjb25uZWN0aW9uIGxvZ2ljIHRo
YW4KLSAgICAvLyB0aGUgcmVzdCBvZiB0aGUgRE9NV2luZG93UHJvcGVydGllcy4KLSAgICByZXNl
dE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgogI2lmIEVOQUJMRShCTE9CKQogICAgIG1fZG9tVVJM
ID0gMDsKICNlbmRpZgpAQCAtNzAyLDM2ICs2ODYsNiBAQCBTdG9yYWdlKiBET01XaW5kb3c6Omxv
Y2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICByZXR1cm4gbV9sb2NhbFN0
b3JhZ2UuZ2V0KCk7CiB9CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLU5vdGlmaWNhdGlv
bkNlbnRlciogRE9NV2luZG93Ojp3ZWJraXROb3RpZmljYXRpb25zKCkgY29uc3QKLXsKLSAgICBp
ZiAobV9ub3RpZmljYXRpb25zIHx8ICFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKLSAg
ICAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9ucy5nZXQoKTsKLQotICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0
dXJuIDA7Ci0gICAgCi0gICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7Ci0gICAgaWYg
KCFwYWdlKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIE5vdGlmaWNhdGlvbkNsaWVudCogcHJv
dmlkZXIgPSBOb3RpZmljYXRpb25Db250cm9sbGVyOjpjbGllbnRGcm9tKHBhZ2UpOwotICAgIGlm
IChwcm92aWRlcikgCi0gICAgICAgIG1fbm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlvbkNlbnRl
cjo6Y3JlYXRlKGRvY3VtZW50LCBwcm92aWRlcik7ICAgIAotICAgICAgCi0gICAgcmV0dXJuIG1f
bm90aWZpY2F0aW9ucy5nZXQoKTsKLX0KLQotdm9pZCBET01XaW5kb3c6OnJlc2V0Tm90aWZpY2F0
aW9ucygpCi17Ci0gICAgaWYgKCFtX25vdGlmaWNhdGlvbnMpCi0gICAgICAgIHJldHVybjsKLSAg
ICBtX25vdGlmaWNhdGlvbnMtPmRpc2Nvbm5lY3RGcmFtZSgpOwotICAgIG1fbm90aWZpY2F0aW9u
cyA9IDA7Ci19Ci0jZW5kaWYKLQogdm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlKFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBNZXNzYWdlUG9ydCogcG9ydCwgY29u
c3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBNZXNzYWdlUG9ydEFycmF5IHBvcnRzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmgKaW5kZXggY2RmZDMyMmQ4ZGE4NmE2ZWY2M2IyYWExM2VkYzllYTczYzUwNzY5Yi4uZWI1OWI5
MjM5NzRjMzZlZGQ5ZjM2YjljOWFhMjI5MmE1MTdlMGQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5oCkBAIC01Niw3ICs1Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBNZWRp
YVF1ZXJ5TGlzdDsKICAgICBjbGFzcyBOYXZpZ2F0b3I7CiAgICAgY2xhc3MgTm9kZTsKLSAgICBj
bGFzcyBOb3RpZmljYXRpb25DZW50ZXI7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBQZXJm
b3JtYW5jZTsKICAgICBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyOwpAQCAtMzU0LDEzICszNTMsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFN0b3JhZ2UqIHNlc3Npb25TdG9yYWdlKEV4
Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICAgICAgU3RvcmFnZSogbG9jYWxTdG9yYWdlKEV4Y2Vw
dGlvbkNvZGUmKSBjb25zdDsKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICBO
b3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMoKSBjb25zdDsKLSAgICAgICAg
Ly8gUmVuZGVycyB3ZWJraXROb3RpZmljYXRpb25zIG9iamVjdCBzYWZlbHkgaW5vcGVyYWJsZSwg
ZGlzY29ubmVjdHMKLSAgICAgICAgLy8gaWYgZnJvbSBlbWJlZGRlci1wcm92aWRlZCBOb3RpZmlj
YXRpb25DbGllbnQuCi0gICAgICAgIHZvaWQgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYK
LQogI2lmIEVOQUJMRShRVU9UQSkKICAgICAgICAgU3RvcmFnZUluZm8qIHdlYmtpdFN0b3JhZ2VJ
bmZvKCkgY29uc3Q7CiAjZW5kaWYKQEAgLTQ0MywxMCArNDM1LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTdG9yYWdlPiBtX2xvY2FsU3RvcmFnZTsKICAg
ICAgICAgbXV0YWJsZSBSZWZQdHI8RE9NQXBwbGljYXRpb25DYWNoZT4gbV9hcHBsaWNhdGlvbkNh
Y2hlOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgICAgIG11dGFibGUgUmVmUHRy
PE5vdGlmaWNhdGlvbkNlbnRlcj4gbV9ub3RpZmljYXRpb25zOwotI2VuZGlmCi0KICNpZiBFTkFC
TEUoV0VCX1RJTUlORykKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8UGVyZm9ybWFuY2U+IG1fcGVy
Zm9ybWFuY2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCAxNDA4NmJm
MjBlOWU0OTc2YWE4ODEyM2I4NjBjMDdiNDU5M2E3OWFkLi4wZWZhN2JmMTI0ODkxMDhiYWE1Mzg3
ZTIxNzE3ZWY2MzZjYmYxYzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0xNzAs
MTAgKzE3MCw2IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W1Y4RW5hYmxlZEF0UnVudGltZV0gU3RvcmFnZSBsb2NhbFN0b3JhZ2UKICAgICAgICAgICAgIGdl
dHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotI2lmIGRlZmluZWQoRU5BQkxFX05PVElGSUNB
VElPTlMpICYmIEVOQUJMRV9OT1RJRklDQVRJT05TCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBOb3RpZmljYXRpb25DZW50ZXIgd2Via2l0Tm90aWZpY2F0
aW9uczsKLSNlbmRpZgotCiAjaWYgZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKSAm
JiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGludGVy
ZmFjZSBvcmllbnRhdGlvbiBpbiBkZWdyZWVzLiBTb21lIGV4YW1wbGVzIGFyZToKICAgICAgICAg
Ly8gIDAgaXMgc3RyYWlnaHQgdXA7IC05MCBpcyB3aGVuIHRoZSBkZXZpY2UgaXMgcm90YXRlZCA5
MCBjbG9ja3dpc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGFkOWNhYjhlOWQxM2ExZjViYjc1
ODMxN2JiYzc5NjIzY2JlNmFjNDAuLmZiZDJkYjM5NjIzNzc5YjY5ZTQ5OGUzMmQ1NDc5M2IyNWVm
N2M4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC02ODcsMTEgKzY4Nyw2IEBAIHZvaWQgRnJh
bWU6OndpbGxEZXRhY2hQYWdlKCkKICAgICBpZiAoRnJhbWUqIHBhcmVudCA9IHRyZWUoKS0+cGFy
ZW50KCkpCiAgICAgICAgIHBhcmVudC0+bG9hZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7CiAK
LSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICBpZiAobV9kb21XaW5kb3cpCi0gICAgICAg
IG1fZG9tV2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotCiAgICAgSGFzaFNl
dDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1fZGVzdHJ1Y3Rp
b25PYnNlcnZlcnMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlcio+OjppdGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVnaW4oKTsgaXQg
IT0gc3RvcDsgKytpdCkKICAgICAgICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7CkBAIC03MzYs
MTIgKzczMSw2IEBAIHZvaWQgRnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQo
KQogICAgICAgICAgICAgIG1fcGFnZS0+ZGVjcmVtZW50RnJhbWVDb3VudCgpOwogICAgICAgICB9
CiAKLSAgICAgICAgaWYgKG1fZG9tV2luZG93KSB7Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
Ci0gICAgICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYK
LSAgICAgICAgfQotCiAgICAgICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46
Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVuZCgpOwogICAgICAgICBm
b3IgKEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIGl0ID0gbV9k
ZXN0cnVjdGlvbk9ic2VydmVycy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQogICAgICAgICAg
ICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9t
YWMvV2ViS2l0Mi5vcmRlciBiL1NvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQyLm9yZGVyCmluZGV4
IDQ1N2EwNjNlMGI4M2I3MDQ3ZGVmNDViZWFjZGZlZjkzMmFjZGQxYjcuLjY0YmU0NTlmOWJlOTk1
YmU1OWZmYTFkMDQxYjc1YmNlY2NlM2UzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL21h
Yy9XZWJLaXQyLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQyLm9yZGVyCkBA
IC0zMzg0LDMgKzMzODQsNyBAQCBfV0tBZHZhbmNlRGVmYXVsdEJ1dHRvblB1bHNlQW5pbWF0aW9u
CiBfV0tBcHBLaXREcmF3RGVjb3lXaW5kb3dfaXNLZXlXaW5kb3cKIF9fWk42V2ViS2l0N1dlYlBh
Z2UzNnN1c3BlbmRBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc0V2CiBfX1pONldlYktpdDdX
ZWJQYWdlMzVyZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc0V2CisKKyNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKK19fWk43V2ViQ29yZTIyRE9NV2luZG93Tm90aWZpY2F0aW9uczE5
d2Via2l0Tm90aWZpY2F0aW9uc0VQTlNfOURPTVdpbmRvd0UKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131603</attachid>
            <date>2012-03-13 06:49:06 -0700</date>
            <delta_ts>2012-03-13 18:40:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79636-20120313224904.patch</filename>
            <type>text/plain</type>
            <size>24072</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg0NTBlNDkwZWE3YmU1
MTc1YTE0ZjE3OTY2NzNlNzdiMTYxNGU2ZS4uNDkyY2U4YjI5MzY4NzliMDVlOTA1NTNlMjY0NjIy
NDhlZTJmMTVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdl
YktpdCBtb2R1bGFyaXphdGlvbiwgdGhpcyBwYXRjaCBtb3ZlcyBOb3RpZmljYXRpb25zLXJlbGF0
ZWQgQVBJcworICAgICAgICBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvbm90aWZpY2F0aW9ucy8qIChObyBjaGFu
Z2UgaW4gdGVzdCByZXN1bHRzKQorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMue2gsY3BwLGlkbH0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOiBEaXR0by4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJp
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKworICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOiBBZGRlZCBtYW5nbGVkIHNpZ25hdHVyZXMgb2Ygd2Via2l0Tm90aWZpY2F0aW9ucygpLgor
CisgICAgICAgICogbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlm
aWNhdGlvbnM6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93Tm90aWZpY2F0aW9uczo6fkRPTVdpbmRvd05vdGlmaWNhdGlvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZnJvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3dOb3RpZmljYXRpb25zOjp3ZWJraXROb3RpZmljYXRpb25zKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmVuc3VyZVdlYmtpdE5vdGlmaWNhdGlv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZGlzY29ubmVj
dEZyYW1lKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvd05vdGlmaWNh
dGlvbnMpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGw6IEFkZGVkLgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOiBSZW1vdmVkIEVOQUJM
RShOT1RJRklDQVRJT05TKS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6fkRPTVdpbmRv
dyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y2xlYXIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
Lmg6IERpdHRvLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChET01XaW5kb3cpOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogRGl0dG8uCisgICAgICAgICogcGFnZS9GcmFtZS5j
cHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToK
KwogMjAxMi0wMy0xMyAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkIGluc3BlY3RvciBjb21waWxhdGlvbiBtb2R1bGUgbmFtZSBmaXgg
YWZ0ZXIgcjExMDU1MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5MDg1MzkyZjVmMGE0ZmFkZmEyMjk1MjIxY2Uw
MWQyNjA2Y2Y4ZDE2Li40MDk2NzBjZjM3NmZhNzZhNWViYzc5NGI0NzZkNjliYjAxNWFmNjUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMTEgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgTm90aWZpY2F0aW9ucyBBUElzIGZy
b20gRE9NV2luZG93LmlkbCB0byBET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk2MzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgV2ViS2l0IG1vZHVsYXJp
emF0aW9uLCB0aGlzIHBhdGNoIG1vdmVzIE5vdGlmaWNhdGlvbnMtcmVsYXRlZCBBUElzCisgICAg
ICAgIGZyb20gRE9NV2luZG93LmlkbCB0byBET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbC4KKwor
ICAgICAgICAqIG1hYy9XZWJLaXQyLm9yZGVyOiBBZGRlZCBtYW5nbGVkIHNpZ25hdHVyZXMgb2Yg
d2Via2l0Tm90aWZpY2F0aW9ucygpLgorCiAyMDEyLTAzLTEzICBBbGxhbiBTYW5kZmVsZCBKZW5z
ZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gU2V0IGNvcnJlY3Qg
ZGV2aWNlIHdpZHRoIGFuZCBoZWlnaHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJmY2MyNjU1
NzMzMjYzOTVjYTQ0MDI0NDRjZDAwYThlOGNjYWMyMjAuLjllNDAwMTI3ZDFmM2Y1NWE1OGZkNjc4
NDA4OGU4MTdhZTJlNDJiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjIzLDEyICsxNjIz
LDE0IEBAIEVORElGICgpCiAKIElGIChFTkFCTEVfTk9USUZJQ0FUSU9OUykKICAgICBMSVNUKEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmNwcAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5j
cHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcAogICAg
ICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKICAgICApCiAKICAgICBMSVNUKEFQ
UEVORCBXZWJDb3JlX0lETF9GSUxFUworICAgICAgICBub3RpZmljYXRpb25zL0RPTVdpbmRvd05v
dGlmaWNhdGlvbnMuaWRsCiAgICAgICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbAog
ICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5pZGwKICAgICApCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA5NmJlM2U4ZWNhMTRkODhhNTZlOWQ1ZDU2M2Zh
Y2Q1NjM2NTExNWZiLi5jYjQxZmE3NjQ2NmIzZmQxMDNlYzhjY2E1YjNlNTA3ZjM4ZTY4MTQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM1NSw2ICszNTUsNyBAQCBCSU5ESU5H
X0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwgXAorICAgICQo
V2ViQ29yZSkvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgXAogICAgICQoV2ViQ29y
ZSkvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUp
L3BhZ2UvQWJzdHJhY3RWaWV3LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKaW5kZXgg
YWY0ZjViNTBiODU3ZjIyZjEwYjRjNTdiM2RhZDhlMWQyODgzNWFkOC4uZTU1MzkyNDQ5YmQxZDY5
NmMyOTVmM2EzNGQ4MGRmYzhiMjViZGRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQpA
QCAtMzc1LDYgKzM3NSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvaW5zcGVjdG9y
L1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkJFBXRC9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5v
ZGUuaWRsIFwKICAgICAkJFBXRC9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5p
ZGwgXAorICAgICQkUFdEL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwg
XAogICAgICQkUFdEL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCiAgICAgJCRQV0Qv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsIFwKICAgICAkJFBXRC9wYWdlL0Jh
ckluZm8uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGZhMmQ2OTEzNDdm
NWNjM2UyZGIxNWU1YmRmN2VkZjE3YzFkZmM1NDQuLmIzNzFhMDhhYTM1YTU3Mjk4NWI5Y2Q0OThl
NGU3YWRlZjU0ZjYyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjgyMCw2
ICsyODIwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MTWF0aEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRF
bGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50Lmgg
XAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgg
XAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50LmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKaW5kZXggZTkzY2ZhODNhY2Y1OWVlYWRiMTEwZTcxZGYxZTQ5OTJmNWFiNmVmMi4u
MjRkNWU2Mjg5MzNlMDMzMGM2OWQ2MzRiNTNkOTlhOWQ1Yzk0OWJmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBA
IC05ODAsNiArOTgwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RleHRSZXNvdXJjZURlY29kZXIuY3BwIFwKICAgICBsb2Fk
ZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAgXAorICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90
aWZpY2F0aW9ucy5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBcCiAg
ICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKICAgICBub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIFwKQEAgLTIwNzYsNiArMjA3Nyw3IEBAIEhF
QURFUlMgKz0gXAogICAgIG1hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmggXAog
ICAgIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIFwKICAgICBtYXRobWwvTWF0aE1MVGV4dEVs
ZW1lbnQuaCBcCisgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmggXAog
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2VudGVyLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBhNzEwNjA0MjJjMzEyNTNmZjZmYTNhZDU5ZjRh
YmE4NWYyNTI4OWVkLi4zYTg1ZjMzODEyZDQ3OTU5NDk3Njg0NTdhMGQ5ZjFmZmM1MmU4ZWZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjQxLDYgKzY0MSw3IEBAIF9fWk43V2ViQ29yZTIxcmVw
b3J0VGhyZWFkVmlvbGF0aW9uRVBLY05TXzIwVGhyZWFkVmlvbGF0aW9uUm91bmRFCiBfX1pON1dl
YkNvcmUyMXJlc291cmNlTG9hZFNjaGVkdWxlckV2CiBfX1pON1dlYkNvcmUyMXNldEdsb2JhbElj
b25EYXRhYmFzZUVQTlNfMTZJY29uRGF0YWJhc2VCYXNlRQogX19aTjdXZWJDb3JlMjFzZXRQbGF0
Zm9ybVN0cmF0ZWdpZXNFUE5TXzE4UGxhdGZvcm1TdHJhdGVnaWVzRQorX19aTjdXZWJDb3JlMjJE
T01XaW5kb3dOb3RpZmljYXRpb25zMTl3ZWJraXROb3RpZmljYXRpb25zRVBOU185RE9NV2luZG93
RQogX19aTjdXZWJDb3JlMjJTY3JpcHRFeGVjdXRpb25Db250ZXh0MjZjYW5TdXNwZW5kQWN0aXZl
RE9NT2JqZWN0c0V2CiBfX1pON1dlYkNvcmUyMmFwcGxpY2F0aW9uSXNBcHBsZU1haWxFdgogX19a
TjdXZWJDb3JlMjJjb250ZXh0TWVudUl0ZW1UYWdCb2xkRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA4
NzhjNDY1ZWJmZGQyOWNkY2FmZTk2NjgxMGFmYWI2ZWZhZGNkMjFhLi40NjhmOGE2MzdhZDY2Mzgw
YWY2MmQyY2QxOTU3M2JlODcyMDBiZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMDUyLDYgKzEw
NTIsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCcsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCcsCiAgICAgICAgICAgICAn
bG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsJywKKyAgICAgICAgICAgICdu
b3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsJywKICAgICAgICAgICAgICdu
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCcsCiAgICAgICAgICAgICAncGFnZS9BYnN0cmFjdFZp
ZXcuaWRsJywKQEAgLTI3ODAsNiArMjc4MSw4IEBACiAgICAgICAgICAgICAnbWF0aG1sL01hdGhN
TE1hdGhFbGVtZW50LmgnLAogICAgICAgICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5j
cHAnLAogICAgICAgICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oJywKKyAgICAgICAg
ICAgICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwJywKKyAgICAgICAg
ICAgICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCcsCiAgICAgICAgICAg
ICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwJywKICAgICAgICAgICAgICdub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbkNlbnRlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCAyZDljOTY0NDYwM2VjZTJhMzQ3OWU3NjM5ZGJmMjgwZjI5ZmM3YzVi
Li5lYzgwMzBkMTYyNzQ4OTFjZGUxMzY0MWUzZTFiODNmMjhkYTFhNjVhIDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTM1NzgsNiArNTM1Nzgs
MTQgQEAKIAkJCU5hbWU9Im5vdGlmaWNhdGlvbnMiCiAJCQk+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0
aW9uc1xET01XaW5kb3dOb3RpZmljYXRpb25zLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uLmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0
aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTAzOGFiMDU0NWY0
MDAxY2MyZWM2ZjZiZjM0MzU4ODA4NmVjMDNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApAQCAtMCwwICsx
LDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgorCisjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgorI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworRE9NV2luZG93Tm90aWZpY2F0aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9u
cyhET01XaW5kb3cgKndpbmRvdykKKyAgICA6IERPTVdpbmRvd1Byb3BlcnR5KHdpbmRvdy0+ZnJh
bWUoKSkKKyAgICAsIG1fd2luZG93KHdpbmRvdykKK3sKK30KKworRE9NV2luZG93Tm90aWZpY2F0
aW9uczo6fkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKQoreworfQorCitET01XaW5kb3dOb3RpZmlj
YXRpb25zKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQor
eworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzdXBwbGVtZW50TmFtZSwg
KCJET01XaW5kb3dOb3RpZmljYXRpb25zIikpOworICAgIERPTVdpbmRvd05vdGlmaWNhdGlvbnMq
IHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxET01XaW5kb3dOb3RpZmljYXRpb25zKj4oU3VwcGxl
bWVudDxET01XaW5kb3c+Ojpmcm9tKHdpbmRvdywgc3VwcGxlbWVudE5hbWUpKTsKKyAgICBpZiAo
IXN1cHBsZW1lbnQpIHsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBET01XaW5kb3dOb3RpZmlj
YXRpb25zKHdpbmRvdyk7CisgICAgICAgIFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6cHJvdmlkZVRv
KHdpbmRvdywgc3VwcGxlbWVudE5hbWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQpKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93
Tm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqIHdpbmRvdykKK3sK
KyAgICByZXR1cm4gRE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZnJvbSh3aW5kb3cpLT5lbnN1cmVX
ZWJraXROb3RpZmljYXRpb25zKCk7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93
Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucygpCit7CisgICAgaWYgKG1f
bm90aWZpY2F0aW9uQ2VudGVyKQorICAgICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25DZW50ZXIu
Z2V0KCk7CisKKyAgICBpZiAoIW1fd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUo
KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX3dpbmRv
dy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3ZpZGVyID0gTm90aWZp
Y2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKKyAgICBpZiAocHJvdmlkZXIpCisg
ICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUo
bV93aW5kb3ctPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgcHJvdmlkZXIpOworICAgIHJldHVy
biBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsKK30KKwordm9pZCBET01XaW5kb3dOb3RpZmlj
YXRpb25zOjpkaXNjb25uZWN0RnJhbWUoKQoreworICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRl
cikgeworICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRlci0+ZGlzY29ubmVjdEZyYW1lKCk7Cisg
ICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gMDsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZDY0ZjVhY2E0ODhlYTkxZDY5ZTc3OTFjYjMwZDg4M2M2NzcwN2I1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBET01XaW5kb3dOb3RpZmljYXRpb25zX2gKKyNkZWZpbmUgRE9N
V2luZG93Tm90aWZpY2F0aW9uc19oCisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKworI2lu
Y2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
KyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERPTVdpbmRvdzsKK2NsYXNzIE5vdGlmaWNhdGlvbkNlbnRlcjsKK2NsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIERPTVdpbmRvd05vdGlmaWNhdGlvbnMgOiBwdWJsaWMg
U3VwcGxlbWVudDxET01XaW5kb3c+LCBwdWJsaWMgRE9NV2luZG93UHJvcGVydHkgeworcHVibGlj
OgorICAgIHZpcnR1YWwgfkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKTsKKworICAgIHN0YXRpYyBO
b3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMoRE9NV2luZG93Kik7CisgICAg
c3RhdGljIERPTVdpbmRvd05vdGlmaWNhdGlvbnMqIGZyb20oRE9NV2luZG93Kik7CisKK3ByaXZh
dGU6CisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsKKworICAgIE5vdGlm
aWNhdGlvbkNlbnRlciogZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucygpOworICAgIHZvaWQgZGlz
Y29ubmVjdEZyYW1lKCkgT1ZFUlJJREU7CisKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVy
PiBtX25vdGlmaWNhdGlvbkNlbnRlcjsKKyAgICBET01XaW5kb3cqIG1fd2luZG93OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMp
CisKKyNlbmRpZiAvLyBET01XaW5kb3dOb3RpZmljYXRpb25zX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUwNzYwN2QzMGQ5YjY4NzY4M2E2ODkzZDUyZjA3MzgwNzkyZWYxZGIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNh
dGlvbnMuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9k
dWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1OT1RJ
RklDQVRJT05TLAorICAgICAgICBTdXBwbGVtZW50YWw9RE9NV2luZG93CisgICAgXSBET01XaW5k
b3dOb3RpZmljYXRpb25zIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRB
dFJ1bnRpbWVdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOworICAgIH07
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAyYjMwYmJlM2ExNTI0NzI3OWQw
MWJjNDA3MzhjOWJhMDQ1MWFjNmI2Li5jODNkMWE3NjJiMzQ1MmM5NzEzYjgwZGJjNWQwOWViNDJj
NjkwODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03Miw4ICs3Miw2IEBACiAj
aW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIK
ICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25DZW50ZXIuaCIK
LSNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIK
QEAgLTQxNSw5ICs0MTMsNiBAQCBET01XaW5kb3c6On5ET01XaW5kb3coKQogICAgIEFTU0VSVCgh
bV9zZXNzaW9uU3RvcmFnZSk7CiAgICAgQVNTRVJUKCFtX2xvY2FsU3RvcmFnZSk7CiAgICAgQVNT
RVJUKCFtX2FwcGxpY2F0aW9uQ2FjaGUpOwotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAg
IEFTU0VSVCghbV9ub3RpZmljYXRpb25zKTsKLSNlbmRpZgogI2lmIEVOQUJMRShCTE9CKQogICAg
IEFTU0VSVCghbV9kb21VUkwpOwogI2VuZGlmCkBAIC00NzMsMTIgKzQ2OCw2IEBAIHZvaWQgRE9N
V2luZG93Ojp3aWxsRGV0YWNoUGFnZSgpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChtX2ZyYW1lLCB0aGlzKTsKIAotI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQotICAgIC8vIENsZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVxdWVzdHMgaW52b2x2
ZXMgYWNjZXNzaW5nIHRoZSBjbGllbnQgc28gaXQgbXVzdCBiZSBkb25lCi0gICAgLy8gYmVmb3Jl
IHRoZSBmcmFtZSBpcyBkZXRhY2hlZC4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRp
ZgotCiAgICAgSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBzdG9wID0gbV9w
cm9wZXJ0aWVzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+Ojpp
dGVyYXRvciBpdCA9IG1fcHJvcGVydGllcy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQogICAg
ICAgICAoKml0KS0+d2lsbERldGFjaFBhZ2UoKTsKQEAgLTUyMSwxMSArNTEwLDYgQEAgdm9pZCBE
T01XaW5kb3c6OmNsZWFyKCkKICAgICBtX3Nlc3Npb25TdG9yYWdlID0gMDsKICAgICBtX2xvY2Fs
U3RvcmFnZSA9IDA7CiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlID0gMDsKLSNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKLSAgICAvLyBGSVhNRTogTm90aWZpY2F0aW9ucyBzaG91bGRuJ3QgaGF2ZSBk
aWZmZXJlbnQgZGlzY29ubmVjdGlvbiBsb2dpYyB0aGFuCi0gICAgLy8gdGhlIHJlc3Qgb2YgdGhl
IERPTVdpbmRvd1Byb3BlcnRpZXMuCi0gICAgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYK
ICNpZiBFTkFCTEUoQkxPQikKICAgICBtX2RvbVVSTCA9IDA7CiAjZW5kaWYKQEAgLTcwMiwzNiAr
Njg2LDYgQEAgU3RvcmFnZSogRE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UoRXhjZXB0aW9uQ29kZSYg
ZWMpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9jYWxTdG9yYWdlLmdldCgpOwogfQogCi0jaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCi1Ob3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRvdzo6d2Via2l0
Tm90aWZpY2F0aW9ucygpIGNvbnN0Ci17Ci0gICAgaWYgKG1fbm90aWZpY2F0aW9ucyB8fCAhaXND
dXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCi0gICAgICAgIHJldHVybiBtX25vdGlmaWNhdGlv
bnMuZ2V0KCk7Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwot
ICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIAotICAgIFBhZ2UqIHBh
Z2UgPSBkb2N1bWVudC0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuIDA7
Ci0KLSAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3ZpZGVyID0gTm90aWZpY2F0aW9uQ29udHJv
bGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKLSAgICBpZiAocHJvdmlkZXIpIAotICAgICAgICBtX25v
dGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShkb2N1bWVudCwgcHJvdmlk
ZXIpOyAgICAKLSAgICAgIAotICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMuZ2V0KCk7Ci19Ci0K
LXZvaWQgRE9NV2luZG93OjpyZXNldE5vdGlmaWNhdGlvbnMoKQotewotICAgIGlmICghbV9ub3Rp
ZmljYXRpb25zKQotICAgICAgICByZXR1cm47Ci0gICAgbV9ub3RpZmljYXRpb25zLT5kaXNjb25u
ZWN0RnJhbWUoKTsKLSAgICBtX25vdGlmaWNhdGlvbnMgPSAwOwotfQotI2VuZGlmCi0KIHZvaWQg
RE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
bWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIGNvbnN0IFN0cmluZyYgdGFyZ2V0T3JpZ2luLCBE
T01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTWVzc2FnZVBvcnRB
cnJheSBwb3J0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IGNkZmQzMjJkOGRhODZhNmVm
NjNiMmFhMTNlZGM5ZWE3M2M1MDc2OWIuLmViNTliOTIzOTc0YzM2ZWRkOWYzNmI5YzlhYTIyOTJh
NTE3ZTBkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtNTYsNyArNTYsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiAgICAgY2xhc3MgTmF2
aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOwog
ICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAgY2xhc3MgUG9zdE1l
c3NhZ2VUaW1lcjsKQEAgLTM1NCwxMyArMzUzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBTdG9yYWdlKiBzZXNzaW9uU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAg
ICAgIFN0b3JhZ2UqIGxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKLSNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgTm90aWZpY2F0aW9uQ2VudGVyKiB3ZWJraXRO
b3RpZmljYXRpb25zKCkgY29uc3Q7Ci0gICAgICAgIC8vIFJlbmRlcnMgd2Via2l0Tm90aWZpY2F0
aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRpc2Nvbm5lY3RzCi0gICAgICAgIC8vIGlm
IGZyb20gZW1iZWRkZXItcHJvdmlkZWQgTm90aWZpY2F0aW9uQ2xpZW50LgotICAgICAgICB2b2lk
IHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoUVVPVEEpCiAgICAg
ICAgIFN0b3JhZ2VJbmZvKiB3ZWJraXRTdG9yYWdlSW5mbygpIGNvbnN0OwogI2VuZGlmCkBAIC00
NDMsMTAgKzQzNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBSZWZQ
dHI8U3RvcmFnZT4gbV9sb2NhbFN0b3JhZ2U7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPERPTUFw
cGxpY2F0aW9uQ2FjaGU+IG1fYXBwbGljYXRpb25DYWNoZTsKIAotI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQotICAgICAgICBtdXRhYmxlIFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG1fbm90
aWZpY2F0aW9uczsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgICAgIG11
dGFibGUgUmVmUHRyPFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMTQwODZiZjIwZTllNDk3NmFhODgxMjNiODYwYzA3YjQ1
OTNhNzlhZC4uMGVmYTdiZjEyNDg5MTA4YmFhNTM4N2UyMTcxN2VmNjM2Y2JmMWMyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMTcwLDEwICsxNzAsNiBAQCBtb2R1bGUgd2luZG93
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIFN0b3Jh
Z2UgbG9jYWxTdG9yYWdlCiAgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAmJiBFTkFCTEVfTk9USUZJQ0FU
SU9OUwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gTm90
aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7Ci0jZW5kaWYKLQogI2lmIGRlZmlu
ZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5U
UwogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24gaW4gZGVncmVl
cy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFpZ2h0IHVwOyAtOTAg
aXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcAppbmRleCBhZDljYWI4ZTlkMTNhMWY1YmI3NTgzMTdiYmM3OTYyM2NiZTZhYzQwLi5mYmQy
ZGIzOTYyMzc3OWI2OWU0OThlMzJkNTQ3OTNiMjVlZjdjODUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cApAQCAtNjg3LDExICs2ODcsNiBAQCB2b2lkIEZyYW1lOjp3aWxsRGV0YWNoUGFnZSgpCiAgICAg
aWYgKEZyYW1lKiBwYXJlbnQgPSB0cmVlKCktPnBhcmVudCgpKQogICAgICAgICBwYXJlbnQtPmxv
YWRlcigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
Ci0gICAgaWYgKG1fZG9tV2luZG93KQotICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXROb3RpZmlj
YXRpb25zKCk7Ci0jZW5kaWYKLQogICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
Kj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVuZCgpOwogICAgIGZv
ciAoSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rl
c3RydWN0aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCiAgICAgICAgICgq
aXQpLT53aWxsRGV0YWNoUGFnZSgpOwpAQCAtNzM2LDEyICs3MzEsNiBAQCB2b2lkIEZyYW1lOjp0
cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KCkKICAgICAgICAgICAgICBtX3BhZ2UtPmRl
Y3JlbWVudEZyYW1lQ291bnQoKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX2RvbVdpbmRv
dykgewotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICAgICAgbV9kb21XaW5kb3ct
PnJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0gICAgICAgIH0KLQogICAgICAgICBIYXNo
U2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9wID0gbV9kZXN0cnVj
dGlvbk9ic2VydmVycy5lbmQoKTsKICAgICAgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rp
b25PYnNlcnZlcio+OjppdGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVnaW4o
KTsgaXQgIT0gc3RvcDsgKytpdCkKICAgICAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIgYi9Tb3VyY2Uv
V2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgppbmRleCA0NTdhMDYzZTBiODNiNzA0N2RlZjQ1YmVh
Y2RmZWY5MzJhY2RkMWI3Li42NGJlNDU5ZjliZTk5NWJlNTlmZmExZDA0MWI3NWJjZWNjZTNlM2Fh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgpAQCAtMzM4NCwzICszMzg0LDcgQEAgX1dLQWR2
YW5jZURlZmF1bHRCdXR0b25QdWxzZUFuaW1hdGlvbgogX1dLQXBwS2l0RHJhd0RlY295V2luZG93
X2lzS2V5V2luZG93CiBfX1pONldlYktpdDdXZWJQYWdlMzZzdXNwZW5kQWN0aXZlRE9NT2JqZWN0
c0FuZEFuaW1hdGlvbnNFdgogX19aTjZXZWJLaXQ3V2ViUGFnZTM1cmVzdW1lQWN0aXZlRE9NT2Jq
ZWN0c0FuZEFuaW1hdGlvbnNFdgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCitfX1pON1dl
YkNvcmUyMkRPTVdpbmRvd05vdGlmaWNhdGlvbnMxOXdlYmtpdE5vdGlmaWNhdGlvbnNFUE5TXzlE
T01XaW5kb3dFCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131769</attachid>
            <date>2012-03-13 18:46:10 -0700</date>
            <delta_ts>2012-03-13 22:49:16 -0700</delta_ts>
            <desc>try to remove mangled symbols</desc>
            <filename>bug-79636-20120314104607.patch</filename>
            <type>text/plain</type>
            <size>21959</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg0NTBlNDkwZWE3YmU1
MTc1YTE0ZjE3OTY2NzNlNzdiMTYxNGU2ZS4uZTZkOTNlNmM3Mjk0YThmNWRkYmM2NjI0ZmRhZjU4
OTU5MThlNjhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBGb3IgV2ViS2l0
IG1vZHVsYXJpemF0aW9uLCB0aGlzIHBhdGNoIG1vdmVzIE5vdGlmaWNhdGlvbnMtcmVsYXRlZCBB
UElzCisgICAgICAgIGZyb20gRE9NV2luZG93LmlkbCB0byBET01XaW5kb3dOb3RpZmljYXRpb25z
LmlkbC4KKworICAgICAgICBUZXN0czogZmFzdC9ub3RpZmljYXRpb25zLyogKE5vIGNoYW5nZSBp
biB0ZXN0IHJlc3VsdHMpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy57aCxjcHAsaWRsfS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOiBEaXR0by4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6IERpdHRvLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERp
dHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IEFkZGVkIG1hbmdsZWQgc2lnbmF0dXJlcyBvZiB3ZWJraXROb3RpZmljYXRpb25zKCkuCisKKyAg
ICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0
aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dOb3RpZmljYXRpb25zOjp+RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJh
bWUpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93Tm90aWZpY2F0aW9u
cyk6CisgICAgICAgICogbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDog
QWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IFJlbW92ZWQgRU5BQkxFKE5P
VElGSUNBVElPTlMpLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6d2lsbERldGFjaFBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpjbGVhcik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuaWRsOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6d2lsbERldGFjaFBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQpOgorCiAy
MDEyLTAzLTEzICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgaW5zcGVjdG9yIGNvbXBpbGF0aW9uIG1vZHVsZSBuYW1lIGZpeCBhZnRl
ciByMTEwNTUwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyZmNjMjY1NTczMzI2Mzk1Y2E0NDAy
NDQ0Y2QwMGE4ZThjY2FjMjIwLi45ZTQwMDEyN2QxZjNmNTVhNThmZDY3ODQwODhlODE3YWUyZTQy
YmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYyMywxMiArMTYyMywxNCBAQCBFTkRJRiAo
KQogCiBJRiAoRU5BQkxFX05PVElGSUNBVElPTlMpCiAgICAgTElTVChBUFBFTkQgV2ViQ29yZV9T
T1VSQ0VTCisgICAgICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAK
ICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCiAgICAgICAgIG5v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKICAgICAgICAgbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb24uY3BwCiAgICAgKQogCiAgICAgTElTVChBUFBFTkQgV2ViQ29yZV9J
RExfRklMRVMKKyAgICAgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlk
bAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKICAgICAgICAgbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCiAgICAgKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggOTZiZTNlOGVjYTE0ZDg4YTU2ZTlkNWQ1NjNmYWNkNTYzNjUxMTVmYi4u
Y2I0MWZhNzY0NjZiM2ZkMTAzZWM4Y2NhNWIzZTUwN2YzOGU2ODE0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0zNTUsNiArMzU1LDcgQEAgQklORElOR19JRExTID0gXAogICAg
ICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvbG9hZGVy
L2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0Fic3RyYWN0
Vmlldy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJp
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IGFmNGY1YjUwYjg1N2Yy
MmYxMGI0YzU3YjNkYWQ4ZTFkMjg4MzVhZDguLmU1NTM5MjQ0OWJkMWQ2OTZjMjk1ZjNhMzRkODBk
ZmM4YjI1YmRkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnBy
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTM3NSw2ICszNzUs
NyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2luc3BlY3Rvci9TY3JpcHRQcm9maWxl
LmlkbCBcCiAgICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBcCiAgICAg
JCRQV0QvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkJFBX
RC9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKICAgICAkJFBXRC9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgXAogICAgICQkUFdEL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCiAgICAgJCRQV0QvcGFnZS9CYXJJbmZvLmlkbCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBmYTJkNjkxMzQ3ZjVjYzNlMmRiMTVlNWJk
ZjdlZGYxN2MxZGZjNTQ0Li5iMzcxYTA4YWEzNWE1NzI5ODViOWNkNDk4ZTRlN2FkZWY1NGY2MjJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4MjAsNiArMjgyMCw4IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVt
ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBcCiAJU291cmNl
L1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4
IGU5M2NmYTgzYWNmNTllZWFkYjExMGU3MWRmMWU0OTkyZjVhYjZlZjIuLjI0ZDVlNjI4OTMzZTAz
MzBjNjlkNjM0YjUzZDk5YTlkNWM5NDliZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTgwLDYgKzk4MCw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgXAogICAg
IGxvYWRlci9UZXh0UmVzb3VyY2VEZWNvZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RocmVhZGFibGVM
b2FkZXIuY3BwIFwKKyAgICBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3Bw
IFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgXAogICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25Db250cm9sbGVyLmNwcCBcCkBAIC0yMDc2LDYgKzIwNzcsNyBAQCBIRUFERVJTICs9IFwKICAg
ICBtYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIFwKICAgICBtYXRobWwvTWF0
aE1MTWF0aEVsZW1lbnQuaCBcCiAgICAgbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmggXAorICAg
IG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIFwKICAgICBub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5oIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRl
ci5oIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCA4NzhjNDY1ZWJmZGQyOWNkY2FmZTk2NjgxMGFmYWI2ZWZhZGNkMjFhLi40Njhm
OGE2MzdhZDY2MzgwYWY2MmQyY2QxOTU3M2JlODcyMDBiZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC0xMDUyLDYgKzEwNTIsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQcm9maWxl
LmlkbCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCcsCiAg
ICAgICAgICAgICAnbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsJywKKyAg
ICAgICAgICAgICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsJywKICAg
ICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwnLAogICAgICAgICAgICAg
J25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCcsCiAgICAgICAgICAgICAncGFn
ZS9BYnN0cmFjdFZpZXcuaWRsJywKQEAgLTI3ODAsNiArMjc4MSw4IEBACiAgICAgICAgICAgICAn
bWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgnLAogICAgICAgICAgICAgJ21hdGhtbC9NYXRoTUxU
ZXh0RWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5o
JywKKyAgICAgICAgICAgICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3Bw
JywKKyAgICAgICAgICAgICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCcs
CiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwJywKICAgICAgICAg
ICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oJywKICAgICAgICAgICAgICdub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAyZDljOTY0NDYwM2VjZTJhMzQ3OWU3NjM5ZGJm
MjgwZjI5ZmM3YzViLi5lYzgwMzBkMTYyNzQ4OTFjZGUxMzY0MWUzZTFiODNmMjhkYTFhNjVhIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTM1
NzgsNiArNTM1NzgsMTQgQEAKIAkJCU5hbWU9Im5vdGlmaWNhdGlvbnMiCiAJCQk+CiAJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xET01XaW5kb3dOb3RpZmljYXRp
b25zLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cbm90aWZpY2F0aW9uc1xET01XaW5kb3dOb3RpZmljYXRpb25zLmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcTm90aWZp
Y2F0aW9uLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MTAzOGFiMDU0NWY0MDAxY2MyZWM2ZjZiZjM0MzU4ODA4NmVjMDNjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNw
cApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5o
IgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgor
I2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9NV2luZG93Tm90aWZpY2F0aW9uczo6RE9NV2luZG93
Tm90aWZpY2F0aW9ucyhET01XaW5kb3cgKndpbmRvdykKKyAgICA6IERPTVdpbmRvd1Byb3BlcnR5
KHdpbmRvdy0+ZnJhbWUoKSkKKyAgICAsIG1fd2luZG93KHdpbmRvdykKK3sKK30KKworRE9NV2lu
ZG93Tm90aWZpY2F0aW9uczo6fkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKQoreworfQorCitET01X
aW5kb3dOb3RpZmljYXRpb25zKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKERPTVdpbmRv
dyogd2luZG93KQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzdXBw
bGVtZW50TmFtZSwgKCJET01XaW5kb3dOb3RpZmljYXRpb25zIikpOworICAgIERPTVdpbmRvd05v
dGlmaWNhdGlvbnMqIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxET01XaW5kb3dOb3RpZmljYXRp
b25zKj4oU3VwcGxlbWVudDxET01XaW5kb3c+Ojpmcm9tKHdpbmRvdywgc3VwcGxlbWVudE5hbWUp
KTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBET01X
aW5kb3dOb3RpZmljYXRpb25zKHdpbmRvdyk7CisgICAgICAgIFN1cHBsZW1lbnQ8RE9NV2luZG93
Pjo6cHJvdmlkZVRvKHdpbmRvdywgc3VwcGxlbWVudE5hbWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQp
KTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRl
ciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cq
IHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZnJvbSh3aW5k
b3cpLT5lbnN1cmVXZWJraXROb3RpZmljYXRpb25zKCk7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRl
ciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucygpCit7
CisgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyKQorICAgICAgICByZXR1cm4gbV9ub3RpZmlj
YXRpb25DZW50ZXIuZ2V0KCk7CisKKyAgICBpZiAoIW1fd2luZG93LT5pc0N1cnJlbnRseURpc3Bs
YXllZEluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBtX3dpbmRvdy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3Zp
ZGVyID0gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKKyAgICBpZiAo
cHJvdmlkZXIpCisgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gTm90aWZpY2F0aW9uQ2Vu
dGVyOjpjcmVhdGUobV93aW5kb3ctPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgcHJvdmlkZXIp
OworICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsKK30KKwordm9pZCBET01X
aW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJhbWUoKQoreworICAgIGlmIChtX25vdGlm
aWNhdGlvbkNlbnRlcikgeworICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRlci0+ZGlzY29ubmVj
dEZyYW1lKCk7CisgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gMDsKKyAgICB9Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlm
aWNhdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDY0ZjVhY2E0ODhlYTkxZDY5ZTc3OTFjYjMwZDg4M2M2
NzcwN2I1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9E
T01XaW5kb3dOb3RpZmljYXRpb25zLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBET01XaW5kb3dOb3RpZmljYXRpb25zX2gK
KyNkZWZpbmUgRE9NV2luZG93Tm90aWZpY2F0aW9uc19oCisKKyNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKKworI2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIE5vdGlmaWNhdGlvbkNlbnRlcjsKK2Ns
YXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIERPTVdpbmRvd05vdGlmaWNhdGlv
bnMgOiBwdWJsaWMgU3VwcGxlbWVudDxET01XaW5kb3c+LCBwdWJsaWMgRE9NV2luZG93UHJvcGVy
dHkgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKTsKKwor
ICAgIHN0YXRpYyBOb3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMoRE9NV2lu
ZG93Kik7CisgICAgc3RhdGljIERPTVdpbmRvd05vdGlmaWNhdGlvbnMqIGZyb20oRE9NV2luZG93
Kik7CisKK3ByaXZhdGU6CisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsK
KworICAgIE5vdGlmaWNhdGlvbkNlbnRlciogZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucygpOwor
ICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCkgT1ZFUlJJREU7CisKKyAgICBSZWZQdHI8Tm90aWZp
Y2F0aW9uQ2VudGVyPiBtX25vdGlmaWNhdGlvbkNlbnRlcjsKKyAgICBET01XaW5kb3cqIG1fd2lu
ZG93OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE5P
VElGSUNBVElPTlMpCisKKyNlbmRpZiAvLyBET01XaW5kb3dOb3RpZmljYXRpb25zX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlv
bnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUwNzYwN2QzMGQ5YjY4NzY4M2E2ODkzZDUyZjA3MzgwNzkyZWYx
ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdp
bmRvd05vdGlmaWNhdGlvbnMuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25k
aXRpb25hbD1OT1RJRklDQVRJT05TLAorICAgICAgICBTdXBwbGVtZW50YWw9RE9NV2luZG93Cisg
ICAgXSBET01XaW5kb3dOb3RpZmljYXRpb25zIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRp
b25zOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAyYjMwYmJl
M2ExNTI0NzI3OWQwMWJjNDA3MzhjOWJhMDQ1MWFjNmI2Li5jODNkMWE3NjJiMzQ1MmM5NzEzYjgw
ZGJjNWQwOWViNDJjNjkwODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03Miw4
ICs3Miw2IEBACiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKICNpbmNsdWRlICJNZXNz
YWdlRXZlbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRp
b25DZW50ZXIuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0
aW9uRXZlbnQuaCIKQEAgLTQxNSw5ICs0MTMsNiBAQCBET01XaW5kb3c6On5ET01XaW5kb3coKQog
ICAgIEFTU0VSVCghbV9zZXNzaW9uU3RvcmFnZSk7CiAgICAgQVNTRVJUKCFtX2xvY2FsU3RvcmFn
ZSk7CiAgICAgQVNTRVJUKCFtX2FwcGxpY2F0aW9uQ2FjaGUpOwotI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQotICAgIEFTU0VSVCghbV9ub3RpZmljYXRpb25zKTsKLSNlbmRpZgogI2lmIEVOQUJM
RShCTE9CKQogICAgIEFTU0VSVCghbV9kb21VUkwpOwogI2VuZGlmCkBAIC00NzMsMTIgKzQ2OCw2
IEBAIHZvaWQgRE9NV2luZG93Ojp3aWxsRGV0YWNoUGFnZSgpCiB7CiAgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChtX2ZyYW1lLCB0aGlzKTsKIAotI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIC8vIENsZWFyaW5nIE5vdGlmaWNhdGlvbnMgcmVx
dWVzdHMgaW52b2x2ZXMgYWNjZXNzaW5nIHRoZSBjbGllbnQgc28gaXQgbXVzdCBiZSBkb25lCi0g
ICAgLy8gYmVmb3JlIHRoZSBmcmFtZSBpcyBkZXRhY2hlZC4KLSAgICByZXNldE5vdGlmaWNhdGlv
bnMoKTsKLSNlbmRpZgotCiAgICAgSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRv
ciBzdG9wID0gbV9wcm9wZXJ0aWVzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxET01XaW5kb3dQ
cm9wZXJ0eSo+OjppdGVyYXRvciBpdCA9IG1fcHJvcGVydGllcy5iZWdpbigpOyBpdCAhPSBzdG9w
OyArK2l0KQogICAgICAgICAoKml0KS0+d2lsbERldGFjaFBhZ2UoKTsKQEAgLTUyMSwxMSArNTEw
LDYgQEAgdm9pZCBET01XaW5kb3c6OmNsZWFyKCkKICAgICBtX3Nlc3Npb25TdG9yYWdlID0gMDsK
ICAgICBtX2xvY2FsU3RvcmFnZSA9IDA7CiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlID0gMDsKLSNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAvLyBGSVhNRTogTm90aWZpY2F0aW9ucyBzaG91
bGRuJ3QgaGF2ZSBkaWZmZXJlbnQgZGlzY29ubmVjdGlvbiBsb2dpYyB0aGFuCi0gICAgLy8gdGhl
IHJlc3Qgb2YgdGhlIERPTVdpbmRvd1Byb3BlcnRpZXMuCi0gICAgcmVzZXROb3RpZmljYXRpb25z
KCk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQkxPQikKICAgICBtX2RvbVVSTCA9IDA7CiAjZW5kaWYK
QEAgLTcwMiwzNiArNjg2LDYgQEAgU3RvcmFnZSogRE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UoRXhj
ZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9jYWxTdG9yYWdlLmdldCgpOwog
fQogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi1Ob3RpZmljYXRpb25DZW50ZXIqIERPTVdp
bmRvdzo6d2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0Ci17Ci0gICAgaWYgKG1fbm90aWZpY2F0
aW9ucyB8fCAhaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCi0gICAgICAgIHJldHVybiBt
X25vdGlmaWNhdGlvbnMuZ2V0KCk7Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5k
b2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIAot
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0KLSAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3ZpZGVyID0gTm90aWZp
Y2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKLSAgICBpZiAocHJvdmlkZXIpIAot
ICAgICAgICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShkb2N1
bWVudCwgcHJvdmlkZXIpOyAgICAKLSAgICAgIAotICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMu
Z2V0KCk7Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpyZXNldE5vdGlmaWNhdGlvbnMoKQotewotICAg
IGlmICghbV9ub3RpZmljYXRpb25zKQotICAgICAgICByZXR1cm47Ci0gICAgbV9ub3RpZmljYXRp
b25zLT5kaXNjb25uZWN0RnJhbWUoKTsKLSAgICBtX25vdGlmaWNhdGlvbnMgPSAwOwotfQotI2Vu
ZGlmCi0KIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIGNvbnN0IFN0cmluZyYgdGFy
Z2V0T3JpZ2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
TWVzc2FnZVBvcnRBcnJheSBwb3J0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IGNkZmQz
MjJkOGRhODZhNmVmNjNiMmFhMTNlZGM5ZWE3M2M1MDc2OWIuLmViNTliOTIzOTc0YzM2ZWRkOWYz
NmI5YzlhYTIyOTJhNTE3ZTBkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtNTYsNyAr
NTYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiAg
ICAgY2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgTm90aWZpY2F0
aW9uQ2VudGVyOwogICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAg
Y2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKQEAgLTM1NCwxMyArMzUzLDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBTdG9yYWdlKiBzZXNzaW9uU3RvcmFnZShFeGNlcHRpb25Db2RlJikg
Y29uc3Q7CiAgICAgICAgIFN0b3JhZ2UqIGxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29u
c3Q7CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgTm90aWZpY2F0aW9uQ2Vu
dGVyKiB3ZWJraXROb3RpZmljYXRpb25zKCkgY29uc3Q7Ci0gICAgICAgIC8vIFJlbmRlcnMgd2Vi
a2l0Tm90aWZpY2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRpc2Nvbm5lY3RzCi0g
ICAgICAgIC8vIGlmIGZyb20gZW1iZWRkZXItcHJvdmlkZWQgTm90aWZpY2F0aW9uQ2xpZW50Lgot
ICAgICAgICB2b2lkIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICNpZiBFTkFCTEUo
UVVPVEEpCiAgICAgICAgIFN0b3JhZ2VJbmZvKiB3ZWJraXRTdG9yYWdlSW5mbygpIGNvbnN0Owog
I2VuZGlmCkBAIC00NDMsMTAgKzQzNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
bXV0YWJsZSBSZWZQdHI8U3RvcmFnZT4gbV9sb2NhbFN0b3JhZ2U7CiAgICAgICAgIG11dGFibGUg
UmVmUHRyPERPTUFwcGxpY2F0aW9uQ2FjaGU+IG1fYXBwbGljYXRpb25DYWNoZTsKIAotI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICBtdXRhYmxlIFJlZlB0cjxOb3RpZmljYXRpb25D
ZW50ZXI+IG1fbm90aWZpY2F0aW9uczsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcp
CiAgICAgICAgIG11dGFibGUgUmVmUHRyPFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMTQwODZiZjIwZTllNDk3NmFhODgx
MjNiODYwYzA3YjQ1OTNhNzlhZC4uMGVmYTdiZjEyNDg5MTA4YmFhNTM4N2UyMTcxN2VmNjM2Y2Jm
MWMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMTcwLDEwICsxNzAsNiBAQCBt
b2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1
bnRpbWVdIFN0b3JhZ2UgbG9jYWxTdG9yYWdlCiAgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAmJiBFTkFC
TEVfTk9USUZJQ0FUSU9OUwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0
UnVudGltZV0gTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7Ci0jZW5kaWYK
LQogI2lmIGRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5BQkxFX09SSUVO
VEFUSU9OX0VWRU5UUwogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRp
b24gaW4gZGVncmVlcy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFp
Z2h0IHVwOyAtOTAgaXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBhZDljYWI4ZTlkMTNhMWY1YmI3NTgzMTdiYmM3OTYyM2Ni
ZTZhYzQwLi5mYmQyZGIzOTYyMzc3OWI2OWU0OThlMzJkNTQ3OTNiMjVlZjdjODUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcApAQCAtNjg3LDExICs2ODcsNiBAQCB2b2lkIEZyYW1lOjp3aWxsRGV0YWNo
UGFnZSgpCiAgICAgaWYgKEZyYW1lKiBwYXJlbnQgPSB0cmVlKCktPnBhcmVudCgpKQogICAgICAg
ICBwYXJlbnQtPmxvYWRlcigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOwogCi0jaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCi0gICAgaWYgKG1fZG9tV2luZG93KQotICAgICAgICBtX2RvbVdpbmRvdy0+
cmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKLQogICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVu
ZCgpOwogICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0
b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQp
CiAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOwpAQCAtNzM2LDEyICs3MzEsNiBAQCB2
b2lkIEZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KCkKICAgICAgICAgICAg
ICBtX3BhZ2UtPmRlY3JlbWVudEZyYW1lQ291bnQoKTsKICAgICAgICAgfQogCi0gICAgICAgIGlm
IChtX2RvbVdpbmRvdykgewotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICAgICAg
bV9kb21XaW5kb3ctPnJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0gICAgICAgIH0KLQog
ICAgICAgICBIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9w
ID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5lbmQoKTsKICAgICAgICAgZm9yIChIYXNoU2V0PEZy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNl
cnZlcnMuYmVnaW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKICAgICAgICAgICAgICgqaXQpLT53aWxs
RGV0YWNoUGFnZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131791</attachid>
            <date>2012-03-13 22:50:37 -0700</date>
            <delta_ts>2012-03-14 07:53:33 -0700</delta_ts>
            <desc>trying to see mac build</desc>
            <filename>bug-79636-20120314145032.patch</filename>
            <type>text/plain</type>
            <size>22012</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg1ZGJiZjExNWZhNzA1
OGUyNjc3N2VkMzZhMDJhZWI5ZTViY2EyYS4uZGFjYzk2MTM5YjM0NmFjZmUyNzc3MjBhOTJkMWFk
MTE1ODk2MzIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBGb3IgV2ViS2l0
IG1vZHVsYXJpemF0aW9uLCB0aGlzIHBhdGNoIG1vdmVzIE5vdGlmaWNhdGlvbnMtcmVsYXRlZCBB
UElzCisgICAgICAgIGZyb20gRE9NV2luZG93LmlkbCB0byBET01XaW5kb3dOb3RpZmljYXRpb25z
LmlkbC4KKworICAgICAgICBUZXN0czogZmFzdC9ub3RpZmljYXRpb25zLyogKE5vIGNoYW5nZSBp
biB0ZXN0IHJlc3VsdHMpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy57aCxjcHAsaWRsfS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOiBEaXR0by4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6IERpdHRvLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERp
dHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IEFkZGVkIG1hbmdsZWQgc2lnbmF0dXJlcyBvZiB3ZWJraXROb3RpZmljYXRpb25zKCkuCisKKyAg
ICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0
aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dOb3RpZmljYXRpb25zOjp+RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJh
bWUpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93Tm90aWZpY2F0aW9u
cyk6CisgICAgICAgICogbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDog
QWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IFJlbW92ZWQgRU5BQkxFKE5P
VElGSUNBVElPTlMpLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6d2lsbERldGFjaFBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpjbGVhcik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuaWRsOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6d2lsbERldGFjaFBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQpOgorCiAy
MDEyLTAzLTEzICBMdWtlIE1hY3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgTW92ZSBvcGFjaXR5IGNsYW1waW5nIGludG8gUmVuZGVyU3R5bGUgc2V0dGVyLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmOGQ1ZGI2Mjg3ZGQ3ZTI4NDA4MTY2NDkzMzM2YmZhYWYy
YzhmYjc1Li4wYjU4ZTE1ZjQzZjY1Yzg3ODRiNjg4YzI4MDA4ZjU5Y2M1OTRjNzU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTYyMiwxMiArMTYyMiwxNCBAQCBFTkRJRiAoKQogCiBJRiAoRU5B
QkxFX05PVElGSUNBVElPTlMpCiAgICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAg
ICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAKICAgICAgICAgbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCiAgICAgICAgIG5vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uY3BwCiAgICAgKQogCiAgICAgTElTVChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMKKyAg
ICAgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbAogICAgICAgICBu
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25DZW50ZXIuaWRsCiAgICAgKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggMTgyYmVhNDAxNWU3NDMyMDRjYzk4MmUwZWMwMTk1ZWE1MWRlNjBlOS4uMzhlYzZiMzJlMTFl
NGU2MTExNzhhNzQ4MTEzNTcwMWQxM2QzYjFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC0zNTYsNiArMzU2LDcgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkv
aW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9T
Y3JpcHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvbG9hZGVyL2FwcGNhY2hlL0RP
TUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL25vdGlmaWNhdGlvbnMvRE9N
V2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2VudGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0Fic3RyYWN0Vmlldy5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IGYyNDczOWVhNzFmOTdhZmQ5OWY5MzUwYWZk
OWU2MTI2ZDEwYTE5OTIuLjg0MGJmY2ZlNzlmNzhkZWExNjRkYTVhYzY0NGNiOGZkOTQ3MGM5ZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTM3NSw2ICszNzUsNyBAQCBJRExfQklO
RElOR1MgKz0gXAogICAgICQkUFdEL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCBcCiAgICAg
JCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBcCiAgICAgJCRQV0QvbG9hZGVy
L2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkJFBXRC9ub3RpZmljYXRp
b25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKICAgICAkJFBXRC9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbi5pZGwgXAogICAgICQkUFdEL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
Q2VudGVyLmlkbCBcCiAgICAgJCRQV0QvcGFnZS9CYXJJbmZvLmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQppbmRleCA1NDcyZTU5OTUwNzVjZDUwY2YwZTJmZTBkZjFmZGM0NDczZWVi
M2FjLi5iZTllYTVkMmRiYzdiMTZjYjcwNzc1NjY1MTllMzNlYjI5ZGQ5OWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4MTgsNiArMjgxOCw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmggXAogCVNv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBcCiAJU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGMwNDI1YTVmZTI2
OWY1NzViMzE4MGY0YWJlNDYzMzZmYWU4ZjU5ODEuLmQ1YmZkMDU2ZGQ4MmE5MjAwYWE3MmMyZmJi
ZjA0YWVmODFhYWQ0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTc3LDYgKzk3Nyw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9UZXh0
UmVzb3VyY2VEZWNvZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwIFwK
KyAgICBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwKICAgICBub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2VudGVyLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVy
LmNwcCBcCkBAIC0yMDcxLDYgKzIwNzIsNyBAQCBIRUFERVJTICs9IFwKICAgICBtYXRobWwvTWF0
aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIFwKICAgICBtYXRobWwvTWF0aE1MTWF0aEVsZW1l
bnQuaCBcCiAgICAgbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmggXAorICAgIG5vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbi5oIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKICAgICBu
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1
NzEyZmQ0NDFiNTFjMjQ2ZmJmOTFlYWZhMThkOGEyOWM0MTFiOGRlLi41NzI5NDZjOWYzNzcyNjgx
YmFmZGYxMTViMTU5YmI2ZTczZmVjMmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMDUyLDYgKzEw
NTIsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCcsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCcsCiAgICAgICAgICAgICAn
bG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsJywKKyAgICAgICAgICAgICdu
b3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsJywKICAgICAgICAgICAgICdu
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCcsCiAgICAgICAgICAgICAncGFnZS9BYnN0cmFjdFZp
ZXcuaWRsJywKQEAgLTI3NzgsNiArMjc3OSw4IEBACiAgICAgICAgICAgICAnbWF0aG1sL01hdGhN
TE1hdGhFbGVtZW50LmgnLAogICAgICAgICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5j
cHAnLAogICAgICAgICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oJywKKyAgICAgICAg
ICAgICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwJywKKyAgICAgICAg
ICAgICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCcsCiAgICAgICAgICAg
ICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwJywKICAgICAgICAgICAgICdub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbkNlbnRlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCAzNGM1YjAwZDVlYTFlZDFmOTUyOTYzMjUzNThmNWI5NDJkOTMyYWIz
Li4zMWUwMGI1ZDk2NmYzZGQ3NzZjM2M4NzdjYTJkYjJiMjVkNzNiMjhmIDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTM1OTQsNiArNTM1OTQs
MTQgQEAKIAkJCU5hbWU9Im5vdGlmaWNhdGlvbnMiCiAJCQk+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0
aW9uc1xET01XaW5kb3dOb3RpZmljYXRpb25zLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uLmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0
aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTAzOGFiMDU0NWY0
MDAxY2MyZWM2ZjZiZjM0MzU4ODA4NmVjMDNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApAQCAtMCwwICsx
LDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgorCisjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgorI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworRE9NV2luZG93Tm90aWZpY2F0aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9u
cyhET01XaW5kb3cgKndpbmRvdykKKyAgICA6IERPTVdpbmRvd1Byb3BlcnR5KHdpbmRvdy0+ZnJh
bWUoKSkKKyAgICAsIG1fd2luZG93KHdpbmRvdykKK3sKK30KKworRE9NV2luZG93Tm90aWZpY2F0
aW9uczo6fkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKQoreworfQorCitET01XaW5kb3dOb3RpZmlj
YXRpb25zKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQor
eworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzdXBwbGVtZW50TmFtZSwg
KCJET01XaW5kb3dOb3RpZmljYXRpb25zIikpOworICAgIERPTVdpbmRvd05vdGlmaWNhdGlvbnMq
IHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxET01XaW5kb3dOb3RpZmljYXRpb25zKj4oU3VwcGxl
bWVudDxET01XaW5kb3c+Ojpmcm9tKHdpbmRvdywgc3VwcGxlbWVudE5hbWUpKTsKKyAgICBpZiAo
IXN1cHBsZW1lbnQpIHsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBET01XaW5kb3dOb3RpZmlj
YXRpb25zKHdpbmRvdyk7CisgICAgICAgIFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6cHJvdmlkZVRv
KHdpbmRvdywgc3VwcGxlbWVudE5hbWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQpKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93
Tm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqIHdpbmRvdykKK3sK
KyAgICByZXR1cm4gRE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZnJvbSh3aW5kb3cpLT5lbnN1cmVX
ZWJraXROb3RpZmljYXRpb25zKCk7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93
Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucygpCit7CisgICAgaWYgKG1f
bm90aWZpY2F0aW9uQ2VudGVyKQorICAgICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25DZW50ZXIu
Z2V0KCk7CisKKyAgICBpZiAoIW1fd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUo
KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX3dpbmRv
dy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3ZpZGVyID0gTm90aWZp
Y2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKKyAgICBpZiAocHJvdmlkZXIpCisg
ICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUo
bV93aW5kb3ctPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgcHJvdmlkZXIpOworICAgIHJldHVy
biBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsKK30KKwordm9pZCBET01XaW5kb3dOb3RpZmlj
YXRpb25zOjpkaXNjb25uZWN0RnJhbWUoKQoreworICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRl
cikgeworICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRlci0+ZGlzY29ubmVjdEZyYW1lKCk7Cisg
ICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gMDsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZDY0ZjVhY2E0ODhlYTkxZDY5ZTc3OTFjYjMwZDg4M2M2NzcwN2I1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBET01XaW5kb3dOb3RpZmljYXRpb25zX2gKKyNkZWZpbmUgRE9N
V2luZG93Tm90aWZpY2F0aW9uc19oCisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKworI2lu
Y2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
KyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERPTVdpbmRvdzsKK2NsYXNzIE5vdGlmaWNhdGlvbkNlbnRlcjsKK2NsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIERPTVdpbmRvd05vdGlmaWNhdGlvbnMgOiBwdWJsaWMg
U3VwcGxlbWVudDxET01XaW5kb3c+LCBwdWJsaWMgRE9NV2luZG93UHJvcGVydHkgeworcHVibGlj
OgorICAgIHZpcnR1YWwgfkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKTsKKworICAgIHN0YXRpYyBO
b3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMoRE9NV2luZG93Kik7CisgICAg
c3RhdGljIERPTVdpbmRvd05vdGlmaWNhdGlvbnMqIGZyb20oRE9NV2luZG93Kik7CisKK3ByaXZh
dGU6CisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsKKworICAgIE5vdGlm
aWNhdGlvbkNlbnRlciogZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucygpOworICAgIHZvaWQgZGlz
Y29ubmVjdEZyYW1lKCkgT1ZFUlJJREU7CisKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVy
PiBtX25vdGlmaWNhdGlvbkNlbnRlcjsKKyAgICBET01XaW5kb3cqIG1fd2luZG93OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMp
CisKKyNlbmRpZiAvLyBET01XaW5kb3dOb3RpZmljYXRpb25zX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUwNzYwN2QzMGQ5YjY4NzY4M2E2ODkzZDUyZjA3MzgwNzkyZWYxZGIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNh
dGlvbnMuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9k
dWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1OT1RJ
RklDQVRJT05TLAorICAgICAgICBTdXBwbGVtZW50YWw9RE9NV2luZG93CisgICAgXSBET01XaW5k
b3dOb3RpZmljYXRpb25zIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRB
dFJ1bnRpbWVdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOworICAgIH07
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAyZTQ3NjJmNWZmNjUzZjM4MjUw
ZjFjZjM5NzllOTY3OTc5MWRlNjdlLi42NDI4YTRhNWI0MTk2ZmRhMzRkNzY4NTc2MGRlODg0OGQ4
ZmRiZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03Miw4ICs3Miw2IEBACiAj
aW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIK
ICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25DZW50ZXIuaCIK
LSNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIK
QEAgLTQxOCw5ICs0MTYsNiBAQCBET01XaW5kb3c6On5ET01XaW5kb3coKQogICAgICAgICBBU1NF
UlQoIW1fc2Vzc2lvblN0b3JhZ2UpOwogICAgICAgICBBU1NFUlQoIW1fbG9jYWxTdG9yYWdlKTsK
ICAgICAgICAgQVNTRVJUKCFtX2FwcGxpY2F0aW9uQ2FjaGUpOwotI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQotICAgICAgICBBU1NFUlQoIW1fbm90aWZpY2F0aW9ucyk7Ci0jZW5kaWYKICNpZiBF
TkFCTEUoQkxPQikKICAgICAgICAgQVNTRVJUKCFtX2RvbVVSTCk7CiAjZW5kaWYKQEAgLTQ3OCwx
MiArNDczLDYgQEAgdm9pZCBET01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKCkKIHsKICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93RGlzY2FyZGVkKG1fZnJhbWUsIHRoaXMp
OwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgLy8gQ2xlYXJpbmcgTm90aWZpY2F0
aW9ucyByZXF1ZXN0cyBpbnZvbHZlcyBhY2Nlc3NpbmcgdGhlIGNsaWVudCBzbyBpdCBtdXN0IGJl
IGRvbmUKLSAgICAvLyBiZWZvcmUgdGhlIGZyYW1lIGlzIGRldGFjaGVkLgotICAgIHJlc2V0Tm90
aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICAgICBIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46
Oml0ZXJhdG9yIHN0b3AgPSBtX3Byb3BlcnRpZXMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PERP
TVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLmJlZ2luKCk7IGl0
ICE9IHN0b3A7ICsraXQpCiAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOwpAQCAtNTcx
LDExICs1NjAsNiBAQCB2b2lkIERPTVdpbmRvdzo6Y2xlYXJET01XaW5kb3dQcm9wZXJ0aWVzKCkK
ICAgICBtX3Nlc3Npb25TdG9yYWdlID0gMDsKICAgICBtX2xvY2FsU3RvcmFnZSA9IDA7CiAgICAg
bV9hcHBsaWNhdGlvbkNhY2hlID0gMDsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAv
LyBGSVhNRTogTm90aWZpY2F0aW9ucyBzaG91bGRuJ3QgaGF2ZSBkaWZmZXJlbnQgZGlzY29ubmVj
dGlvbiBsb2dpYyB0aGFuCi0gICAgLy8gdGhlIHJlc3Qgb2YgdGhlIERPTVdpbmRvd1Byb3BlcnRp
ZXMuCi0gICAgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQkxPQikK
ICAgICBtX2RvbVVSTCA9IDA7CiAjZW5kaWYKQEAgLTc4NCwzOCArNzY4LDYgQEAgU3RvcmFnZSog
RE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgcmV0
dXJuIG1fbG9jYWxTdG9yYWdlLmdldCgpOwogfQogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
Ci1Ob3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRvdzo6d2Via2l0Tm90aWZpY2F0aW9ucygpIGNv
bnN0Ci17Ci0gICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKLSAgICAgICAg
cmV0dXJuIDA7Ci0gICAgaWYgKG1fbm90aWZpY2F0aW9ucykKLSAgICAgICAgcmV0dXJuIG1fbm90
aWZpY2F0aW9ucy5nZXQoKTsKLQotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3Vt
ZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgCi0gICAg
UGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICBy
ZXR1cm4gMDsKLQotICAgIE5vdGlmaWNhdGlvbkNsaWVudCogcHJvdmlkZXIgPSBOb3RpZmljYXRp
b25Db250cm9sbGVyOjpjbGllbnRGcm9tKHBhZ2UpOwotICAgIGlmIChwcm92aWRlcikgCi0gICAg
ICAgIG1fbm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRlKGRvY3VtZW50
LCBwcm92aWRlcik7ICAgIAotICAgICAgCi0gICAgcmV0dXJuIG1fbm90aWZpY2F0aW9ucy5nZXQo
KTsKLX0KLQotdm9pZCBET01XaW5kb3c6OnJlc2V0Tm90aWZpY2F0aW9ucygpCi17Ci0gICAgaWYg
KCFtX25vdGlmaWNhdGlvbnMpCi0gICAgICAgIHJldHVybjsKLSAgICBtX25vdGlmaWNhdGlvbnMt
PmRpc2Nvbm5lY3RGcmFtZSgpOwotICAgIG1fbm90aWZpY2F0aW9ucyA9IDA7Ci19Ci0jZW5kaWYK
LQogdm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBtZXNzYWdlLCBNZXNzYWdlUG9ydCogcG9ydCwgY29uc3QgU3RyaW5nJiB0YXJnZXRP
cmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBNZXNz
YWdlUG9ydEFycmF5IHBvcnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggNjEzNjI0ZjM3
YzJhYTIxY2I2ZGVkMGRkZTk1OTVhMzVmYWExZWNmNy4uNzAxNGQ5NmJkMDcwOTc1OGUzNjEzZTY3
ZmZhN2IwNmIzZTg4NzFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC01Niw3ICs1Niw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKICAgICBj
bGFzcyBOYXZpZ2F0b3I7CiAgICAgY2xhc3MgTm9kZTsKLSAgICBjbGFzcyBOb3RpZmljYXRpb25D
ZW50ZXI7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBQZXJmb3JtYW5jZTsKICAgICBjbGFz
cyBQb3N0TWVzc2FnZVRpbWVyOwpAQCAtMzU2LDEzICszNTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIFN0b3JhZ2UqIHNlc3Npb25TdG9yYWdlKEV4Y2VwdGlvbkNvZGUmKSBjb25z
dDsKICAgICAgICAgU3RvcmFnZSogbG9jYWxTdG9yYWdlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsK
IAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICBOb3RpZmljYXRpb25DZW50ZXIq
IHdlYmtpdE5vdGlmaWNhdGlvbnMoKSBjb25zdDsKLSAgICAgICAgLy8gUmVuZGVycyB3ZWJraXRO
b3RpZmljYXRpb25zIG9iamVjdCBzYWZlbHkgaW5vcGVyYWJsZSwgZGlzY29ubmVjdHMKLSAgICAg
ICAgLy8gaWYgZnJvbSBlbWJlZGRlci1wcm92aWRlZCBOb3RpZmljYXRpb25DbGllbnQuCi0gICAg
ICAgIHZvaWQgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShRVU9U
QSkKICAgICAgICAgU3RvcmFnZUluZm8qIHdlYmtpdFN0b3JhZ2VJbmZvKCkgY29uc3Q7CiAjZW5k
aWYKQEAgLTQ1MCwxMCArNDQyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBtdXRh
YmxlIFJlZlB0cjxTdG9yYWdlPiBtX2xvY2FsU3RvcmFnZTsKICAgICAgICAgbXV0YWJsZSBSZWZQ
dHI8RE9NQXBwbGljYXRpb25DYWNoZT4gbV9hcHBsaWNhdGlvbkNhY2hlOwogCi0jaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpCi0gICAgICAgIG11dGFibGUgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRl
cj4gbV9ub3RpZmljYXRpb25zOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoV0VCX1RJTUlORykKICAg
ICAgICAgbXV0YWJsZSBSZWZQdHI8UGVyZm9ybWFuY2U+IG1fcGVyZm9ybWFuY2U7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCAxNDA4NmJmMjBlOWU0OTc2YWE4ODEyM2I4
NjBjMDdiNDU5M2E3OWFkLi4wZWZhN2JmMTI0ODkxMDhiYWE1Mzg3ZTIxNzE3ZWY2MzZjYmYxYzJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0xNzAsMTAgKzE3MCw2IEBAIG1vZHVs
ZSB3aW5kb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGlt
ZV0gU3RvcmFnZSBsb2NhbFN0b3JhZ2UKICAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKIAotI2lmIGRlZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMpICYmIEVOQUJMRV9O
T1RJRklDQVRJT05TCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50
aW1lXSBOb3RpZmljYXRpb25DZW50ZXIgd2Via2l0Tm90aWZpY2F0aW9uczsKLSNlbmRpZgotCiAj
aWYgZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKSAmJiBFTkFCTEVfT1JJRU5UQVRJ
T05fRVZFTlRTCiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGludGVyZmFjZSBvcmllbnRhdGlvbiBp
biBkZWdyZWVzLiBTb21lIGV4YW1wbGVzIGFyZToKICAgICAgICAgLy8gIDAgaXMgc3RyYWlnaHQg
dXA7IC05MCBpcyB3aGVuIHRoZSBkZXZpY2UgaXMgcm90YXRlZCA5MCBjbG9ja3dpc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCmluZGV4IGFkOWNhYjhlOWQxM2ExZjViYjc1ODMxN2JiYzc5NjIzY2JlNmFj
NDAuLmZiZDJkYjM5NjIzNzc5YjY5ZTQ5OGUzMmQ1NDc5M2IyNWVmN2M4NTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwCkBAIC02ODcsMTEgKzY4Nyw2IEBAIHZvaWQgRnJhbWU6OndpbGxEZXRhY2hQYWdl
KCkKICAgICBpZiAoRnJhbWUqIHBhcmVudCA9IHRyZWUoKS0+cGFyZW50KCkpCiAgICAgICAgIHBh
cmVudC0+bG9hZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7CiAKLSNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OUykKLSAgICBpZiAobV9kb21XaW5kb3cpCi0gICAgICAgIG1fZG9tV2luZG93LT5yZXNl
dE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotCiAgICAgSGFzaFNldDxGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7
CiAgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBp
dCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVnaW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKICAg
ICAgICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7CkBAIC03MzYsMTIgKzczMSw2IEBAIHZvaWQg
RnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoKQogICAgICAgICAgICAgIG1f
cGFnZS0+ZGVjcmVtZW50RnJhbWVDb3VudCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1f
ZG9tV2luZG93KSB7Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgICAgICAgICBtX2Rv
bVdpbmRvdy0+cmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKLSAgICAgICAgfQotCiAgICAg
ICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBt
X2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8RnJhbWVE
ZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIGl0ID0gbV9kZXN0cnVjdGlvbk9ic2VydmVy
cy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQogICAgICAgICAgICAgKCppdCktPndpbGxEZXRh
Y2hQYWdlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131845</attachid>
            <date>2012-03-14 07:54:54 -0700</date>
            <delta_ts>2012-03-14 08:39:44 -0700</delta_ts>
            <desc>trying to see mac build</desc>
            <filename>bug-79636-20120314235452.patch</filename>
            <type>text/plain</type>
            <size>22748</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg1ZGJiZjExNWZhNzA1
OGUyNjc3N2VkMzZhMDJhZWI5ZTViY2EyYS4uZGFjYzk2MTM5YjM0NmFjZmUyNzc3MjBhOTJkMWFk
MTE1ODk2MzIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBGb3IgV2ViS2l0
IG1vZHVsYXJpemF0aW9uLCB0aGlzIHBhdGNoIG1vdmVzIE5vdGlmaWNhdGlvbnMtcmVsYXRlZCBB
UElzCisgICAgICAgIGZyb20gRE9NV2luZG93LmlkbCB0byBET01XaW5kb3dOb3RpZmljYXRpb25z
LmlkbC4KKworICAgICAgICBUZXN0czogZmFzdC9ub3RpZmljYXRpb25zLyogKE5vIGNoYW5nZSBp
biB0ZXN0IHJlc3VsdHMpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy57aCxjcHAsaWRsfS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOiBEaXR0by4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6IERpdHRvLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERp
dHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IEFkZGVkIG1hbmdsZWQgc2lnbmF0dXJlcyBvZiB3ZWJraXROb3RpZmljYXRpb25zKCkuCisKKyAg
ICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0
aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dOb3RpZmljYXRpb25zOjp+RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJh
bWUpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93Tm90aWZpY2F0aW9u
cyk6CisgICAgICAgICogbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDog
QWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IFJlbW92ZWQgRU5BQkxFKE5P
VElGSUNBVElPTlMpLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6d2lsbERldGFjaFBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpjbGVhcik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuaWRsOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6d2lsbERldGFjaFBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQpOgorCiAy
MDEyLTAzLTEzICBMdWtlIE1hY3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgTW92ZSBvcGFjaXR5IGNsYW1waW5nIGludG8gUmVuZGVyU3R5bGUgc2V0dGVyLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmOGQ1ZGI2Mjg3ZGQ3ZTI4NDA4MTY2NDkzMzM2YmZhYWYy
YzhmYjc1Li4wYjU4ZTE1ZjQzZjY1Yzg3ODRiNjg4YzI4MDA4ZjU5Y2M1OTRjNzU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTYyMiwxMiArMTYyMiwxNCBAQCBFTkRJRiAoKQogCiBJRiAoRU5B
QkxFX05PVElGSUNBVElPTlMpCiAgICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAg
ICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAKICAgICAgICAgbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCiAgICAgICAgIG5vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uY3BwCiAgICAgKQogCiAgICAgTElTVChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMKKyAg
ICAgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbAogICAgICAgICBu
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25DZW50ZXIuaWRsCiAgICAgKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggMTgyYmVhNDAxNWU3NDMyMDRjYzk4MmUwZWMwMTk1ZWE1MWRlNjBlOS4uMzhlYzZiMzJlMTFl
NGU2MTExNzhhNzQ4MTEzNTcwMWQxM2QzYjFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC0zNTYsNiArMzU2LDcgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkv
aW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9T
Y3JpcHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvbG9hZGVyL2FwcGNhY2hlL0RP
TUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL25vdGlmaWNhdGlvbnMvRE9N
V2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2VudGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0Fic3RyYWN0Vmlldy5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IGYyNDczOWVhNzFmOTdhZmQ5OWY5MzUwYWZk
OWU2MTI2ZDEwYTE5OTIuLjg0MGJmY2ZlNzlmNzhkZWExNjRkYTVhYzY0NGNiOGZkOTQ3MGM5ZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTM3NSw2ICszNzUsNyBAQCBJRExfQklO
RElOR1MgKz0gXAogICAgICQkUFdEL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCBcCiAgICAg
JCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBcCiAgICAgJCRQV0QvbG9hZGVy
L2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKKyAgICAkJFBXRC9ub3RpZmljYXRp
b25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKICAgICAkJFBXRC9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbi5pZGwgXAogICAgICQkUFdEL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
Q2VudGVyLmlkbCBcCiAgICAgJCRQV0QvcGFnZS9CYXJJbmZvLmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQppbmRleCA1NDcyZTU5OTUwNzVjZDUwY2YwZTJmZTBkZjFmZGM0NDczZWVi
M2FjLi5iZTllYTVkMmRiYzdiMTZjYjcwNzc1NjY1MTllMzNlYjI5ZGQ5OWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4MTgsNiArMjgxOCw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmggXAogCVNv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBcCiAJU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGMwNDI1YTVmZTI2
OWY1NzViMzE4MGY0YWJlNDYzMzZmYWU4ZjU5ODEuLmQ1YmZkMDU2ZGQ4MmE5MjAwYWE3MmMyZmJi
ZjA0YWVmODFhYWQ0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTc3LDYgKzk3Nyw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9UZXh0
UmVzb3VyY2VEZWNvZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwIFwK
KyAgICBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIFwKICAgICBub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2VudGVyLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVy
LmNwcCBcCkBAIC0yMDcxLDYgKzIwNzIsNyBAQCBIRUFERVJTICs9IFwKICAgICBtYXRobWwvTWF0
aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIFwKICAgICBtYXRobWwvTWF0aE1MTWF0aEVsZW1l
bnQuaCBcCiAgICAgbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmggXAorICAgIG5vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbi5oIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKICAgICBu
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1
NzEyZmQ0NDFiNTFjMjQ2ZmJmOTFlYWZhMThkOGEyOWM0MTFiOGRlLi41NzI5NDZjOWYzNzcyNjgx
YmFmZGYxMTViMTU5YmI2ZTczZmVjMmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMDUyLDYgKzEw
NTIsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCcsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCcsCiAgICAgICAgICAgICAn
bG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsJywKKyAgICAgICAgICAgICdu
b3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsJywKICAgICAgICAgICAgICdu
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCcsCiAgICAgICAgICAgICAncGFnZS9BYnN0cmFjdFZp
ZXcuaWRsJywKQEAgLTI3NzgsNiArMjc3OSw4IEBACiAgICAgICAgICAgICAnbWF0aG1sL01hdGhN
TE1hdGhFbGVtZW50LmgnLAogICAgICAgICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5j
cHAnLAogICAgICAgICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oJywKKyAgICAgICAg
ICAgICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwJywKKyAgICAgICAg
ICAgICdub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCcsCiAgICAgICAgICAg
ICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwJywKICAgICAgICAgICAgICdub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbkNlbnRlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCAzNGM1YjAwZDVlYTFlZDFmOTUyOTYzMjUzNThmNWI5NDJkOTMyYWIz
Li4zMWUwMGI1ZDk2NmYzZGQ3NzZjM2M4NzdjYTJkYjJiMjVkNzNiMjhmIDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTM1OTQsNiArNTM1OTQs
MTQgQEAKIAkJCU5hbWU9Im5vdGlmaWNhdGlvbnMiCiAJCQk+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0
aW9uc1xET01XaW5kb3dOb3RpZmljYXRpb25zLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uLmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0
aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTAzOGFiMDU0NWY0
MDAxY2MyZWM2ZjZiZjM0MzU4ODA4NmVjMDNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApAQCAtMCwwICsx
LDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgorCisjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgorI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworRE9NV2luZG93Tm90aWZpY2F0aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9u
cyhET01XaW5kb3cgKndpbmRvdykKKyAgICA6IERPTVdpbmRvd1Byb3BlcnR5KHdpbmRvdy0+ZnJh
bWUoKSkKKyAgICAsIG1fd2luZG93KHdpbmRvdykKK3sKK30KKworRE9NV2luZG93Tm90aWZpY2F0
aW9uczo6fkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKQoreworfQorCitET01XaW5kb3dOb3RpZmlj
YXRpb25zKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQor
eworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzdXBwbGVtZW50TmFtZSwg
KCJET01XaW5kb3dOb3RpZmljYXRpb25zIikpOworICAgIERPTVdpbmRvd05vdGlmaWNhdGlvbnMq
IHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxET01XaW5kb3dOb3RpZmljYXRpb25zKj4oU3VwcGxl
bWVudDxET01XaW5kb3c+Ojpmcm9tKHdpbmRvdywgc3VwcGxlbWVudE5hbWUpKTsKKyAgICBpZiAo
IXN1cHBsZW1lbnQpIHsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBET01XaW5kb3dOb3RpZmlj
YXRpb25zKHdpbmRvdyk7CisgICAgICAgIFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6cHJvdmlkZVRv
KHdpbmRvdywgc3VwcGxlbWVudE5hbWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQpKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93
Tm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqIHdpbmRvdykKK3sK
KyAgICByZXR1cm4gRE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZnJvbSh3aW5kb3cpLT5lbnN1cmVX
ZWJraXROb3RpZmljYXRpb25zKCk7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93
Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucygpCit7CisgICAgaWYgKG1f
bm90aWZpY2F0aW9uQ2VudGVyKQorICAgICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25DZW50ZXIu
Z2V0KCk7CisKKyAgICBpZiAoIW1fd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUo
KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX3dpbmRv
dy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3ZpZGVyID0gTm90aWZp
Y2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKKyAgICBpZiAocHJvdmlkZXIpCisg
ICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUo
bV93aW5kb3ctPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgcHJvdmlkZXIpOworICAgIHJldHVy
biBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsKK30KKwordm9pZCBET01XaW5kb3dOb3RpZmlj
YXRpb25zOjpkaXNjb25uZWN0RnJhbWUoKQoreworICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRl
cikgeworICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRlci0+ZGlzY29ubmVjdEZyYW1lKCk7Cisg
ICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gMDsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZDY0ZjVhY2E0ODhlYTkxZDY5ZTc3OTFjYjMwZDg4M2M2NzcwN2I1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBET01XaW5kb3dOb3RpZmljYXRpb25zX2gKKyNkZWZpbmUgRE9N
V2luZG93Tm90aWZpY2F0aW9uc19oCisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKworI2lu
Y2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
KyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERPTVdpbmRvdzsKK2NsYXNzIE5vdGlmaWNhdGlvbkNlbnRlcjsKK2NsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIERPTVdpbmRvd05vdGlmaWNhdGlvbnMgOiBwdWJsaWMg
U3VwcGxlbWVudDxET01XaW5kb3c+LCBwdWJsaWMgRE9NV2luZG93UHJvcGVydHkgeworcHVibGlj
OgorICAgIHZpcnR1YWwgfkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKTsKKworICAgIHN0YXRpYyBO
b3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMoRE9NV2luZG93Kik7CisgICAg
c3RhdGljIERPTVdpbmRvd05vdGlmaWNhdGlvbnMqIGZyb20oRE9NV2luZG93Kik7CisKK3ByaXZh
dGU6CisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsKKworICAgIE5vdGlm
aWNhdGlvbkNlbnRlciogZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucygpOworICAgIHZvaWQgZGlz
Y29ubmVjdEZyYW1lKCkgT1ZFUlJJREU7CisKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVy
PiBtX25vdGlmaWNhdGlvbkNlbnRlcjsKKyAgICBET01XaW5kb3cqIG1fd2luZG93OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMp
CisKKyNlbmRpZiAvLyBET01XaW5kb3dOb3RpZmljYXRpb25zX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUwNzYwN2QzMGQ5YjY4NzY4M2E2ODkzZDUyZjA3MzgwNzkyZWYxZGIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNh
dGlvbnMuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9k
dWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1OT1RJ
RklDQVRJT05TLAorICAgICAgICBTdXBwbGVtZW50YWw9RE9NV2luZG93CisgICAgXSBET01XaW5k
b3dOb3RpZmljYXRpb25zIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRB
dFJ1bnRpbWVdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOworICAgIH07
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAyZTQ3NjJmNWZmNjUzZjM4MjUw
ZjFjZjM5NzllOTY3OTc5MWRlNjdlLi4wOTdhNWU1ODAyYmJkZmNkNjlmMjRhYWRkYTg5YWUyY2E2
OTE3MGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03Miw4ICs3Miw2IEBACiAj
aW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIK
ICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25DZW50ZXIuaCIK
LSNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIK
QEAgLTQxOCw5ICs0MTYsNiBAQCBET01XaW5kb3c6On5ET01XaW5kb3coKQogICAgICAgICBBU1NF
UlQoIW1fc2Vzc2lvblN0b3JhZ2UpOwogICAgICAgICBBU1NFUlQoIW1fbG9jYWxTdG9yYWdlKTsK
ICAgICAgICAgQVNTRVJUKCFtX2FwcGxpY2F0aW9uQ2FjaGUpOwotI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQotICAgICAgICBBU1NFUlQoIW1fbm90aWZpY2F0aW9ucyk7Ci0jZW5kaWYKICNpZiBF
TkFCTEUoQkxPQikKICAgICAgICAgQVNTRVJUKCFtX2RvbVVSTCk7CiAjZW5kaWYKQEAgLTQ3OCwx
MiArNDczLDYgQEAgdm9pZCBET01XaW5kb3c6OndpbGxEZXRhY2hQYWdlKCkKIHsKICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93RGlzY2FyZGVkKG1fZnJhbWUsIHRoaXMp
OwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgLy8gQ2xlYXJpbmcgTm90aWZpY2F0
aW9ucyByZXF1ZXN0cyBpbnZvbHZlcyBhY2Nlc3NpbmcgdGhlIGNsaWVudCBzbyBpdCBtdXN0IGJl
IGRvbmUKLSAgICAvLyBiZWZvcmUgdGhlIGZyYW1lIGlzIGRldGFjaGVkLgotICAgIHJlc2V0Tm90
aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICAgICBIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46
Oml0ZXJhdG9yIHN0b3AgPSBtX3Byb3BlcnRpZXMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PERP
TVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLmJlZ2luKCk7IGl0
ICE9IHN0b3A7ICsraXQpCiAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOwpAQCAtNTI3
LDE1ICs1MTYsNiBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzY29ubmVjdERPTVdpbmRvd1Byb3BlcnRp
ZXMoKQogICAgIEhhc2hTZXQ8RE9NV2luZG93UHJvcGVydHkqPjo6aXRlcmF0b3Igc3RvcCA9IG1f
cHJvcGVydGllcy5lbmQoKTsKICAgICBmb3IgKEhhc2hTZXQ8RE9NV2luZG93UHJvcGVydHkqPjo6
aXRlcmF0b3IgaXQgPSBtX3Byb3BlcnRpZXMuYmVnaW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKICAg
ICAgICAgKCppdCktPmRpc2Nvbm5lY3RGcmFtZSgpOwotCi0jaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCi0gICAgLy8gRklYTUU6IE5vdGlmaWNhdGlvbnMgc2hvdWxkbid0IGhhdmUgZGlmZmVyZW50
IGRpc2Nvbm5lY3Rpb24gbG9naWMgdGhhbgotICAgIC8vIHRoZSByZXN0IG9mIHRoZSBET01XaW5k
b3dQcm9wZXJ0aWVzLgotICAgIC8vIFRoZXJlIGlzIGN1cnJlbnRseSBubyB3YXkgdG8gcmVjb25u
ZWN0IHRoZW0gaW4gcmVzdW1lRnJvbVBhZ2VDYWNoZSgpIHNvCi0gICAgLy8gdGhleSB3aWxsIGJl
IGJyb2tlbiBhZnRlciByZXR1cm5pbmcgdG8gYSBjYWNoZWQgcGFnZS4KLSAgICAvLyBUaGlzIHNo
b3VsZCBiZSBmaXhlZCBhcyBwYXJ0IG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03OTYzNgotICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCiB9CiAKIHZv
aWQgRE9NV2luZG93OjpyZWNvbm5lY3RET01XaW5kb3dQcm9wZXJ0aWVzKCkKQEAgLTU3MSwxMSAr
NTUxLDYgQEAgdm9pZCBET01XaW5kb3c6OmNsZWFyRE9NV2luZG93UHJvcGVydGllcygpCiAgICAg
bV9zZXNzaW9uU3RvcmFnZSA9IDA7CiAgICAgbV9sb2NhbFN0b3JhZ2UgPSAwOwogICAgIG1fYXBw
bGljYXRpb25DYWNoZSA9IDA7Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgLy8gRklY
TUU6IE5vdGlmaWNhdGlvbnMgc2hvdWxkbid0IGhhdmUgZGlmZmVyZW50IGRpc2Nvbm5lY3Rpb24g
bG9naWMgdGhhbgotICAgIC8vIHRoZSByZXN0IG9mIHRoZSBET01XaW5kb3dQcm9wZXJ0aWVzLgot
ICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCiAjaWYgRU5BQkxFKEJMT0IpCiAgICAg
bV9kb21VUkwgPSAwOwogI2VuZGlmCkBAIC03ODQsMzggKzc1OSw2IEBAIFN0b3JhZ2UqIERPTVdp
bmRvdzo6bG9jYWxTdG9yYWdlKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgIHJldHVybiBt
X2xvY2FsU3RvcmFnZS5nZXQoKTsKIH0KIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotTm90
aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3c6OndlYmtpdE5vdGlmaWNhdGlvbnMoKSBjb25zdAot
ewotICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCi0gICAgICAgIHJldHVy
biAwOwotICAgIGlmIChtX25vdGlmaWNhdGlvbnMpCi0gICAgICAgIHJldHVybiBtX25vdGlmaWNh
dGlvbnMuZ2V0KCk7Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgp
OwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIAotICAgIFBhZ2Uq
IHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJu
IDA7Ci0KLSAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3ZpZGVyID0gTm90aWZpY2F0aW9uQ29u
dHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKLSAgICBpZiAocHJvdmlkZXIpIAotICAgICAgICBt
X25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShkb2N1bWVudCwgcHJv
dmlkZXIpOyAgICAKLSAgICAgIAotICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMuZ2V0KCk7Ci19
Ci0KLXZvaWQgRE9NV2luZG93OjpyZXNldE5vdGlmaWNhdGlvbnMoKQotewotICAgIGlmICghbV9u
b3RpZmljYXRpb25zKQotICAgICAgICByZXR1cm47Ci0gICAgbV9ub3RpZmljYXRpb25zLT5kaXNj
b25uZWN0RnJhbWUoKTsKLSAgICBtX25vdGlmaWNhdGlvbnMgPSAwOwotfQotI2VuZGlmCi0KIHZv
aWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIGNvbnN0IFN0cmluZyYgdGFyZ2V0T3JpZ2lu
LCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTWVzc2FnZVBv
cnRBcnJheSBwb3J0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDYxMzYyNGYzN2MyYWEy
MWNiNmRlZDBkZGU5NTk1YTM1ZmFhMWVjZjcuLjcwMTRkOTZiZDA3MDk3NThlMzYxM2U2N2ZmYTdi
MDZiM2U4ODcxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtNTYsNyArNTYsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiAgICAgY2xhc3Mg
TmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVy
OwogICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAgY2xhc3MgUG9z
dE1lc3NhZ2VUaW1lcjsKQEAgLTM1NiwxMyArMzU1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBTdG9yYWdlKiBzZXNzaW9uU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAg
ICAgICAgIFN0b3JhZ2UqIGxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKLSNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgTm90aWZpY2F0aW9uQ2VudGVyKiB3ZWJr
aXROb3RpZmljYXRpb25zKCkgY29uc3Q7Ci0gICAgICAgIC8vIFJlbmRlcnMgd2Via2l0Tm90aWZp
Y2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRpc2Nvbm5lY3RzCi0gICAgICAgIC8v
IGlmIGZyb20gZW1iZWRkZXItcHJvdmlkZWQgTm90aWZpY2F0aW9uQ2xpZW50LgotICAgICAgICB2
b2lkIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoUVVPVEEpCiAg
ICAgICAgIFN0b3JhZ2VJbmZvKiB3ZWJraXRTdG9yYWdlSW5mbygpIGNvbnN0OwogI2VuZGlmCkBA
IC00NTAsMTAgKzQ0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBS
ZWZQdHI8U3RvcmFnZT4gbV9sb2NhbFN0b3JhZ2U7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPERP
TUFwcGxpY2F0aW9uQ2FjaGU+IG1fYXBwbGljYXRpb25DYWNoZTsKIAotI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQotICAgICAgICBtdXRhYmxlIFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG1f
bm90aWZpY2F0aW9uczsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgICAg
IG11dGFibGUgUmVmUHRyPFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMTQwODZiZjIwZTllNDk3NmFhODgxMjNiODYwYzA3
YjQ1OTNhNzlhZC4uMGVmYTdiZjEyNDg5MTA4YmFhNTM4N2UyMTcxN2VmNjM2Y2JmMWMyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMTcwLDEwICsxNzAsNiBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIFN0
b3JhZ2UgbG9jYWxTdG9yYWdlCiAgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAmJiBFTkFCTEVfTk9USUZJ
Q0FUSU9OUwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0g
Tm90aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7Ci0jZW5kaWYKLQogI2lmIGRl
ZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5BQkxFX09SSUVOVEFUSU9OX0VW
RU5UUwogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24gaW4gZGVn
cmVlcy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFpZ2h0IHVwOyAt
OTAgaXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcAppbmRleCBhZDljYWI4ZTlkMTNhMWY1YmI3NTgzMTdiYmM3OTYyM2NiZTZhYzQwLi5m
YmQyZGIzOTYyMzc3OWI2OWU0OThlMzJkNTQ3OTNiMjVlZjdjODUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcApAQCAtNjg3LDExICs2ODcsNiBAQCB2b2lkIEZyYW1lOjp3aWxsRGV0YWNoUGFnZSgpCiAg
ICAgaWYgKEZyYW1lKiBwYXJlbnQgPSB0cmVlKCktPnBhcmVudCgpKQogICAgICAgICBwYXJlbnQt
PmxvYWRlcigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCi0gICAgaWYgKG1fZG9tV2luZG93KQotICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXROb3Rp
ZmljYXRpb25zKCk7Ci0jZW5kaWYKLQogICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2Vy
dmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVuZCgpOwogICAg
IGZvciAoSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBt
X2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCiAgICAgICAg
ICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOwpAQCAtNzM2LDEyICs3MzEsNiBAQCB2b2lkIEZyYW1l
Ojp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KCkKICAgICAgICAgICAgICBtX3BhZ2Ut
PmRlY3JlbWVudEZyYW1lQ291bnQoKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX2RvbVdp
bmRvdykgewotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICAgICAgbV9kb21XaW5k
b3ctPnJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0gICAgICAgIH0KLQogICAgICAgICBI
YXNoU2V0PEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBzdG9wID0gbV9kZXN0
cnVjdGlvbk9ic2VydmVycy5lbmQoKTsKICAgICAgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1
Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVn
aW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKICAgICAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFn
ZSgpOwo=
</data>
<flag name="commit-queue"
          id="135304"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132041</attachid>
            <date>2012-03-15 07:18:51 -0700</date>
            <delta_ts>2012-03-15 07:18:51 -0700</delta_ts>
            <desc>added xcode file</desc>
            <filename>bug-79636-20120315231849.patch</filename>
            <type>text/plain</type>
            <size>28444</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNjZTM5Y2Q0YjllZGU2
NDE1ZGFmZTY5NjkyNzA3ZjQ1MmFmMjQ4Ni4uOWFlZWQ5MjVkOWNiNTJmMzcyYzc1NTQ0MmY5ZWVi
YzY1N2QyZjExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBGb3IgV2ViS2l0
IG1vZHVsYXJpemF0aW9uLCB0aGlzIHBhdGNoIG1vdmVzIE5vdGlmaWNhdGlvbnMtcmVsYXRlZCBB
UElzCisgICAgICAgIGZyb20gRE9NV2luZG93LmlkbCB0byBET01XaW5kb3dOb3RpZmljYXRpb25z
LmlkbC4KKworICAgICAgICBUZXN0czogZmFzdC9ub3RpZmljYXRpb25zLyogKE5vIGNoYW5nZSBp
biB0ZXN0IHJlc3VsdHMpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy57aCxjcHAsaWRsfS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOiBEaXR0by4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6IERpdHRvLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERp
dHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IEFkZGVkIG1hbmdsZWQgc2lnbmF0dXJlcyBvZiB3ZWJraXROb3RpZmljYXRpb25zKCkuCisKKyAg
ICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0
aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dOb3RpZmljYXRpb25zOjp+RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJh
bWUpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93Tm90aWZpY2F0aW9u
cyk6CisgICAgICAgICogbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDog
QWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IFJlbW92ZWQgRU5BQkxFKE5P
VElGSUNBVElPTlMpLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6d2lsbERldGFjaFBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpjbGVhcik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuaWRsOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6d2lsbERldGFjaFBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQpOgorCiAy
MDEyLTAzLTE0ICBJZ29yIE9saXZlaXJhICA8aWdvci5vQHNpc2Euc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgU3BsaXQgdGhlIGV4dHJhIGxvZ2ljIG91dCBvZiBSZW5kZXJCbG9jazo6dXBkYXRlRmly
c3RMZXR0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZGE0YzljOTg4NzgxNTc2YjNlY2IzOTk4
NDRiN2U0MDMzYWQ4ZmIzNS4uZmRmOGVkOTcyYzA5ZWM4ZTZjNTMzNmU4ZmQyMjQ2YjQ1ZDJjN2M3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2MjIsMTIgKzE2MjIsMTQgQEAgRU5ESUYgKCkK
IAogSUYgKEVOQUJMRV9OT1RJRklDQVRJT05TKQogICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUworICAgICAgICBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwCiAg
ICAgICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAogICAgICAgICBub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwCiAgICAgICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmNwcAogICAgICkKIAogICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfSURM
X0ZJTEVTCisgICAgICAgIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwK
ICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsCiAgICAgICAgIG5vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbAogICAgICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IGM0MGZmYmYyZGM5ZGY2ZTc3NzM2Njg3OTZkMGM3ZWI0Yjg5MGNjODcuLmFj
MWM3MThlM2I0NzFmYTRhMTQzZjUxNDY2NmFmODhiYjY3NmU1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtMzU2LDYgKzM1Niw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAk
KFdlYkNvcmUpL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9p
bnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2xvYWRlci9h
cHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbCBcCisgICAgJChXZWJDb3JlKS9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9BYnN0cmFjdFZp
ZXcuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCBkNTA0M2Q4MzZlOWI4OWRi
OGJmYjUzZjA5YzExMmUxOTEyYWZkZDVlLi5iNzcwNWRiNGYwMjk5ODc3MWI1ZmI4Y2FlYTY2YTUz
ZjFmNWZlM2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC0zNzUsNiArMzc1LDcg
QEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAkJFBXRC9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5p
ZGwgXAogICAgICQkUFdEL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQk
UFdEL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbCBcCisgICAgJCRQV0Qv
bm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCBcCiAgICAgJCRQV0Qvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKICAgICAkJFBXRC9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNlbnRlci5pZGwgXAogICAgICQkUFdEL3BhZ2UvQmFySW5mby5pZGwgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOWI1OGM5NTJhYmU3MDk1NjY4NTMwN2EyNGM4
OGFlN2U1NGEyYjU2My4uZThhOTdhZmEwYzcyNjA3YTI5OTc4MjQxZDBlZTUzMjRlMDZjZThhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yODIzLDYgKzI4MjMsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVu
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBcCisJU291cmNlL1dlYkNv
cmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCBcCisJU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmggXAogCVNvdXJjZS9X
ZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaCBcCiAJU291cmNlL1dlYkNv
cmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBl
Y2ZkNjQ3NDY1MTY0OTM2N2E4MzQwMDcwMzEwZGE2NjAxMWIwZTYwLi45ZjM1OTUxNmZhM2ZiZWJl
NTlmMzg0ZTczMTVmN2JhZjEzZGE0OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk3OSw2ICs5NzksNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIFwKICAgICBs
b2FkZXIvVGV4dFJlc291cmNlRGVjb2Rlci5jcHAgXAogICAgIGxvYWRlci9UaHJlYWRhYmxlTG9h
ZGVyLmNwcCBcCisgICAgbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCBc
CiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIFwKICAgICBub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
Q29udHJvbGxlci5jcHAgXApAQCAtMjA3Myw2ICsyMDc0LDcgQEAgSEVBREVSUyArPSBcCiAgICAg
bWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaCBcCiAgICAgbWF0aG1sL01hdGhN
TE1hdGhFbGVtZW50LmggXAogICAgIG1hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIFwKKyAgICBu
b3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBcCiAgICAgbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb24uaCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
aCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggNzVmMGM4ZjA1YmNjZjRlYjg5MmFiYjgwYmYyN2RiNjkyZDIwZjFjZS4uYzBkZjdi
MzFiMTc5NzRhOTFlNzIyODQ0NDJhNGFmOGMxZjFjNjlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
MTA1NSw2ICsxMDU1LDcgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5p
ZGwnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwnLAogICAg
ICAgICAgICAgJ2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbCcsCisgICAg
ICAgICAgICAnbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCcsCiAgICAg
ICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsJywKICAgICAgICAgICAgICdu
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5pZGwnLAogICAgICAgICAgICAgJ3BhZ2Uv
QWJzdHJhY3RWaWV3LmlkbCcsCkBAIC0yNzg1LDYgKzI3ODYsOCBAQAogICAgICAgICAgICAgJ21h
dGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oJywKICAgICAgICAgICAgICdtYXRobWwvTWF0aE1MVGV4
dEVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdtYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCcs
CisgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCcs
CisgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgnLAog
ICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCcsCiAgICAgICAgICAg
ICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNzBlZTE1YTllNDgxZTRlZjBhZmJiY2U5YmEzNjIw
MjdjZTcwYzA0Yi4uZWY3MGZiMjBiNzg3OTA5Zjg3MTIwNTFmOWI2MGIyOTU4NmU3ZjZhYiAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTUzNTk4
LDYgKzUzNTk4LDE0IEBACiAJCQlOYW1lPSJub3RpZmljYXRpb25zIgogCQkJPgogCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XG5vdGlmaWNhdGlvbnNcRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXE5vdGlmaWNh
dGlvbi5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ4ZTU3ZGJkMDcxOGI0Yjk0NjAyMmZj
Y2FjZWEyNjlmMzg5Yjc1MzMuLmNhYWQwY2I0MjMwMjgxZGU1ZTJkZTgyYmI2MWE2ZDc1NTk1YmVm
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTQxMTMsNiArNDExMyw5IEBACiAJCUE4NzQ4QkUwMTJDQkYyREMwMDFGQkE0MSAv
KiBIYXNoVG9vbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4NzQ4QkRGMTJDQkYyREMwMDFGQkE0MSAvKiBIYXNoVG9vbHMuaCAqLzsgfTsKIAkJQTg4
M0RGMjcwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4M0RGMjUwRjNEMDQ1RDAwRjE5
QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uY3BwICovOyB9OwogCQlBODgzREYyODBGM0QwNDVEMDBG
MTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTg4M0RGMjYwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxl
Y3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlBODg2Q0Y3NjE1MTIzMDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODg2Q0Y3MzE1
MTIzMDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgKi87IH07CisJCUE4
ODZDRjc3MTUxMjMwMTcwMEQyNzlGNCAvKiBET01XaW5kb3dOb3RpZmljYXRpb25zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODg2Q0Y3NDE1MTIzMDE3
MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oICovOyB9OworCQlBODg2Q0Y3ODE1
MTIzMDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4ODZDRjc1MTUxMjMwMTcwMEQy
NzlGNCAvKiBET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCAqLzsgfTsKIAkJQTg4QUQ1MkYwOTUy
NEI5MjAwMUREMTk2IC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg1RDdBMkYwODc5RUJBOTAwNkE5MTcyIC8q
IFF1YXJ0ekNvcmUuZnJhbWV3b3JrICovOyB9OwogCQlBODhERDQ4NzBCNDYyOUEzMDBDMDI5OTAg
LyogUGF0aFRyYXZlcnNhbFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBODhERDQ4NjBCNDYyOUEzMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0
YXRlLmggKi87IH07CiAJCUE4OERENDg5MEI0NjI5QjAwMEMwMjk5MCAvKiBQYXRoVHJhdmVyc2Fs
U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTg4REQ0ODgwQjQ2MjlCMDAwQzAyOTkwIC8qIFBhdGhUcmF2ZXJzYWxTdGF0ZS5jcHAgKi87IH07
CkBAIC0xMDk2OSw2ICsxMDk3Miw5IEBACiAJCUE4NzQ4QkRGMTJDQkYyREMwMDFGQkE0MSAvKiBI
YXNoVG9vbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFzaFRvb2xzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4ODNERjI1MEYzRDA0NUQwMEYxOUJGNiAv
KiBWaXNpYmxlU2VsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFZpc2libGVTZWxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODgzREYyNjBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpYmxlU2VsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE4ODZDRjczMTUxMjMwMTcwMEQyNzlGNCAvKiBET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERPTVdp
bmRvd05vdGlmaWNhdGlvbnMuY3BwOyBwYXRoID0gbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTg4NkNGNzQxNTEy
MzAxNzAwRDI3OUY0IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oOyBwYXRoID0gbm90aWZp
Y2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUE4ODZDRjc1MTUxMjMwMTcwMEQyNzlGNCAvKiBET01XaW5kb3dOb3RpZmljYXRpb25z
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDsg
cGF0aCA9IG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4OERENDg2MEI0NjI5QTMwMEMwMjk5MCAvKiBQYXRoVHJh
dmVyc2FsU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF0aFRyYXZl
cnNhbFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4OERENDg4MEI0NjI5
QjAwMEMwMjk5MCAvKiBQYXRoVHJhdmVyc2FsU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGF0aFRyYXZlcnNhbFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTg5OTQzMjYwQjQyMzM4NzAwRDdDODAyIC8qIEJpdG1hcEltYWdlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJpdG1hcEltYWdlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDM5MSw2ICsxNDM5Nyw5IEBACiAJCTMzM0Y3MDNEMEZC
NDlDMTYwMDhFMTJBNiAvKiBub3RpZmljYXRpb25zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBODg2Q0Y3MzE1MTIzMDE3MDBEMjc5RjQgLyogRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5jcHAgKi8sCisJCQkJQTg4NkNGNzQxNTEyMzAxNzAwRDI3OUY0IC8q
IERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCAqLywKKwkJCQlBODg2Q0Y3NTE1MTIzMDE3MDBEMjc5
RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgKi8sCiAJCQkJMzM1MDNDQzYxMDE3QTFC
MTAwM0I0N0UxIC8qIE5vdGlmaWNhdGlvbi5jcHAgKi8sCiAJCQkJMzMzRjcwNEYwRkI0OUNBMjAw
OEUxMkE2IC8qIE5vdGlmaWNhdGlvbi5oICovLAogCQkJCTMzM0Y3MDRFMEZCNDlDQTIwMDhFMTJB
NiAvKiBOb3RpZmljYXRpb24uaWRsICovLApAQCAtMjQ1NzYsNiArMjQ1ODUsNyBAQAogCQkJCUUx
Q0RFOTIyMTUwMTkxNjkwMDg2MkNDNSAvKiBBc3luY0ZpbGVTdHJlYW0uaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ1MENFQkYxMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNUI0QzI0RDE1MDkyMzZDMDBBNkVGMzcgLyogV2ViQ29yZU5TVVJM
RXh0cmFzLmggaW4gSGVhZGVycyAqLywKKwkJCQlBODg2Q0Y3NzE1MTIzMDE3MDBEMjc5RjQgLyog
RE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNDcyOCw2ICsyNDcz
OCw3IEBACiAJCQkJMUFCMUFFN0EwQzA1MUZERTAwMTM5RjRGIC8qIHpvb21JbkN1cnNvci5wbmcg
aW4gUmVzb3VyY2VzICovLAogCQkJCTFBQjFBRTdCMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tT3V0
Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJMkQ5RjBFMTMxNEZGMUNCRjAwQkEwRkY3
IC8qIGxpbmVhclNSR0IuaWNjIGluIFJlc291cmNlcyAqLywKKwkJCQlBODg2Q0Y3ODE1MTIzMDE3
MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgaW4gUmVzb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtMjc1NTYsNiArMjc1NjcsNyBAQAogCQkJCTQ1MENFQkYwMTUwNzNCQkUwMDJCQjE0OSAvKiBM
YWJlbGFibGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1QjRDMjRFMTUwOTIzNkMw
MEE2RUYzNyAvKiBXZWJDb3JlTlNVUkxFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5QjJC
N0FDMTE1MDk4NTBBMDA4OTMyQ0MgLyogTWljcm9EYXRhSXRlbVZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUE4ODZDRjc2MTUxMjMwMTcwMEQyNzlGNCAvKiBET01XaW5kb3dOb3RpZmljYXRp
b25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZp
Y2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBmYjNmMjBh
NzBkMDk4NDlkOTdmYWUyMzA1ZjY2MDM2NTFhZDUxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAKQEAgLTAs
MCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKKworI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisK
KyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvbkNlbnRlci5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9NV2luZG93
Tm90aWZpY2F0aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9ucyhET01XaW5kb3cgKndpbmRvdykK
KyAgICA6IERPTVdpbmRvd1Byb3BlcnR5KHdpbmRvdy0+ZnJhbWUoKSkKKyAgICAsIG1fd2luZG93
KHdpbmRvdykKK3sKK30KKworRE9NV2luZG93Tm90aWZpY2F0aW9uczo6fkRPTVdpbmRvd05vdGlm
aWNhdGlvbnMoKQoreworfQorCitET01XaW5kb3dOb3RpZmljYXRpb25zKiBET01XaW5kb3dOb3Rp
ZmljYXRpb25zOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQoreworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBzdXBwbGVtZW50TmFtZSwgKCJET01XaW5kb3dOb3RpZmljYXRp
b25zIikpOworICAgIERPTVdpbmRvd05vdGlmaWNhdGlvbnMqIHN1cHBsZW1lbnQgPSBzdGF0aWNf
Y2FzdDxET01XaW5kb3dOb3RpZmljYXRpb25zKj4oU3VwcGxlbWVudDxET01XaW5kb3c+Ojpmcm9t
KHdpbmRvdywgc3VwcGxlbWVudE5hbWUpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAg
ICAgc3VwcGxlbWVudCA9IG5ldyBET01XaW5kb3dOb3RpZmljYXRpb25zKHdpbmRvdyk7CisgICAg
ICAgIFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6cHJvdmlkZVRvKHdpbmRvdywgc3VwcGxlbWVudE5h
bWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7
Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6d2Via2l0
Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93
Tm90aWZpY2F0aW9uczo6ZnJvbSh3aW5kb3cpLT5lbnN1cmVXZWJraXROb3RpZmljYXRpb25zKCk7
Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZW5zdXJl
V2Via2l0Tm90aWZpY2F0aW9ucygpCit7CisgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyKQor
ICAgICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25DZW50ZXIuZ2V0KCk7CisKKyAgICBpZiAoIW1f
d2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX3dpbmRvdy0+ZG9jdW1lbnQoKTsKKyAgICBp
ZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1
bWVudC0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBO
b3RpZmljYXRpb25DbGllbnQqIHByb3ZpZGVyID0gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xp
ZW50RnJvbShwYWdlKTsKKyAgICBpZiAocHJvdmlkZXIpCisgICAgICAgIG1fbm90aWZpY2F0aW9u
Q2VudGVyID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUobV93aW5kb3ctPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgcHJvdmlkZXIpOworICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRl
ci5nZXQoKTsKK30KKwordm9pZCBET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJh
bWUoKQoreworICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRlcikgeworICAgICAgICBtX25vdGlm
aWNhdGlvbkNlbnRlci0+ZGlzY29ubmVjdEZyYW1lKCk7CisgICAgICAgIG1fbm90aWZpY2F0aW9u
Q2VudGVyID0gMDsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODk5ZTAwYzk2
YmUzMDk5ZTk3MThkZjg0NGFkODVhOTJlZjIzMjMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgKQEAgLTAsMCAr
MSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBE
T01XaW5kb3dOb3RpZmljYXRpb25zX2gKKyNkZWZpbmUgRE9NV2luZG93Tm90aWZpY2F0aW9uc19o
CisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJ
T05TKQorCisjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRE9NV2luZG93OworY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgRE9NV2luZG93Tm90aWZpY2F0aW9u
cyA6IHB1YmxpYyBTdXBwbGVtZW50PERPTVdpbmRvdz4sIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0
eSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RE9NV2luZG93Tm90aWZpY2F0aW9ucygpOworCisg
ICAgc3RhdGljIE5vdGlmaWNhdGlvbkNlbnRlciogd2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5k
b3cqKTsKKyAgICBzdGF0aWMgRE9NV2luZG93Tm90aWZpY2F0aW9ucyogZnJvbShET01XaW5kb3cq
KTsKKworcHJpdmF0ZToKKyAgICBET01XaW5kb3dOb3RpZmljYXRpb25zKERPTVdpbmRvdyopOwor
CisgICAgTm90aWZpY2F0aW9uQ2VudGVyKiBlbnN1cmVXZWJraXROb3RpZmljYXRpb25zKCk7Cisg
ICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKSBPVkVSUklERTsKKworICAgIFJlZlB0cjxOb3RpZmlj
YXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9uQ2VudGVyOworICAgIERPTVdpbmRvdyogbV93aW5k
b3c7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKKworI2VuZGlmIC8vIERPTVdpbmRvd05vdGlmaWNhdGlvbnNfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25z
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDU3YjY2NmI2ZTNkNzQ3ZTU5NzQ0MGM0ZjNlYmM5ZjE2N2JlMzNm
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgd2luZG93IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRp
dGlvbmFsPU5PVElGSUNBVElPTlN8TEVHQUNZX05PVElGSUNBVElPTlMsCisgICAgICAgIFN1cHBs
ZW1lbnRhbD1ET01XaW5kb3cKKyAgICBdIERPTVdpbmRvd05vdGlmaWNhdGlvbnMgeworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gTm90aWZpY2F0aW9uQ2Vu
dGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCmluZGV4IGMxNDE2NzM4ZDc2MDE5OTA0ZjNmYTEwNDRkYzYwNjYzMmIwNGI2N2YuLjA5
N2E1ZTU4MDJiYmRmY2Q2OWYyNGFhZGRhODlhZTJjYTY5MTcwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKQEAgLTcyLDggKzcyLDYgQEAKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hl
ci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgot
I2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAj
aW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgpAQCAtNDE4LDkgKzQxNiw2IEBAIERPTVdp
bmRvdzo6fkRPTVdpbmRvdygpCiAgICAgICAgIEFTU0VSVCghbV9zZXNzaW9uU3RvcmFnZSk7CiAg
ICAgICAgIEFTU0VSVCghbV9sb2NhbFN0b3JhZ2UpOwogICAgICAgICBBU1NFUlQoIW1fYXBwbGlj
YXRpb25DYWNoZSk7Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lf
Tk9USUZJQ0FUSU9OUykKLSAgICAgICAgQVNTRVJUKCFtX25vdGlmaWNhdGlvbnMpOwotI2VuZGlm
CiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgICAgIEFTU0VSVCghbV9kb21VUkwpOwogI2VuZGlmCkBA
IC00NzgsMTIgKzQ3Myw2IEBAIHZvaWQgRE9NV2luZG93Ojp3aWxsRGV0YWNoUGFnZSgpCiB7CiAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChtX2ZyYW1l
LCB0aGlzKTsKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05P
VElGSUNBVElPTlMpCi0gICAgLy8gQ2xlYXJpbmcgTm90aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZv
bHZlcyBhY2Nlc3NpbmcgdGhlIGNsaWVudCBzbyBpdCBtdXN0IGJlIGRvbmUKLSAgICAvLyBiZWZv
cmUgdGhlIGZyYW1lIGlzIGRldGFjaGVkLgotICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2Vu
ZGlmCi0KICAgICBIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIHN0b3AgPSBt
X3Byb3BlcnRpZXMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46
Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCiAg
ICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOwpAQCAtNTI3LDE1ICs1MTYsNiBAQCB2b2lk
IERPTVdpbmRvdzo6ZGlzY29ubmVjdERPTVdpbmRvd1Byb3BlcnRpZXMoKQogICAgIEhhc2hTZXQ8
RE9NV2luZG93UHJvcGVydHkqPjo6aXRlcmF0b3Igc3RvcCA9IG1fcHJvcGVydGllcy5lbmQoKTsK
ICAgICBmb3IgKEhhc2hTZXQ8RE9NV2luZG93UHJvcGVydHkqPjo6aXRlcmF0b3IgaXQgPSBtX3By
b3BlcnRpZXMuYmVnaW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKICAgICAgICAgKCppdCktPmRpc2Nv
bm5lY3RGcmFtZSgpOwotCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdB
Q1lfTk9USUZJQ0FUSU9OUykKLSAgICAvLyBGSVhNRTogTm90aWZpY2F0aW9ucyBzaG91bGRuJ3Qg
aGF2ZSBkaWZmZXJlbnQgZGlzY29ubmVjdGlvbiBsb2dpYyB0aGFuCi0gICAgLy8gdGhlIHJlc3Qg
b2YgdGhlIERPTVdpbmRvd1Byb3BlcnRpZXMuCi0gICAgLy8gVGhlcmUgaXMgY3VycmVudGx5IG5v
IHdheSB0byByZWNvbm5lY3QgdGhlbSBpbiByZXN1bWVGcm9tUGFnZUNhY2hlKCkgc28KLSAgICAv
LyB0aGV5IHdpbGwgYmUgYnJva2VuIGFmdGVyIHJldHVybmluZyB0byBhIGNhY2hlZCBwYWdlLgot
ICAgIC8vIFRoaXMgc2hvdWxkIGJlIGZpeGVkIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2Ci0gICAgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0j
ZW5kaWYKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlY29ubmVjdERPTVdpbmRvd1Byb3BlcnRpZXMo
KQpAQCAtNTcxLDExICs1NTEsNiBAQCB2b2lkIERPTVdpbmRvdzo6Y2xlYXJET01XaW5kb3dQcm9w
ZXJ0aWVzKCkKICAgICBtX3Nlc3Npb25TdG9yYWdlID0gMDsKICAgICBtX2xvY2FsU3RvcmFnZSA9
IDA7CiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlID0gMDsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgIC8vIEZJWE1FOiBOb3RpZmlj
YXRpb25zIHNob3VsZG4ndCBoYXZlIGRpZmZlcmVudCBkaXNjb25uZWN0aW9uIGxvZ2ljIHRoYW4K
LSAgICAvLyB0aGUgcmVzdCBvZiB0aGUgRE9NV2luZG93UHJvcGVydGllcy4KLSAgICByZXNldE5v
dGlmaWNhdGlvbnMoKTsKLSNlbmRpZgogI2lmIEVOQUJMRShCTE9CKQogICAgIG1fZG9tVVJMID0g
MDsKICNlbmRpZgpAQCAtNzg0LDM4ICs3NTksNiBAQCBTdG9yYWdlKiBET01XaW5kb3c6OmxvY2Fs
U3RvcmFnZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICByZXR1cm4gbV9sb2NhbFN0b3Jh
Z2UuZ2V0KCk7CiB9CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FD
WV9OT1RJRklDQVRJT05TKQotTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3c6OndlYmtpdE5v
dGlmaWNhdGlvbnMoKSBjb25zdAotewotICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZy
YW1lKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIGlmIChtX25vdGlmaWNhdGlvbnMpCi0gICAg
ICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMuZ2V0KCk7Ci0KLSAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVy
biAwOwotICAgIAotICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwotICAgIGlmICgh
cGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3Zp
ZGVyID0gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKLSAgICBpZiAo
cHJvdmlkZXIpIAotICAgICAgICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6
OmNyZWF0ZShkb2N1bWVudCwgcHJvdmlkZXIpOyAgICAKLSAgICAgIAotICAgIHJldHVybiBtX25v
dGlmaWNhdGlvbnMuZ2V0KCk7Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpyZXNldE5vdGlmaWNhdGlv
bnMoKQotewotICAgIGlmICghbV9ub3RpZmljYXRpb25zKQotICAgICAgICByZXR1cm47Ci0gICAg
bV9ub3RpZmljYXRpb25zLT5kaXNjb25uZWN0RnJhbWUoKTsKLSAgICBtX25vdGlmaWNhdGlvbnMg
PSAwOwotfQotI2VuZGlmCi0KIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIGNvbnN0
IFN0cmluZyYgdGFyZ2V0T3JpZ2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgTWVzc2FnZVBvcnRBcnJheSBwb3J0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
CmluZGV4IGJkODFiNDhmNTZlZjE4MGE5YWFkYjA4MDUzMTFhMDIyMDQyY2I4MDEuLjcwMTRkOTZi
ZDA3MDk3NThlMzYxM2U2N2ZmYTdiMDZiM2U4ODcxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aApAQCAtNTYsNyArNTYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgTWVkaWFR
dWVyeUxpc3Q7CiAgICAgY2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xh
c3MgTm90aWZpY2F0aW9uQ2VudGVyOwogICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgUGVyZm9y
bWFuY2U7CiAgICAgY2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKQEAgLTM1NiwxMyArMzU1LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTdG9yYWdlKiBzZXNzaW9uU3RvcmFnZShFeGNl
cHRpb25Db2RlJikgY29uc3Q7CiAgICAgICAgIFN0b3JhZ2UqIGxvY2FsU3RvcmFnZShFeGNlcHRp
b25Db2RlJikgY29uc3Q7CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExF
R0FDWV9OT1RJRklDQVRJT05TKQotICAgICAgICBOb3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5v
dGlmaWNhdGlvbnMoKSBjb25zdDsKLSAgICAgICAgLy8gUmVuZGVycyB3ZWJraXROb3RpZmljYXRp
b25zIG9iamVjdCBzYWZlbHkgaW5vcGVyYWJsZSwgZGlzY29ubmVjdHMKLSAgICAgICAgLy8gaWYg
ZnJvbSBlbWJlZGRlci1wcm92aWRlZCBOb3RpZmljYXRpb25DbGllbnQuCi0gICAgICAgIHZvaWQg
cmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShRVU9UQSkKICAgICAg
ICAgU3RvcmFnZUluZm8qIHdlYmtpdFN0b3JhZ2VJbmZvKCkgY29uc3Q7CiAjZW5kaWYKQEAgLTQ1
MCwxMCArNDQyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBtdXRhYmxlIFJlZlB0
cjxTdG9yYWdlPiBtX2xvY2FsU3RvcmFnZTsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8RE9NQXBw
bGljYXRpb25DYWNoZT4gbV9hcHBsaWNhdGlvbkNhY2hlOwogCi0jaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICAgICAgbXV0YWJsZSBS
ZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBtX25vdGlmaWNhdGlvbnM7Ci0jZW5kaWYKLQogI2lm
IEVOQUJMRShXRUJfVElNSU5HKQogICAgICAgICBtdXRhYmxlIFJlZlB0cjxQZXJmb3JtYW5jZT4g
bV9wZXJmb3JtYW5jZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IGYy
YjkwY2U1ODEwZmU5NjMwNzhlNTQ4MTJhMTgwOTBiZGU4MmM3MmYuLjBlZmE3YmYxMjQ4OTEwOGJh
YTUzODdlMjE3MTdlZjYzNmNiZjFjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAg
LTE3MCwxMCArMTcwLDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBTdG9yYWdlIGxvY2FsU3RvcmFnZQogICAgICAgICAg
ICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0jaWYgKGRlZmluZWQoRU5BQkxFX05P
VElGSUNBVElPTlMpICYmIEVOQUJMRV9OT1RJRklDQVRJT05TKSB8fCAoZGVmaW5lZChFTkFCTEVf
TEVHQUNZX05PVElGSUNBVElPTlMpICYmIEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5vdGlmaWNhdGlv
bkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOwotI2VuZGlmCi0KICNpZiBkZWZpbmVkKEVOQUJM
RV9PUklFTlRBVElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMKICAgICAg
ICAgLy8gVGhpcyBpcyB0aGUgaW50ZXJmYWNlIG9yaWVudGF0aW9uIGluIGRlZ3JlZXMuIFNvbWUg
ZXhhbXBsZXMgYXJlOgogICAgICAgICAvLyAgMCBpcyBzdHJhaWdodCB1cDsgLTkwIGlzIHdoZW4g
dGhlIGRldmljZSBpcyByb3RhdGVkIDkwIGNsb2Nrd2lzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5k
ZXggYjMxMzY0OWJlMmQ3ZWFkMmEyNjM3MTBhMDNlMzdkMDhjYWQ1MGYzOC4uZmJkMmRiMzk2MjM3
NzliNjllNDk4ZTMyZDU0NzkzYjI1ZWY3Yzg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTY4
NywxMSArNjg3LDYgQEAgdm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogICAgIGlmIChGcmFt
ZSogcGFyZW50ID0gdHJlZSgpLT5wYXJlbnQoKSkKICAgICAgICAgcGFyZW50LT5sb2FkZXIoKS0+
Y2hlY2tMb2FkQ29tcGxldGUoKTsKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFC
TEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0gICAgaWYgKG1fZG9tV2luZG93KQotICAgICAgICBt
X2RvbVdpbmRvdy0+cmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKLQogICAgIEhhc2hTZXQ8
RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9u
T2JzZXJ2ZXJzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2
ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ICE9
IHN0b3A7ICsraXQpCiAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOwpAQCAtNzM2LDEy
ICs3MzEsNiBAQCB2b2lkIEZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KCkK
ICAgICAgICAgICAgICBtX3BhZ2UtPmRlY3JlbWVudEZyYW1lQ291bnQoKTsKICAgICAgICAgfQog
Ci0gICAgICAgIGlmIChtX2RvbVdpbmRvdykgewotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8
fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0gICAgICAgICAgICBtX2RvbVdpbmRvdy0+
cmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKLSAgICAgICAgfQotCiAgICAgICAgIEhhc2hT
ZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0
aW9uT2JzZXJ2ZXJzLmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyKj46Oml0ZXJhdG9yIGl0ID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5iZWdpbigp
OyBpdCAhPSBzdG9wOyArK2l0KQogICAgICAgICAgICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132155</attachid>
            <date>2012-03-15 17:07:56 -0700</date>
            <delta_ts>2012-03-15 18:24:15 -0700</delta_ts>
            <desc>try to see mac build</desc>
            <filename>bug-79636-20120316090755.patch</filename>
            <type>text/plain</type>
            <size>28432</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwOTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTA3NDY2NGFkNWU5Y2Iw
ZjQyOGY3ZjY2OGU1NWNmMWQ5NWVlNzUzYS4uOGE2Y2I4Y2EyMjQ4NTZjMGY3NTliNmM4MGQyM2E5
MjljNGM1M2Q1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBGb3IgV2ViS2l0
IG1vZHVsYXJpemF0aW9uLCB0aGlzIHBhdGNoIG1vdmVzIE5vdGlmaWNhdGlvbnMtcmVsYXRlZCBB
UElzCisgICAgICAgIGZyb20gRE9NV2luZG93LmlkbCB0byBET01XaW5kb3dOb3RpZmljYXRpb25z
LmlkbC4KKworICAgICAgICBUZXN0czogZmFzdC9ub3RpZmljYXRpb25zLyogKE5vIGNoYW5nZSBp
biB0ZXN0IHJlc3VsdHMpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy57aCxjcHAsaWRsfS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOiBEaXR0by4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6IERpdHRvLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERp
dHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IEFkZGVkIG1hbmdsZWQgc2lnbmF0dXJlcyBvZiB3ZWJraXROb3RpZmljYXRpb25zKCkuCisKKyAg
ICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0
aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dOb3RpZmljYXRpb25zOjp+RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJh
bWUpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93Tm90aWZpY2F0aW9u
cyk6CisgICAgICAgICogbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDog
QWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IFJlbW92ZWQgRU5BQkxFKE5P
VElGSUNBVElPTlMpLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6d2lsbERldGFjaFBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpjbGVhcik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuaWRsOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6d2lsbERldGFjaFBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQpOgorCiAy
MDEyLTAzLTE1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBbV2luQ2Fpcm9dIENvcnJlY3QgPHd0Zi8qLmg+IGluY2x1ZGUgcGF0aHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQyZmEwMDIxMGZkZDczYTg0Y2IzYjZlMGZmY2EzYTNkZTg0MWQ0MTYuLjc0
NjVhNjFkZTFmMmI2OWMyNzU3MjJmNzQ2ZTgxZTQxMzVkNTMxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xNjIyLDEyICsxNjIyLDE0IEBAIEVORElGICgpCiAKIElGIChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgbm90aWZp
Y2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcAogICAgICAgICBub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25Db250cm9sbGVyLmNwcAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAK
ICAgICApCiAKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUworICAgICAgICBub3Rp
ZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCiAgICAgICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmlkbAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5pZGwKICAgICApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBjNDBmZmJm
MmRjOWRmNmU3NzczNjY4Nzk2ZDBjN2ViNGI4OTBjYzg3Li5hYzFjNzE4ZTNiNDcxZmE0YTE0M2Y1
MTQ2NjZhZjg4YmI2NzZlNWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM1
Niw2ICszNTYsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9pbnNwZWN0b3Iv
U2NyaXB0UHJvZmlsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2Zp
bGVOb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRp
b25DYWNoZS5pZGwgXAorICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
aWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvQWJzdHJhY3RWaWV3LmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkKaW5kZXggZDUwNDNkODM2ZTliODlkYjhiZmI1M2YwOWMxMTJlMTkxMmFm
ZGQ1ZS4uYjc3MDVkYjRmMDI5OTg3NzFiNWZiOGNhZWE2NmE1M2YxZjVmZTNmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtMzc1LDYgKzM3NSw3IEBAIElETF9CSU5ESU5HUyArPSBc
CiAgICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkJFBXRC9pbnNw
ZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsIFwKICAgICAkJFBXRC9sb2FkZXIvYXBwY2FjaGUv
RE9NQXBwbGljYXRpb25DYWNoZS5pZGwgXAorICAgICQkUFdEL25vdGlmaWNhdGlvbnMvRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQkUFdEL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmlkbCBcCiAgICAgJCRQV0Qvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRs
IFwKICAgICAkJFBXRC9wYWdlL0JhckluZm8uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDA3MGI4N2VmOTdlNmEwYjg4YTQyZTg2ZDk4MTk3Y2Q5MDkwODQyM2EuLmYzMzgz
ZTM2NmU5MDkzYTY5NTc3NGY3Nzk3YTUzNmE2Y2E5NDkyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtMjgyMyw2ICsyODIzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTFRleHRFbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9N
V2luZG93Tm90aWZpY2F0aW9ucy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
RE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNTg3NWNmYjY3MzhlODVjN2UwNzE1
NTRiMDU0NmQxMDQ4YjEwNmU2YS4uMTE2NzZkNjdkYTY1YzMwNWMwNDdiMmY4MjhjNzI3MjAwYTBi
OTI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC05NzksNiArOTc5LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RleHRSZXNvdXJjZURl
Y29kZXIuY3BwIFwKICAgICBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAgXAorICAgIG5vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIFwKQEAg
LTIwNzMsNiArMjA3NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIG1hdGhtbC9NYXRoTUxJbmxpbmVD
b250YWluZXJFbGVtZW50LmggXAogICAgIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIFwKICAg
ICBtYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBcCisgICAgbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAog
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAogICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDBjYjRmYmJiZTVl
MTUyMWEzZDIyOWZiNWE5M2NkN2M3Y2FhODY4ZmYuLjUyOGNhMDAzZWM1ZTFmOTFlMzY3Y2JlYWI5
NDhiZTUxYThlNWQyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwNTQsNiArMTA1NCw3IEBACiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsJywKICAgICAgICAgICAgICdsb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmlkbCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25DZW50ZXIuaWRsJywKICAgICAgICAgICAgICdwYWdlL0Fic3RyYWN0Vmlldy5pZGwnLApA
QCAtMjc4NCw2ICsyNzg1LDggQEAKICAgICAgICAgICAgICdtYXRobWwvTWF0aE1MTWF0aEVsZW1l
bnQuaCcsCiAgICAgICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCcsCiAgICAg
ICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgnLAorICAgICAgICAgICAgJ25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAnLAorICAgICAgICAgICAgJ25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oJywKICAgICAgICAgICAgICdub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uLmgnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2Vu
dGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGE2OWVmZThhYjMzOGRiNjU5ZjlhYjEwODJkMTBjMmE3NWY0NWY1M2EuLmJjOThiNzE3
YTRmYjhmNTJlZDdkNjA4NTZjNjIzZGI5ZmM1OTg3YjkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01MzU5OCw2ICs1MzU5OCwxNCBAQAogCQkJ
TmFtZT0ibm90aWZpY2F0aW9ucyIKIAkJCT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxub3RpZmljYXRpb25zXERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXERPTVdp
bmRvd05vdGlmaWNhdGlvbnMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xOb3RpZmljYXRpb24uY3BwIgogCQkJCT4KIAkJ
CTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA3YThiMDYxNDgwNTg4OTBlODA2NjI4Njk2ODk1MDc2YmExY2VlMDIzLi4z
ZmNjMTY3ZTRiOGY0MjdkNDI4NDc1NGE5MjM0NzdiMDZkMmFmNGZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MTEzLDYgKzQx
MTMsOSBAQAogCQlBODc0OEJFMDEyQ0JGMkRDMDAxRkJBNDEgLyogSGFzaFRvb2xzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODc0OEJERjEyQ0JGMkRD
MDAxRkJBNDEgLyogSGFzaFRvb2xzLmggKi87IH07CiAJCUE4ODNERjI3MEYzRDA0NUQwMEYxOUJG
NiAvKiBWaXNpYmxlU2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4ODNERjI1MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0
aW9uLmNwcCAqLzsgfTsKIAkJQTg4M0RGMjgwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxl
Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
ODNERjI2MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTg4NkNGNzYxNTEyMzAxNzAw
RDI3OUY0IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4NkNGNzMxNTEyMzAxNzAwRDI3OUY0IC8qIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwICovOyB9OworCQlBODg2Q0Y3NzE1MTIzMDE3MDBEMjc5
RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4NkNGNzQxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRv
d05vdGlmaWNhdGlvbnMuaCAqLzsgfTsKKwkJQTg4NkNGNzgxNTEyMzAxNzAwRDI3OUY0IC8qIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODg2Q0Y3NTE1MTIzMDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90
aWZpY2F0aW9ucy5pZGwgKi87IH07CiAJCUE4OEFENTJGMDk1MjRCOTIwMDFERDE5NiAvKiBRdWFy
dHpDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4NUQ3QTJGMDg3OUVCQTkwMDZBOTE3MiAvKiBRdWFydHpDb3JlLmZyYW1ld29y
ayAqLzsgfTsKIAkJQTg4REQ0ODcwQjQ2MjlBMzAwQzAyOTkwIC8qIFBhdGhUcmF2ZXJzYWxTdGF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4REQ0
ODYwQjQ2MjlBMzAwQzAyOTkwIC8qIFBhdGhUcmF2ZXJzYWxTdGF0ZS5oICovOyB9OwogCQlBODhE
RDQ4OTBCNDYyOUIwMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4OERENDg4MEI0NjI5QjAwMEMw
Mjk5MCAvKiBQYXRoVHJhdmVyc2FsU3RhdGUuY3BwICovOyB9OwpAQCAtMTA5NjksNiArMTA5NzIs
OSBAQAogCQlBODc0OEJERjEyQ0JGMkRDMDAxRkJBNDEgLyogSGFzaFRvb2xzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhhc2hUb29scy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBODgzREYyNTBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaXNpYmxlU2VsZWN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4M0RGMjYwRjNEMDQ1RDAwRjE5
QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlzaWJsZVNlbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODg2
Q0Y3MzE1MTIzMDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBET01XaW5kb3dOb3RpZmljYXRpb25zLmNw
cDsgcGF0aCA9IG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4ODZDRjc0MTUxMjMwMTcwMEQyNzlGNCAvKiBET01X
aW5kb3dOb3RpZmljYXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERP
TVdpbmRvd05vdGlmaWNhdGlvbnMuaDsgcGF0aCA9IG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90
aWZpY2F0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODg2Q0Y3NTE1MTIz
MDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGw7IHBhdGggPSBub3RpZmljYXRpb25z
L0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBODhERDQ4NjBCNDYyOUEzMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhdGhUcmF2ZXJzYWxTdGF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODhERDQ4ODBCNDYyOUIwMDBDMDI5OTAgLyogUGF0aFRy
YXZlcnNhbFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
dGhUcmF2ZXJzYWxTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4OTk0
MzI2MEI0MjMzODcwMEQ3QzgwMiAvKiBCaXRtYXBJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCaXRtYXBJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTQzOTEsNiArMTQzOTcsOSBAQAogCQkzMzNGNzAzRDBGQjQ5QzE2MDA4RTEyQTYgLyogbm90
aWZpY2F0aW9ucyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJQTg4NkNGNzMxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3Bw
ICovLAorCQkJCUE4ODZDRjc0MTUxMjMwMTcwMEQyNzlGNCAvKiBET01XaW5kb3dOb3RpZmljYXRp
b25zLmggKi8sCisJCQkJQTg4NkNGNzUxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRvd05vdGlm
aWNhdGlvbnMuaWRsICovLAogCQkJCTMzNTAzQ0M2MTAxN0ExQjEwMDNCNDdFMSAvKiBOb3RpZmlj
YXRpb24uY3BwICovLAogCQkJCTMzM0Y3MDRGMEZCNDlDQTIwMDhFMTJBNiAvKiBOb3RpZmljYXRp
b24uaCAqLywKIAkJCQkzMzNGNzA0RTBGQjQ5Q0EyMDA4RTEyQTYgLyogTm90aWZpY2F0aW9uLmlk
bCAqLywKQEAgLTI0NTc1LDYgKzI0NTg0LDcgQEAKIAkJCQlFMUNERTkyMjE1MDE5MTY5MDA4NjJD
QzUgLyogQXN5bmNGaWxlU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTBDRUJGMTE1MDcz
QkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVC
NEMyNEQxNTA5MjM2QzAwQTZFRjM3IC8qIFdlYkNvcmVOU1VSTEV4dHJhcy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTg4NkNGNzcxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRvd05vdGlmaWNhdGlv
bnMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjQ3MjcsNiArMjQ3MzcsNyBAQAogCQkJCTFBQjFBRTdB
MEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJ
CQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyogem9vbU91dEN1cnNvci5wbmcgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCTJEOUYwRTEzMTRGRjFDQkYwMEJBMEZGNyAvKiBsaW5lYXJTUkdCLmljYyBp
biBSZXNvdXJjZXMgKi8sCisJCQkJQTg4NkNGNzgxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRv
d05vdGlmaWNhdGlvbnMuaWRsIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3NTU2LDYgKzI3NTY3LDcg
QEAKIAkJCQlDNUI0QzI0RTE1MDkyMzZDMDBBNkVGMzcgLyogV2ViQ29yZU5TVVJMRXh0cmFzLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJOUIyQjdBQzExNTA5ODUwQTAwODkzMkNDIC8qIE1pY3JvRGF0
YUl0ZW1WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MTU3RjA2MjE1MEI2NTY0MDA2RUFB
QkQgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4
ODZDRjc2MTUxMjMwMTcwMEQyNzlGNCAvKiBET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01X
aW5kb3dOb3RpZmljYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9N
V2luZG93Tm90aWZpY2F0aW9ucy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBmYjNmMjBhNzBkMDk4NDlkOTdm
YWUyMzA1ZjY2MDM2NTFhZDUxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL25v
dGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAKQEAgLTAsMCArMSw5OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkRPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKKworI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJE
T01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlv
bkNlbnRlci5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9NV2luZG93Tm90aWZpY2F0aW9u
czo6RE9NV2luZG93Tm90aWZpY2F0aW9ucyhET01XaW5kb3cgKndpbmRvdykKKyAgICA6IERPTVdp
bmRvd1Byb3BlcnR5KHdpbmRvdy0+ZnJhbWUoKSkKKyAgICAsIG1fd2luZG93KHdpbmRvdykKK3sK
K30KKworRE9NV2luZG93Tm90aWZpY2F0aW9uczo6fkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKQor
eworfQorCitET01XaW5kb3dOb3RpZmljYXRpb25zKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpm
cm9tKERPTVdpbmRvdyogd2luZG93KQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzdXBwbGVtZW50TmFtZSwgKCJET01XaW5kb3dOb3RpZmljYXRpb25zIikpOworICAg
IERPTVdpbmRvd05vdGlmaWNhdGlvbnMqIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxET01XaW5k
b3dOb3RpZmljYXRpb25zKj4oU3VwcGxlbWVudDxET01XaW5kb3c+Ojpmcm9tKHdpbmRvdywgc3Vw
cGxlbWVudE5hbWUpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgc3VwcGxlbWVu
dCA9IG5ldyBET01XaW5kb3dOb3RpZmljYXRpb25zKHdpbmRvdyk7CisgICAgICAgIFN1cHBsZW1l
bnQ8RE9NV2luZG93Pjo6cHJvdmlkZVRvKHdpbmRvdywgc3VwcGxlbWVudE5hbWUsIGFkb3B0UHRy
KHN1cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK05vdGlm
aWNhdGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9u
cyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93Tm90aWZpY2F0aW9u
czo6ZnJvbSh3aW5kb3cpLT5lbnN1cmVXZWJraXROb3RpZmljYXRpb25zKCk7Cit9CisKK05vdGlm
aWNhdGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZp
Y2F0aW9ucygpCit7CisgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyKQorICAgICAgICByZXR1
cm4gbV9ub3RpZmljYXRpb25DZW50ZXIuZ2V0KCk7CisKKyAgICBpZiAoIW1fd2luZG93LT5pc0N1
cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBtX3dpbmRvdy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBOb3RpZmljYXRpb25D
bGllbnQqIHByb3ZpZGVyID0gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdl
KTsKKyAgICBpZiAocHJvdmlkZXIpCisgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gTm90
aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUobV93aW5kb3ctPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgcHJvdmlkZXIpOworICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsKK30K
Kwordm9pZCBET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJhbWUoKQoreworICAg
IGlmIChtX25vdGlmaWNhdGlvbkNlbnRlcikgeworICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRl
ci0+ZGlzY29ubmVjdEZyYW1lKCk7CisgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gMDsK
KyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShO
T1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9E
T01XaW5kb3dOb3RpZmljYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RP
TVdpbmRvd05vdGlmaWNhdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODk5ZTAwYzk2YmUzMDk5ZTk3MThk
Zjg0NGFkODVhOTJlZjIzMjMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgKQEAgLTAsMCArMSw2MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBET01XaW5kb3dOb3Rp
ZmljYXRpb25zX2gKKyNkZWZpbmUgRE9NV2luZG93Tm90aWZpY2F0aW9uc19oCisKKyNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQorCisjaW5j
bHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
I2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRE9NV2luZG93OworY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOworY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKKworY2xhc3MgRE9NV2luZG93Tm90aWZpY2F0aW9ucyA6IHB1YmxpYyBT
dXBwbGVtZW50PERPTVdpbmRvdz4sIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+RE9NV2luZG93Tm90aWZpY2F0aW9ucygpOworCisgICAgc3RhdGljIE5v
dGlmaWNhdGlvbkNlbnRlciogd2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsKKyAgICBz
dGF0aWMgRE9NV2luZG93Tm90aWZpY2F0aW9ucyogZnJvbShET01XaW5kb3cqKTsKKworcHJpdmF0
ZToKKyAgICBET01XaW5kb3dOb3RpZmljYXRpb25zKERPTVdpbmRvdyopOworCisgICAgTm90aWZp
Y2F0aW9uQ2VudGVyKiBlbnN1cmVXZWJraXROb3RpZmljYXRpb25zKCk7CisgICAgdm9pZCBkaXNj
b25uZWN0RnJhbWUoKSBPVkVSUklERTsKKworICAgIFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+
IG1fbm90aWZpY2F0aW9uQ2VudGVyOworICAgIERPTVdpbmRvdyogbV93aW5kb3c7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
KworI2VuZGlmIC8vIERPTVdpbmRvd05vdGlmaWNhdGlvbnNfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDU3YjY2NmI2ZTNkNzQ3ZTU5NzQ0MGM0ZjNlYmM5ZjE2N2JlMzNmOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1
bGUgd2luZG93IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU5PVElG
SUNBVElPTlN8TEVHQUNZX05PVElGSUNBVElPTlMsCisgICAgICAgIFN1cHBsZW1lbnRhbD1ET01X
aW5kb3cKKyAgICBdIERPTVdpbmRvd05vdGlmaWNhdGlvbnMgeworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5v
dGlmaWNhdGlvbnM7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4
IGMxNDE2NzM4ZDc2MDE5OTA0ZjNmYTEwNDRkYzYwNjYzMmIwNGI2N2YuLjA5N2E1ZTU4MDJiYmRm
Y2Q2OWYyNGFhZGRhODlhZTJjYTY5MTcwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
QEAgLTcyLDggKzcyLDYgQEAKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgotI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbkNlbnRlci5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFn
ZVRyYW5zaXRpb25FdmVudC5oIgpAQCAtNDE4LDkgKzQxNiw2IEBAIERPTVdpbmRvdzo6fkRPTVdp
bmRvdygpCiAgICAgICAgIEFTU0VSVCghbV9zZXNzaW9uU3RvcmFnZSk7CiAgICAgICAgIEFTU0VS
VCghbV9sb2NhbFN0b3JhZ2UpOwogICAgICAgICBBU1NFUlQoIW1fYXBwbGljYXRpb25DYWNoZSk7
Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9O
UykKLSAgICAgICAgQVNTRVJUKCFtX25vdGlmaWNhdGlvbnMpOwotI2VuZGlmCiAjaWYgRU5BQkxF
KEJMT0IpCiAgICAgICAgIEFTU0VSVCghbV9kb21VUkwpOwogI2VuZGlmCkBAIC00NzgsMTIgKzQ3
Myw2IEBAIHZvaWQgRE9NV2luZG93Ojp3aWxsRGV0YWNoUGFnZSgpCiB7CiAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChtX2ZyYW1lLCB0aGlzKTsKIAot
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMp
Ci0gICAgLy8gQ2xlYXJpbmcgTm90aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZvbHZlcyBhY2Nlc3Np
bmcgdGhlIGNsaWVudCBzbyBpdCBtdXN0IGJlIGRvbmUKLSAgICAvLyBiZWZvcmUgdGhlIGZyYW1l
IGlzIGRldGFjaGVkLgotICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICAgICBI
YXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIHN0b3AgPSBtX3Byb3BlcnRpZXMu
ZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIGl0
ID0gbV9wcm9wZXJ0aWVzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCiAgICAgICAgICgqaXQp
LT53aWxsRGV0YWNoUGFnZSgpOwpAQCAtNTI3LDE1ICs1MTYsNiBAQCB2b2lkIERPTVdpbmRvdzo6
ZGlzY29ubmVjdERPTVdpbmRvd1Byb3BlcnRpZXMoKQogICAgIEhhc2hTZXQ8RE9NV2luZG93UHJv
cGVydHkqPjo6aXRlcmF0b3Igc3RvcCA9IG1fcHJvcGVydGllcy5lbmQoKTsKICAgICBmb3IgKEhh
c2hTZXQ8RE9NV2luZG93UHJvcGVydHkqPjo6aXRlcmF0b3IgaXQgPSBtX3Byb3BlcnRpZXMuYmVn
aW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKICAgICAgICAgKCppdCktPmRpc2Nvbm5lY3RGcmFtZSgp
OwotCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FU
SU9OUykKLSAgICAvLyBGSVhNRTogTm90aWZpY2F0aW9ucyBzaG91bGRuJ3QgaGF2ZSBkaWZmZXJl
bnQgZGlzY29ubmVjdGlvbiBsb2dpYyB0aGFuCi0gICAgLy8gdGhlIHJlc3Qgb2YgdGhlIERPTVdp
bmRvd1Byb3BlcnRpZXMuCi0gICAgLy8gVGhlcmUgaXMgY3VycmVudGx5IG5vIHdheSB0byByZWNv
bm5lY3QgdGhlbSBpbiByZXN1bWVGcm9tUGFnZUNhY2hlKCkgc28KLSAgICAvLyB0aGV5IHdpbGwg
YmUgYnJva2VuIGFmdGVyIHJldHVybmluZyB0byBhIGNhY2hlZCBwYWdlLgotICAgIC8vIFRoaXMg
c2hvdWxkIGJlIGZpeGVkIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc5NjM2Ci0gICAgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBET01XaW5kb3c6OnJlY29ubmVjdERPTVdpbmRvd1Byb3BlcnRpZXMoKQpAQCAtNTcxLDEx
ICs1NTEsNiBAQCB2b2lkIERPTVdpbmRvdzo6Y2xlYXJET01XaW5kb3dQcm9wZXJ0aWVzKCkKICAg
ICBtX3Nlc3Npb25TdG9yYWdlID0gMDsKICAgICBtX2xvY2FsU3RvcmFnZSA9IDA7CiAgICAgbV9h
cHBsaWNhdGlvbkNhY2hlID0gMDsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxF
KExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgIC8vIEZJWE1FOiBOb3RpZmljYXRpb25zIHNob3Vs
ZG4ndCBoYXZlIGRpZmZlcmVudCBkaXNjb25uZWN0aW9uIGxvZ2ljIHRoYW4KLSAgICAvLyB0aGUg
cmVzdCBvZiB0aGUgRE9NV2luZG93UHJvcGVydGllcy4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMo
KTsKLSNlbmRpZgogI2lmIEVOQUJMRShCTE9CKQogICAgIG1fZG9tVVJMID0gMDsKICNlbmRpZgpA
QCAtNzg0LDM4ICs3NTksNiBAQCBTdG9yYWdlKiBET01XaW5kb3c6OmxvY2FsU3RvcmFnZShFeGNl
cHRpb25Db2RlJiBlYykgY29uc3QKICAgICByZXR1cm4gbV9sb2NhbFN0b3JhZ2UuZ2V0KCk7CiB9
CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJ
T05TKQotTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3c6OndlYmtpdE5vdGlmaWNhdGlvbnMo
KSBjb25zdAotewotICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCi0gICAg
ICAgIHJldHVybiAwOwotICAgIGlmIChtX25vdGlmaWNhdGlvbnMpCi0gICAgICAgIHJldHVybiBt
X25vdGlmaWNhdGlvbnMuZ2V0KCk7Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5k
b2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIAot
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0KLSAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3ZpZGVyID0gTm90aWZp
Y2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKLSAgICBpZiAocHJvdmlkZXIpIAot
ICAgICAgICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShkb2N1
bWVudCwgcHJvdmlkZXIpOyAgICAKLSAgICAgIAotICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMu
Z2V0KCk7Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpyZXNldE5vdGlmaWNhdGlvbnMoKQotewotICAg
IGlmICghbV9ub3RpZmljYXRpb25zKQotICAgICAgICByZXR1cm47Ci0gICAgbV9ub3RpZmljYXRp
b25zLT5kaXNjb25uZWN0RnJhbWUoKTsKLSAgICBtX25vdGlmaWNhdGlvbnMgPSAwOwotfQotI2Vu
ZGlmCi0KIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIGNvbnN0IFN0cmluZyYgdGFy
Z2V0T3JpZ2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
TWVzc2FnZVBvcnRBcnJheSBwb3J0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IGJkODFi
NDhmNTZlZjE4MGE5YWFkYjA4MDUzMTFhMDIyMDQyY2I4MDEuLjcwMTRkOTZiZDA3MDk3NThlMzYx
M2U2N2ZmYTdiMDZiM2U4ODcxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtNTYsNyAr
NTYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiAg
ICAgY2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgTm90aWZpY2F0
aW9uQ2VudGVyOwogICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAg
Y2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKQEAgLTM1NiwxMyArMzU1LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBTdG9yYWdlKiBzZXNzaW9uU3RvcmFnZShFeGNlcHRpb25Db2RlJikg
Y29uc3Q7CiAgICAgICAgIFN0b3JhZ2UqIGxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29u
c3Q7CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklD
QVRJT05TKQotICAgICAgICBOb3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMo
KSBjb25zdDsKLSAgICAgICAgLy8gUmVuZGVycyB3ZWJraXROb3RpZmljYXRpb25zIG9iamVjdCBz
YWZlbHkgaW5vcGVyYWJsZSwgZGlzY29ubmVjdHMKLSAgICAgICAgLy8gaWYgZnJvbSBlbWJlZGRl
ci1wcm92aWRlZCBOb3RpZmljYXRpb25DbGllbnQuCi0gICAgICAgIHZvaWQgcmVzZXROb3RpZmlj
YXRpb25zKCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShRVU9UQSkKICAgICAgICAgU3RvcmFnZUlu
Zm8qIHdlYmtpdFN0b3JhZ2VJbmZvKCkgY29uc3Q7CiAjZW5kaWYKQEAgLTQ1MCwxMCArNDQyLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTdG9yYWdlPiBt
X2xvY2FsU3RvcmFnZTsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8RE9NQXBwbGljYXRpb25DYWNo
ZT4gbV9hcHBsaWNhdGlvbkNhY2hlOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVO
QUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICAgICAgbXV0YWJsZSBSZWZQdHI8Tm90aWZp
Y2F0aW9uQ2VudGVyPiBtX25vdGlmaWNhdGlvbnM7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShXRUJf
VElNSU5HKQogICAgICAgICBtdXRhYmxlIFJlZlB0cjxQZXJmb3JtYW5jZT4gbV9wZXJmb3JtYW5j
ZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IGYyYjkwY2U1ODEwZmU5
NjMwNzhlNTQ4MTJhMTgwOTBiZGU4MmM3MmYuLjBlZmE3YmYxMjQ4OTEwOGJhYTUzODdlMjE3MTdl
ZjYzNmNiZjFjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE3MCwxMCArMTcw
LDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFi
bGVkQXRSdW50aW1lXSBTdG9yYWdlIGxvY2FsU3RvcmFnZQogICAgICAgICAgICAgZ2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOwogCi0jaWYgKGRlZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMp
ICYmIEVOQUJMRV9OT1RJRklDQVRJT05TKSB8fCAoZGVmaW5lZChFTkFCTEVfTEVHQUNZX05PVElG
SUNBVElPTlMpICYmIEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJr
aXROb3RpZmljYXRpb25zOwotI2VuZGlmCi0KICNpZiBkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElP
Tl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMKICAgICAgICAgLy8gVGhpcyBp
cyB0aGUgaW50ZXJmYWNlIG9yaWVudGF0aW9uIGluIGRlZ3JlZXMuIFNvbWUgZXhhbXBsZXMgYXJl
OgogICAgICAgICAvLyAgMCBpcyBzdHJhaWdodCB1cDsgLTkwIGlzIHdoZW4gdGhlIGRldmljZSBp
cyByb3RhdGVkIDkwIGNsb2Nrd2lzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggYjMxMzY0OWJl
MmQ3ZWFkMmEyNjM3MTBhMDNlMzdkMDhjYWQ1MGYzOC4uZmJkMmRiMzk2MjM3NzliNjllNDk4ZTMy
ZDU0NzkzYjI1ZWY3Yzg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTY4NywxMSArNjg3LDYg
QEAgdm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogICAgIGlmIChGcmFtZSogcGFyZW50ID0g
dHJlZSgpLT5wYXJlbnQoKSkKICAgICAgICAgcGFyZW50LT5sb2FkZXIoKS0+Y2hlY2tMb2FkQ29t
cGxldGUoKTsKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05P
VElGSUNBVElPTlMpCi0gICAgaWYgKG1fZG9tV2luZG93KQotICAgICAgICBtX2RvbVdpbmRvdy0+
cmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKLQogICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVu
ZCgpOwogICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0
b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQp
CiAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOwpAQCAtNzM2LDEyICs3MzEsNiBAQCB2
b2lkIEZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KCkKICAgICAgICAgICAg
ICBtX3BhZ2UtPmRlY3JlbWVudEZyYW1lQ291bnQoKTsKICAgICAgICAgfQogCi0gICAgICAgIGlm
IChtX2RvbVdpbmRvdykgewotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVH
QUNZX05PVElGSUNBVElPTlMpCi0gICAgICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXROb3RpZmlj
YXRpb25zKCk7Ci0jZW5kaWYKLSAgICAgICAgfQotCiAgICAgICAgIEhhc2hTZXQ8RnJhbWVEZXN0
cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJz
LmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46
Oml0ZXJhdG9yIGl0ID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5iZWdpbigpOyBpdCAhPSBzdG9w
OyArK2l0KQogICAgICAgICAgICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7Cg==
</data>
<flag name="commit-queue"
          id="135723"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132174</attachid>
            <date>2012-03-15 18:46:56 -0700</date>
            <delta_ts>2012-03-15 19:10:34 -0700</delta_ts>
            <desc>hopefully fixed the mac build</desc>
            <filename>bug-79636-20120316104655.patch</filename>
            <type>text/plain</type>
            <size>28432</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwOTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTA3NDY2NGFkNWU5Y2Iw
ZjQyOGY3ZjY2OGU1NWNmMWQ5NWVlNzUzYS4uOGE2Y2I4Y2EyMjQ4NTZjMGY3NTliNmM4MGQyM2E5
MjljNGM1M2Q1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBGb3IgV2ViS2l0
IG1vZHVsYXJpemF0aW9uLCB0aGlzIHBhdGNoIG1vdmVzIE5vdGlmaWNhdGlvbnMtcmVsYXRlZCBB
UElzCisgICAgICAgIGZyb20gRE9NV2luZG93LmlkbCB0byBET01XaW5kb3dOb3RpZmljYXRpb25z
LmlkbC4KKworICAgICAgICBUZXN0czogZmFzdC9ub3RpZmljYXRpb25zLyogKE5vIGNoYW5nZSBp
biB0ZXN0IHJlc3VsdHMpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy57aCxjcHAsaWRsfS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOiBEaXR0by4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6IERpdHRvLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERp
dHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IEFkZGVkIG1hbmdsZWQgc2lnbmF0dXJlcyBvZiB3ZWJraXROb3RpZmljYXRpb25zKCkuCisKKyAg
ICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0
aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dOb3RpZmljYXRpb25zOjp+RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJh
bWUpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93Tm90aWZpY2F0aW9u
cyk6CisgICAgICAgICogbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDog
QWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IFJlbW92ZWQgRU5BQkxFKE5P
VElGSUNBVElPTlMpLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6d2lsbERldGFjaFBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpjbGVhcik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuaWRsOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6d2lsbERldGFjaFBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQpOgorCiAy
MDEyLTAzLTE1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBbV2luQ2Fpcm9dIENvcnJlY3QgPHd0Zi8qLmg+IGluY2x1ZGUgcGF0aHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQyZmEwMDIxMGZkZDczYTg0Y2IzYjZlMGZmY2EzYTNkZTg0MWQ0MTYuLjc0
NjVhNjFkZTFmMmI2OWMyNzU3MjJmNzQ2ZTgxZTQxMzVkNTMxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xNjIyLDEyICsxNjIyLDE0IEBAIEVORElGICgpCiAKIElGIChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgbm90aWZp
Y2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcAogICAgICAgICBub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25Db250cm9sbGVyLmNwcAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAK
ICAgICApCiAKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUworICAgICAgICBub3Rp
ZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCiAgICAgICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmlkbAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5pZGwKICAgICApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBjNDBmZmJm
MmRjOWRmNmU3NzczNjY4Nzk2ZDBjN2ViNGI4OTBjYzg3Li5hYzFjNzE4ZTNiNDcxZmE0YTE0M2Y1
MTQ2NjZhZjg4YmI2NzZlNWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM1
Niw2ICszNTYsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9pbnNwZWN0b3Iv
U2NyaXB0UHJvZmlsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2Zp
bGVOb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRp
b25DYWNoZS5pZGwgXAorICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
aWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvQWJzdHJhY3RWaWV3LmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkKaW5kZXggZDUwNDNkODM2ZTliODlkYjhiZmI1M2YwOWMxMTJlMTkxMmFm
ZGQ1ZS4uYjc3MDVkYjRmMDI5OTg3NzFiNWZiOGNhZWE2NmE1M2YxZjVmZTNmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtMzc1LDYgKzM3NSw3IEBAIElETF9CSU5ESU5HUyArPSBc
CiAgICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkJFBXRC9pbnNw
ZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsIFwKICAgICAkJFBXRC9sb2FkZXIvYXBwY2FjaGUv
RE9NQXBwbGljYXRpb25DYWNoZS5pZGwgXAorICAgICQkUFdEL25vdGlmaWNhdGlvbnMvRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQkUFdEL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmlkbCBcCiAgICAgJCRQV0Qvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRs
IFwKICAgICAkJFBXRC9wYWdlL0JhckluZm8uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDA3MGI4N2VmOTdlNmEwYjg4YTQyZTg2ZDk4MTk3Y2Q5MDkwODQyM2EuLmYzMzgz
ZTM2NmU5MDkzYTY5NTc3NGY3Nzk3YTUzNmE2Y2E5NDkyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtMjgyMyw2ICsyODIzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTFRleHRFbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9N
V2luZG93Tm90aWZpY2F0aW9ucy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
RE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNTg3NWNmYjY3MzhlODVjN2UwNzE1
NTRiMDU0NmQxMDQ4YjEwNmU2YS4uMTE2NzZkNjdkYTY1YzMwNWMwNDdiMmY4MjhjNzI3MjAwYTBi
OTI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC05NzksNiArOTc5LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RleHRSZXNvdXJjZURl
Y29kZXIuY3BwIFwKICAgICBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAgXAorICAgIG5vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIFwKQEAg
LTIwNzMsNiArMjA3NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIG1hdGhtbC9NYXRoTUxJbmxpbmVD
b250YWluZXJFbGVtZW50LmggXAogICAgIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIFwKICAg
ICBtYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBcCisgICAgbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAog
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAogICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDBjYjRmYmJiZTVl
MTUyMWEzZDIyOWZiNWE5M2NkN2M3Y2FhODY4ZmYuLjUyOGNhMDAzZWM1ZTFmOTFlMzY3Y2JlYWI5
NDhiZTUxYThlNWQyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwNTQsNiArMTA1NCw3IEBACiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsJywKICAgICAgICAgICAgICdsb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmlkbCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25DZW50ZXIuaWRsJywKICAgICAgICAgICAgICdwYWdlL0Fic3RyYWN0Vmlldy5pZGwnLApA
QCAtMjc4NCw2ICsyNzg1LDggQEAKICAgICAgICAgICAgICdtYXRobWwvTWF0aE1MTWF0aEVsZW1l
bnQuaCcsCiAgICAgICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCcsCiAgICAg
ICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgnLAorICAgICAgICAgICAgJ25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAnLAorICAgICAgICAgICAgJ25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oJywKICAgICAgICAgICAgICdub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uLmgnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2Vu
dGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGE2OWVmZThhYjMzOGRiNjU5ZjlhYjEwODJkMTBjMmE3NWY0NWY1M2EuLmJjOThiNzE3
YTRmYjhmNTJlZDdkNjA4NTZjNjIzZGI5ZmM1OTg3YjkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01MzU5OCw2ICs1MzU5OCwxNCBAQAogCQkJ
TmFtZT0ibm90aWZpY2F0aW9ucyIKIAkJCT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxub3RpZmljYXRpb25zXERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXERPTVdp
bmRvd05vdGlmaWNhdGlvbnMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xOb3RpZmljYXRpb24uY3BwIgogCQkJCT4KIAkJ
CTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA3YThiMDYxNDgwNTg4OTBlODA2NjI4Njk2ODk1MDc2YmExY2VlMDIzLi4z
ZmNjMTY3ZTRiOGY0MjdkNDI4NDc1NGE5MjM0NzdiMDZkMmFmNGZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MTEzLDYgKzQx
MTMsOSBAQAogCQlBODc0OEJFMDEyQ0JGMkRDMDAxRkJBNDEgLyogSGFzaFRvb2xzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODc0OEJERjEyQ0JGMkRD
MDAxRkJBNDEgLyogSGFzaFRvb2xzLmggKi87IH07CiAJCUE4ODNERjI3MEYzRDA0NUQwMEYxOUJG
NiAvKiBWaXNpYmxlU2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4ODNERjI1MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0
aW9uLmNwcCAqLzsgfTsKIAkJQTg4M0RGMjgwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxl
Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
ODNERjI2MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTg4NkNGNzYxNTEyMzAxNzAw
RDI3OUY0IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4NkNGNzMxNTEyMzAxNzAwRDI3OUY0IC8qIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwICovOyB9OworCQlBODg2Q0Y3NzE1MTIzMDE3MDBEMjc5
RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4NkNGNzQxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRv
d05vdGlmaWNhdGlvbnMuaCAqLzsgfTsKKwkJQTg4NkNGNzgxNTEyMzAxNzAwRDI3OUY0IC8qIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODg2Q0Y3NTE1MTIzMDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90
aWZpY2F0aW9ucy5pZGwgKi87IH07CiAJCUE4OEFENTJGMDk1MjRCOTIwMDFERDE5NiAvKiBRdWFy
dHpDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4NUQ3QTJGMDg3OUVCQTkwMDZBOTE3MiAvKiBRdWFydHpDb3JlLmZyYW1ld29y
ayAqLzsgfTsKIAkJQTg4REQ0ODcwQjQ2MjlBMzAwQzAyOTkwIC8qIFBhdGhUcmF2ZXJzYWxTdGF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4REQ0
ODYwQjQ2MjlBMzAwQzAyOTkwIC8qIFBhdGhUcmF2ZXJzYWxTdGF0ZS5oICovOyB9OwogCQlBODhE
RDQ4OTBCNDYyOUIwMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4OERENDg4MEI0NjI5QjAwMEMw
Mjk5MCAvKiBQYXRoVHJhdmVyc2FsU3RhdGUuY3BwICovOyB9OwpAQCAtMTA5NjksNiArMTA5NzIs
OSBAQAogCQlBODc0OEJERjEyQ0JGMkRDMDAxRkJBNDEgLyogSGFzaFRvb2xzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhhc2hUb29scy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBODgzREYyNTBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaXNpYmxlU2VsZWN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4M0RGMjYwRjNEMDQ1RDAwRjE5
QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlzaWJsZVNlbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODg2
Q0Y3MzE1MTIzMDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBET01XaW5kb3dOb3RpZmljYXRpb25zLmNw
cDsgcGF0aCA9IG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4ODZDRjc0MTUxMjMwMTcwMEQyNzlGNCAvKiBET01X
aW5kb3dOb3RpZmljYXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERP
TVdpbmRvd05vdGlmaWNhdGlvbnMuaDsgcGF0aCA9IG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90
aWZpY2F0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODg2Q0Y3NTE1MTIz
MDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGw7IHBhdGggPSBub3RpZmljYXRpb25z
L0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBODhERDQ4NjBCNDYyOUEzMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhdGhUcmF2ZXJzYWxTdGF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODhERDQ4ODBCNDYyOUIwMDBDMDI5OTAgLyogUGF0aFRy
YXZlcnNhbFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
dGhUcmF2ZXJzYWxTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4OTk0
MzI2MEI0MjMzODcwMEQ3QzgwMiAvKiBCaXRtYXBJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCaXRtYXBJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTQzOTEsNiArMTQzOTcsOSBAQAogCQkzMzNGNzAzRDBGQjQ5QzE2MDA4RTEyQTYgLyogbm90
aWZpY2F0aW9ucyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJQTg4NkNGNzMxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3Bw
ICovLAorCQkJCUE4ODZDRjc0MTUxMjMwMTcwMEQyNzlGNCAvKiBET01XaW5kb3dOb3RpZmljYXRp
b25zLmggKi8sCisJCQkJQTg4NkNGNzUxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRvd05vdGlm
aWNhdGlvbnMuaWRsICovLAogCQkJCTMzNTAzQ0M2MTAxN0ExQjEwMDNCNDdFMSAvKiBOb3RpZmlj
YXRpb24uY3BwICovLAogCQkJCTMzM0Y3MDRGMEZCNDlDQTIwMDhFMTJBNiAvKiBOb3RpZmljYXRp
b24uaCAqLywKIAkJCQkzMzNGNzA0RTBGQjQ5Q0EyMDA4RTEyQTYgLyogTm90aWZpY2F0aW9uLmlk
bCAqLywKQEAgLTI0NTc1LDYgKzI0NTg0LDcgQEAKIAkJCQlFMUNERTkyMjE1MDE5MTY5MDA4NjJD
QzUgLyogQXN5bmNGaWxlU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTBDRUJGMTE1MDcz
QkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVC
NEMyNEQxNTA5MjM2QzAwQTZFRjM3IC8qIFdlYkNvcmVOU1VSTEV4dHJhcy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTg4NkNGNzcxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRvd05vdGlmaWNhdGlv
bnMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjQ3MjcsNiArMjQ3MzcsNyBAQAogCQkJCTFBQjFBRTdB
MEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJ
CQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyogem9vbU91dEN1cnNvci5wbmcgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCTJEOUYwRTEzMTRGRjFDQkYwMEJBMEZGNyAvKiBsaW5lYXJTUkdCLmljYyBp
biBSZXNvdXJjZXMgKi8sCisJCQkJQTg4NkNGNzgxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRv
d05vdGlmaWNhdGlvbnMuaWRsIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3NTU2LDYgKzI3NTY3LDcg
QEAKIAkJCQlDNUI0QzI0RTE1MDkyMzZDMDBBNkVGMzcgLyogV2ViQ29yZU5TVVJMRXh0cmFzLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJOUIyQjdBQzExNTA5ODUwQTAwODkzMkNDIC8qIE1pY3JvRGF0
YUl0ZW1WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MTU3RjA2MjE1MEI2NTY0MDA2RUFB
QkQgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4
ODZDRjc2MTUxMjMwMTcwMEQyNzlGNCAvKiBET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01X
aW5kb3dOb3RpZmljYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9N
V2luZG93Tm90aWZpY2F0aW9ucy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBmYjNmMjBhNzBkMDk4NDlkOTdm
YWUyMzA1ZjY2MDM2NTFhZDUxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL25v
dGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAKQEAgLTAsMCArMSw5OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkRPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKKworI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJE
T01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlv
bkNlbnRlci5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9NV2luZG93Tm90aWZpY2F0aW9u
czo6RE9NV2luZG93Tm90aWZpY2F0aW9ucyhET01XaW5kb3cgKndpbmRvdykKKyAgICA6IERPTVdp
bmRvd1Byb3BlcnR5KHdpbmRvdy0+ZnJhbWUoKSkKKyAgICAsIG1fd2luZG93KHdpbmRvdykKK3sK
K30KKworRE9NV2luZG93Tm90aWZpY2F0aW9uczo6fkRPTVdpbmRvd05vdGlmaWNhdGlvbnMoKQor
eworfQorCitET01XaW5kb3dOb3RpZmljYXRpb25zKiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpm
cm9tKERPTVdpbmRvdyogd2luZG93KQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzdXBwbGVtZW50TmFtZSwgKCJET01XaW5kb3dOb3RpZmljYXRpb25zIikpOworICAg
IERPTVdpbmRvd05vdGlmaWNhdGlvbnMqIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxET01XaW5k
b3dOb3RpZmljYXRpb25zKj4oU3VwcGxlbWVudDxET01XaW5kb3c+Ojpmcm9tKHdpbmRvdywgc3Vw
cGxlbWVudE5hbWUpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgc3VwcGxlbWVu
dCA9IG5ldyBET01XaW5kb3dOb3RpZmljYXRpb25zKHdpbmRvdyk7CisgICAgICAgIFN1cHBsZW1l
bnQ8RE9NV2luZG93Pjo6cHJvdmlkZVRvKHdpbmRvdywgc3VwcGxlbWVudE5hbWUsIGFkb3B0UHRy
KHN1cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK05vdGlm
aWNhdGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9u
cyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93Tm90aWZpY2F0aW9u
czo6ZnJvbSh3aW5kb3cpLT5lbnN1cmVXZWJraXROb3RpZmljYXRpb25zKCk7Cit9CisKK05vdGlm
aWNhdGlvbkNlbnRlciogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZp
Y2F0aW9ucygpCit7CisgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyKQorICAgICAgICByZXR1
cm4gbV9ub3RpZmljYXRpb25DZW50ZXIuZ2V0KCk7CisKKyAgICBpZiAoIW1fd2luZG93LT5pc0N1
cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBtX3dpbmRvdy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBOb3RpZmljYXRpb25D
bGllbnQqIHByb3ZpZGVyID0gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdl
KTsKKyAgICBpZiAocHJvdmlkZXIpCisgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gTm90
aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUobV93aW5kb3ctPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgcHJvdmlkZXIpOworICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsKK30K
Kwordm9pZCBET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJhbWUoKQoreworICAg
IGlmIChtX25vdGlmaWNhdGlvbkNlbnRlcikgeworICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRl
ci0+ZGlzY29ubmVjdEZyYW1lKCk7CisgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gMDsK
KyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShO
T1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9E
T01XaW5kb3dOb3RpZmljYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RP
TVdpbmRvd05vdGlmaWNhdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODk5ZTAwYzk2YmUzMDk5ZTk3MThk
Zjg0NGFkODVhOTJlZjIzMjMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgKQEAgLTAsMCArMSw2MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBET01XaW5kb3dOb3Rp
ZmljYXRpb25zX2gKKyNkZWZpbmUgRE9NV2luZG93Tm90aWZpY2F0aW9uc19oCisKKyNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQorCisjaW5j
bHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
I2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRE9NV2luZG93OworY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOworY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKKworY2xhc3MgRE9NV2luZG93Tm90aWZpY2F0aW9ucyA6IHB1YmxpYyBT
dXBwbGVtZW50PERPTVdpbmRvdz4sIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+RE9NV2luZG93Tm90aWZpY2F0aW9ucygpOworCisgICAgc3RhdGljIE5v
dGlmaWNhdGlvbkNlbnRlciogd2Via2l0Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsKKyAgICBz
dGF0aWMgRE9NV2luZG93Tm90aWZpY2F0aW9ucyogZnJvbShET01XaW5kb3cqKTsKKworcHJpdmF0
ZToKKyAgICBET01XaW5kb3dOb3RpZmljYXRpb25zKERPTVdpbmRvdyopOworCisgICAgTm90aWZp
Y2F0aW9uQ2VudGVyKiBlbnN1cmVXZWJraXROb3RpZmljYXRpb25zKCk7CisgICAgdm9pZCBkaXNj
b25uZWN0RnJhbWUoKSBPVkVSUklERTsKKworICAgIFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+
IG1fbm90aWZpY2F0aW9uQ2VudGVyOworICAgIERPTVdpbmRvdyogbV93aW5kb3c7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
KworI2VuZGlmIC8vIERPTVdpbmRvd05vdGlmaWNhdGlvbnNfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDU3YjY2NmI2ZTNkNzQ3ZTU5NzQ0MGM0ZjNlYmM5ZjE2N2JlMzNmOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1
bGUgd2luZG93IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU5PVElG
SUNBVElPTlN8TEVHQUNZX05PVElGSUNBVElPTlMsCisgICAgICAgIFN1cHBsZW1lbnRhbD1ET01X
aW5kb3cKKyAgICBdIERPTVdpbmRvd05vdGlmaWNhdGlvbnMgeworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5v
dGlmaWNhdGlvbnM7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4
IGMxNDE2NzM4ZDc2MDE5OTA0ZjNmYTEwNDRkYzYwNjYzMmIwNGI2N2YuLjA5N2E1ZTU4MDJiYmRm
Y2Q2OWYyNGFhZGRhODlhZTJjYTY5MTcwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
QEAgLTcyLDggKzcyLDYgQEAKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgotI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbkNlbnRlci5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFn
ZVRyYW5zaXRpb25FdmVudC5oIgpAQCAtNDE4LDkgKzQxNiw2IEBAIERPTVdpbmRvdzo6fkRPTVdp
bmRvdygpCiAgICAgICAgIEFTU0VSVCghbV9zZXNzaW9uU3RvcmFnZSk7CiAgICAgICAgIEFTU0VS
VCghbV9sb2NhbFN0b3JhZ2UpOwogICAgICAgICBBU1NFUlQoIW1fYXBwbGljYXRpb25DYWNoZSk7
Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9O
UykKLSAgICAgICAgQVNTRVJUKCFtX25vdGlmaWNhdGlvbnMpOwotI2VuZGlmCiAjaWYgRU5BQkxF
KEJMT0IpCiAgICAgICAgIEFTU0VSVCghbV9kb21VUkwpOwogI2VuZGlmCkBAIC00NzgsMTIgKzQ3
Myw2IEBAIHZvaWQgRE9NV2luZG93Ojp3aWxsRGV0YWNoUGFnZSgpCiB7CiAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChtX2ZyYW1lLCB0aGlzKTsKIAot
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMp
Ci0gICAgLy8gQ2xlYXJpbmcgTm90aWZpY2F0aW9ucyByZXF1ZXN0cyBpbnZvbHZlcyBhY2Nlc3Np
bmcgdGhlIGNsaWVudCBzbyBpdCBtdXN0IGJlIGRvbmUKLSAgICAvLyBiZWZvcmUgdGhlIGZyYW1l
IGlzIGRldGFjaGVkLgotICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCi0KICAgICBI
YXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIHN0b3AgPSBtX3Byb3BlcnRpZXMu
ZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PERPTVdpbmRvd1Byb3BlcnR5Kj46Oml0ZXJhdG9yIGl0
ID0gbV9wcm9wZXJ0aWVzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCiAgICAgICAgICgqaXQp
LT53aWxsRGV0YWNoUGFnZSgpOwpAQCAtNTI3LDE1ICs1MTYsNiBAQCB2b2lkIERPTVdpbmRvdzo6
ZGlzY29ubmVjdERPTVdpbmRvd1Byb3BlcnRpZXMoKQogICAgIEhhc2hTZXQ8RE9NV2luZG93UHJv
cGVydHkqPjo6aXRlcmF0b3Igc3RvcCA9IG1fcHJvcGVydGllcy5lbmQoKTsKICAgICBmb3IgKEhh
c2hTZXQ8RE9NV2luZG93UHJvcGVydHkqPjo6aXRlcmF0b3IgaXQgPSBtX3Byb3BlcnRpZXMuYmVn
aW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKICAgICAgICAgKCppdCktPmRpc2Nvbm5lY3RGcmFtZSgp
OwotCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FU
SU9OUykKLSAgICAvLyBGSVhNRTogTm90aWZpY2F0aW9ucyBzaG91bGRuJ3QgaGF2ZSBkaWZmZXJl
bnQgZGlzY29ubmVjdGlvbiBsb2dpYyB0aGFuCi0gICAgLy8gdGhlIHJlc3Qgb2YgdGhlIERPTVdp
bmRvd1Byb3BlcnRpZXMuCi0gICAgLy8gVGhlcmUgaXMgY3VycmVudGx5IG5vIHdheSB0byByZWNv
bm5lY3QgdGhlbSBpbiByZXN1bWVGcm9tUGFnZUNhY2hlKCkgc28KLSAgICAvLyB0aGV5IHdpbGwg
YmUgYnJva2VuIGFmdGVyIHJldHVybmluZyB0byBhIGNhY2hlZCBwYWdlLgotICAgIC8vIFRoaXMg
c2hvdWxkIGJlIGZpeGVkIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc5NjM2Ci0gICAgcmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBET01XaW5kb3c6OnJlY29ubmVjdERPTVdpbmRvd1Byb3BlcnRpZXMoKQpAQCAtNTcxLDEx
ICs1NTEsNiBAQCB2b2lkIERPTVdpbmRvdzo6Y2xlYXJET01XaW5kb3dQcm9wZXJ0aWVzKCkKICAg
ICBtX3Nlc3Npb25TdG9yYWdlID0gMDsKICAgICBtX2xvY2FsU3RvcmFnZSA9IDA7CiAgICAgbV9h
cHBsaWNhdGlvbkNhY2hlID0gMDsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxF
KExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgIC8vIEZJWE1FOiBOb3RpZmljYXRpb25zIHNob3Vs
ZG4ndCBoYXZlIGRpZmZlcmVudCBkaXNjb25uZWN0aW9uIGxvZ2ljIHRoYW4KLSAgICAvLyB0aGUg
cmVzdCBvZiB0aGUgRE9NV2luZG93UHJvcGVydGllcy4KLSAgICByZXNldE5vdGlmaWNhdGlvbnMo
KTsKLSNlbmRpZgogI2lmIEVOQUJMRShCTE9CKQogICAgIG1fZG9tVVJMID0gMDsKICNlbmRpZgpA
QCAtNzg0LDM4ICs3NTksNiBAQCBTdG9yYWdlKiBET01XaW5kb3c6OmxvY2FsU3RvcmFnZShFeGNl
cHRpb25Db2RlJiBlYykgY29uc3QKICAgICByZXR1cm4gbV9sb2NhbFN0b3JhZ2UuZ2V0KCk7CiB9
CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJ
T05TKQotTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3c6OndlYmtpdE5vdGlmaWNhdGlvbnMo
KSBjb25zdAotewotICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCi0gICAg
ICAgIHJldHVybiAwOwotICAgIGlmIChtX25vdGlmaWNhdGlvbnMpCi0gICAgICAgIHJldHVybiBt
X25vdGlmaWNhdGlvbnMuZ2V0KCk7Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5k
b2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIAot
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0KLSAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3ZpZGVyID0gTm90aWZp
Y2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKLSAgICBpZiAocHJvdmlkZXIpIAot
ICAgICAgICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShkb2N1
bWVudCwgcHJvdmlkZXIpOyAgICAKLSAgICAgIAotICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMu
Z2V0KCk7Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpyZXNldE5vdGlmaWNhdGlvbnMoKQotewotICAg
IGlmICghbV9ub3RpZmljYXRpb25zKQotICAgICAgICByZXR1cm47Ci0gICAgbV9ub3RpZmljYXRp
b25zLT5kaXNjb25uZWN0RnJhbWUoKTsKLSAgICBtX25vdGlmaWNhdGlvbnMgPSAwOwotfQotI2Vu
ZGlmCi0KIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIGNvbnN0IFN0cmluZyYgdGFy
Z2V0T3JpZ2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
TWVzc2FnZVBvcnRBcnJheSBwb3J0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IGJkODFi
NDhmNTZlZjE4MGE5YWFkYjA4MDUzMTFhMDIyMDQyY2I4MDEuLjcwMTRkOTZiZDA3MDk3NThlMzYx
M2U2N2ZmYTdiMDZiM2U4ODcxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtNTYsNyAr
NTYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiAg
ICAgY2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgTm90aWZpY2F0
aW9uQ2VudGVyOwogICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAg
Y2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKQEAgLTM1NiwxMyArMzU1LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBTdG9yYWdlKiBzZXNzaW9uU3RvcmFnZShFeGNlcHRpb25Db2RlJikg
Y29uc3Q7CiAgICAgICAgIFN0b3JhZ2UqIGxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJikgY29u
c3Q7CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklD
QVRJT05TKQotICAgICAgICBOb3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMo
KSBjb25zdDsKLSAgICAgICAgLy8gUmVuZGVycyB3ZWJraXROb3RpZmljYXRpb25zIG9iamVjdCBz
YWZlbHkgaW5vcGVyYWJsZSwgZGlzY29ubmVjdHMKLSAgICAgICAgLy8gaWYgZnJvbSBlbWJlZGRl
ci1wcm92aWRlZCBOb3RpZmljYXRpb25DbGllbnQuCi0gICAgICAgIHZvaWQgcmVzZXROb3RpZmlj
YXRpb25zKCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShRVU9UQSkKICAgICAgICAgU3RvcmFnZUlu
Zm8qIHdlYmtpdFN0b3JhZ2VJbmZvKCkgY29uc3Q7CiAjZW5kaWYKQEAgLTQ1MCwxMCArNDQyLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTdG9yYWdlPiBt
X2xvY2FsU3RvcmFnZTsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8RE9NQXBwbGljYXRpb25DYWNo
ZT4gbV9hcHBsaWNhdGlvbkNhY2hlOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVO
QUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICAgICAgbXV0YWJsZSBSZWZQdHI8Tm90aWZp
Y2F0aW9uQ2VudGVyPiBtX25vdGlmaWNhdGlvbnM7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShXRUJf
VElNSU5HKQogICAgICAgICBtdXRhYmxlIFJlZlB0cjxQZXJmb3JtYW5jZT4gbV9wZXJmb3JtYW5j
ZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IGYyYjkwY2U1ODEwZmU5
NjMwNzhlNTQ4MTJhMTgwOTBiZGU4MmM3MmYuLjBlZmE3YmYxMjQ4OTEwOGJhYTUzODdlMjE3MTdl
ZjYzNmNiZjFjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE3MCwxMCArMTcw
LDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFi
bGVkQXRSdW50aW1lXSBTdG9yYWdlIGxvY2FsU3RvcmFnZQogICAgICAgICAgICAgZ2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOwogCi0jaWYgKGRlZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMp
ICYmIEVOQUJMRV9OT1RJRklDQVRJT05TKSB8fCAoZGVmaW5lZChFTkFCTEVfTEVHQUNZX05PVElG
SUNBVElPTlMpICYmIEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJr
aXROb3RpZmljYXRpb25zOwotI2VuZGlmCi0KICNpZiBkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElP
Tl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMKICAgICAgICAgLy8gVGhpcyBp
cyB0aGUgaW50ZXJmYWNlIG9yaWVudGF0aW9uIGluIGRlZ3JlZXMuIFNvbWUgZXhhbXBsZXMgYXJl
OgogICAgICAgICAvLyAgMCBpcyBzdHJhaWdodCB1cDsgLTkwIGlzIHdoZW4gdGhlIGRldmljZSBp
cyByb3RhdGVkIDkwIGNsb2Nrd2lzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggYjMxMzY0OWJl
MmQ3ZWFkMmEyNjM3MTBhMDNlMzdkMDhjYWQ1MGYzOC4uZmJkMmRiMzk2MjM3NzliNjllNDk4ZTMy
ZDU0NzkzYjI1ZWY3Yzg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTY4NywxMSArNjg3LDYg
QEAgdm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogICAgIGlmIChGcmFtZSogcGFyZW50ID0g
dHJlZSgpLT5wYXJlbnQoKSkKICAgICAgICAgcGFyZW50LT5sb2FkZXIoKS0+Y2hlY2tMb2FkQ29t
cGxldGUoKTsKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05P
VElGSUNBVElPTlMpCi0gICAgaWYgKG1fZG9tV2luZG93KQotICAgICAgICBtX2RvbVdpbmRvdy0+
cmVzZXROb3RpZmljYXRpb25zKCk7Ci0jZW5kaWYKLQogICAgIEhhc2hTZXQ8RnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmVu
ZCgpOwogICAgIGZvciAoSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0
b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQp
CiAgICAgICAgICgqaXQpLT53aWxsRGV0YWNoUGFnZSgpOwpAQCAtNzM2LDEyICs3MzEsNiBAQCB2
b2lkIEZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KCkKICAgICAgICAgICAg
ICBtX3BhZ2UtPmRlY3JlbWVudEZyYW1lQ291bnQoKTsKICAgICAgICAgfQogCi0gICAgICAgIGlm
IChtX2RvbVdpbmRvdykgewotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVH
QUNZX05PVElGSUNBVElPTlMpCi0gICAgICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXROb3RpZmlj
YXRpb25zKCk7Ci0jZW5kaWYKLSAgICAgICAgfQotCiAgICAgICAgIEhhc2hTZXQ8RnJhbWVEZXN0
cnVjdGlvbk9ic2VydmVyKj46Oml0ZXJhdG9yIHN0b3AgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJz
LmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKj46
Oml0ZXJhdG9yIGl0ID0gbV9kZXN0cnVjdGlvbk9ic2VydmVycy5iZWdpbigpOyBpdCAhPSBzdG9w
OyArK2l0KQogICAgICAgICAgICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7Cg==
</data>
<flag name="commit-queue"
          id="135732"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132178</attachid>
            <date>2012-03-15 19:35:39 -0700</date>
            <delta_ts>2012-03-16 05:52:37 -0700</delta_ts>
            <desc>hopefully fixed the mac build</desc>
            <filename>bug-79636-20120316113538.patch</filename>
            <type>text/plain</type>
            <size>29079</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwOTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTA3NDY2NGFkNWU5Y2Iw
ZjQyOGY3ZjY2OGU1NWNmMWQ5NWVlNzUzYS4uOGE2Y2I4Y2EyMjQ4NTZjMGY3NTliNmM4MGQyM2E5
MjljNGM1M2Q1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBGb3IgV2ViS2l0
IG1vZHVsYXJpemF0aW9uLCB0aGlzIHBhdGNoIG1vdmVzIE5vdGlmaWNhdGlvbnMtcmVsYXRlZCBB
UElzCisgICAgICAgIGZyb20gRE9NV2luZG93LmlkbCB0byBET01XaW5kb3dOb3RpZmljYXRpb25z
LmlkbC4KKworICAgICAgICBUZXN0czogZmFzdC9ub3RpZmljYXRpb25zLyogKE5vIGNoYW5nZSBp
biB0ZXN0IHJlc3VsdHMpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy57aCxjcHAsaWRsfS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOiBEaXR0by4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6IERpdHRvLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERp
dHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IEFkZGVkIG1hbmdsZWQgc2lnbmF0dXJlcyBvZiB3ZWJraXROb3RpZmljYXRpb25zKCkuCisKKyAg
ICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0
aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dOb3RpZmljYXRpb25zOjp+RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJh
bWUpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93Tm90aWZpY2F0aW9u
cyk6CisgICAgICAgICogbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDog
QWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IFJlbW92ZWQgRU5BQkxFKE5P
VElGSUNBVElPTlMpLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6d2lsbERldGFjaFBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpjbGVhcik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuaWRsOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6d2lsbERldGFjaFBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQpOgorCiAy
MDEyLTAzLTE1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBbV2luQ2Fpcm9dIENvcnJlY3QgPHd0Zi8qLmg+IGluY2x1ZGUgcGF0aHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQyZmEwMDIxMGZkZDczYTg0Y2IzYjZlMGZmY2EzYTNkZTg0MWQ0MTYuLjc0
NjVhNjFkZTFmMmI2OWMyNzU3MjJmNzQ2ZTgxZTQxMzVkNTMxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xNjIyLDEyICsxNjIyLDE0IEBAIEVORElGICgpCiAKIElGIChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgbm90aWZp
Y2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcAogICAgICAgICBub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25Db250cm9sbGVyLmNwcAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAK
ICAgICApCiAKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUworICAgICAgICBub3Rp
ZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCiAgICAgICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmlkbAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5pZGwKICAgICApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBjNDBmZmJm
MmRjOWRmNmU3NzczNjY4Nzk2ZDBjN2ViNGI4OTBjYzg3Li5hYzFjNzE4ZTNiNDcxZmE0YTE0M2Y1
MTQ2NjZhZjg4YmI2NzZlNWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM1
Niw2ICszNTYsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9pbnNwZWN0b3Iv
U2NyaXB0UHJvZmlsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2Zp
bGVOb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRp
b25DYWNoZS5pZGwgXAorICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
aWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvQWJzdHJhY3RWaWV3LmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkKaW5kZXggZDUwNDNkODM2ZTliODlkYjhiZmI1M2YwOWMxMTJlMTkxMmFm
ZGQ1ZS4uYjc3MDVkYjRmMDI5OTg3NzFiNWZiOGNhZWE2NmE1M2YxZjVmZTNmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtMzc1LDYgKzM3NSw3IEBAIElETF9CSU5ESU5HUyArPSBc
CiAgICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkJFBXRC9pbnNw
ZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsIFwKICAgICAkJFBXRC9sb2FkZXIvYXBwY2FjaGUv
RE9NQXBwbGljYXRpb25DYWNoZS5pZGwgXAorICAgICQkUFdEL25vdGlmaWNhdGlvbnMvRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQkUFdEL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmlkbCBcCiAgICAgJCRQV0Qvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRs
IFwKICAgICAkJFBXRC9wYWdlL0JhckluZm8uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDA3MGI4N2VmOTdlNmEwYjg4YTQyZTg2ZDk4MTk3Y2Q5MDkwODQyM2EuLmYzMzgz
ZTM2NmU5MDkzYTY5NTc3NGY3Nzk3YTUzNmE2Y2E5NDkyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtMjgyMyw2ICsyODIzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTFRleHRFbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9N
V2luZG93Tm90aWZpY2F0aW9ucy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
RE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNTg3NWNmYjY3MzhlODVjN2UwNzE1
NTRiMDU0NmQxMDQ4YjEwNmU2YS4uMTE2NzZkNjdkYTY1YzMwNWMwNDdiMmY4MjhjNzI3MjAwYTBi
OTI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC05NzksNiArOTc5LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RleHRSZXNvdXJjZURl
Y29kZXIuY3BwIFwKICAgICBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAgXAorICAgIG5vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIFwKQEAg
LTIwNzMsNiArMjA3NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIG1hdGhtbC9NYXRoTUxJbmxpbmVD
b250YWluZXJFbGVtZW50LmggXAogICAgIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIFwKICAg
ICBtYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBcCisgICAgbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAog
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAogICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDBjYjRmYmJiZTVl
MTUyMWEzZDIyOWZiNWE5M2NkN2M3Y2FhODY4ZmYuLjUyOGNhMDAzZWM1ZTFmOTFlMzY3Y2JlYWI5
NDhiZTUxYThlNWQyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwNTQsNiArMTA1NCw3IEBACiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsJywKICAgICAgICAgICAgICdsb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmlkbCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25DZW50ZXIuaWRsJywKICAgICAgICAgICAgICdwYWdlL0Fic3RyYWN0Vmlldy5pZGwnLApA
QCAtMjc4NCw2ICsyNzg1LDggQEAKICAgICAgICAgICAgICdtYXRobWwvTWF0aE1MTWF0aEVsZW1l
bnQuaCcsCiAgICAgICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCcsCiAgICAg
ICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgnLAorICAgICAgICAgICAgJ25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAnLAorICAgICAgICAgICAgJ25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oJywKICAgICAgICAgICAgICdub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uLmgnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2Vu
dGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGE2OWVmZThhYjMzOGRiNjU5ZjlhYjEwODJkMTBjMmE3NWY0NWY1M2EuLmJjOThiNzE3
YTRmYjhmNTJlZDdkNjA4NTZjNjIzZGI5ZmM1OTg3YjkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01MzU5OCw2ICs1MzU5OCwxNCBAQAogCQkJ
TmFtZT0ibm90aWZpY2F0aW9ucyIKIAkJCT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxub3RpZmljYXRpb25zXERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXERPTVdp
bmRvd05vdGlmaWNhdGlvbnMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xOb3RpZmljYXRpb24uY3BwIgogCQkJCT4KIAkJ
CTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA3YThiMDYxNDgwNTg4OTBlODA2NjI4Njk2ODk1MDc2YmExY2VlMDIzLi5h
NzM1NDY0ZWE3MWY2Y2M3N2QyZmI5ZDYwNWFhMWE0NzZmMDZkYjkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MTEzLDYgKzQx
MTMsOCBAQAogCQlBODc0OEJFMDEyQ0JGMkRDMDAxRkJBNDEgLyogSGFzaFRvb2xzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODc0OEJERjEyQ0JGMkRD
MDAxRkJBNDEgLyogSGFzaFRvb2xzLmggKi87IH07CiAJCUE4ODNERjI3MEYzRDA0NUQwMEYxOUJG
NiAvKiBWaXNpYmxlU2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4ODNERjI1MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0
aW9uLmNwcCAqLzsgfTsKIAkJQTg4M0RGMjgwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxl
Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
ODNERjI2MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTg4NkNGNzYxNTEyMzAxNzAw
RDI3OUY0IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4NkNGNzMxNTEyMzAxNzAwRDI3OUY0IC8qIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwICovOyB9OworCQlBODg2Q0Y3NzE1MTIzMDE3MDBEMjc5
RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4NkNGNzQxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRv
d05vdGlmaWNhdGlvbnMuaCAqLzsgfTsKIAkJQTg4QUQ1MkYwOTUyNEI5MjAwMUREMTk2IC8qIFF1
YXJ0ekNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTg1RDdBMkYwODc5RUJBOTAwNkE5MTcyIC8qIFF1YXJ0ekNvcmUuZnJhbWV3
b3JrICovOyB9OwogCQlBODhERDQ4NzBCNDYyOUEzMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODhE
RDQ4NjBCNDYyOUEzMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmggKi87IH07CiAJCUE4
OERENDg5MEI0NjI5QjAwMEMwMjk5MCAvKiBQYXRoVHJhdmVyc2FsU3RhdGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4REQ0ODgwQjQ2MjlCMDAw
QzAyOTkwIC8qIFBhdGhUcmF2ZXJzYWxTdGF0ZS5jcHAgKi87IH07CkBAIC0xMDkwOCw2ICsxMDkx
MCw3IEBACiAJCUE4NjYyOUNDMDlEQTJCNDcwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW91c2VFdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NjYyOUNEMDlEQTJCNDcwMDk2MzNBNSAvKiBK
U0tleWJvYXJkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTS2V5
Ym9hcmRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODY2MjlDRTA5REEy
QjQ3MDA5NjMzQTUgLyogSlNLZXlib2FyZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0tleWJvYXJkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBODZFODc3MTE1MTJEQ0VBMDBBRDE0QzEgLyogRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGw7IHBhdGggPSBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODcxRDQ0QzBBMTI3Q0JDMDBCMTJBNjggLyogSFRN
TFBsdWdJbkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQ
bHVnSW5FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NzFENDREMEEx
MjdDQkMwMEIxMkE2OCAvKiBIVE1MUGx1Z0luRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBsdWdJbkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBODcxRDQ0RTBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTFBhcmFtRWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBhcmFtRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA5NjksNiArMTA5NzIsOCBAQAog
CQlBODc0OEJERjEyQ0JGMkRDMDAxRkJBNDEgLyogSGFzaFRvb2xzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEhhc2hUb29scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBODgzREYyNTBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaXNpYmxlU2VsZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4M0RGMjYwRjNEMDQ1RDAwRjE5QkY2IC8q
IFZpc2libGVTZWxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlz
aWJsZVNlbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODg2Q0Y3MzE1
MTIzMDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcDsgcGF0
aCA9IG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE4ODZDRjc0MTUxMjMwMTcwMEQyNzlGNCAvKiBET01XaW5kb3dO
b3RpZmljYXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERPTVdpbmRv
d05vdGlmaWNhdGlvbnMuaDsgcGF0aCA9IG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODhERDQ4NjBCNDYyOUEzMDBD
MDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBhdGhUcmF2ZXJzYWxTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBODhERDQ4ODBCNDYyOUIwMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdGhUcmF2ZXJzYWxTdGF0ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4OTk0MzI2MEI0MjMzODcwMEQ3QzgwMiAv
KiBCaXRtYXBJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCaXRtYXBJ
bWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzOTEsNiArMTQzOTYsOSBA
QAogCQkzMzNGNzAzRDBGQjQ5QzE2MDA4RTEyQTYgLyogbm90aWZpY2F0aW9ucyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTg2RTg3NzExNTEyRENFQTAw
QUQxNEMxIC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsICovLAorCQkJCUE4ODZDRjczMTUx
MjMwMTcwMEQyNzlGNCAvKiBET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCAqLywKKwkJCQlBODg2
Q0Y3NDE1MTIzMDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oICovLAogCQkJ
CTMzNTAzQ0M2MTAxN0ExQjEwMDNCNDdFMSAvKiBOb3RpZmljYXRpb24uY3BwICovLAogCQkJCTMz
M0Y3MDRGMEZCNDlDQTIwMDhFMTJBNiAvKiBOb3RpZmljYXRpb24uaCAqLywKIAkJCQkzMzNGNzA0
RTBGQjQ5Q0EyMDA4RTEyQTYgLyogTm90aWZpY2F0aW9uLmlkbCAqLywKQEAgLTI0NTc1LDYgKzI0
NTgzLDcgQEAKIAkJCQlFMUNERTkyMjE1MDE5MTY5MDA4NjJDQzUgLyogQXN5bmNGaWxlU3RyZWFt
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTBDRUJGMTE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxh
YmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVCNEMyNEQxNTA5MjM2QzAwQTZFRjM3
IC8qIFdlYkNvcmVOU1VSTEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTg4NkNGNzcxNTEy
MzAxNzAwRDI3OUY0IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtMjc1NTYsNiArMjc1NjUsNyBAQAogCQkJCUM1QjRDMjRFMTUwOTIzNkMwMEE2RUYzNyAvKiBX
ZWJDb3JlTlNVUkxFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5QjJCN0FDMTE1MDk4NTBB
MDA4OTMyQ0MgLyogTWljcm9EYXRhSXRlbVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcx
NTdGMDYyMTUwQjY1NjQwMDZFQUFCRCAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQTg4NkNGNzYxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRvd05v
dGlmaWNhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
MGZiM2YyMGE3MGQwOTg0OWQ5N2ZhZTIzMDVmNjYwMzY1MWFkNTEyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNw
cApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5o
IgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FU
SU9OUykKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitE
T01XaW5kb3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dOb3RpZmljYXRpb25zKERPTVdpbmRvdyAq
d2luZG93KQorICAgIDogRE9NV2luZG93UHJvcGVydHkod2luZG93LT5mcmFtZSgpKQorICAgICwg
bV93aW5kb3cod2luZG93KQoreworfQorCitET01XaW5kb3dOb3RpZmljYXRpb25zOjp+RE9NV2lu
ZG93Tm90aWZpY2F0aW9ucygpCit7Cit9CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnMqIERPTVdp
bmRvd05vdGlmaWNhdGlvbnM6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHN1cHBsZW1lbnROYW1lLCAoIkRPTVdpbmRvd05v
dGlmaWNhdGlvbnMiKSk7CisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyogc3VwcGxlbWVudCA9
IHN0YXRpY19jYXN0PERPTVdpbmRvd05vdGlmaWNhdGlvbnMqPihTdXBwbGVtZW50PERPTVdpbmRv
dz46OmZyb20od2luZG93LCBzdXBwbGVtZW50TmFtZSkpOworICAgIGlmICghc3VwcGxlbWVudCkg
eworICAgICAgICBzdXBwbGVtZW50ID0gbmV3IERPTVdpbmRvd05vdGlmaWNhdGlvbnMod2luZG93
KTsKKyAgICAgICAgU3VwcGxlbWVudDxET01XaW5kb3c+Ojpwcm92aWRlVG8od2luZG93LCBzdXBw
bGVtZW50TmFtZSwgYWRvcHRQdHIoc3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1cm4gc3Vw
cGxlbWVudDsKK30KKworTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25z
Ojp3ZWJraXROb3RpZmljYXRpb25zKERPTVdpbmRvdyogd2luZG93KQoreworICAgIHJldHVybiBE
T01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKHdpbmRvdyktPmVuc3VyZVdlYmtpdE5vdGlmaWNh
dGlvbnMoKTsKK30KKworTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25z
OjplbnN1cmVXZWJraXROb3RpZmljYXRpb25zKCkKK3sKKyAgICBpZiAobV9ub3RpZmljYXRpb25D
ZW50ZXIpCisgICAgICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRlci5nZXQoKTsKKworICAg
IGlmICghbV93aW5kb3ctPmlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fd2luZG93LT5kb2N1bWVudCgp
OworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgUGFnZSogcGFn
ZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIE5vdGlmaWNhdGlvbkNsaWVudCogcHJvdmlkZXIgPSBOb3RpZmljYXRpb25Db250cm9s
bGVyOjpjbGllbnRGcm9tKHBhZ2UpOworICAgIGlmIChwcm92aWRlcikKKyAgICAgICAgbV9ub3Rp
ZmljYXRpb25DZW50ZXIgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShtX3dpbmRvdy0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBwcm92aWRlcik7CisgICAgcmV0dXJuIG1fbm90aWZpY2F0
aW9uQ2VudGVyLmdldCgpOworfQorCit2b2lkIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmRpc2Nv
bm5lY3RGcmFtZSgpCit7CisgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyKSB7CisgICAgICAg
IG1fbm90aWZpY2F0aW9uQ2VudGVyLT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICAgICAgbV9ub3Rp
ZmljYXRpb25DZW50ZXIgPSAwOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBiL1NvdXJjZS9XZWJD
b3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4
OTllMDBjOTZiZTMwOTllOTcxOGRmODQ0YWQ4NWE5MmVmMjMyMzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaApA
QCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIERPTVdpbmRvd05vdGlmaWNhdGlvbnNfaAorI2RlZmluZSBET01XaW5kb3dOb3RpZmlj
YXRpb25zX2gKKworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05P
VElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJET01XaW5kb3dQcm9wZXJ0eS5oIgorI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBET01XaW5kb3c7CitjbGFzcyBOb3RpZmljYXRpb25DZW50
ZXI7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBET01XaW5kb3dOb3Rp
ZmljYXRpb25zIDogcHVibGljIFN1cHBsZW1lbnQ8RE9NV2luZG93PiwgcHVibGljIERPTVdpbmRv
d1Byb3BlcnR5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5ET01XaW5kb3dOb3RpZmljYXRpb25z
KCk7CisKKyAgICBzdGF0aWMgTm90aWZpY2F0aW9uQ2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25z
KERPTVdpbmRvdyopOworICAgIHN0YXRpYyBET01XaW5kb3dOb3RpZmljYXRpb25zKiBmcm9tKERP
TVdpbmRvdyopOworCitwcml2YXRlOgorICAgIERPTVdpbmRvd05vdGlmaWNhdGlvbnMoRE9NV2lu
ZG93Kik7CisKKyAgICBOb3RpZmljYXRpb25DZW50ZXIqIGVuc3VyZVdlYmtpdE5vdGlmaWNhdGlv
bnMoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpIE9WRVJSSURFOworCisgICAgUmVmUHRy
PE5vdGlmaWNhdGlvbkNlbnRlcj4gbV9ub3RpZmljYXRpb25DZW50ZXI7CisgICAgRE9NV2luZG93
KiBtX3dpbmRvdzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShOT1RJRklDQVRJT05TKQorCisjZW5kaWYgLy8gRE9NV2luZG93Tm90aWZpY2F0aW9uc19o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlm
aWNhdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTdiNjY2YjZlM2Q3NDdlNTk3NDQwYzRmM2ViYzlm
MTY3YmUzM2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9u
cy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAg
ICAgQ29uZGl0aW9uYWw9Tk9USUZJQ0FUSU9OU3xMRUdBQ1lfTk9USUZJQ0FUSU9OUywKKyAgICAg
ICAgU3VwcGxlbWVudGFsPURPTVdpbmRvdworICAgIF0gRE9NV2luZG93Tm90aWZpY2F0aW9ucyB7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBOb3RpZmlj
YXRpb25DZW50ZXIgd2Via2l0Tm90aWZpY2F0aW9uczsKKyAgICB9OworCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKaW5kZXggYzE0MTY3MzhkNzYwMTk5MDRmM2ZhMTA0NGRjNjA2NjMyYjA0
YjY3Zi4uMDk3YTVlNTgwMmJiZGZjZDY5ZjI0YWFkZGE4OWFlMmNhNjkxNzBlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNzIsOCArNzIsNiBAQAogI2luY2x1ZGUgIk1lZGlhUXVl
cnlNYXRjaGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdh
dG9yLmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCi0jaW5jbHVkZSAiTm90aWZp
Y2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3Jv
dXAuaCIKICNpbmNsdWRlICJQYWdlVHJhbnNpdGlvbkV2ZW50LmgiCkBAIC00MTgsOSArNDE2LDYg
QEAgRE9NV2luZG93Ojp+RE9NV2luZG93KCkKICAgICAgICAgQVNTRVJUKCFtX3Nlc3Npb25TdG9y
YWdlKTsKICAgICAgICAgQVNTRVJUKCFtX2xvY2FsU3RvcmFnZSk7CiAgICAgICAgIEFTU0VSVCgh
bV9hcHBsaWNhdGlvbkNhY2hlKTsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxF
KExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgICAgICBBU1NFUlQoIW1fbm90aWZpY2F0aW9ucyk7
Ci0jZW5kaWYKICNpZiBFTkFCTEUoQkxPQikKICAgICAgICAgQVNTRVJUKCFtX2RvbVVSTCk7CiAj
ZW5kaWYKQEAgLTQ3OCwxMiArNDczLDYgQEAgdm9pZCBET01XaW5kb3c6OndpbGxEZXRhY2hQYWdl
KCkKIHsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93RGlzY2FyZGVk
KG1fZnJhbWUsIHRoaXMpOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShM
RUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICAvLyBDbGVhcmluZyBOb3RpZmljYXRpb25zIHJlcXVl
c3RzIGludm9sdmVzIGFjY2Vzc2luZyB0aGUgY2xpZW50IHNvIGl0IG11c3QgYmUgZG9uZQotICAg
IC8vIGJlZm9yZSB0aGUgZnJhbWUgaXMgZGV0YWNoZWQuCi0gICAgcmVzZXROb3RpZmljYXRpb25z
KCk7Ci0jZW5kaWYKLQogICAgIEhhc2hTZXQ8RE9NV2luZG93UHJvcGVydHkqPjo6aXRlcmF0b3Ig
c3RvcCA9IG1fcHJvcGVydGllcy5lbmQoKTsKICAgICBmb3IgKEhhc2hTZXQ8RE9NV2luZG93UHJv
cGVydHkqPjo6aXRlcmF0b3IgaXQgPSBtX3Byb3BlcnRpZXMuYmVnaW4oKTsgaXQgIT0gc3RvcDsg
KytpdCkKICAgICAgICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7CkBAIC01MjcsMTUgKzUxNiw2
IEBAIHZvaWQgRE9NV2luZG93OjpkaXNjb25uZWN0RE9NV2luZG93UHJvcGVydGllcygpCiAgICAg
SGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBzdG9wID0gbV9wcm9wZXJ0aWVz
LmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBp
dCA9IG1fcHJvcGVydGllcy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQogICAgICAgICAoKml0
KS0+ZGlzY29ubmVjdEZyYW1lKCk7Ci0KLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5B
QkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgIC8vIEZJWE1FOiBOb3RpZmljYXRpb25zIHNo
b3VsZG4ndCBoYXZlIGRpZmZlcmVudCBkaXNjb25uZWN0aW9uIGxvZ2ljIHRoYW4KLSAgICAvLyB0
aGUgcmVzdCBvZiB0aGUgRE9NV2luZG93UHJvcGVydGllcy4KLSAgICAvLyBUaGVyZSBpcyBjdXJy
ZW50bHkgbm8gd2F5IHRvIHJlY29ubmVjdCB0aGVtIGluIHJlc3VtZUZyb21QYWdlQ2FjaGUoKSBz
bwotICAgIC8vIHRoZXkgd2lsbCBiZSBicm9rZW4gYWZ0ZXIgcmV0dXJuaW5nIHRvIGEgY2FjaGVk
IHBhZ2UuCi0gICAgLy8gVGhpcyBzaG91bGQgYmUgZml4ZWQgYXMgcGFydCBvZiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk2MzYKLSAgICByZXNldE5vdGlmaWNhdGlv
bnMoKTsKLSNlbmRpZgogfQogCiB2b2lkIERPTVdpbmRvdzo6cmVjb25uZWN0RE9NV2luZG93UHJv
cGVydGllcygpCkBAIC01NzEsMTEgKzU1MSw2IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhckRPTVdp
bmRvd1Byb3BlcnRpZXMoKQogICAgIG1fc2Vzc2lvblN0b3JhZ2UgPSAwOwogICAgIG1fbG9jYWxT
dG9yYWdlID0gMDsKICAgICBtX2FwcGxpY2F0aW9uQ2FjaGUgPSAwOwotI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0gICAgLy8gRklYTUU6
IE5vdGlmaWNhdGlvbnMgc2hvdWxkbid0IGhhdmUgZGlmZmVyZW50IGRpc2Nvbm5lY3Rpb24gbG9n
aWMgdGhhbgotICAgIC8vIHRoZSByZXN0IG9mIHRoZSBET01XaW5kb3dQcm9wZXJ0aWVzLgotICAg
IHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgbV9k
b21VUkwgPSAwOwogI2VuZGlmCkBAIC03ODQsMzggKzc1OSw2IEBAIFN0b3JhZ2UqIERPTVdpbmRv
dzo6bG9jYWxTdG9yYWdlKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgIHJldHVybiBtX2xv
Y2FsU3RvcmFnZS5nZXQoKTsKIH0KIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFC
TEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi1Ob3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRvdzo6
d2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0Ci17Ci0gICAgaWYgKCFpc0N1cnJlbnRseURpc3Bs
YXllZEluRnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKG1fbm90aWZpY2F0aW9u
cykKLSAgICAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9ucy5nZXQoKTsKLQotICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgCi0gICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7Ci0g
ICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIE5vdGlmaWNhdGlvbkNsaWVu
dCogcHJvdmlkZXIgPSBOb3RpZmljYXRpb25Db250cm9sbGVyOjpjbGllbnRGcm9tKHBhZ2UpOwot
ICAgIGlmIChwcm92aWRlcikgCi0gICAgICAgIG1fbm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlv
bkNlbnRlcjo6Y3JlYXRlKGRvY3VtZW50LCBwcm92aWRlcik7ICAgIAotICAgICAgCi0gICAgcmV0
dXJuIG1fbm90aWZpY2F0aW9ucy5nZXQoKTsKLX0KLQotdm9pZCBET01XaW5kb3c6OnJlc2V0Tm90
aWZpY2F0aW9ucygpCi17Ci0gICAgaWYgKCFtX25vdGlmaWNhdGlvbnMpCi0gICAgICAgIHJldHVy
bjsKLSAgICBtX25vdGlmaWNhdGlvbnMtPmRpc2Nvbm5lY3RGcmFtZSgpOwotICAgIG1fbm90aWZp
Y2F0aW9ucyA9IDA7Ci19Ci0jZW5kaWYKLQogdm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlKFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBNZXNzYWdlUG9ydCogcG9y
dCwgY29uc3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKICAgICBNZXNzYWdlUG9ydEFycmF5IHBvcnRzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKaW5kZXggYmQ4MWI0OGY1NmVmMTgwYTlhYWRiMDgwNTMxMWEwMjIwNDJjYjgwMS4u
NzAxNGQ5NmJkMDcwOTc1OGUzNjEzZTY3ZmZhN2IwNmIzZTg4NzFkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCkBAIC01Niw3ICs1Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFz
cyBNZWRpYVF1ZXJ5TGlzdDsKICAgICBjbGFzcyBOYXZpZ2F0b3I7CiAgICAgY2xhc3MgTm9kZTsK
LSAgICBjbGFzcyBOb3RpZmljYXRpb25DZW50ZXI7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFz
cyBQZXJmb3JtYW5jZTsKICAgICBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyOwpAQCAtMzU2LDEzICsz
NTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFN0b3JhZ2UqIHNlc3Npb25TdG9y
YWdlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICAgICAgU3RvcmFnZSogbG9jYWxTdG9yYWdl
KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBF
TkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0gICAgICAgIE5vdGlmaWNhdGlvbkNlbnRlciog
d2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0OwotICAgICAgICAvLyBSZW5kZXJzIHdlYmtpdE5v
dGlmaWNhdGlvbnMgb2JqZWN0IHNhZmVseSBpbm9wZXJhYmxlLCBkaXNjb25uZWN0cwotICAgICAg
ICAvLyBpZiBmcm9tIGVtYmVkZGVyLXByb3ZpZGVkIE5vdGlmaWNhdGlvbkNsaWVudC4KLSAgICAg
ICAgdm9pZCByZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFFVT1RB
KQogICAgICAgICBTdG9yYWdlSW5mbyogd2Via2l0U3RvcmFnZUluZm8oKSBjb25zdDsKICNlbmRp
ZgpAQCAtNDUwLDEwICs0NDIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIG11dGFi
bGUgUmVmUHRyPFN0b3JhZ2U+IG1fbG9jYWxTdG9yYWdlOwogICAgICAgICBtdXRhYmxlIFJlZlB0
cjxET01BcHBsaWNhdGlvbkNhY2hlPiBtX2FwcGxpY2F0aW9uQ2FjaGU7CiAKLSNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgICAgICBt
dXRhYmxlIFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9uczsKLSNlbmRp
ZgotCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgICAgIG11dGFibGUgUmVmUHRyPFBlcmZv
cm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
aW5kZXggZjJiOTBjZTU4MTBmZTk2MzA3OGU1NDgxMmExODA5MGJkZTgyYzcyZi4uMGVmYTdiZjEy
NDg5MTA4YmFhNTM4N2UyMTcxN2VmNjM2Y2JmMWMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbApAQCAtMTcwLDEwICsxNzAsNiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIFN0b3JhZ2UgbG9jYWxTdG9yYWdlCiAg
ICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSNpZiAoZGVmaW5lZChF
TkFCTEVfTk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX05PVElGSUNBVElPTlMpIHx8IChkZWZpbmVk
KEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJ
T05TKQotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gTm90
aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7Ci0jZW5kaWYKLQogI2lmIGRlZmlu
ZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5U
UwogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24gaW4gZGVncmVl
cy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFpZ2h0IHVwOyAtOTAg
aXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcAppbmRleCBiMzEzNjQ5YmUyZDdlYWQyYTI2MzcxMGEwM2UzN2QwOGNhZDUwZjM4Li5mYmQy
ZGIzOTYyMzc3OWI2OWU0OThlMzJkNTQ3OTNiMjVlZjdjODUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cApAQCAtNjg3LDExICs2ODcsNiBAQCB2b2lkIEZyYW1lOjp3aWxsRGV0YWNoUGFnZSgpCiAgICAg
aWYgKEZyYW1lKiBwYXJlbnQgPSB0cmVlKCktPnBhcmVudCgpKQogICAgICAgICBwYXJlbnQtPmxv
YWRlcigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
IHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICBpZiAobV9kb21XaW5kb3cpCi0g
ICAgICAgIG1fZG9tV2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotCiAgICAg
SGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1fZGVz
dHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PEZyYW1lRGVzdHJ1Y3Rp
b25PYnNlcnZlcio+OjppdGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuYmVnaW4o
KTsgaXQgIT0gc3RvcDsgKytpdCkKICAgICAgICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7CkBA
IC03MzYsMTIgKzczMSw2IEBAIHZvaWQgRnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9j
dW1lbnQoKQogICAgICAgICAgICAgIG1fcGFnZS0+ZGVjcmVtZW50RnJhbWVDb3VudCgpOwogICAg
ICAgICB9CiAKLSAgICAgICAgaWYgKG1fZG9tV2luZG93KSB7Ci0jaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICAgICAgICAgIG1fZG9t
V2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotICAgICAgICB9Ci0KICAgICAg
ICAgSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3RvcCA9IG1f
ZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7CiAgICAgICAgIGZvciAoSGFzaFNldDxGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJz
LmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCiAgICAgICAgICAgICAoKml0KS0+d2lsbERldGFj
aFBhZ2UoKTsK
</data>
<flag name="commit-queue"
          id="135770"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132208</attachid>
            <date>2012-03-15 23:14:52 -0700</date>
            <delta_ts>2012-03-16 05:50:17 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-79636-20120316151451.patch</filename>
            <type>text/plain</type>
            <size>29088</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwOTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTA3NDY2NGFkNWU5Y2Iw
ZjQyOGY3ZjY2OGU1NWNmMWQ5NWVlNzUzYS4uOGE2Y2I4Y2EyMjQ4NTZjMGY3NTliNmM4MGQyM2E5
MjljNGM1M2Q1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTExICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIE5vdGlmaWNh
dGlvbnMgQVBJcyBmcm9tIERPTVdpbmRvdy5pZGwgdG8gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBGb3IgV2ViS2l0
IG1vZHVsYXJpemF0aW9uLCB0aGlzIHBhdGNoIG1vdmVzIE5vdGlmaWNhdGlvbnMtcmVsYXRlZCBB
UElzCisgICAgICAgIGZyb20gRE9NV2luZG93LmlkbCB0byBET01XaW5kb3dOb3RpZmljYXRpb25z
LmlkbC4KKworICAgICAgICBUZXN0czogZmFzdC9ub3RpZmljYXRpb25zLyogKE5vIGNoYW5nZSBp
biB0ZXN0IHJlc3VsdHMpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy57aCxjcHAsaWRsfS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOiBEaXR0by4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6IERpdHRvLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERp
dHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IEFkZGVkIG1hbmdsZWQgc2lnbmF0dXJlcyBvZiB3ZWJraXROb3RpZmljYXRpb25zKCkuCisKKyAg
ICAgICAgKiBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Tm90aWZpY2F0
aW9uczo6RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dOb3RpZmljYXRpb25zOjp+RE9NV2luZG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZW5zdXJlV2Via2l0Tm90aWZpY2F0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjpkaXNjb25uZWN0RnJh
bWUpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93Tm90aWZpY2F0aW9u
cyk6CisgICAgICAgICogbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDog
QWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IFJlbW92ZWQgRU5BQkxFKE5P
VElGSUNBVElPTlMpLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6d2lsbERldGFjaFBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpjbGVhcik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuaWRsOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6d2lsbERldGFjaFBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQpOgorCiAy
MDEyLTAzLTE1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBbV2luQ2Fpcm9dIENvcnJlY3QgPHd0Zi8qLmg+IGluY2x1ZGUgcGF0aHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQyZmEwMDIxMGZkZDczYTg0Y2IzYjZlMGZmY2EzYTNkZTg0MWQ0MTYuLjc0
NjVhNjFkZTFmMmI2OWMyNzU3MjJmNzQ2ZTgxZTQxMzVkNTMxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xNjIyLDEyICsxNjIyLDE0IEBAIEVORElGICgpCiAKIElGIChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgbm90aWZp
Y2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcAogICAgICAgICBub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5jcHAKICAgICAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25Db250cm9sbGVyLmNwcAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAK
ICAgICApCiAKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUworICAgICAgICBub3Rp
ZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCiAgICAgICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmlkbAogICAgICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5pZGwKICAgICApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBjNDBmZmJm
MmRjOWRmNmU3NzczNjY4Nzk2ZDBjN2ViNGI4OTBjYzg3Li5hYzFjNzE4ZTNiNDcxZmE0YTE0M2Y1
MTQ2NjZhZjg4YmI2NzZlNWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM1
Niw2ICszNTYsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9pbnNwZWN0b3Iv
U2NyaXB0UHJvZmlsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2Zp
bGVOb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRp
b25DYWNoZS5pZGwgXAorICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
aWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvQWJzdHJhY3RWaWV3LmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkKaW5kZXggZDUwNDNkODM2ZTliODlkYjhiZmI1M2YwOWMxMTJlMTkxMmFm
ZGQ1ZS4uYjc3MDVkYjRmMDI5OTg3NzFiNWZiOGNhZWE2NmE1M2YxZjVmZTNmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtMzc1LDYgKzM3NSw3IEBAIElETF9CSU5ESU5HUyArPSBc
CiAgICAgJCRQV0QvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKICAgICAkJFBXRC9pbnNw
ZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsIFwKICAgICAkJFBXRC9sb2FkZXIvYXBwY2FjaGUv
RE9NQXBwbGljYXRpb25DYWNoZS5pZGwgXAorICAgICQkUFdEL25vdGlmaWNhdGlvbnMvRE9NV2lu
ZG93Tm90aWZpY2F0aW9ucy5pZGwgXAogICAgICQkUFdEL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmlkbCBcCiAgICAgJCRQV0Qvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRs
IFwKICAgICAkJFBXRC9wYWdlL0JhckluZm8uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDA3MGI4N2VmOTdlNmEwYjg4YTQyZTg2ZDk4MTk3Y2Q5MDkwODQyM2EuLmYzMzgz
ZTM2NmU5MDkzYTY5NTc3NGY3Nzk3YTUzNmE2Y2E5NDkyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtMjgyMyw2ICsyODIzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTFRleHRFbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvRE9N
V2luZG93Tm90aWZpY2F0aW9ucy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
RE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNTg3NWNmYjY3MzhlODVjN2UwNzE1
NTRiMDU0NmQxMDQ4YjEwNmU2YS4uMTE2NzZkNjdkYTY1YzMwNWMwNDdiMmY4MjhjNzI3MjAwYTBi
OTI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC05NzksNiArOTc5LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RleHRSZXNvdXJjZURl
Y29kZXIuY3BwIFwKICAgICBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAgXAorICAgIG5vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIFwKQEAg
LTIwNzMsNiArMjA3NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIG1hdGhtbC9NYXRoTUxJbmxpbmVD
b250YWluZXJFbGVtZW50LmggXAogICAgIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIFwKICAg
ICBtYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBcCisgICAgbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAog
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAogICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDBjYjRmYmJiZTVl
MTUyMWEzZDIyOWZiNWE5M2NkN2M3Y2FhODY4ZmYuLjUyOGNhMDAzZWM1ZTFmOTFlMzY3Y2JlYWI5
NDhiZTUxYThlNWQyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwNTQsNiArMTA1NCw3IEBACiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsJywKICAgICAgICAgICAgICdsb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwnLAorICAgICAgICAgICAgJ25vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmlkbCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25DZW50ZXIuaWRsJywKICAgICAgICAgICAgICdwYWdlL0Fic3RyYWN0Vmlldy5pZGwnLApA
QCAtMjc4NCw2ICsyNzg1LDggQEAKICAgICAgICAgICAgICdtYXRobWwvTWF0aE1MTWF0aEVsZW1l
bnQuaCcsCiAgICAgICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCcsCiAgICAg
ICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgnLAorICAgICAgICAgICAgJ25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAnLAorICAgICAgICAgICAgJ25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oJywKICAgICAgICAgICAgICdub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uLmgnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2Vu
dGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGE2OWVmZThhYjMzOGRiNjU5ZjlhYjEwODJkMTBjMmE3NWY0NWY1M2EuLmJjOThiNzE3
YTRmYjhmNTJlZDdkNjA4NTZjNjIzZGI5ZmM1OTg3YjkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01MzU5OCw2ICs1MzU5OCwxNCBAQAogCQkJ
TmFtZT0ibm90aWZpY2F0aW9ucyIKIAkJCT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxub3RpZmljYXRpb25zXERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXERPTVdp
bmRvd05vdGlmaWNhdGlvbnMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cbm90aWZpY2F0aW9uc1xOb3RpZmljYXRpb24uY3BwIgogCQkJCT4KIAkJ
CTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA3YThiMDYxNDgwNTg4OTBlODA2NjI4Njk2ODk1MDc2YmExY2VlMDIzLi5h
NzM1NDY0ZWE3MWY2Y2M3N2QyZmI5ZDYwNWFhMWE0NzZmMDZkYjkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MTEzLDYgKzQx
MTMsOCBAQAogCQlBODc0OEJFMDEyQ0JGMkRDMDAxRkJBNDEgLyogSGFzaFRvb2xzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODc0OEJERjEyQ0JGMkRD
MDAxRkJBNDEgLyogSGFzaFRvb2xzLmggKi87IH07CiAJCUE4ODNERjI3MEYzRDA0NUQwMEYxOUJG
NiAvKiBWaXNpYmxlU2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4ODNERjI1MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0
aW9uLmNwcCAqLzsgfTsKIAkJQTg4M0RGMjgwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxl
Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
ODNERjI2MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTg4NkNGNzYxNTEyMzAxNzAw
RDI3OUY0IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4NkNGNzMxNTEyMzAxNzAwRDI3OUY0IC8qIERP
TVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwICovOyB9OworCQlBODg2Q0Y3NzE1MTIzMDE3MDBEMjc5
RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4NkNGNzQxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRv
d05vdGlmaWNhdGlvbnMuaCAqLzsgfTsKIAkJQTg4QUQ1MkYwOTUyNEI5MjAwMUREMTk2IC8qIFF1
YXJ0ekNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTg1RDdBMkYwODc5RUJBOTAwNkE5MTcyIC8qIFF1YXJ0ekNvcmUuZnJhbWV3
b3JrICovOyB9OwogCQlBODhERDQ4NzBCNDYyOUEzMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODhE
RDQ4NjBCNDYyOUEzMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmggKi87IH07CiAJCUE4
OERENDg5MEI0NjI5QjAwMEMwMjk5MCAvKiBQYXRoVHJhdmVyc2FsU3RhdGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4REQ0ODgwQjQ2MjlCMDAw
QzAyOTkwIC8qIFBhdGhUcmF2ZXJzYWxTdGF0ZS5jcHAgKi87IH07CkBAIC0xMDkwOCw2ICsxMDkx
MCw3IEBACiAJCUE4NjYyOUNDMDlEQTJCNDcwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW91c2VFdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NjYyOUNEMDlEQTJCNDcwMDk2MzNBNSAvKiBK
U0tleWJvYXJkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTS2V5
Ym9hcmRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODY2MjlDRTA5REEy
QjQ3MDA5NjMzQTUgLyogSlNLZXlib2FyZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0tleWJvYXJkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBODZFODc3MTE1MTJEQ0VBMDBBRDE0QzEgLyogRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gRE9NV2luZG93Tm90aWZpY2F0aW9ucy5p
ZGw7IHBhdGggPSBub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODcxRDQ0QzBBMTI3Q0JDMDBCMTJBNjggLyogSFRN
TFBsdWdJbkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQ
bHVnSW5FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NzFENDREMEEx
MjdDQkMwMEIxMkE2OCAvKiBIVE1MUGx1Z0luRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBsdWdJbkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBODcxRDQ0RTBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTFBhcmFtRWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBhcmFtRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA5NjksNiArMTA5NzIsOCBAQAog
CQlBODc0OEJERjEyQ0JGMkRDMDAxRkJBNDEgLyogSGFzaFRvb2xzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEhhc2hUb29scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBODgzREYyNTBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaXNpYmxlU2VsZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4M0RGMjYwRjNEMDQ1RDAwRjE5QkY2IC8q
IFZpc2libGVTZWxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlz
aWJsZVNlbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODg2Q0Y3MzE1
MTIzMDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcDsgcGF0
aCA9IG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE4ODZDRjc0MTUxMjMwMTcwMEQyNzlGNCAvKiBET01XaW5kb3dO
b3RpZmljYXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERPTVdpbmRv
d05vdGlmaWNhdGlvbnMuaDsgcGF0aCA9IG5vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODhERDQ4NjBCNDYyOUEzMDBD
MDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBhdGhUcmF2ZXJzYWxTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBODhERDQ4ODBCNDYyOUIwMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdGhUcmF2ZXJzYWxTdGF0ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4OTk0MzI2MEI0MjMzODcwMEQ3QzgwMiAv
KiBCaXRtYXBJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCaXRtYXBJ
bWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzOTEsNiArMTQzOTYsOSBA
QAogCQkzMzNGNzAzRDBGQjQ5QzE2MDA4RTEyQTYgLyogbm90aWZpY2F0aW9ucyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTg2RTg3NzExNTEyRENFQTAw
QUQxNEMxIC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsICovLAorCQkJCUE4ODZDRjczMTUx
MjMwMTcwMEQyNzlGNCAvKiBET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCAqLywKKwkJCQlBODg2
Q0Y3NDE1MTIzMDE3MDBEMjc5RjQgLyogRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oICovLAogCQkJ
CTMzNTAzQ0M2MTAxN0ExQjEwMDNCNDdFMSAvKiBOb3RpZmljYXRpb24uY3BwICovLAogCQkJCTMz
M0Y3MDRGMEZCNDlDQTIwMDhFMTJBNiAvKiBOb3RpZmljYXRpb24uaCAqLywKIAkJCQkzMzNGNzA0
RTBGQjQ5Q0EyMDA4RTEyQTYgLyogTm90aWZpY2F0aW9uLmlkbCAqLywKQEAgLTI0NTc1LDYgKzI0
NTgzLDcgQEAKIAkJCQlFMUNERTkyMjE1MDE5MTY5MDA4NjJDQzUgLyogQXN5bmNGaWxlU3RyZWFt
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTBDRUJGMTE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxh
YmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVCNEMyNEQxNTA5MjM2QzAwQTZFRjM3
IC8qIFdlYkNvcmVOU1VSTEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTg4NkNGNzcxNTEy
MzAxNzAwRDI3OUY0IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtMjc1NTYsNiArMjc1NjUsNyBAQAogCQkJCUM1QjRDMjRFMTUwOTIzNkMwMEE2RUYzNyAvKiBX
ZWJDb3JlTlNVUkxFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5QjJCN0FDMTE1MDk4NTBB
MDA4OTMyQ0MgLyogTWljcm9EYXRhSXRlbVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcx
NTdGMDYyMTUwQjY1NjQwMDZFQUFCRCAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQTg4NkNGNzYxNTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRvd05v
dGlmaWNhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NzA2NTgxYTVhZjBiZWQ1OTIyZWQ0MjQxNzcwN2NiYjc5MjI4NzRhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNw
cApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93Tm90aWZpY2F0aW9ucy5o
IgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FU
SU9OUykKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitE
T01XaW5kb3dOb3RpZmljYXRpb25zOjpET01XaW5kb3dOb3RpZmljYXRpb25zKERPTVdpbmRvdyog
d2luZG93KQorICAgIDogRE9NV2luZG93UHJvcGVydHkod2luZG93LT5mcmFtZSgpKQorICAgICwg
bV93aW5kb3cod2luZG93KQoreworfQorCitET01XaW5kb3dOb3RpZmljYXRpb25zOjp+RE9NV2lu
ZG93Tm90aWZpY2F0aW9ucygpCit7Cit9CisKK0RPTVdpbmRvd05vdGlmaWNhdGlvbnMqIERPTVdp
bmRvd05vdGlmaWNhdGlvbnM6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHN1cHBsZW1lbnROYW1lLCAoIkRPTVdpbmRvd05v
dGlmaWNhdGlvbnMiKSk7CisgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyogc3VwcGxlbWVudCA9
IHN0YXRpY19jYXN0PERPTVdpbmRvd05vdGlmaWNhdGlvbnMqPihTdXBwbGVtZW50PERPTVdpbmRv
dz46OmZyb20od2luZG93LCBzdXBwbGVtZW50TmFtZSkpOworICAgIGlmICghc3VwcGxlbWVudCkg
eworICAgICAgICBzdXBwbGVtZW50ID0gbmV3IERPTVdpbmRvd05vdGlmaWNhdGlvbnMod2luZG93
KTsKKyAgICAgICAgU3VwcGxlbWVudDxET01XaW5kb3c+Ojpwcm92aWRlVG8od2luZG93LCBzdXBw
bGVtZW50TmFtZSwgYWRvcHRQdHIoc3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1cm4gc3Vw
cGxlbWVudDsKK30KKworTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25z
Ojp3ZWJraXROb3RpZmljYXRpb25zKERPTVdpbmRvdyogd2luZG93KQoreworICAgIHJldHVybiBE
T01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9tKHdpbmRvdyktPmVuc3VyZVdlYmtpdE5vdGlmaWNh
dGlvbnMoKTsKK30KKworTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3dOb3RpZmljYXRpb25z
OjplbnN1cmVXZWJraXROb3RpZmljYXRpb25zKCkKK3sKKyAgICBpZiAoIW1fd2luZG93LT5pc0N1
cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAo
bV9ub3RpZmljYXRpb25DZW50ZXIpCisgICAgICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNlbnRl
ci5nZXQoKTsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fd2luZG93LT5kb2N1bWVudCgp
OworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgUGFnZSogcGFn
ZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIE5vdGlmaWNhdGlvbkNsaWVudCogcHJvdmlkZXIgPSBOb3RpZmljYXRpb25Db250cm9s
bGVyOjpjbGllbnRGcm9tKHBhZ2UpOworICAgIGlmIChwcm92aWRlcikKKyAgICAgICAgbV9ub3Rp
ZmljYXRpb25DZW50ZXIgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShtX3dpbmRvdy0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBwcm92aWRlcik7CisgICAgcmV0dXJuIG1fbm90aWZpY2F0
aW9uQ2VudGVyLmdldCgpOworfQorCit2b2lkIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmRpc2Nv
bm5lY3RGcmFtZSgpCit7CisgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyKSB7CisgICAgICAg
IG1fbm90aWZpY2F0aW9uQ2VudGVyLT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICAgICAgbV9ub3Rp
ZmljYXRpb25DZW50ZXIgPSAwOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBiL1NvdXJjZS9XZWJD
b3JlL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4
ZDhmOTAzZDM1NTA4ZGFhMzFhMDA5MjFjMDZiYjBjMTI4NTNjNmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaApA
QCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIERPTVdpbmRvd05vdGlmaWNhdGlvbnNfaAorI2RlZmluZSBET01XaW5kb3dOb3RpZmlj
YXRpb25zX2gKKworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05P
VElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJET01XaW5kb3dQcm9wZXJ0eS5oIgorI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBET01XaW5kb3c7CitjbGFzcyBOb3RpZmljYXRpb25DZW50
ZXI7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBET01XaW5kb3dOb3Rp
ZmljYXRpb25zIDogcHVibGljIFN1cHBsZW1lbnQ8RE9NV2luZG93PiwgcHVibGljIERPTVdpbmRv
d1Byb3BlcnR5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5ET01XaW5kb3dOb3RpZmljYXRpb25z
KCk7CisKKyAgICBzdGF0aWMgTm90aWZpY2F0aW9uQ2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25z
KERPTVdpbmRvdyopOworICAgIHN0YXRpYyBET01XaW5kb3dOb3RpZmljYXRpb25zKiBmcm9tKERP
TVdpbmRvdyopOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IERPTVdpbmRvd05vdGlmaWNhdGlv
bnMoRE9NV2luZG93Kik7CisKKyAgICBOb3RpZmljYXRpb25DZW50ZXIqIGVuc3VyZVdlYmtpdE5v
dGlmaWNhdGlvbnMoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpIE9WRVJSSURFOworCisg
ICAgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gbV9ub3RpZmljYXRpb25DZW50ZXI7CisgICAg
RE9NV2luZG93KiBtX3dpbmRvdzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQorCisjZW5kaWYgLy8gRE9NV2luZG93Tm90aWZp
Y2F0aW9uc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RPTVdp
bmRvd05vdGlmaWNhdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9ET01X
aW5kb3dOb3RpZmljYXRpb25zLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTdiNjY2YjZlM2Q3NDdlNTk3NDQw
YzRmM2ViYzlmMTY3YmUzM2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbApAQCAtMCwwICsxLDM2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNl
IFsKKyAgICAgICAgQ29uZGl0aW9uYWw9Tk9USUZJQ0FUSU9OU3xMRUdBQ1lfTk9USUZJQ0FUSU9O
UywKKyAgICAgICAgU3VwcGxlbWVudGFsPURPTVdpbmRvdworICAgIF0gRE9NV2luZG93Tm90aWZp
Y2F0aW9ucyB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1l
XSBOb3RpZmljYXRpb25DZW50ZXIgd2Via2l0Tm90aWZpY2F0aW9uczsKKyAgICB9OworCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggYzE0MTY3MzhkNzYwMTk5MDRmM2ZhMTA0NGRj
NjA2NjMyYjA0YjY3Zi4uMDk3YTVlNTgwMmJiZGZjZDY5ZjI0YWFkZGE4OWFlMmNhNjkxNzBlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNzIsOCArNzIsNiBAQAogI2luY2x1ZGUg
Ik1lZGlhUXVlcnlNYXRjaGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiTmF2aWdhdG9yLmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2VudGVyLmgiCi0jaW5jbHVk
ZSAiTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWdlVHJhbnNpdGlvbkV2ZW50LmgiCkBAIC00MTgs
OSArNDE2LDYgQEAgRE9NV2luZG93Ojp+RE9NV2luZG93KCkKICAgICAgICAgQVNTRVJUKCFtX3Nl
c3Npb25TdG9yYWdlKTsKICAgICAgICAgQVNTRVJUKCFtX2xvY2FsU3RvcmFnZSk7CiAgICAgICAg
IEFTU0VSVCghbV9hcHBsaWNhdGlvbkNhY2hlKTsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykg
fHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgICAgICBBU1NFUlQoIW1fbm90aWZp
Y2F0aW9ucyk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQkxPQikKICAgICAgICAgQVNTRVJUKCFtX2Rv
bVVSTCk7CiAjZW5kaWYKQEAgLTQ3OCwxMiArNDczLDYgQEAgdm9pZCBET01XaW5kb3c6OndpbGxE
ZXRhY2hQYWdlKCkKIHsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93
RGlzY2FyZGVkKG1fZnJhbWUsIHRoaXMpOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8
IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICAvLyBDbGVhcmluZyBOb3RpZmljYXRp
b25zIHJlcXVlc3RzIGludm9sdmVzIGFjY2Vzc2luZyB0aGUgY2xpZW50IHNvIGl0IG11c3QgYmUg
ZG9uZQotICAgIC8vIGJlZm9yZSB0aGUgZnJhbWUgaXMgZGV0YWNoZWQuCi0gICAgcmVzZXROb3Rp
ZmljYXRpb25zKCk7Ci0jZW5kaWYKLQogICAgIEhhc2hTZXQ8RE9NV2luZG93UHJvcGVydHkqPjo6
aXRlcmF0b3Igc3RvcCA9IG1fcHJvcGVydGllcy5lbmQoKTsKICAgICBmb3IgKEhhc2hTZXQ8RE9N
V2luZG93UHJvcGVydHkqPjo6aXRlcmF0b3IgaXQgPSBtX3Byb3BlcnRpZXMuYmVnaW4oKTsgaXQg
IT0gc3RvcDsgKytpdCkKICAgICAgICAgKCppdCktPndpbGxEZXRhY2hQYWdlKCk7CkBAIC01Mjcs
MTUgKzUxNiw2IEBAIHZvaWQgRE9NV2luZG93OjpkaXNjb25uZWN0RE9NV2luZG93UHJvcGVydGll
cygpCiAgICAgSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+OjppdGVyYXRvciBzdG9wID0gbV9w
cm9wZXJ0aWVzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxET01XaW5kb3dQcm9wZXJ0eSo+Ojpp
dGVyYXRvciBpdCA9IG1fcHJvcGVydGllcy5iZWdpbigpOyBpdCAhPSBzdG9wOyArK2l0KQogICAg
ICAgICAoKml0KS0+ZGlzY29ubmVjdEZyYW1lKCk7Ci0KLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgIC8vIEZJWE1FOiBOb3RpZmlj
YXRpb25zIHNob3VsZG4ndCBoYXZlIGRpZmZlcmVudCBkaXNjb25uZWN0aW9uIGxvZ2ljIHRoYW4K
LSAgICAvLyB0aGUgcmVzdCBvZiB0aGUgRE9NV2luZG93UHJvcGVydGllcy4KLSAgICAvLyBUaGVy
ZSBpcyBjdXJyZW50bHkgbm8gd2F5IHRvIHJlY29ubmVjdCB0aGVtIGluIHJlc3VtZUZyb21QYWdl
Q2FjaGUoKSBzbwotICAgIC8vIHRoZXkgd2lsbCBiZSBicm9rZW4gYWZ0ZXIgcmV0dXJuaW5nIHRv
IGEgY2FjaGVkIHBhZ2UuCi0gICAgLy8gVGhpcyBzaG91bGQgYmUgZml4ZWQgYXMgcGFydCBvZiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk2MzYKLSAgICByZXNldE5v
dGlmaWNhdGlvbnMoKTsKLSNlbmRpZgogfQogCiB2b2lkIERPTVdpbmRvdzo6cmVjb25uZWN0RE9N
V2luZG93UHJvcGVydGllcygpCkBAIC01NzEsMTEgKzU1MSw2IEBAIHZvaWQgRE9NV2luZG93Ojpj
bGVhckRPTVdpbmRvd1Byb3BlcnRpZXMoKQogICAgIG1fc2Vzc2lvblN0b3JhZ2UgPSAwOwogICAg
IG1fbG9jYWxTdG9yYWdlID0gMDsKICAgICBtX2FwcGxpY2F0aW9uQ2FjaGUgPSAwOwotI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0gICAg
Ly8gRklYTUU6IE5vdGlmaWNhdGlvbnMgc2hvdWxkbid0IGhhdmUgZGlmZmVyZW50IGRpc2Nvbm5l
Y3Rpb24gbG9naWMgdGhhbgotICAgIC8vIHRoZSByZXN0IG9mIHRoZSBET01XaW5kb3dQcm9wZXJ0
aWVzLgotICAgIHJlc2V0Tm90aWZpY2F0aW9ucygpOwotI2VuZGlmCiAjaWYgRU5BQkxFKEJMT0Ip
CiAgICAgbV9kb21VUkwgPSAwOwogI2VuZGlmCkBAIC03ODQsMzggKzc1OSw2IEBAIFN0b3JhZ2Uq
IERPTVdpbmRvdzo6bG9jYWxTdG9yYWdlKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgIHJl
dHVybiBtX2xvY2FsU3RvcmFnZS5nZXQoKTsKIH0KIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi1Ob3RpZmljYXRpb25DZW50ZXIqIERP
TVdpbmRvdzo6d2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0Ci17Ci0gICAgaWYgKCFpc0N1cnJl
bnRseURpc3BsYXllZEluRnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKG1fbm90
aWZpY2F0aW9ucykKLSAgICAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9ucy5nZXQoKTsKLQotICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVu
dCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgCi0gICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5w
YWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIE5vdGlmaWNh
dGlvbkNsaWVudCogcHJvdmlkZXIgPSBOb3RpZmljYXRpb25Db250cm9sbGVyOjpjbGllbnRGcm9t
KHBhZ2UpOwotICAgIGlmIChwcm92aWRlcikgCi0gICAgICAgIG1fbm90aWZpY2F0aW9ucyA9IE5v
dGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRlKGRvY3VtZW50LCBwcm92aWRlcik7ICAgIAotICAgICAg
Ci0gICAgcmV0dXJuIG1fbm90aWZpY2F0aW9ucy5nZXQoKTsKLX0KLQotdm9pZCBET01XaW5kb3c6
OnJlc2V0Tm90aWZpY2F0aW9ucygpCi17Ci0gICAgaWYgKCFtX25vdGlmaWNhdGlvbnMpCi0gICAg
ICAgIHJldHVybjsKLSAgICBtX25vdGlmaWNhdGlvbnMtPmRpc2Nvbm5lY3RGcmFtZSgpOwotICAg
IG1fbm90aWZpY2F0aW9ucyA9IDA7Ci19Ci0jZW5kaWYKLQogdm9pZCBET01XaW5kb3c6OnBvc3RN
ZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBNZXNzYWdl
UG9ydCogcG9ydCwgY29uc3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNl
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBNZXNzYWdlUG9ydEFycmF5IHBvcnRzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYmQ4MWI0OGY1NmVmMTgwYTlhYWRiMDgwNTMxMWEwMjIw
NDJjYjgwMS4uNzAxNGQ5NmJkMDcwOTc1OGUzNjEzZTY3ZmZhN2IwNmIzZTg4NzFkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC01Niw3ICs1Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKICAgICBjbGFzcyBOYXZpZ2F0b3I7CiAgICAgY2xh
c3MgTm9kZTsKLSAgICBjbGFzcyBOb3RpZmljYXRpb25DZW50ZXI7CiAgICAgY2xhc3MgUGFnZTsK
ICAgICBjbGFzcyBQZXJmb3JtYW5jZTsKICAgICBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyOwpAQCAt
MzU2LDEzICszNTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFN0b3JhZ2UqIHNl
c3Npb25TdG9yYWdlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICAgICAgU3RvcmFnZSogbG9j
YWxTdG9yYWdlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0gICAgICAgIE5vdGlmaWNhdGlv
bkNlbnRlciogd2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0OwotICAgICAgICAvLyBSZW5kZXJz
IHdlYmtpdE5vdGlmaWNhdGlvbnMgb2JqZWN0IHNhZmVseSBpbm9wZXJhYmxlLCBkaXNjb25uZWN0
cwotICAgICAgICAvLyBpZiBmcm9tIGVtYmVkZGVyLXByb3ZpZGVkIE5vdGlmaWNhdGlvbkNsaWVu
dC4KLSAgICAgICAgdm9pZCByZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotCiAjaWYgRU5B
QkxFKFFVT1RBKQogICAgICAgICBTdG9yYWdlSW5mbyogd2Via2l0U3RvcmFnZUluZm8oKSBjb25z
dDsKICNlbmRpZgpAQCAtNDUwLDEwICs0NDIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIG11dGFibGUgUmVmUHRyPFN0b3JhZ2U+IG1fbG9jYWxTdG9yYWdlOwogICAgICAgICBtdXRh
YmxlIFJlZlB0cjxET01BcHBsaWNhdGlvbkNhY2hlPiBtX2FwcGxpY2F0aW9uQ2FjaGU7CiAKLSNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQot
ICAgICAgICBtdXRhYmxlIFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9u
czsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgICAgIG11dGFibGUgUmVm
UHRyPFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKaW5kZXggZjJiOTBjZTU4MTBmZTk2MzA3OGU1NDgxMmExODA5MGJkZTgyYzcyZi4u
MGVmYTdiZjEyNDg5MTA4YmFhNTM4N2UyMTcxN2VmNjM2Y2JmMWMyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbApAQCAtMTcwLDEwICsxNzAsNiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIFN0b3JhZ2UgbG9jYWxT
dG9yYWdlCiAgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSNpZiAo
ZGVmaW5lZChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX05PVElGSUNBVElPTlMpIHx8
IChkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX0xFR0FDWV9O
T1RJRklDQVRJT05TKQotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVu
dGltZV0gTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7Ci0jZW5kaWYKLQog
I2lmIGRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5BQkxFX09SSUVOVEFU
SU9OX0VWRU5UUwogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24g
aW4gZGVncmVlcy4gU29tZSBleGFtcGxlcyBhcmU6CiAgICAgICAgIC8vICAwIGlzIHN0cmFpZ2h0
IHVwOyAtOTAgaXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZWQgOTAgY2xvY2t3aXNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAppbmRleCBiMzEzNjQ5YmUyZDdlYWQyYTI2MzcxMGEwM2UzN2QwOGNhZDUw
ZjM4Li5mYmQyZGIzOTYyMzc3OWI2OWU0OThlMzJkNTQ3OTNiMjVlZjdjODUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcApAQCAtNjg3LDExICs2ODcsNiBAQCB2b2lkIEZyYW1lOjp3aWxsRGV0YWNoUGFn
ZSgpCiAgICAgaWYgKEZyYW1lKiBwYXJlbnQgPSB0cmVlKCktPnBhcmVudCgpKQogICAgICAgICBw
YXJlbnQtPmxvYWRlcigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOwogCi0jaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICBpZiAobV9kb21X
aW5kb3cpCi0gICAgICAgIG1fZG9tV2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRp
ZgotCiAgICAgSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Igc3Rv
cCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PEZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlcio+OjppdGVyYXRvciBpdCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZl
cnMuYmVnaW4oKTsgaXQgIT0gc3RvcDsgKytpdCkKICAgICAgICAgKCppdCktPndpbGxEZXRhY2hQ
YWdlKCk7CkBAIC03MzYsMTIgKzczMSw2IEBAIHZvaWQgRnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFt
ZVRvTmV3RG9jdW1lbnQoKQogICAgICAgICAgICAgIG1fcGFnZS0+ZGVjcmVtZW50RnJhbWVDb3Vu
dCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fZG9tV2luZG93KSB7Ci0jaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICAgICAg
ICAgIG1fZG9tV2luZG93LT5yZXNldE5vdGlmaWNhdGlvbnMoKTsKLSNlbmRpZgotICAgICAgICB9
Ci0KICAgICAgICAgSGFzaFNldDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3Ig
c3RvcCA9IG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMuZW5kKCk7CiAgICAgICAgIGZvciAoSGFzaFNl
dDxGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX2Rlc3RydWN0aW9u
T2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ICE9IHN0b3A7ICsraXQpCiAgICAgICAgICAgICAoKml0KS0+
d2lsbERldGFjaFBhZ2UoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>