<?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>86214</bug_id>
          
          <creation_ts>2012-05-11 07:06:04 -0700</creation_ts>
          <short_desc>Fix and enable WebGL for WebKit2 on Qt</short_desc>
          <delta_ts>2012-06-02 07:01:40 -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>WebGL</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>87725</dependson>
    
    <dependson>87738</dependson>
          <blocked>79169</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zeno Albisser">zeno</reporter>
          <assigned_to name="Zeno Albisser">zeno</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>menard</cc>
    
    <cc>noam</cc>
    
    <cc>philn</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>621607</commentid>
    <comment_count>0</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-11 07:06:04 -0700</bug_when>
    <thetext>We should start with a GraphicsSurface (IOSurface) based implementation for mac.
From there we can then also approach other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621647</commentid>
    <comment_count>1</comment_count>
      <attachid>141419</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-11 07:55:54 -0700</bug_when>
    <thetext>Created attachment 141419
WIP patch.

This is a work-in-progress patch.
It therefore lacks a proper changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621666</commentid>
    <comment_count>2</comment_count>
      <attachid>141419</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-11 08:41:58 -0700</bug_when>
    <thetext>Comment on attachment 141419
WIP patch.

Attachment 141419 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12675236</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621699</commentid>
    <comment_count>3</comment_count>
      <attachid>141419</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 09:33:17 -0700</bug_when>
    <thetext>Comment on attachment 141419
WIP patch.

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

New failing tests:
compositing/reflections/nested-reflection-opacity.html
compositing/reflections/become-simple-composited-reflection.html
compositing/reflections/nested-reflection-size-change.html
compositing/reflections/backface-hidden-reflection.html
compositing/reflections/reflection-on-composited.html
compositing/reflections/reflection-positioning2.html
compositing/reflections/nested-reflection-on-overflow.html
compositing/plugins/invalidate_rect.html
compositing/reflections/empty-reflection-with-mask.html
compositing/reflections/nested-reflection-anchor-point.html
compositing/reflections/nested-reflection.html
compositing/reflections/nested-reflection-mask-change.html
compositing/reflections/nested-reflection-transformed.html
compositing/reflections/nested-reflection-transformed2.html
compositing/reflections/nested-reflection-animated.html
compositing/overflow/overflow-scaled-descendant-overlapping.html
http/tests/inspector/resource-har-pages.html
compositing/overflow/theme-affects-visual-overflow.html
compositing/reflections/reflection-positioning.html
compositing/sibling-positioning.html
compositing/reflections/reflection-ordering.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621700</commentid>
    <comment_count>4</comment_count>
      <attachid>141432</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 09:33:22 -0700</bug_when>
    <thetext>Created attachment 141432
Archive of layout-test-results from ec2-cr-linux-01

The attached test failures were seen while running run-webkit-tests on the chromium-ews.
Bot: ec2-cr-linux-01  Port: &lt;class &apos;webkitpy.common.config.ports.ChromiumXVFBPort&apos;&gt;  Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621714</commentid>
    <comment_count>5</comment_count>
      <attachid>141419</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-11 09:44:16 -0700</bug_when>
    <thetext>Comment on attachment 141419
WIP patch.

Attachment 141419 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12671404</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621751</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-11 10:13:56 -0700</bug_when>
    <thetext>This patch does much more than enabling a feature, re-titled accordingly. Also, it changes cross platform code, so [Qt] prefix on the bug was wrong and misleading. These prefixes exist so that people not interested in a specific port could quickly skip a bug while looking through bug list - that&apos;s most definitely not the case here!

This patch changes cross-platform RenderBoxModelObject.cpp, mac/GraphicsSurfaceMac.cpp, WebKit2 cross-platform layer tree code, and needs careful review from multiple core and Mac developers. Changes in cross-platform GraphicsContext3DOpenGLCommon.cpp are under a PLATFORM(QT) guard, but without any explanation of what is Qt specific there.

Is it possible to split the patch into smaller logical chunks?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621754</commentid>
    <comment_count>7</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-11 10:15:58 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; This patch does much more than enabling a feature, re-titled accordingly. Also, it changes cross platform code, so [Qt] prefix on the bug was wrong and misleading. These prefixes exist so that people not interested in a specific port could quickly skip a bug while looking through bug list - that&apos;s most definitely not the case here!
&gt; 
&gt; This patch changes cross-platform RenderBoxModelObject.cpp, mac/GraphicsSurfaceMac.cpp, WebKit2 cross-platform layer tree code, and needs careful review from multiple core and Mac developers. Changes in cross-platform GraphicsContext3DOpenGLCommon.cpp are under a PLATFORM(QT) guard, but without any explanation of what is Qt specific there.
&gt; 
&gt; Is it possible to split the patch into smaller logical chunks?

It&apos;s still a WIP patch, like Zeno has mentioned... For now we&apos;re just reviewing the general direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621765</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-11 10:28:03 -0700</bug_when>
    <thetext>I think that this kind of comment is appropriate for &quot;WIP&quot; patches, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621771</commentid>
    <comment_count>9</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-11 10:31:41 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I think that this kind of comment is appropriate for &quot;WIP&quot; patches, too.

Fair enough :)

GraphicsSurfaceMac.cpp is enabled only for Qt for now... 
I agree that the RenderBoxModelObject change should be done in a separate patch.

Otherwise, I think this patch is architecturally in the right direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635835</commentid>
    <comment_count>10</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-29 03:48:49 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; This patch does much more than enabling a feature, re-titled accordingly. Also, it changes cross platform code, so [Qt] prefix on the bug was wrong and misleading. These prefixes exist so that people not interested in a specific port could quickly skip a bug while looking through bug list - that&apos;s most definitely not the case here!
&gt; 
&gt; This patch changes cross-platform RenderBoxModelObject.cpp, mac/GraphicsSurfaceMac.cpp, WebKit2 cross-platform layer tree code, and needs careful review from multiple core and Mac developers. Changes in cross-platform GraphicsContext3DOpenGLCommon.cpp are under a PLATFORM(QT) guard, but without any explanation of what is Qt specific there.
&gt; 
&gt; Is it possible to split the patch into smaller logical chunks?

I&apos;ll try to split it up in smaller, more reasonable chunks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637022</commentid>
    <comment_count>11</comment_count>
      <attachid>144752</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-30 01:40:00 -0700</bug_when>
    <thetext>Created attachment 144752
patch for review.

I split the original patch up into several chunks. - I hope that looks more reasonable now.
EWS will most likely fail (if executed), because this patch depends on Bug87738, and the according patch has not been landed yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637044</commentid>
    <comment_count>12</comment_count>
      <attachid>144752</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-30 02:09:07 -0700</bug_when>
    <thetext>Comment on attachment 144752
patch for review.

Attachment 144752 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12842823</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637050</commentid>
    <comment_count>13</comment_count>
      <attachid>144752</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-30 02:19:20 -0700</bug_when>
    <thetext>Comment on attachment 144752
patch for review.

Attachment 144752 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12844809</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637177</commentid>
    <comment_count>14</comment_count>
      <attachid>144752</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-30 07:03:43 -0700</bug_when>
    <thetext>Comment on attachment 144752
patch for review.

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

Awesome progress, see comments.

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:115
&gt; +        window-&gt;show();

You don&apos;t need to show the window. Just call create(). Then you don&apos;t have to set its geometry to outside the screen.

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:130
&gt; +            GraphicsSurface::SupportsSoftwareWrite
&gt; +            | GraphicsSurface::SupportsSoftwareRead

Why these two?

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:132
&gt; +            | GraphicsSurface::SupportsCopyFromTexture

Seems like you&apos;re not really using CopyToTexture, but rather something like TextureTarget.

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:292
&gt; +    m_graphicsSurface = GraphicsSurface::create(contextSize, m_surfaceFlags);

In which case would it be 0?
Shouldn&apos;t we destroy the surface if it&apos;s 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637259</commentid>
    <comment_count>15</comment_count>
      <attachid>144752</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-30 08:27:12 -0700</bug_when>
    <thetext>Comment on attachment 144752
patch for review.

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

&gt;&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:115
&gt;&gt; +        window-&gt;show();
&gt; 
&gt; You don&apos;t need to show the window. Just call create(). Then you don&apos;t have to set its geometry to outside the screen.

setGeometry is necessary for me. Otherwise you will have an invalid drawable.
But i can call create() instead of show().

&gt;&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:130
&gt;&gt; +            | GraphicsSurface::SupportsSoftwareRead
&gt; 
&gt; Why these two?

These are leftovers from debugging.
GraphicsSurface::SupportsTextureTarget | GraphicsSurface::SupportsSharing should be sufficient i think.

&gt;&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:292
&gt;&gt; +    m_graphicsSurface = GraphicsSurface::create(contextSize, m_surfaceFlags);
&gt; 
&gt; In which case would it be 0?
&gt; Shouldn&apos;t we destroy the surface if it&apos;s 0?

That is certainly a more sane approach. - fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637263</commentid>
    <comment_count>16</comment_count>
      <attachid>144825</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-30 08:30:59 -0700</bug_when>
    <thetext>Created attachment 144825
patch for review. - fixed issues as commented before.

EWS will not pass as long as the patches for the blocking bugs are not landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637329</commentid>
    <comment_count>17</comment_count>
      <attachid>144825</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-30 09:54:06 -0700</bug_when>
    <thetext>Comment on attachment 144825
patch for review. - fixed issues as commented before.

Attachment 144825 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12848915</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637388</commentid>
    <comment_count>18</comment_count>
      <attachid>144825</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-30 10:26:04 -0700</bug_when>
    <thetext>Comment on attachment 144825
patch for review. - fixed issues as commented before.

Attachment 144825 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12844923</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639685</commentid>
    <comment_count>19</comment_count>
      <attachid>145373</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-06-01 13:45:07 -0700</bug_when>
    <thetext>Created attachment 145373
patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639693</commentid>
    <comment_count>20</comment_count>
      <attachid>145373</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-06-01 13:49:29 -0700</bug_when>
    <thetext>Comment on attachment 145373
patch for review.

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

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:40
&gt; +#include &lt;QWindow&gt;

This needs an #if HAVE(QT5)

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:112
&gt; +        QWindow* window = new QWindow;

#if HAVE(QT5)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639699</commentid>
    <comment_count>21</comment_count>
      <attachid>145374</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-06-01 13:54:39 -0700</bug_when>
    <thetext>Created attachment 145374
patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639702</commentid>
    <comment_count>22</comment_count>
      <attachid>145374</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-06-01 14:02:48 -0700</bug_when>
    <thetext>Comment on attachment 145374
patch for review.

Attachment 145374 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12862726</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639742</commentid>
    <comment_count>23</comment_count>
      <attachid>145374</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-01 14:48:30 -0700</bug_when>
    <thetext>Comment on attachment 145374
patch for review.

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

&gt; Source/WebCore/ChangeLog:20
&gt; +

Redundant line

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:230
&gt; +

Redundant line

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:112
&gt; +#if HAVE(QT5)

I think this is in the wrong place. the #if statement should be outside the if() statement, and allow for early returns. In general, this code could be more readable.

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:222
&gt; +        return 0;
&gt; +    blitMultisampleFramebufferAndRestoreContext();

Extra line here please

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:230
&gt; +    RefPtr&lt;GraphicsSurface&gt; temp = m_frontBufferGraphicsSurface;
&gt; +    m_frontBufferGraphicsSurface = m_backBufferGraphicsSurface;
&gt; +    m_backBufferGraphicsSurface = temp;

std::swap

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:296
&gt; +void GraphicsContext3DPrivate::reshape(int width, int height)

why don&apos;t we explicitly call this createGraphicsSurfaces?

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:483
&gt; +void GraphicsContext3D::reshapeSurface(int width, int height)

createGraphicsSurfaces</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639749</commentid>
    <comment_count>24</comment_count>
      <attachid>145374</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-01 14:55:17 -0700</bug_when>
    <thetext>Comment on attachment 145374
patch for review.

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

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:110
&gt;      QWebPageClient* webPageClient = m_hostWindow-&gt;platformPageClient();

We should also account for having no m_hostWindow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639873</commentid>
    <comment_count>25</comment_count>
      <attachid>145374</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-06-01 16:55:33 -0700</bug_when>
    <thetext>Comment on attachment 145374
patch for review.

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

&gt;&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:110
&gt;&gt;      QWebPageClient* webPageClient = m_hostWindow-&gt;platformPageClient();
&gt; 
&gt; We should also account for having no m_hostWindow.

As far as I understand, it should not be possible not to have a HostWindow.
I will add an assert for that.

&gt;&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:112
&gt;&gt; +#if HAVE(QT5)
&gt; 
&gt; I think this is in the wrong place. the #if statement should be outside the if() statement, and allow for early returns. In general, this code could be more readable.

I replaced the HAVE(QT5) with USE(GRAPHICS_SURFACE), because currently we can&apos;t make use of one without the other.
I tried to make it a bit more readable as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639874</commentid>
    <comment_count>26</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-01 16:57:50 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 145374 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145374&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:110
&gt; &gt;&gt;      QWebPageClient* webPageClient = m_hostWindow-&gt;platformPageClient();
&gt; &gt; 
&gt; &gt; We should also account for having no m_hostWindow.
&gt; 
&gt; As far as I understand, it should not be possible not to have a HostWindow.
&gt; I will add an assert for that.
That&apos;s going to change... and in this case we don&apos;t need the HostWindow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639884</commentid>
    <comment_count>27</comment_count>
      <attachid>145409</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-06-01 17:17:26 -0700</bug_when>
    <thetext>Created attachment 145409
patch for review.

includes check for m_hostWindow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639886</commentid>
    <comment_count>28</comment_count>
      <attachid>145409</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-01 17:31:33 -0700</bug_when>
    <thetext>Comment on attachment 145409
patch for review.

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

OK, this is great! only some minor nitpicks.

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:115
&gt; +            return;

Extra line after return

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:117
&gt; +    }

Extra line after brace. you can do an early return and avoid the else

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:119
&gt; +      else {

bad indentation

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:296
&gt; +        m_frontBufferGraphicsSurface = 0;
&gt; +        m_backBufferGraphicsSurface = 0;

= 0 --&gt; .clear()

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:488
&gt; +    if (!m_canvasNeedsDisplay)
&gt; +        return;
&gt; +    if (!m_canvasPlatformLayer)
&gt; +        return;

Extra lines after return;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640022</commentid>
    <comment_count>29</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-06-02 07:01:40 -0700</bug_when>
    <thetext>Committed r119318: &lt;http://trac.webkit.org/changeset/119318&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141419</attachid>
            <date>2012-05-11 07:55:54 -0700</date>
            <delta_ts>2012-05-30 01:40:00 -0700</delta_ts>
            <desc>WIP patch.</desc>
            <filename>_20120511-155745.patch</filename>
            <type>text/plain</type>
            <size>28950</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5oCmluZGV4IDJhYjA3YWIuLmExN2ZiMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtOTEyLDYgKzkxMiw5
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYpOwogICAg
IHZvaWQgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShjb25zdCBJbnRSZWN0JiA9IElu
dFJlY3QoKSk7CisjaWYgUExBVEZPUk0oUVQpICYmIFVTRShHUkFQSElDU19TVVJGQUNFKQorICAg
IHZvaWQgcmVzaGFwZVN1cmZhY2UoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyNlbmRpZgogCiAg
ICAgaW50IG1fY3VycmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQ7CiAgICAgYm9vbCBpc1Jlc291
cmNlU2FmZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHAKaW5kZXggY2IzYTViNy4uYWVlMTM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0M0RPcGVuR0xDb21tb24uY3BwCkBAIC0yMjYsNiArMjI2LDEyIEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIGlmICh3aWR0aCA9
PSBtX2N1cnJlbnRXaWR0aCAmJiBoZWlnaHQgPT0gbV9jdXJyZW50SGVpZ2h0KQogICAgICAgICBy
ZXR1cm47CiAKKyNpZiBQTEFURk9STShRVCkgJiYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAg
OjpnbEZsdXNoKCk7IC8vIE1ha2Ugc3VyZSBhbGwgR0wgY2FsbHMgaGF2ZSBiZWVuIGNvbW1pdGVk
IGJlZm9yZSByZXNpemluZy4KKyAgICByZXNoYXBlU3VyZmFjZSh3aWR0aCwgaGVpZ2h0KTsKKyNl
bmRpZgorCisKICAgICBtX2N1cnJlbnRXaWR0aCA9IHdpZHRoOwogICAgIG1fY3VycmVudEhlaWdo
dCA9IGhlaWdodDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcAppbmRleCBlMWMyYjQ5Li5jNzU4ZjA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGlj
c0NvbnRleHQzRFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkV4
dGVuc2lvbnMzRE9wZW5HTC5oIgogI2VuZGlmCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CisjaW5jbHVkZSAiR3JhcGhpY3NTdXJmYWNlLmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1l
bnQuaCIKICNpbmNsdWRlICJIb3N0V2luZG93LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIK
QEAgLTM2LDYgKzM3LDcgQEAKICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgogI2luY2x1ZGUgIlFX
ZWJQYWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSA8UVdp
bmRvdz4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKQEAgLTY3LDE2ICs2OSwyNCBAQCBwdWJsaWM6CiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAgICAgdmlydHVhbCB2b2lk
IHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCBvcGFjaXR5LCBCaXRtYXBU
ZXh0dXJlKiBtYXNrKTsKICNlbmRpZgorI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQorICAgIHZp
cnR1YWwgdWludDMyX3QgY29weVRvR3JhcGhpY3NTdXJmYWNlKCk7CisjZW5kaWYKIAogICAgIFFS
ZWN0RiBib3VuZGluZ1JlY3QoKSBjb25zdDsKICAgICB2b2lkIGJsaXRNdWx0aXNhbXBsZUZyYW1l
YnVmZmVyKCkgY29uc3Q7CiAgICAgdm9pZCBibGl0TXVsdGlzYW1wbGVGcmFtZWJ1ZmZlckFuZFJl
c3RvcmVDb250ZXh0KCkgY29uc3Q7CiAgICAgYm9vbCBtYWtlQ3VycmVudElmTmVlZGVkKCkgY29u
c3Q7CisgICAgdm9pZCByZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCk7CiAKICAgICBHcmFw
aGljc0NvbnRleHQzRCogbV9jb250ZXh0OwogICAgIEhvc3RXaW5kb3cqIG1faG9zdFdpbmRvdzsK
ICAgICBQbGF0Zm9ybUdyYXBoaWNzU3VyZmFjZTNEIG1fc3VyZmFjZTsKICAgICBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEIG1fcGxhdGZvcm1Db250ZXh0OworI2lmIFVTRShHUkFQSElDU19TVVJG
QUNFKQorICAgIEdyYXBoaWNzU3VyZmFjZTo6RmxhZ3MgbV9zdXJmYWNlRmxhZ3M7CisgICAgUmVm
UHRyPEdyYXBoaWNzU3VyZmFjZT4gbV9ncmFwaGljc1N1cmZhY2U7CisjZW5kaWYKIH07CiAKIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0Q6OmlzR0xFUzJDb21wbGlhbnQoKSBjb25zdApAQCAtOTUsMTIg
KzEwNSw0MCBAQCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgSAogICAgICwgbV9wbGF0Zm9ybUNvbnRl
eHQoMCkKIHsKICAgICBRV2ViUGFnZUNsaWVudCogd2ViUGFnZUNsaWVudCA9IG1faG9zdFdpbmRv
dy0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7Ci0gICAgaWYgKCF3ZWJQYWdlQ2xpZW50KQotICAgICAg
ICByZXR1cm47Ci0gICAgd2ViUGFnZUNsaWVudC0+Y3JlYXRlUGxhdGZvcm1HcmFwaGljc0NvbnRl
eHQzRCgmbV9wbGF0Zm9ybUNvbnRleHQsICZtX3N1cmZhY2UpOwotICAgIGlmICghbV9zdXJmYWNl
KQotICAgICAgICByZXR1cm47Ci0gICAgbWFrZUN1cnJlbnRJZk5lZWRlZCgpOworICAgIGlmICgh
d2ViUGFnZUNsaWVudCkgeworICAgICAgICAvLyBXZSBuZWVkIHRvIGNyZWF0ZSBhIHN1cmZhY2Ug
aW4gb3JkZXIgdG8gY3JlYXRlIGEgUU9wZW5HTENvbnRleHQgYW5kIG1ha2luZyBpdCBjdXJyZW50
LgorICAgICAgICAvLyBUaGVyZWZvcmUgd2UgY3JlYXRlIGEgbWluaW1hbCBRV2luZG93LCBhbmQg
cGxhY2UgaXQgb2Zmc2NyZWVuLgorICAgICAgICBRV2luZG93KiB3aW5kb3cgPSBuZXcgUVdpbmRv
dzsKKyAgICAgICAgd2luZG93LT5zZXRTdXJmYWNlVHlwZShRU3VyZmFjZTo6T3BlbkdMU3VyZmFj
ZSk7CisgICAgICAgIHdpbmRvdy0+c2V0R2VvbWV0cnkoLTEwLCAtMTAsIDEsIDEpOworICAgICAg
ICB3aW5kb3ctPnNob3coKTsKKyAgICAgICAgbV9zdXJmYWNlID0gd2luZG93OworCisgICAgICAg
IG1fcGxhdGZvcm1Db250ZXh0ID0gbmV3IFFPcGVuR0xDb250ZXh0KHdpbmRvdyk7CisgICAgICAg
IGlmICghbV9wbGF0Zm9ybUNvbnRleHQtPmNyZWF0ZSgpKQorICAgICAgICAgICAgZnByaW50Zihz
dGRlcnIsICJtX2NnbENvbnRleHQtPmNyZWF0ZSBmYWlsZWQuXG4iKTsKKworICAgICAgICBtYWtl
Q3VycmVudElmTmVlZGVkKCk7CisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgICAgIC8v
IFRoZSBzaXplIG9mIHRoZSBjb250ZXh0IHNob3VsZCBuZXZlciBiZSAwIGluIGFueSBkaW1lbnNp
b24sIG90aGVyd2lzZSBjcmVhdGluZyBhIHN1cmZhY2Ugd2lsbCBmYWlsLgorICAgICAgICBJbnRT
aXplIHN1cmZhY2VTaXplKG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGggPyBtX2NvbnRleHQtPm1f
Y3VycmVudFdpZHRoIDogMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgbV9jb250ZXh0
LT5tX2N1cnJlbnRIZWlnaHQgPyBtX2NvbnRleHQtPm1fY3VycmVudEhlaWdodCA6IDEpOworCisg
ICAgICAgIG1fc3VyZmFjZUZsYWdzID0KKyAgICAgICAgICAgIEdyYXBoaWNzU3VyZmFjZTo6U3Vw
cG9ydHNTb2Z0d2FyZVdyaXRlCisgICAgICAgICAgICB8IEdyYXBoaWNzU3VyZmFjZTo6U3VwcG9y
dHNTb2Z0d2FyZVJlYWQKKyAgICAgICAgICAgIHwgR3JhcGhpY3NTdXJmYWNlOjpTdXBwb3J0c0Nv
cHlUb1RleHR1cmUKKyAgICAgICAgICAgIHwgR3JhcGhpY3NTdXJmYWNlOjpTdXBwb3J0c0NvcHlG
cm9tVGV4dHVyZQorICAgICAgICAgICAgfCBHcmFwaGljc1N1cmZhY2U6OlN1cHBvcnRzU2hhcmlu
ZzsKKworICAgICAgICBtX2dyYXBoaWNzU3VyZmFjZSA9IEdyYXBoaWNzU3VyZmFjZTo6Y3JlYXRl
KHN1cmZhY2VTaXplLCBtX3N1cmZhY2VGbGFncyk7CisjZW5kaWYKKyAgICB9IGVsc2UgeworICAg
ICAgICAvLyBUaGlzIGlzIHRoZSBXZWJLaXQxIGNvZGUgcGF0aC4KKyAgICAgICAgd2ViUGFnZUNs
aWVudC0+Y3JlYXRlUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgmbV9wbGF0Zm9ybUNvbnRleHQs
ICZtX3N1cmZhY2UpOworICAgICAgICBpZiAoIW1fc3VyZmFjZSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICB9CiB9CiAKIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6fkdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZSgpCkBAIC0xNzQsNiArMjEyLDE2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVy
CiB9CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCisjaWYgVVNFKEdS
QVBISUNTX1NVUkZBQ0UpCit1aW50MzJfdCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNvcHlU
b0dyYXBoaWNzU3VyZmFjZSgpCit7CisgICAgYmxpdE11bHRpc2FtcGxlRnJhbWVidWZmZXJBbmRS
ZXN0b3JlQ29udGV4dCgpOworICAgIG1ha2VDdXJyZW50SWZOZWVkZWQoKTsKKyAgICBtX2dyYXBo
aWNzU3VyZmFjZS0+Y29weUZyb21GcmFtZWJ1ZmZlcihtX2NvbnRleHQtPm1fZmJvLCBJbnRSZWN0
KDAsIDAsIG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1fY29udGV4dC0+bV9jdXJyZW50SGVp
Z2h0KSk7CisgICAgcmV0dXJuIG1fZ3JhcGhpY3NTdXJmYWNlLT5leHBvcnRUb2tlbigpOworfQor
I2VuZGlmCisKIFFSZWN0RiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmJvdW5kaW5nUmVjdCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIFFSZWN0RihRUG9pbnRGKDAsIDApLCBRU2l6ZUYobV9jb250
ZXh0LT5tX2N1cnJlbnRXaWR0aCwgbV9jb250ZXh0LT5tX2N1cnJlbnRIZWlnaHQpKTsKQEAgLTIz
NSw2ICsyODMsMTUgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6Om1ha2VDdXJyZW50
SWZOZWVkZWQoKSBjb25zdAogI2VuZGlmCiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyNpZiBVU0UoR1JBUEhJQ1Nf
U1VSRkFDRSkKKyAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgY29udGV4dCBzaG91bGQgbmV2ZXIgYmUg
MCBpbiBhbnkgZGltZW5zaW9uLCBvdGhlcndpc2UgY3JlYXRpbmcgYSBzdXJmYWNlIHdpbGwgZmFp
bC4KKyAgICBJbnRTaXplIGNvbnRleHRTaXplKHdpZHRoID8gd2lkdGggOiAxLCBoZWlnaHQgPyBo
ZWlnaHQgOiAxKTsKKyAgICBtX2dyYXBoaWNzU3VyZmFjZSA9IEdyYXBoaWNzU3VyZmFjZTo6Y3Jl
YXRlKGNvbnRleHRTaXplLCBtX3N1cmZhY2VGbGFncyk7CisjZW5kaWYKK30KKwogUGFzc1JlZlB0
cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0Nv
bnRleHQzRDo6QXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQogewogICAgIC8vIFRoaXMgaW1w
bGVtZW50YXRpb24gZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCByZW5kZXJpbmcgZGlyZWN0bHkg
dG8gdGhlIEhvc3RXaW5kb3cuCkBAIC00MDcsNiArNDY0LDEzIEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OnBhaW50VG9DYW52YXMoY29uc3QgdW5zaWduZWQgY2hhciogaW1hZ2VQaXhlbHMsIGlu
dCBpbWFnCiAgICAgY29udGV4dC0+cmVzdG9yZSgpOwogfQogCisjaWYgVVNFKEdSQVBISUNTX1NV
UkZBQ0UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlU3VyZmFjZShpbnQgd2lkdGgs
IGludCBoZWlnaHQpCit7CisgICAgbV9wcml2YXRlLT5yZXNoYXBlKHdpZHRoLCBoZWlnaHQpOwor
fQorI2VuZGlmCisKICNpZiBkZWZpbmVkKFFUX09QRU5HTF9FU18yKQogUGFzc1JlZlB0cjxJbWFn
ZURhdGE+IEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0
YShEcmF3aW5nQnVmZmVyKikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuY3BwCmluZGV4IGI0M2Ex
MDEuLjBjZjJlZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmNwcApAQCAtNTksNiArNTksMTEg
QEAgdm9pZCBHcmFwaGljc1N1cmZhY2U6OmNvcHlUb0dMVGV4dHVyZSh1aW50MzJfdCB0YXJnZXQs
IHVpbnQzMl90IHRleHR1cmUsIGNvbnN0IEkKICAgICBwbGF0Zm9ybUNvcHlUb0dMVGV4dHVyZSh0
YXJnZXQsIHRleHR1cmUsIHRhcmdldFJlY3QsIG9mZnNldCk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NT
dXJmYWNlOjpjb3B5RnJvbUZyYW1lYnVmZmVyKHVpbnQzMl90IGZibywgY29uc3QgSW50UmVjdCYg
c291cmNlUmVjdCkKK3sKKyAgICBwbGF0Zm9ybUNvcHlGcm9tRnJhbWVidWZmZXIoZmJvLCBzb3Vy
Y2VSZWN0KTsKK30KKwogR3JhcGhpY3NTdXJmYWNlOjpHcmFwaGljc1N1cmZhY2UoY29uc3QgSW50
U2l6ZSYgc2l6ZSwgRmxhZ3MgZmxhZ3MpCiAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAsIG1fZmxh
Z3MoZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5oCmluZGV4IGRhOTQxZDQuLjA5YWQwNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBo
aWNzU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL0dyYXBoaWNzU3VyZmFjZS5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+IGNyZWF0ZShjb25zdCBJbnRTaXplJiwgRmxh
Z3MpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gY3JlYXRlKGNvbnN0
IEludFNpemUmLCBGbGFncywgdWludDMyX3QgdG9rZW4pOwogICAgIHZvaWQgY29weVRvR0xUZXh0
dXJlKHVpbnQzMl90IHRhcmdldCwgdWludDMyX3QgdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgdGFy
Z2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCk7CisgICAgdm9pZCBjb3B5RnJv
bUZyYW1lYnVmZmVyKHVpbnQzMl90IGZibywgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCk7CiAg
ICAgdWludDMyX3QgZXhwb3J0VG9rZW4oKTsKICAgICBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4
dD4gYmVnaW5QYWludChjb25zdCBJbnRSZWN0JiwgTG9ja09wdGlvbnMpOwogICAgIFBhc3NSZWZQ
dHI8SW1hZ2U+IGNyZWF0ZVJlYWRPbmx5SW1hZ2UoY29uc3QgSW50UmVjdCYpOwpAQCAtNzcsNiAr
NzgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgY2hhciogcGxhdGZvcm1Mb2NrKGNvbnN0IEludFJlY3Qm
LCBpbnQqIHN0cmlkZSwgTG9ja09wdGlvbnMpOwogICAgIHZvaWQgcGxhdGZvcm1VbmxvY2soKTsK
ICAgICB2b2lkIHBsYXRmb3JtQ29weVRvR0xUZXh0dXJlKHVpbnQzMl90IHRhcmdldCwgdWludDMy
X3QgdGV4dHVyZSwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFBvaW50Jik7CisgICAgdm9pZCBw
bGF0Zm9ybUNvcHlGcm9tRnJhbWVidWZmZXIodWludDMyX3QgZmJvLCBjb25zdCBJbnRSZWN0JiBz
b3VyY2VSZWN0KTsKIAogICAgIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBwbGF0Zm9ybUJl
Z2luUGFpbnQoY29uc3QgSW50U2l6ZSYsIGNoYXIqIGJpdHMsIGludCBzdHJpZGUpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9tYWMvR3Jh
cGhpY3NTdXJmYWNlTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL21hYy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwCmluZGV4IGI2YTFhMDIuLjYzODE1YWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL21h
Yy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL21hYy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwCkBAIC0xOSw2ICsxOSw3
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHcmFwaGljc1N1cmZhY2UuaCIK
KyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZB
Q0UpICYmIE9TKERBUldJTikKICNpbmNsdWRlIDxDRk51bWJlci5oPgpAQCAtODMsNiArODQsMjcg
QEAgdm9pZCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtQ29weVRvR0xUZXh0dXJlKHVpbnQzMl90
IHRhcmdldCwgdWludDMyX3QgaWQsIGNvbnMKICAgICBnbFBvcEF0dHJpYigpOwogfQogCit2b2lk
IEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1Db3B5RnJvbUZyYW1lYnVmZmVyKHVpbnQzMl90IG9y
aWdpbkZibywgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCkKK3sKKyAgICBnbFB1c2hBdHRyaWIo
R0xfQUxMX0FUVFJJQl9CSVRTKTsKKyAgICBpZiAoIW1fdGV4dHVyZSkKKyAgICAgICAgbV90ZXh0
dXJlID0gY3JlYXRlVGV4dHVyZShtX3BsYXRmb3JtU3VyZmFjZSk7CisgICAgaWYgKCFtX2ZibykK
KyAgICAgICAgZ2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKKyAgICBHTGludCBvbGRGQk87
CisgICAgZ2xHZXRJbnRlZ2VydihHTF9GUkFNRUJVRkZFUl9CSU5ESU5HLCAmb2xkRkJPKTsKKyAg
ICBnbEVuYWJsZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BUkIpOworICAgIGdsQmluZEZyYW1lYnVm
ZmVyKEdMX1JFQURfRlJBTUVCVUZGRVIsIG9yaWdpbkZibyk7CisgICAgZ2xCaW5kRnJhbWVidWZm
ZXIoR0xfRFJBV19GUkFNRUJVRkZFUiwgbV9mYm8pOworICAgIGdsRnJhbWVidWZmZXJUZXh0dXJl
MkQoR0xfRFJBV19GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVf
UkVDVEFOR0xFX0FSQiwgbV90ZXh0dXJlLCAwKTsKKyAgICBnbEJsaXRGcmFtZWJ1ZmZlcigwLCAw
LCBzb3VyY2VSZWN0LndpZHRoKCksIHNvdXJjZVJlY3QuaGVpZ2h0KCksIDAsIHNvdXJjZVJlY3Qu
aGVpZ2h0KCksIHNvdXJjZVJlY3Qud2lkdGgoKSwgMCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwgR0xf
TElORUFSKTsgLy8gRmxpcCB0aGUgdGV4dHVyZSB1cHNpZGUgZG93bi4KKyAgICBnbEZyYW1lYnVm
ZmVyVGV4dHVyZTJEKEdMX0RSQVdfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBH
TF9URVhUVVJFX1JFQ1RBTkdMRV9BUkIsIDAsIDApOworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdM
X0ZSQU1FQlVGRkVSLCBvbGRGQk8pOworICAgIGdsUG9wQXR0cmliKCk7CisKKyAgICBnbEZsdXNo
UmVuZGVyQVBQTEUoKTsKK30KKwogYm9vbCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtQ3JlYXRl
KGNvbnN0IEludFNpemUmIHNpemUsIEZsYWdzIGZsYWdzKQogewogICAgIHVuc2lnbmVkIHBpeGVs
Rm9ybWF0ID0gJ0JHUkEnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaApp
bmRleCAzZDI0N2EyLi45NjE0Yzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXIuaApAQCAtMzIsNiArMzIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXIoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVN
YXBwZXIoVGV4dHVyZU1hcHBlciosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXggPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBmbG9h
dCBvcGFjaXR5ID0gMS4wLCBCaXRtYXBUZXh0dXJlKiBtYXNrID0gMCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzd2FwQnVmZmVycygpIHsgfQorI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQorICAg
IHZpcnR1YWwgdWludDMyX3QgY29weVRvR3JhcGhpY3NTdXJmYWNlKCkgeyByZXR1cm4gMDsgfQor
I2VuZGlmCiB9OwogCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAKaW5kZXggZmNjYTFiMy4uNTNmNDQ2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC00MjgsNiAr
NDI4LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVE
aWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWwKICAgICAgICAgICAgIG1fbGF5ZXIgPSBu
ZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckxheWVyKHRoaXMpOwogICAgICAgICAgICAgc2V0SGFz
TGF5ZXIodHJ1ZSk7CiAgICAgICAgICAgICBtX2xheWVyLT5pbnNlcnRPbmx5VGhpc0xheWVyKCk7
CisgICAgICAgICAgICBjb250ZW50Q2hhbmdlZChDYW52YXNDaGFuZ2VkKTsgLy8gVHJpZ2dlciBy
ZXBhaW50aW5nIHRoZSBjYW52YXMgYWZ0ZXIgaXQgYmVjYW1lIGEgc2VwYXJhdGUgbGF5ZXIuCiAg
ICAgICAgICAgICBpZiAocGFyZW50KCkgJiYgIW5lZWRzTGF5b3V0KCkgJiYgY29udGFpbmluZ0Js
b2NrKCkpIHsKICAgICAgICAgICAgICAgICBtX2xheWVyLT5zZXRSZXBhaW50U3RhdHVzKE5lZWRz
RnVsbFJlcGFpbnQpOwogICAgICAgICAgICAgICAgIC8vIFRoZXJlIGlzIG9ubHkgb25lIGxheWVy
IHRvIHVwZGF0ZSwgaXQgaXMgbm90IHdvcnRoIHVzaW5nIHxjYWNoZWRPZmZzZXR8IHNpbmNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNl
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5j
cHAKaW5kZXggMGIzZjM2ZC4uOWEzMGUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcApAQCAtNjMsNiArNjMsMTAgQEAgYm9v
bCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1By
aXZhdGU6OldlYkF0dHJpYnV0ZQogICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBEZXZlbG9wZXJF
eHRyYXNFbmFibGVkOgogICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldERldmVsb3BlckV4
dHJhc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CisjaWYgRU5BQkxFKFdFQkdMKQorICAgIGNh
c2UgV2ViR0xFbmFibGVkOgorICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFdlYkdMRW5h
YmxlZChwcmVmZXJlbmNlc1JlZigpKTsKKyNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDYsNiArMTEw
LDExIEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0QXR0cmlidXRlKFFXZWJQcmVm
ZXJlbmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZSBhCiAgICAgY2FzZSBEZXZlbG9wZXJFeHRyYXNF
bmFibGVkOgogICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChw
cmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoV0VC
R0wpCisgICAgY2FzZSBXZWJHTEVuYWJsZWQ6CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJH
TEVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKKyAgICAgICAgYnJlYWs7CisjZW5k
aWYKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBA
IC00NzYsNiArNDg1LDI1IEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXREZWZhdWx0Rml4ZWRG
b250U2l6ZSh1bnNpZ25lZCBzaXplKQogICAgIGVtaXQgZGVmYXVsdEZpeGVkRm9udFNpemVDaGFu
Z2VkKCk7CiB9CiAKK2Jvb2wgUVdlYlByZWZlcmVuY2VzOjp3ZWJHTEVuYWJsZWQoKSBjb25zdAor
eworI2lmIEVOQUJMRShXRUJHTCkKKyAgICByZXR1cm4gZC0+dGVzdEF0dHJpYnV0ZShRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlOjpXZWJHTEVuYWJsZWQpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7
CisjZW5kaWYKK30KKwordm9pZCBRV2ViUHJlZmVyZW5jZXM6OnNldFdlYkdMRW5hYmxlZChib29s
IGVuYWJsZSkKK3sKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgZC0+c2V0QXR0cmlidXRlKFFXZWJQ
cmVmZXJlbmNlc1ByaXZhdGU6OldlYkdMRW5hYmxlZCwgZW5hYmxlKTsKKyAgICBlbWl0IHdlYkdM
RW5hYmxlZENoYW5nZWQoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZSk7CisjZW5k
aWYKK30KKwogV0tQcmVmZXJlbmNlc1JlZiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpwcmVmZXJl
bmNlc1JlZigpIGNvbnN0CiB7CiAgICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmID0gdG9B
UEkod2ViVmlld1ByaXZhdGUtPndlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oCmluZGV4
IDI0ODU5YmYuLjg2MThmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdlYnByZWZlcmVuY2VzX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAg
IFFfUFJPUEVSVFkoYm9vbCBuYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQgUkVBRCBuYXZpZ2F0b3JR
dE9iamVjdEVuYWJsZWQgV1JJVEUgc2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkIE5PVElGWSBu
YXZpZ2F0b3JRdE9iamVjdEVuYWJsZWRDaGFuZ2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoYm9v
bCBmcmFtZUZsYXR0ZW5pbmdFbmFibGVkIFJFQUQgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCBXUklU
RSBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkIE5PVElGWSBmcmFtZUZsYXR0ZW5pbmdFbmFibGVk
Q2hhbmdlZCBGSU5BTCkKICAgICBRX1BST1BFUlRZKGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZCBSRUFEIGRldmVsb3BlckV4dHJhc0VuYWJsZWQgV1JJVEUgc2V0RGV2ZWxvcGVyRXh0cmFzRW5h
YmxlZCBOT1RJRlkgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZENoYW5nZWQgRklOQUwpCisgICAgUV9Q
Uk9QRVJUWShib29sIHdlYkdMRW5hYmxlZCBSRUFEIHdlYkdMRW5hYmxlZCBXUklURSBzZXRXZWJH
TEVuYWJsZWQgTk9USUZZIHdlYkdMRW5hYmxlZENoYW5nZWQgRklOQUwpCiAKICAgICBRX1BST1BF
UlRZKFFTdHJpbmcgc3RhbmRhcmRGb250RmFtaWx5IFJFQUQgc3RhbmRhcmRGb250RmFtaWx5IFdS
SVRFIHNldFN0YW5kYXJkRm9udEZhbWlseSBOT1RJRlkgc3RhbmRhcmRGb250RmFtaWx5Q2hhbmdl
ZCBGSU5BTCkKICAgICBRX1BST1BFUlRZKFFTdHJpbmcgZml4ZWRGb250RmFtaWx5IFJFQUQgZml4
ZWRGb250RmFtaWx5IFdSSVRFIHNldEZpeGVkRm9udEZhbWlseSBOT1RJRlkgZml4ZWRGb250RmFt
aWx5Q2hhbmdlZCBGSU5BTCkKQEAgLTkxLDYgKzkyLDkgQEAgcHVibGljOgogICAgIGJvb2wgZGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZChib29sIGVuYWJsZSk7CiAKKyAgICBib29sIHdlYkdMRW5hYmxlZCgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0V2ViR0xFbmFibGVkKGJvb2wgZW5hYmxlKTsKKwogICAgIFFTdHJpbmcgc3Rh
bmRhcmRGb250RmFtaWx5KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHko
Y29uc3QgUVN0cmluZyYgZmFtaWx5KTsKIApAQCAtMTMxLDYgKzEzNSw3IEBAIFFfU0lHTkFMUzoK
ICAgICB2b2lkIG5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIGZy
YW1lRmxhdHRlbmluZ0VuYWJsZWRDaGFuZ2VkKCk7CiAgICAgdm9pZCBkZXZlbG9wZXJFeHRyYXNF
bmFibGVkQ2hhbmdlZCgpOworICAgIHZvaWQgd2ViR0xFbmFibGVkQ2hhbmdlZCgpOwogCiAgICAg
dm9pZCBzdGFuZGFyZEZvbnRGYW1pbHlDaGFuZ2VkKCk7CiAgICAgdm9pZCBmaXhlZEZvbnRGYW1p
bHlDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJwcmVmZXJlbmNlc19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdlYnByZWZlcmVuY2VzX3BfcC5oCmluZGV4IGFlNjM2YzEuLjdjMWM5YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5o
CkBAIC0zOCw3ICszOCw4IEBAIHB1YmxpYzoKICAgICAgICAgRnJhbWVGbGF0dGVuaW5nRW5hYmxl
ZCwKICAgICAgICAgUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwKICAgICAgICAgRG5zUHJlZmV0Y2hF
bmFibGVkLAotICAgICAgICBEZXZlbG9wZXJFeHRyYXNFbmFibGVkCisgICAgICAgIERldmVsb3Bl
ckV4dHJhc0VuYWJsZWQsCisgICAgICAgIFdlYkdMRW5hYmxlZAogICAgIH07CiAKICAgICBlbnVt
IEZvbnRGYW1pbHkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVy
VHJlZUhvc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9z
dFByb3h5LmNwcAppbmRleCAwM2E1ZWFjLi5lZDRiMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmNwcApAQCAtMTUwLDYgKzE1MCwxMSBAQCB2
b2lkIExheWVyVHJlZUhvc3RQcm94eTo6ZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50
UG9pbnQmIHBvc2l0aW9uKQogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJldlYkxheWVyVHJlZVJl
bmRlcmVyOjpkaWRDaGFuZ2VTY3JvbGxQb3NpdGlvbiwgbV9yZW5kZXJlci5nZXQoKSwgcG9zaXRp
b24pKTsKIH0KIAordm9pZCBMYXllclRyZWVIb3N0UHJveHk6OnN5bmNDYW52YXModWludDMyX3Qg
aWQsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIHVpbnQzMl90IGdyYXBoaWNzU3VyZmFjZVRv
a2VuKQoreworICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJldlYkxheWVyVHJlZVJlbmRlcmVyOjpz
eW5jQ2FudmFzLCBtX3JlbmRlcmVyLmdldCgpLCBpZCwgY2FudmFzU2l6ZSwgZ3JhcGhpY3NTdXJm
YWNlVG9rZW4pKTsKK30KKwogdm9pZCBMYXllclRyZWVIb3N0UHJveHk6OnB1cmdlQmFja2luZ1N0
b3JlcygpCiB7CiAgICAgbV9yZW5kZXJlci0+c2V0QWN0aXZlKGZhbHNlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaAppbmRleCBhYzNkM2QyLi43OTU4
YTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5o
CkBAIC02OSw2ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVZpZXdwb3J0KCk7CiAg
ICAgdm9pZCByZW5kZXJOZXh0RnJhbWUoKTsKICAgICB2b2lkIGRpZENoYW5nZVNjcm9sbFBvc2l0
aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7CisgICAgdm9pZCBzeW5jQ2Fu
dmFzKHVpbnQzMl90IGlkLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjYW52YXNTaXplLCB1aW50
MzJfdCBncmFwaGljc1N1cmZhY2VUb2tlbik7CiAgICAgdm9pZCBwdXJnZUJhY2tpbmdTdG9yZXMo
KTsKICAgICBXZWJMYXllclRyZWVSZW5kZXJlciogbGF5ZXJUcmVlUmVuZGVyZXIoKSBjb25zdCB7
IHJldHVybiBtX3JlbmRlcmVyLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDFjZGFlMGQu
LmE4OGI0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVI
b3N0UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVy
VHJlZUhvc3RQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzMsNSArMzMsNiBAQCBtZXNzYWdlcyAtPiBM
YXllclRyZWVIb3N0UHJveHkgewogICAgIERlc3Ryb3lEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZShp
bnQ2NF90IGtleSkKICAgICBEaWRSZW5kZXJGcmFtZSgpCiAgICAgRGlkQ2hhbmdlU2Nyb2xsUG9z
aXRpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24pCisgICAgU3luY0NhbnZhcyh1aW50MzJf
dCBpZCwgV2ViQ29yZTo6SW50U2l6ZSBjYW52YXNTaXplLCB1aW50MzJfdCBncmFwaGljc1N1cmZh
Y2VUb2tlbikKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkxheWVyVHJlZVJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJM
YXllclRyZWVSZW5kZXJlci5jcHAKaW5kZXggZmEzMDFhMi4uZGViMjU2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCkBAIC0yMyw2
ICsyMyw3IEBACiAKICNpbmNsdWRlICJXZWJMYXllclRyZWVSZW5kZXJlci5oIgogCisjaW5jbHVk
ZSAiQml0bWFwSW1hZ2UuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5o
IgogI2luY2x1ZGUgIkxheWVyQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9z
dFByb3h5LmgiCkBAIC0zMCw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgi
CiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlci5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJCYWNr
aW5nU3RvcmUuaCIKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0wuaCIKICNpbmNsdWRlICJUZXh0
dXJlTWFwcGVyTGF5ZXIuaCIKICNpbmNsdWRlICJVcGRhdGVJbmZvLmgiCiAjaW5jbHVkZSA8T3Bl
bkdMU2hpbXMuaD4KQEAgLTE5NCw2ICsxOTYsNDAgQEAgdm9pZCBXZWJMYXllclRyZWVSZW5kZXJl
cjo6ZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uKQogICAg
IG1fcGVuZGluZ1JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbiA9IGJvdW5kZWRTY3JvbGxQ
b3NpdGlvbihwb3NpdGlvbiwgbV92aXNpYmxlQ29udGVudHNSZWN0LCBtX2NvbnRlbnRzU2l6ZSk7
CiB9CiAKK3ZvaWQgV2ViTGF5ZXJUcmVlUmVuZGVyZXI6OnN5bmNDYW52YXMoV2ViTGF5ZXJJRCBp
ZCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY2FudmFzU2l6ZSwgdWludDMyX3QgZ3JhcGhpY3NT
dXJmYWNlVG9rZW4pCit7CisgICAgaWYgKGNhbnZhc1NpemUuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm47CisKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICBSZWZQdHI8R3JhcGhpY3NT
dXJmYWNlRGF0YT4gc3VyZmFjZURhdGEgPSBHcmFwaGljc1N1cmZhY2VEYXRhOjpjcmVhdGUoKTsK
KyAgICBHcmFwaGljc1N1cmZhY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ncmFwaGljc1N1cmZhY2VN
YXAuZmluZChpZCk7CisgICAgaWYgKGl0ICE9IG1fZ3JhcGhpY3NTdXJmYWNlTWFwLmVuZCgpKQor
ICAgICAgICBzdXJmYWNlRGF0YS0+YmFja2luZ1N0b3JlID0gaXQtPnNlY29uZC0+YmFja2luZ1N0
b3JlOyAvLyBBZG9wdCB0aGUgYmFja2luZyBzdG9yZSBmb3IgdGhlIG5ldyBHcmFwaGljc1N1cmZh
Y2UuCisgICAgZWxzZQorICAgICAgICBzdXJmYWNlRGF0YS0+YmFja2luZ1N0b3JlID0gVGV4dHVy
ZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjpjcmVhdGUoKTsKKworICAgIEludFJlY3QgcmVjdChJ
bnRQb2ludCgwLCAwKSwgY2FudmFzU2l6ZSk7CisgICAgR3JhcGhpY3NTdXJmYWNlOjpGbGFncyBz
dXJmYWNlRmxhZ3MgPQorICAgICAgICAgICAgICAgICAgICBHcmFwaGljc1N1cmZhY2U6OlN1cHBv
cnRzU29mdHdhcmVSZWFkCisgICAgICAgICAgICAgICAgICAgIHwgR3JhcGhpY3NTdXJmYWNlOjpT
dXBwb3J0c0NvcHlGcm9tVGV4dHVyZQorICAgICAgICAgICAgICAgICAgICB8IEdyYXBoaWNzU3Vy
ZmFjZTo6U3VwcG9ydHNTaGFyaW5nOworCisgICAgc3VyZmFjZURhdGEtPmdyYXBoaWNzU3VyZmFj
ZSA9IEdyYXBoaWNzU3VyZmFjZTo6Y3JlYXRlKGNhbnZhc1NpemUsIHN1cmZhY2VGbGFncywgZ3Jh
cGhpY3NTdXJmYWNlVG9rZW4pOworICAgIHN1cmZhY2VEYXRhLT5pbWFnZSA9IHN1cmZhY2VEYXRh
LT5ncmFwaGljc1N1cmZhY2UtPmNyZWF0ZVJlYWRPbmx5SW1hZ2UocmVjdCk7CisgICAgc3VyZmFj
ZURhdGEtPmJhY2tpbmdTdG9yZS0+dXBkYXRlQ29udGVudHMobV90ZXh0dXJlTWFwcGVyLmdldCgp
LCBzdXJmYWNlRGF0YS0+aW1hZ2UuZ2V0KCkpOworCisgICAgbV9ncmFwaGljc1N1cmZhY2VNYXAu
c2V0KGlkLCBzdXJmYWNlRGF0YSk7CisKKyAgICBlbnN1cmVMYXllcihpZCk7CisgICAgTGF5ZXJN
YXA6Oml0ZXJhdG9yIGxheWVySXRlcmF0b3IgPSBtX2xheWVycy5maW5kKGlkKTsKKyAgICBBU1NF
UlQobGF5ZXJJdGVyYXRvciAhPSBtX2xheWVycy5lbmQoKSk7CisKKyAgICBHcmFwaGljc0xheWVy
KiBsYXllciA9IGxheWVySXRlcmF0b3ItPnNlY29uZDsKKyAgICBsYXllci0+c2V0Q29udGVudHNU
b01lZGlhKHN1cmZhY2VEYXRhLT5iYWNraW5nU3RvcmUuZ2V0KCkpOworI2VuZGlmCit9CisKIHZv
aWQgV2ViTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyQ2hpbGRyZW4oV2ViTGF5ZXJJRCBpZCwg
Y29uc3QgVmVjdG9yPFdlYkxheWVySUQ+JiBjaGlsZElEcykKIHsKICAgICBlbnN1cmVMYXllcihp
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVu
ZGVyZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5o
CmluZGV4IDA0MmM1MmQuLmVmMWMyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJMYXllclRyZWVSZW5kZXJlci5oCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpZiBVU0UoVUlf
U0lERV9DT01QT1NJVElORykKICNpbmNsdWRlICJCYWNraW5nU3RvcmUuaCIKKyNpbmNsdWRlICJH
cmFwaGljc1N1cmZhY2UuaCIKICNpbmNsdWRlICJTaGFyZWFibGVTdXJmYWNlLmgiCiAjaW5jbHVk
ZSAiVGV4dHVyZU1hcHBlci5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUu
aCIKQEAgLTQzLDYgKzQ0LDMwIEBAIGNsYXNzIExheWVyVHJlZUhvc3RQcm94eTsKIGNsYXNzIFdl
YkxheWVySW5mbzsKIGNsYXNzIFdlYkxheWVyVXBkYXRlSW5mbzsKIAorI2lmIFVTRShHUkFQSElD
U19TVVJGQUNFKQorY2xhc3MgR3JhcGhpY3NTdXJmYWNlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVk
PEdyYXBoaWNzU3VyZmFjZURhdGE+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxH
cmFwaGljc1N1cmZhY2VEYXRhPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBHcmFwaGljc1N1cmZhY2VEYXRhKTsKKyAgICB9CisKKyAgICB+R3JhcGhpY3NTdXJm
YWNlRGF0YSgpCisgICAgeworICAgICAgICAvLyBUaGUgSW1hZ2UgZGVzdHJ1Y3RvciBuZWVkcyB0
byB1bmxvY2sgdGhlIGdyYXBoaWNzIHN1cmZhY2UuCisgICAgICAgIC8vIFRoZXJlZm9yZSBpbWFn
ZSBtdXN0IGJlIHJlbGVhc2VkIGJlZm9yZSBncmFwaGljc1N1cmZhY2UuCisgICAgICAgIGltYWdl
ID0gMDsKKyAgICB9CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlPiBncmFw
aGljc1N1cmZhY2U7CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBpbWFnZTsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmU7
Citwcml2YXRlOgorICAgIEdyYXBoaWNzU3VyZmFjZURhdGEoKSB7IH0KK307CisjZW5kaWYKKwor
CiBjbGFzcyBXZWJMYXllclRyZWVSZW5kZXJlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxXZWJMYXllclRyZWVSZW5kZXJlcj4sIHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xp
ZW50IHsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgVGlsZVVwZGF0ZSB7CkBAIC02Nyw2ICs5Miw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmKTsKICAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhY2N1cmF0ZVZp
c2libGVDb250ZW50c1Bvc2l0aW9uKTsKICAgICB2b2lkIGRpZENoYW5nZVNjcm9sbFBvc2l0aW9u
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7CisgICAgdm9pZCBzeW5jQ2FudmFz
KHVpbnQzMl90IGlkLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjYW52YXNTaXplLCB1aW50MzJf
dCBncmFwaGljc1N1cmZhY2VUb2tlbik7CiAKICAgICB2b2lkIGRldGFjaCgpOwogICAgIHZvaWQg
YXBwZW5kVXBkYXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKQEAgLTExNyw2ICsxNDMsMTEg
QEAgcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPExheWVyQmFja2luZ1N0b3JlPiBnZXRCYWNraW5n
U3RvcmUoV2ViTGF5ZXJJRCk7CiAgICAgSGFzaE1hcDxpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6
VGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZT4gPiBtX2RpcmVjdGx5Q29tcG9zaXRlZEltYWdlczsK
ICAgICBIYXNoU2V0PFJlZlB0cjxMYXllckJhY2tpbmdTdG9yZT4gPiBtX2JhY2tpbmdTdG9yZXNX
aXRoUGVuZGluZ0J1ZmZlcnM7CisKKyNlbmRpZgorI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQor
ICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJMYXllcklELCBSZWZQdHI8R3JhcGhpY3NTdXJmYWNlRGF0
YT4gPiBHcmFwaGljc1N1cmZhY2VNYXA7CisgICAgR3JhcGhpY3NTdXJmYWNlTWFwIG1fZ3JhcGhp
Y3NTdXJmYWNlTWFwOwogI2VuZGlmCiAKICAgICB2b2lkIHNjaGVkdWxlV2ViVmlld1VwZGF0ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAKaW5kZXggODBlOGI2MS4uN2M0MTc4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGlj
c0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiR3JhcGhp
Y3NMYXllci5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3RQcm94eU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgiCiAj
aW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZS5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtMTA5LDggKzExMCwxMCBAQCBX
ZWJHcmFwaGljc0xheWVyOjpXZWJHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNs
aWVudCkKICAgICAsIG1fc2hvdWxkU3luY0xheWVyU3RhdGUodHJ1ZSkKICAgICAsIG1fc2hvdWxk
U3luY0NoaWxkcmVuKHRydWUpCiAgICAgLCBtX2ZpeGVkVG9WaWV3cG9ydChmYWxzZSkKKyAgICAs
IG1fY2FudmFzTmVlZHNEaXNwbGF5KGZhbHNlKQogICAgICwgbV93ZWJHcmFwaGljc0xheWVyQ2xp
ZW50KDApCiAgICAgLCBtX2NvbnRlbnRzU2NhbGUoMSkKKyAgICAsIG1fZ3JhcGhpY3NTdXJmYWNl
VG9rZW4oMCkKIHsKICAgICBzdGF0aWMgV2ViTGF5ZXJJRCBuZXh0TGF5ZXJJRCA9IDE7CiAgICAg
bV9pZCA9IG5leHRMYXllcklEKys7CkBAIC0zMTYsNiArMzE5LDE2IEBAIHZvaWQgV2ViR3JhcGhp
Y3NMYXllcjo6c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKQogICAgIFJlZlB0cjxJbWFnZT4gaW1h
Z2UgPSBtX2ltYWdlOwogICAgIHNldENvbnRlbnRzVG9JbWFnZSgwKTsKICAgICBzZXRDb250ZW50
c1RvSW1hZ2UoaW1hZ2UuZ2V0KCkpOworICAgIG1fY2FudmFzTmVlZHNEaXNwbGF5ID0gdHJ1ZTsK
KyAgICBpZiAoY2xpZW50KCkpCisgICAgICAgIGNsaWVudCgpLT5ub3RpZnlTeW5jUmVxdWlyZWQo
dGhpcyk7Cit9CisKK3ZvaWQgV2ViR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0NhbnZhcyhQ
bGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKQoreworI2lmIFVTRShHUkFQSElDU19TVVJGQUNF
KQorICAgIG1fZ3JhcGhpY3NTdXJmYWNlVG9rZW4gPSBwbGF0Zm9ybUxheWVyLT5jb3B5VG9HcmFw
aGljc1N1cmZhY2UoKTsKKyNlbmRpZgogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAt
NDY4LDYgKzQ4MSwxNiBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNMYXllclN0YXRlKCkK
ICAgICBtX3dlYkdyYXBoaWNzTGF5ZXJDbGllbnQtPnN5bmNMYXllclN0YXRlKG1faWQsIG1fbGF5
ZXJJbmZvKTsKIH0KIAordm9pZCBXZWJHcmFwaGljc0xheWVyOjpzeW5jQ2FudmFzKCkKK3sKKyAg
ICBpZiAoIW1fY2FudmFzTmVlZHNEaXNwbGF5KQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFt
X2dyYXBoaWNzU3VyZmFjZVRva2VuKQorICAgICAgICByZXR1cm47CisgICAgbV93ZWJHcmFwaGlj
c0xheWVyQ2xpZW50LT5zeW5jQ2FudmFzKG1faWQsIEludFNpemUoc2l6ZSgpLndpZHRoKCksIHNp
emUoKS5oZWlnaHQoKSksIG1fZ3JhcGhpY3NTdXJmYWNlVG9rZW4pOworICAgIG1fY2FudmFzTmVl
ZHNEaXNwbGF5ID0gZmFsc2U7Cit9CisKIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6ZW5zdXJlSW1h
Z2VCYWNraW5nU3RvcmUoKQogewogICAgIGlmICghbV9pbWFnZSkKQEAgLTQ3NSw2ICs0OTgsNyBA
QCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OmVuc3VyZUltYWdlQmFja2luZ1N0b3JlKCkKICAgICBp
ZiAoIW1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQpCiAgICAgICAgIG1fbGF5ZXJJbmZv
LmltYWdlQmFja2luZ1N0b3JlSUQgPSBtX3dlYkdyYXBoaWNzTGF5ZXJDbGllbnQtPmFkb3B0SW1h
Z2VCYWNraW5nU3RvcmUobV9pbWFnZS5nZXQoKSk7CiB9CisKIHZvaWQgV2ViR3JhcGhpY3NMYXll
cjo6c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKIHsKICAgICAvLyBUaGUg
cmVtb3RlIGltYWdlIG1pZ2h0IGhhdmUgYmVlbiByZWxlYXNlZCBieSBwdXJnZUJhY2tpbmdTdG9y
ZXMuCkBAIC00ODYsNiArNTEwLDcgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9z
aXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKQogICAgIHN5bmNGaWx0ZXJzKCk7CiAjZW5kaWYK
ICAgICB1cGRhdGVDb250ZW50QnVmZmVycygpOworICAgIHN5bmNDYW52YXMoKTsKIH0KIAogdm9p
ZCBXZWJHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50QmVnaW4oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGlj
c0xheWVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdy
YXBoaWNzTGF5ZXIuaAppbmRleCBjMjJhODgyLi5kOGFjZTExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5
ZXIuaApAQCAtNjAsNiArNjAsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQog
ICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNv
cmU6OkZpbHRlck9wZXJhdGlvbnMmKSA9IDA7CiAjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgc3lu
Y0NhbnZhcyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjYW52YXNTaXplLCB1
aW50MzJfdCBncmFwaGljc1N1cmZhY2VUb2tlbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2hMYXllcihXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkZXRhY2hMYXllcihXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyKikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzeW5jRml4ZWRMYXllcnMoKSA9IDA7CkBAIC05OCw2ICs5OSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE9wYWNpdHkoZmxvYXQpOwogICAgIHZvaWQgc2V0Q29udGVudHNSZWN0KGNv
bnN0IEludFJlY3QmKTsKICAgICB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSopOworICAg
IHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKik7CiAgICAgdm9pZCBzZXRN
YXNrTGF5ZXIoR3JhcGhpY3NMYXllciopOwogICAgIHZvaWQgc2V0UmVwbGljYXRlZEJ5TGF5ZXIo
R3JhcGhpY3NMYXllciopOwogICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCk7CkBAIC0xNDcsNiAr
MTQ5LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2b2lkIHN5bmNG
aWx0ZXJzKCk7CiAjZW5kaWYKKyAgICB2b2lkIHN5bmNDYW52YXMoKTsKICAgICB2b2lkIGVuc3Vy
ZUltYWdlQmFja2luZ1N0b3JlKCk7CiAKICAgICB2b2lkIGFkanVzdFZpc2libGVSZWN0KCk7CkBA
IC0xNjgsNiArMTcxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3luY0NoaWxkcmVu
OiAxOwogICAgIGJvb2wgbV9zaG91bGRTeW5jRmlsdGVyczogMTsKICAgICBib29sIG1fZml4ZWRU
b1ZpZXdwb3J0IDogMTsKKyAgICBib29sIG1fY2FudmFzTmVlZHNEaXNwbGF5IDogMTsKIAogICAg
IHZvaWQgbm90aWZ5Q2hhbmdlKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VHZW9tZXRyeSgpOwpAQCAt
MTkxLDYgKzE5NSw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFdlYkNvcmU6OlRpbGVkQmFja2lu
Z1N0b3JlPiBtX21haW5CYWNraW5nU3RvcmU7CiAgICAgT3duUHRyPFdlYkNvcmU6OlRpbGVkQmFj
a2luZ1N0b3JlPiBtX3ByZXZpb3VzQmFja2luZ1N0b3JlOwogICAgIGZsb2F0IG1fY29udGVudHNT
Y2FsZTsKKyAgICB1aW50MzJfdCBtX2dyYXBoaWNzU3VyZmFjZVRva2VuOwogfTsKIAogV2ViR3Jh
cGhpY3NMYXllciogdG9XZWJHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXIqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RR
dC5jcHAKaW5kZXggOTY0MzY2ZS4uOWNmYmU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKQEAgLTI1Niw2
ICsyNTYsMTIgQEAgdm9pZCBMYXllclRyZWVIb3N0UXQ6OnN5bmNMYXllckNoaWxkcmVuKFdlYkxh
eWVySUQgaWQsIGNvbnN0IFZlY3RvcjxXZWJMYXllcklEPiYKICAgICBtX3dlYlBhZ2UtPnNlbmQo
TWVzc2FnZXM6OkxheWVyVHJlZUhvc3RQcm94eTo6U2V0Q29tcG9zaXRpbmdMYXllckNoaWxkcmVu
KGlkLCBjaGlsZHJlbikpOwogfQogCit2b2lkIExheWVyVHJlZUhvc3RRdDo6c3luY0NhbnZhcyhX
ZWJMYXllcklEIGlkLCBjb25zdCBJbnRTaXplJiBjYW52YXNTaXplLCB1aW50MzJfdCBncmFwaGlj
c1N1cmZhY2VUb2tlbikKK3sKKyAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7CisgICAgbV93
ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVIb3N0UHJveHk6OlN5bmNDYW52YXMoaWQs
IGNhbnZhc1NpemUsIGdyYXBoaWNzU3VyZmFjZVRva2VuKSk7Cit9CisKICNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCiB2b2lkIExheWVyVHJlZUhvc3RRdDo6c3luY0xheWVyRmlsdGVycyhXZWJMYXll
cklEIGlkLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5oCmlu
ZGV4IGVlY2I2MmUuLjM3MzE3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmgKQEAgLTc5LDYgKzc5LDcgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVy
RmlsdGVycyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CiAj
ZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgc3luY0NhbnZhcyhXZWJMYXllcklELCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBjYW52YXNTaXplLCB1aW50MzJfdCBncmFwaGljc1N1cmZhY2VUb2tlbik7
CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaExheWVyKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXIq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXll
ciopOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jRml4ZWRMYXllcnMoKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbCBiL1Rvb2xzL01pbmlCcm93
c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbAppbmRleCBiMjkxN2NiLi4wNmMzYzZiIDEwMDY0
NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKKysrIGIv
VG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCkBAIC0zMDksNiArMzA5
LDcgQEAgUmVjdGFuZ2xlIHsKIAogICAgICAgICBleHBlcmltZW50YWwuZGV2aWNlUGl4ZWxSYXRp
bzogMS41CiAgICAgICAgIGV4cGVyaW1lbnRhbC5wcmVmZXJlbmNlcy5mdWxsU2NyZWVuRW5hYmxl
ZDogdHJ1ZQorICAgICAgICBleHBlcmltZW50YWwucHJlZmVyZW5jZXMud2ViR0xFbmFibGVkOiB0
cnVlCiAgICAgICAgIGV4cGVyaW1lbnRhbC5wcmVmZXJyZWRNaW5pbXVtQ29udGVudHNXaWR0aDog
OTgwCiAgICAgICAgIGV4cGVyaW1lbnRhbC5pdGVtU2VsZWN0b3I6IEl0ZW1TZWxlY3RvciB7IH0K
ICAgICAgICAgZXhwZXJpbWVudGFsLmFsZXJ0RGlhbG9nOiBBbGVydERpYWxvZyB7IH0K
</data>
<flag name="commit-queue"
          id="147556"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>141432</attachid>
            <date>2012-05-11 09:33:22 -0700</date>
            <delta_ts>2012-05-30 01:40:00 -0700</delta_ts>
            <desc>Archive of layout-test-results from ec2-cr-linux-01</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>117380</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">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
mpKXHDVIzF/ZRMnUcSv7tPA31lSxdthQCVjtHymo6jpUi3q9DngC+cFiwqk8qNGxHB3m/Myygfx7
bON4VFMBHEQAZ0vs6jDVk6lm4UPqn3y3xOIjX4ZmEutg+XBRoj8nSTEiCfam2niYdSPrp2ylTlL3
BYcCqaV40cQ5XnwiWXfwsYUCUTX/uwObHze9/BNqDOjKRtVssfVDvSzxAGY51iSuDDlknhhOFSW8
xuFA47H01yrRyaFxwy8ZQU6Ii0uDxVPV5Wh7UEdQd0TQy2NwHxuttosTlOAf0Mo36+oOwugQaiqI
XdJJk5jRtLlwecXRyu30Pxfhd+DixEsD+BSWU8fjwDl8JUZIptrZzXAEBKRnuZ3kj9E4TqA25VN8
hXPpM24NuGPjj9KqQoxXQma2SYLzMAk38eSZ2HyetoyopAF7AxTu9Ybq6zylwFiFzns0e0uxwo0b
Qny+bQmSLPoNP+Ax9ruWCi+XGFmFwMry1bXd1RUy4AWaR4SSeLl4SRVimlDB5V8vE93bXg6sIEc9
zKgCTzslyTsGr6I0CJq+cViBeYSbRNcD7SJJruxmbZJ5G06gZvlLmKa39P3V1tnNVnT+cOn0pgwP
k/b+hEjlrmG1rdDwwSyoJq/81J3YehH2dBVLJYsvpe2s3YyCszLOeT3YIVWhkalwO5a9NomQwcvr
zW9WUyJGtKxIJjdZMOfJRxnh2mi5hGUPSUfefsI9yjF8nJxTKMqn+Xpqkr8BUEsDBAoAAAAAAIOC
q0AAAAAAAAAAAAAAAABDABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcHl3ZWJzb2NrZXQud3Mu
bG9nLTExTWF5MjAxMi0xNjIwMDUtb3V0LnR4dFVUCQADNTytTzU8rU91eAsAAQToAwAABOgDAABQ
SwMECgAAAAAAh4KrQAAAAAAAAAAAAAAAAB0AHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRw
L1VUCQADPTytT4Q8rU91eAsAAQToAwAABOgDAABQSwMECgAAAAAAoYKrQAAAAAAAAAAAAAAAACMA
HAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL1VUCQADbTytT4Q8rU91eAsAAQTo
AwAABOgDAABQSwMECgAAAAAAh4KrQAAAAAAAAAAAAAAAACkAHAB0bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy9odHRwL3Rlc3RzL2NhY2hlL1VUCQADPjytT4Q8rU91eAsAAQToAwAABOgDAABQSwMEFAAC
AAgAh4KrQAD4L+WfAQAALwMAAFAAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3Rz
L2NhY2hlL2xvYWRlZC1mcm9tLWNhY2hlLWFmdGVyLXJlbG9hZC1kaWZmLnR4dFVUCQADPjytTz48
rU91eAsAAQToAwAABOgDAACtksGO0zAQhu95ilE5LCh14nS3TbQSohRWAgQqohWIE3LsSWPWjSN7
sk2peHccSncFUqU9cLHl39/8M2MPYwxS2rapEXvbESP0xBz6zpBPa6I2HRSfSiFrTI0VChWrnN2y
3woTFaELAcMNw75FSagS6gmiOI7/n7WQ1AlzNJ7PgWXjDOKwcJjPI/bx5WoVxSEPOhAET/mYPwOv
fyAUnPczzqMY4BM2Ct1njbtzzKMMFsbKWzi8WX94//M8e09btYfDYvn66xEuxsUfOC+u+mlxdYRP
+BpDg4cnFLZ/zfN81mf5PQ8wQOC65oHbaUX1AF7D6C1deGit97o0CJUNfYHvpETvq86AwzthtBKk
bQNkQYrOI+AdNuSHc6Udgt83sna2sZ03+wS+BKW2nVHNBYF0wtegK7ANgq2Aavtg4Mm2wabG0dly
s+n0VPDljIeCh29OYIUIw2z46zQtu41Pdljeakqs26Qh+e5bEBO50S+0ep5P8tkkgdGjn5D3/G/2
ZluiCmO3LL+HwYXDcvHu5tX6GBaqGk9OkZfhZ7Mpj34BUEsDBBQAAgAIAIeCq0D+waUdQAEAAFoC
AABSABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9sb2FkZWQtZnJv
bS1jYWNoZS1hZnRlci1yZWxvYWQtYWN0dWFsLnR4dFVUCQADPjytTz48rU91eAsAAQToAwAABOgD
AACN0V1LwzAUBuD7/YrDvJjC6LKPfjAQYTpQUQY6FK8kTU7XuJiMJF1bh//dzFmHwmBXIYfnPTlJ
JK3RAHVwSrrkDKz4QEgIqSJCWgAPqDiaJ4HlASKPiE+kZkvYXM/v7z4P0l+seQ2byezqZWeTbvJj
42RUhcno2zZ6jpWDzYnzy//WcRxV/bjhAFsDplB7Vgru8q0bQ/vGdSystLUilQiZ9ncCWzCG1maF
BINrKgWnTmgFTgOjhUXANSpnt/tMGARbK5YbrXRhZR3As6/kupBcdRwwQ20OIgOtEHQGLtf7Btbp
lW+TY/vQtP0wbOYdRsTPKzXlATwiQu7cyo57vbRY2KDEdClcoM2i588uX30xYAtxIfh5PIijQQDt
Y9+PVOQPnb6nyDnyWfqGzIdmk9vp5XyX8jN1B01w6P+0H5LWF1BLAwQKAAIAAACHgqtA7nAgwgUA
AAAFAAAAYgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvbG9hZGVk
LWZyb20tY2FjaGUtYWZ0ZXItcmVsb2FkLXdpdGhpbi1pZnJhbWUtZXhwZWN0ZWQudHh0VVQJAAM9
PK1PPTytT3V4CwABBOgDAAAE6AMAAFBBU1MKUEsDBBQAAgAIAIeCq0Bw+7pWdAgAAGYeAABmABwA
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9sb2FkZWQtZnJvbS1jYWNo
ZS1hZnRlci1yZWxvYWQtd2l0aGluLWlmcmFtZS1wcmV0dHktZGlmZi5odG1sVVQJAAM+PK1PPjyt
T3V4CwABBOgDAAAE6AMAANVYa2/bRhb97l8xsJG6LUyKsiRbD8dF4we6Rbsp1sEu9pMxJIfixCRH
nRnaUrL973vnRZEUKXmxwLqbIBE5jzvnvs/wSshNRq6P5hktns7Q/JkKKkmMvh4h+CPJWnoxiRjH
krJijgpWkIWeChmPCfdCJiXL52i4WqMYnkm8OPrjyIizQiKWMT5HJ8Fopuf8e5qRW5okdj7E0dOS
s7KIPbc0maq/9YPMCYJlNEYncRybuYQV0ktwTrPNHOWsYGKFIwswx3xJAfKQ5CgwQysGymk9OMlA
o2eiAaXDFtLRaNQhX+BCeIJwmtQmBf1C9Bn1Q72MJHKOAn/ixmMqVhkGIRKHGfEikmVm4oXGMgUB
QfDOYsRxTItltdvgs+5RT00PWci0SAGYrJan7JnwllaTyWTRZ3BCjCl85Zdf4CxhNycZw6AKp8tU
Nr2nVt2ACTAtqqMYmJ9KUDM4oLbV0tNyG5Z6SUE7T/tRhdsLx6stsgcSKf/1Bo7e3AybdsjYuHV2
h6AKVmtzwt16BS4G+aAaOUO++mlr2AtP0JiEG/U/0lA/ZCx6+g1z6YOq84RyIb0opVnca1h13APs
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
8HBBrl84N/4vvV5rquIhG/Bi0pLiIAR1mxRamJqbWzA+0nxniQdQCVi37PO44ybyj3W/Hk2smDA7
VD9jEdm1bmu0dLETTfMhDv2pA9lns+dAJl7XsDSVNEq3vdzme5lnlmTY2LXmQiFyUt4dYWNjo6j2
PFwBYGJEM0m7u0kf6jl6NMO/DXwZuTdRYyL5p2cC9YZtvlOICk5u1LMWGSa0G/NDT4awdr5NQXXR
H38jW+J3AtvO8VuV4h/NJZ9JV3mahmztLobrDDQtETVXkUuYbz5DXJOUyz5XQpy2/fqfY79/hv0z
7J9h/wz7Z9g/w/7vD5NqFqX1rjlw+FUUAl6oo45HSn45feW/AFBLAwQUAAIACACHgqtAjaV8io8B
AADoAgAAUgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvbG9hZGVk
LWZyb20tY2FjaGUtYWZ0ZXItcmVsb2FkLXdkaWZmLmh0bWxVVAkAAz48rU8+PK1PdXgLAAEE6AMA
AAToAwAAjZJfT9swFMXf+RRX5YEhVYlbaBN1oRPdkNi0qROtQHuaHPumMfXsyNehySq++5yVgkCq
xJPte3/n+PhPViKX04x8q3EaSdSwhZyL9crZ2sgJHBecf4RHiLiUb1u86FpZvBNn8c6qcmFOFTcg
NCe6CJ7Tn5eLReBC8VUreE41b9EB9/CB9dkpkPqLkDLWjBk7ArhBI9HdKtwcQN4jn2kr1rC9Xv74
/ngQfYatbGE7m3/5tWPTfvrEJul5M0rP/7N7eomNh+2xD8Nb6yQZN4NkjwN0DLjavGAbJX3ZcRPo
ffUnBJUlUrlGKGw4E1AtBBIVtQaHD1wryb2yBrwFwWtCwAc0nrp1oRwCtUaUzhpbk24juAuV0tZa
mhMPwnEqQRVgDYItwJf2xYC8rYJNib1DaQej0T7v2ZiFvNpyGcECEUrvK5rEcV6vKNpgvlY+sm4V
h703v0MxEiv1ScmLZJiMhxH03nt/rGGv0Ks/OUqJcp7fowii+ezb1eflThUy9Yd74Vl408GIPf23
oyzufuQ/UEsDBAoAAgAAAIeCq0DucCDCBQAAAAUAAABUABwAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvaHR0cC90ZXN0cy9jYWNoZS9sb2FkZWQtZnJvbS1jYWNoZS1hZnRlci1yZWxvYWQtZXhwZWN0
ZWQudHh0VVQJAAM+PK1PPjytT3V4CwABBOgDAAAE6AMAAFBBU1MKUEsDBBQAAgAIAIeCq0CNpXyK
jwEAAOgCAABgABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9sb2Fk
ZWQtZnJvbS1jYWNoZS1hZnRlci1yZWxvYWQtd2l0aGluLWlmcmFtZS13ZGlmZi5odG1sVVQJAAM9
PK1PPTytT3V4CwABBOgDAAAE6AMAAI2SX0/bMBTF3/kUV+WBIVWJW2gTdaET3ZDYtKkTrUB7mhz7
pjH17MjXockqvvuclYJAqsST7Xt/5/j4T1Yil9OMfKtxGknUsIWci/XK2drICRwXnH+ER4i4lG9b
vOhaWbwTZ/HOqnJhThU3IDQnugie05+Xi0XgQvFVK3hONW/RAffwgfXZKZD6i5Ay1owZOwK4QSPR
3SrcHEDeI59pK9awvV7++P54EH2GrWxhO5t/+bVj0376xCbpeTNKz/+ze3qJjYftsQ/DW+skGTeD
ZI8DdAy42rxgGyV92XET6H31JwSVJVK5RihsOBNQLQQSFbUGhw9cK8m9sga8BcFrQsAHNJ66daEc
ArVGlM4aW5NuI7gLldLWWpoTD8JxKkEVYA2CLcCX9sWAvK2CTYm9Q2kHo9E+79mYhbzachnBAhFK
7yuaxHFeryjaYL5WPrJuFYe9N79DMRIr9UnJi2SYjIcR9N57f6xhr9CrPzlKiXKe36MIovns29Xn
5U4VMvWHe+FZeNPBiD39t6Ms7n7kP1BLAwQUAAIACACHgqtAwsuU3GwIAABYHgAAWAAcAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvbG9hZGVkLWZyb20tY2FjaGUtYWZ0
ZXItcmVsb2FkLXByZXR0eS1kaWZmLmh0bWxVVAkAAz48rU8+PK1PdXgLAAEE6AMAAAToAwAA1Vhr
b9tGFv3uXzGwkbotTIqyJFsPx0XjB7pFuynWwS72kzEkh+LEJEedGdpSsv3ve+dFkRQpebHAupsg
ETmPO+e+z/BKyE1Gro/mGS2eztD8mQoqSYy+HiH4I8laejGJGMeSsmKOClaQhZ4KGY8J90ImJcvn
aLhaoxieSbw4+uPIiLNCIpYxPkcnwWim5/x7mpFbmiR2PsTR05Kzsog9tzSZqr/1g8wJgmU0Ridx
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
pohSzgogs9nGR/+AkZSVWVycShRxLFK4ugKjA1aXAJljWwECuIrid8RgeUNjTv9jYw4nE2fO0UXg
zKm6sY8eCEGOdoTlUvjmsuAzvhyAaV4eYdCPlvQHGr+/PL+8OPfRm1tg9l+nRLB+y5o0DF6nwB0s
j4FLfQw/AydCXz9++Pnu5pPRBRx5du7UGUGZHU6CgzSjRktPr+10fa37+TdQSwMEFAACAAgAh4Kr
QM9E0TqoAQAASwMAAF4AHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2NhY2hl
L2xvYWRlZC1mcm9tLWNhY2hlLWFmdGVyLXJlbG9hZC13aXRoaW4taWZyYW1lLWRpZmYudHh0VVQJ
AAM9PK1PPjytT3V4CwABBOgDAAAE6AMAALWSwY7TMBCG73mKUTksKHXidLdNtBKiFFYCBCqiFYgT
cpxJY9aNK3u8Sal4dxxKdwVSpb1wseXxN/8/Yw9jDFLa7lIt9sYTI3TELDqvyaUN0S4dIi6VQjaY
aiMqrFhtzZb9jjBRE9qQMNywTlGjWqZqK7bIsN+hJKwS6gmiOI7/l5GQ5IU+2sznwLJxBnFYOMzn
Efv4crWK4uCKFgTBUz7mz8CpHwgF5/2M8ygG+IRthfazwu4c8yiBhTbyFg5v1h/e/zzP3tOm2sNh
sXz99QgX4+IPnBdX/bS4OsInfI2hwcMTCtu/4nk+67P8ngcYILC+feA6VVEzgNcweksXDnbGOVVq
hNqEvsB5KdG52muweCe0qgQp0wIZkMI7BLzDltxwrpVFcPtWNta0xju9T+BLiDTG66q9IJBWuAZU
DaZFMDVQYx4EHJldkGlwdLbcbDo9FXw546Hg4dMTWCHCMCnuOk1Lv3FJh+WtosTYTRrMu28hmMiN
eqGq5/kkn00SGD36CXnP/2ZvtiVWYQiX5fcwxnBYLt7dvFof00JV48kp8zL8bDbl0S9QSwMEFAAC
AAgAh4KrQP7BpR1AAQAAWgIAAGAAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3Rz
L2NhY2hlL2xvYWRlZC1mcm9tLWNhY2hlLWFmdGVyLXJlbG9hZC13aXRoaW4taWZyYW1lLWFjdHVh
bC50eHRVVAkAAz08rU89PK1PdXgLAAEE6AMAAAToAwAAjdFdS8MwFAbg+/2Kw7yYwuiyj34wEGE6
UFEGOhSvJE1O17iYjCRdW4f/3cxZh8JgVyGH5z05SSSt0QB1cEq65Ays+EBICKkiQloAD6g4mieB
5QEij4hPpGZL2FzP7+8+D9JfrHkNm8ns6mVnk27yY+NkVIXJ6Ns2eo6Vg82J88v/1nEcVf244QBb
A6ZQe1YK7vKtG0P7xnUsrLS1IpUImfZ3AlswhtZmhQSDayoFp05oBU4Do4VFwDUqZ7f7TBgEWyuW
G610YWUdwLOv5LqQXHUcMENtDiIDrRB0Bi7X+wbW6ZVvk2P70LT9MGzmHUbEzys15QE8IkLu3MqO
e720WNigxHQpXKDNoufPLl99MWALcSH4eTyIo0EA7WPfj1TkD52+p8g58ln6hsyHZpPb6eV8l/Iz
dQdNcOj/tB+S1hdQSwMECgAAAAAAoYKrQAAAAAAAAAAAAAAAAC0AHAB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9VVAkAA208rU+EPK1PdXgLAAEE6AMAAAToAwAA
UEsDBBQAAgAIAKGCq0BHGHbChQEAAGgFAABKABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLXBhZ2VzLXdkaWZmLmh0bWxVVAkAA208rU9t
PK1PdXgLAAEE6AMAAAToAwAAxVRNa9wwEL37V4gU0pO/cmnxOi6lPbSQQyi5h1lrbKuVJaMZB0LY
/55RnGyy+SrpFiKDNTBPM+89e1QPCLqpiS8tNplGq67UGto/ffCz05X60AGs1EZloPXjFHQxVefL
4TpfSk0BmzMkJtV6d4GBjHfKd+qnowlb9uEjqYDk59CiBAIndAwcYcaxVz++/lKdDyNwliQ1TeBU
a4HoWNg1p9DHU9aDRp1Jb0k3SXKVKFmFqtQSxUUMgVF/B8YzM6LkDi2vJgszmbXFw55XW6zRt2ni
YFy/k2PDNp4+GJinKs/Lo09ZIU9ZfS6KIr/TQhJpE0RiNg3TlznY49zcaX6AGiCkk6ig1MGF6W+E
p0K1R84GHu3BtnFECXPhQzvC4vLum3csxp2IE7fc3TyuMexwX6CvYzbJ/bt8DwefupRuTXpfSzZJ
bFjdtD0/UvJNK/U3DdsoZZmC7Df9Q40XfNijEj3HpnxjjQf/rukCjPiE1R4Vn5+GvYove/kW1f97
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
U8i1QLWKazUymEdmRI0g9EuoxkKOYFJUMqXRBsuohChRETQtFeaxhrJ1PQKBrcMan4fO92fstX1o
3FznkYJzKOksMRca1PoMZBZA8inCCvsBYNc4nN9MwBgwf9NaBXng5TVQjs9vPhozmEzh7YtEhn4L
RjlXKJgFHiD5KQhSe3GCnAln/PrzX+aylGMd+xOAJaDONyt1cYRSF8NKdcHYP01IDbKb1XZ6H/hx
jnT3zxcd2Vh3UPXpEaq/LhJVrob1f2+SPNw5BSaUxP+rNb4XrWdHmGE6bIGv35eP8yPQzIbRmGw6
Rkv0nVFdHoFqfhiV+YHyIOE+cgdF4iOD6rtEr7leQbWsFIM24vVar76FQq0//wFQSwMEFAACAAgA
oYKrQA7WLUUuAQAAtQQAAEoAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS1oYXItcGFnZXMtYWN0dWFsLnR4dFVUCQADbTytT208rU91eAsAAQTo
AwAABOgDAAC9U01PwzAMvedXRLtw6tcuoAqGEBxA4oR2R9nqtkFtEsXuLmj/HafTusE2oVE0V2qf
avf5PdeZAxLKpTUr8KitkbaULwYdLMn6K5Qe0HZ+CQwcYzCkKJRpQ1Y+P7zJ0vpWUSzEp5Acqczl
BoVAUp6geFIEc90C525dozrUiwZmQ5UuQgLJa1Pt3pKmJnwxqYlcniTZ9DpO+crymzRNk60wZFRo
z3pjV7v7zjd3id4a2KuqlY+cqgAjo1a66l1ELK8Cimtqm8nQOFSxWhaD38yEsObRGuIpvFrVqzZd
uwA/+1F0KrsWu3t2qUkdTiMahnF562sRmuR9q/ep5P+Vy990DygiXtf4A//AccL7CCY8piY7k2Nv
L3XpVQsHqkYwHt/0UeSbZ3aO6/8+qUJ8AVBLAwQUAAIACAChgqtAo/Wx9DgBAADEBAAATAAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1w
YWdlcy1leHBlY3RlZC50eHRVVAkAA208rU9tPK1PdXgLAAEE6AMAAAToAwAAvVNNT8MwDL3nV0S7
cOrXLqAKhhAcQOKA0O4oa702qE2i2N0F7b/jbFo32KZpFM2VWqt+fX7PdaaAhLKwZgEetTXSzuWL
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
YFVnsvvdA9JPPNAPN2RhZ3zvVjtn8qz7EwWOZXWTFza7qegr/dwB00XM31FX5C7l6zFeIctF1NbD
w5zO8tn/XB7/+6fjq+ubD8fXP14c/d385/XlweFxe+AlgAfPzcj8dPJLb/FWT4J5zi++kYU3XlLi
H67OGmy+H3caJv4fUEsDBAoAAAAAAJuCq0AAAAAAAAAAAAAAAAAkABwAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvY29tcG9zaXRpbmcvVVQJAANlPK1PhDytT3V4CwABBOgDAAAE6AMAAFBLAwQKAAAA
AACTgqtAAAAAAAAAAAAAAAAALQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5n
L2dlb21ldHJ5L1VUCQADVTytT4Q8rU91eAsAAQToAwAABOgDAABQSwMEFAACAAgAk4KrQKliNMhn
AAAA0gAAAEsAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1pbi1jb21wb3NpdGVkLXN0ZGVyci50eHRVVAkAA1U8rU9VPK1PdXgLAAEE6AMAAAToAwAA
49LIKyjLTC1PLdJLysyzMjYwNbDUtFJw98lM0nX3T8pKTS7RdQ7yDPF0dvRR0NKyUkiPzweLxpfm
FaWmWSkkFhenFpVk5ucpJLjHewbH+zt5uTqHKGhAVGmqK6QlZuakpnBx0csiAFBLAwQUAAIACACT
gqtAntgN8FsAAAC+AAAASQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2VtcHR5LWVtYmVkLXJlY3RzLXN0ZGVyci50eHRVVAkAA1U8rU9VPK1PdXgLAAEE6AMA
AAToAwAA09LSUvALDsgpTc/MUwjLTC1PLVJQ0AIKhjsG+Xn6uVsplOZlJOal5KSmKJQlFmUmJuWk
KhhaKGjYlOZl5+WX58FF7TQVgEb4BfjFu6eWhCXmlKZqaHJp0dZ4AFBLAwQKAAAAAAClgqtAAAAA
AAAAAAAAAAAAMAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rp
b25zL1VUCQADdTytT4Q8rU91eAsAAQToAwAABOgDAABQSwMEFAACAAgApYKrQK3ByngTAwAACAgA
AFEAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZs
ZWN0aW9uLXBvc2l0aW9uaW5nLXN0ZGVyci50eHRVVAkAA3U8rU91PK1PdXgLAAEE6AMAAAToAwAA
nZXNdts2EIXX9lNkae8I/onkrpYixyd24lo6x4ueLAbAUEJMEiwINlKevgORlClLitvsCGC+O5jB
JXDBocEsk8jbVZYtLIiXpQGB4++r6w9/eZs4yvMYv11edMQVVLralrptPlRQYlNT4HVPzdqyXqhV
BcUnqGSBplcIRQ4pKXibSQ5JmDDwhO9dXjwjn2pDok9YSTT3sEVzQzqqoj21tQSLtwbqtRLNbm2q
q1ytWgNW6arTZiyIReK2d0psqstaN8pqM+gdTFMe2rfFvRSfROkZqSwTurJY2ekaqhXKgWHIEv+Y
udGbBy2x+Mq/o7BZ1thtgTMlO7qHPUxSZCfhc4REmYgTRKHFyzmG+yjiY2a/NbQLxw0VRYLjr8P/
qFQJFniBhyCHJB+DX6gDHYxmDoKOYUttNEgtH6Y7NkLMJ+x/onf5F0Q5nESEeTQ5yv4ewzhLxszH
Aks64ywDS4Ze92ECo/gg7NPy4Z7M2FjTCufFhbI0ixsUrcU/W2xRLqF5aTqe+wCCv+WXBvGmVYXs
vdWJudm50eVSv2Bvccg9OLSYw2datG6rj2Aap1DTv7eD1M+hqyB95rH3QKhras6eiBiMiRkKaqOc
0XGfBm+2Fvs6WRyxgB38iwNzr6GvsyyVdWodgmHuxWFHfFbU97mhS6WLnhaKyLuyLgbOonRLHRqm
EnPv/WSvBCXzwzfObnRrBA6EVPIJBap/cLTFRIAfjKkHUNV/IicTmUe/kW+SOOrMTfuEf7fY2Eej
N1tncqvybS8iX1VYzNJ4V+wDNg2sKKWuCW4rZ8z+Xg7yQODbkBnm9LMbinyk46Ur8gCAPDkC9LM2
Q0ToebuI7rHo4x7Jm7eF4mTA3bswU1SMHX6vOALup+cLduqLXduOuVi+PiucbuIg9Mdj4UNyMA4j
cXZvVPGzsushyf71iqDz2dtG3tFzYOitGypnTEQnwvbLAXMX95LObrHGgkz9A5R1w7mqVLMeLqUw
TJFHh5GmreaqQDczBCVh4ORoZTTrhz44q5bk0H4iDYPxy5twmaAbhyyJkvTyX1BLAwQUAAIACACk
gqtAhEUOpBQDAAAICAAAUgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3Jl
ZmxlY3Rpb25zL3JlZmxlY3Rpb24tcG9zaXRpb25pbmcyLXN0ZGVyci50eHRVVAkAA3Q8rU90PK1P
dXgLAAEE6AMAAAToAwAAnZVBd6M2EMfPyafY4+4NAcLArbHr3bwm2zT2ezn09TBIg60GJCpEa++n
78iAF8d20/aGpPn9pRn90dwU0GKeSyy6TZ6vHIjXtQWB0++Pnz78GuwSXpYJ/nZ70xMfQRu9r03X
ftBQY9tQ4KeBWnR1s1IbDdUX0LJCOyjEooSMFILdrMziCLNEiDC4vXnBYm4siT6jlmgfYI/2jnSU
pjN1jQSHny00WyXaw9rc6FJtOgtOGd1rMxYlIvXHuyQ2N3VjWuWMHfVOpmkfOrfDo1Qx49kVqTwX
RjvUbr4FvUE5MgxZGp4zd2b3aCRWPxe/o3B53rp9hQsle3qAA0wzZBfha4REmYoLRGXE6zWmCFEk
58zxaOhWnhsz4qLAfw7/QasaHBQVnoIFpOUU/EoV6GG0SxB0DXsqo0Uq+TjdsxyxnLH/iN6XXxHl
eBMcSz472/09hhUsnTI/VljTHec5ODL0dggTyJOTsC/rxwcyY+tsJ7wXV8rRLO5QdA5/6bBDuYb2
te35IgQQxVt+bRHvOlXJwVu9mJ9dWlOvzSsOFocygFOLeXxhROeP+gS29QoN/XsHSH0bqwoyZAF7
D4SmoeIcCc5gSixQUBnlgq77Mni3dzjkyRLOInbyL47Mg4Ehz7pWzqv1CMZlkMQ98ZOiui8tPSp9
9LxSRN7XTTVyDqVf6tE4k1gG72/2naDNwviNs1vTWYEjIZV8RoHqT5wcMRUQRlPqEZT+V+RsJkv+
P/abpZ668tI+4x8dtu7Jmt3em9ypcj+IyO8qLGFZckj2EdsWNrSlaQjutDfm8C5HZSTwbcgCS/rZ
LUU+0fXSE3kCQJmeAebF2DEiDoJDRN8shrgn8ubnShVkwENfWChKxo2/V8KhCLPrCXv11aFs51wi
j20lDjnGURxOx2kI6ck45uLq2SjjF+W24ybH7sWh99nbQt5TO7DU68bMGRP8QthxOWL+4V7T3a22
WJGp/wLl/HCptGq346MUxxkW/DTSdnqpKvQzY1AaR16OViazYRyCt2pNDh0mqN9OOy+fyRT9OGYp
T7PbvwFQSwMEFAACAAgAo4KrQAgerxsUAwAACAgAAFMAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW9uLWNvbXBvc2l0ZWQtc3RkZXJy
LnR4dFVUCQADcjytT3I8rU91eAsAAQToAwAABOgDAACdlc122zYQhdf2U2Rp7wj+ieSuliLHJ3bi
WjrHi54shsBAQkwSLAg2Up6+A5GUKUuK2+wIYL47mMElcJFDg1kmMG9XWbawwF+WBjiOv6+uP/zl
beJIyhi/XV50xBVUutqWum0+VFBiU1PgdU/N2rJeqFUFxSeoRIGmVwi5hJQUvM1EysTP8yTlvnd5
8Yz5VBsSfcJKoLmHLZob0lEV7amtBVi8NVCvFW92a1NdSbVqDVilq06bsSDmidveKbGpLmvdKKvN
oHcwTXlo3xb3UvkkSs9IZRnXlcXKTtdQrVAMDEOW+MfMjd48aIHF1/w7cptljd0WOFOio3vYwyRF
dhI+RwgUCT9BFJq/nGNyH3l8zOy3hnbhuKGiiOf46/A/KlWChbzAQzCHRI7BL9SBDkYzB07HsKU2
GqSWD9MdGyHKCfuf6J38giiGk4hQRpOj7O8xLGfJmPlYYElnnGVgydDrPoxjFB+EfVo+3JMZG2ta
7ry4UJZmcYO8tfhniy2KJTQvTcfnPgDP3/JLg3jTqkL03urE3Ozc6HKpX7C3OEgPDi3m8Jnmrdvq
I5jGKdT07+0g9XPoKgifeew9EOqamrMnIgZjYoac2ihmdNynwZutxb5OFkcsYAf/4sDca+jrLEtl
nVqHYCi9OOyIz4r6Pjd0qXTR00IReVfWxcBZFG6pQ8NUoPTeT/ZKUDI/fOPsRreG40AIJZ6Qo/oH
R1tMOPjBmHoAVf0ncjIRMvqNfJPEUWdu2if8u8XGPhq92TqTWyW3vYh4VWExS+NdsQ/YNLCilLom
uK2cMft7OZABx7chM5T0sxuKfKTjpSvyAACZHAH6WZshIvS8XUT3WPRxj+TN20LlZMDduzBTVIwd
fq84gtxPzxfs1Be7th1zsXh9VmTisSD0x+PIh+RgHEb87N6o4mdl10OS/esVQeezt428o+fA0Fs3
VM4Yj06E7ZcD5i7uJZ3dYo0FmfoHKOuGc1WpZj1cSmGYYh4dRpq2mqsC3cwQlISBk6OV0awf+uCs
WpJD+4k0DMYv7yQUCbpxyJIoSS//BVBLAwQUAAIACACkgqtATVOOL1EDAACiCQAAVQAcAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tcG9z
aXRpb25pbmcyLWNyYXNoLWxvZy50eHRVVAkAA3Q8rU90PK1PdXgLAAEE6AMAAAToAwAApZZNc9s4
DIbP7a/QMbmJ+pZmpzMbu24zm7RZ250cdvYAkZDNjSRqKaq1++sLRZIjt1KS2b3ZIJ6XIAgQ4hrq
vZWrnZUpbS2bolpjKVBvNaJ1UUlhuXZoe5fJ2812+fnLNrF+w6Iyx3ft//frdWK9SaHGJBGYNrsk
2RjgD1sNHMe/Ly6tv+xD4GdZgH//TF5AqcpjoZraKqHAuiLgsqfbgDZyV0L+EUqRo+6VPJ5BPFKy
D2EWey7GAeeO/WS/x3ShNG3SneoGjqivSFeWFGtTCTD4QUO1l7x+XFuoMpO7RoORquz2YswNeDQO
e0p0oYpK1dIoPeiemWk/Oo/Bk2Qa+vELkknCVWmwNIs9lDsUA8uQRc48e6UOt0pg/jn9B7lJktoc
c1xK0an0IjZGMbJnReZIgSLiz5C54g9zbOogD+bZU8hoNi0/nNjnKb4O+72UBRhIczwXSCHKpgQ+
UaY6EdQr4HR9R0q7Rrqqwdxp+IhZyP6jxHX2CVEMN+hj5oez0bzEspRFU+z7HAuqlSQBQ42z7905
+sGk+8ft7Q0Ve210w9ta30hDVjwgbwz+2WCDYgv1Q93ppA4AT+d02rfiqpG56Gu2E22tK62KrXrA
vpUgs2G6dFuZpeJNe4Q70HWrVFHvP8Ly+3ALIBxms9cKQFVREk+kz2CKXCKntIsllc20wNXRYJ8H
FvjMZZNvwcDeKOjzUBTStKodil5mB945+Yek+1ppevQ6apFLUrguqnzgDYp2qZPwYoGZ/frNn0ja
3PFmOqhWjeY4kEKKNXKUX3EUesTBcafoW5DlqxTCUGT+/9g/jMb0zMRY478N1uZOq8OxbSYjs2Mv
Jp7UWMDi4CwZt1jXsKMQVEUiTdkWfj9n3MzlOOe6xIweH03EHZUJPfFnIGTRLKjulR48Pds+8+yG
Yu9/Rz3wIZcpFfjj/FtKOqwZ2jvwIXXilxPT7rZ5TPOvfCB+GaOe46Pnes6UPXIgmrR7Pn/xDJSp
e2n2QxCnae7DeV3/fCHXNAY1fQMMGWOM+8+4n9xcNh5UW6qNzR5zaq5vIE37dyVLWe+Hx9XzYkz9
aUI35Urm2FoG58hzx/LkMVp1PAfGLVNQp/QL9J0y9eXihyLCsd1jkR/Fb38AUEsDBBQAAgAIAJyC
q0CCvkQ0VQMAADMJAABYABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVm
bGVjdGlvbnMvZW1wdHktcmVmbGVjdGlvbi13aXRoLW1hc2stY3Jhc2gtbG9nLnR4dFVUCQADaDyt
T2g8rU91eAsAAQToAwAABOgDAACdlt+PmzgQx5+vfwWPu2+YXyGoOqmbNO1Ku91tQrUP1ek02EPi
BjBnjJrcX39DgBxpIVv1Ldjz/dgz/nocrqHaWZnaWqnS1rLOyzUWAnWsEa2bUgrLtf3Avo3ebOLl
05c4st5iXprjn833+/U6sv5IoMIoEpjU2yjaGOD7WAPH4e+bW+urfQj8NA3wrx+VN1Co4pirurIK
yLEqSXDbqZsNbeS2gOwjFCJD3ZE8nsJ8QLIPs9QXNs6SkDv2/+MvmCyUpkXarB7giPqOuLKgvdal
AIMfNJQ7yavT3EIVqdzWGoxURbsWY27Aw+G2x6ALlZeqkkbpnnsxTOtRPgbPyGTmz19BRhFXhcHC
LHZQbFH0WoYsdKa1d+rwqARmT8k35CaKKnPMcClFS+kgNoZzZFchU0qBIuRXlJni+ylt4iAPprXn
LaPZNPo+Y58n+Guyd4XMwUCS4SUggTAdA3yiSrUQ1CvgdHxHKrtGOqp+uGX4iOmM/SbiPv2EKPoT
9DH1Z5O7eU3LEhaOad9nmJNXoggMXZxdF87RD0bDP8aPD2T2yuiaN17fSEOjeEBeG/xcY40ihmpf
tZzEAeDJFKfpFXe1zETn2RbajK60ymO1x+4qQWrDuHUbzFLxuknhGXTVkEq6+yex/Lc/BRAOs9mv
AqAsqYhnpc9gTLlETmUXS7LNj4A0q6uukizwWRB6o4BO9aKphqQ6r4l+6CbimuRBwaloqSxktUPR
fFOr6OWu44wm+wiyWGOlas2xRwgpVifKJWM243x4W79jspfm721WE4eAX9YPLeE+L7MoWjQd50Au
eiqa1pWhQbHGf2qsTFcHP5xT7x0QJ9p3p3rW6nBsnG1kepxABiz0hDtAPmJVwZZSUyWB6qJxYtf4
3dTlOBW6xJS6gSbFMx0CFeFCCGk4KVQvSveRnm1fRLavVBf/TKb8kMmEHHd6kJaSEjb9fQt8SJz5
68VpVtucju9nfSB+eteY47m26zlj454D4ei45/NXc6BKvUiz6zdxfl59wNS+ciD35BJNj3JfMca4
fyX8HOayoRdjssBmhxn57jtI03yuuovQKjxvjok/rtB1sZIZxmcbeV7ouUM8RQxmHSrU0GM53aFu
Yu65Y38lwBUhDsc9FpL73/wHUEsDBBQAAgAIAKKCq0Bw/m8hTwMAAKIJAABcABwAdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24t
dHJhbnNmb3JtZWQyLWNyYXNoLWxvZy50eHRVVAkAA288rU9vPK1PdXgLAAEE6AMAAAToAwAApZZN
c9s4DIbP7a/wMbmJ+rKk2enMxq7bzCZt1nYnh509QCRocyOJWopq7f76QpHkyK2UZHZvNoj3IQgC
hLiBaj/L9G4mtZkt67xcYyHQbA3i7KJUYuY5oR9fJm832+XnL9tk9hvmpT2+a/6/X6+T2ZsUKkwS
gWm9S5KNBf6wNcBx+PvicvaXcwgDKUP8+2flBRS6OOa6rmYF5FiVJLjs1E1AG7UrIPsIhcjQdCSf
S4gHJOcwl+h4sSNd7jpP9ntMF9rQJu2pbuCI5oq4qqBY61KAxQ8Gyr3i1ePaQhdS7WoDVumi3Ysx
L+TRMOwx6ELnpa6U1abnnplpPzqPxRMynQfxC8gk4bqwWNjFHoodil7LkEXutPZKH261wOxz+g9y
mySVPWa4VKKldBAHoxjZs5AppUAR8WeUmeYPU9rURR5Oa08ho900+v7EAU/xdbLfC5WDhTTDc0AK
kRwDfKJMtRA0K+B0fUdKu0G6qt7cMgJEOWf/EXEtPyGK/gYDlMF8MpqXtCxl0Zj2fYY51UqSgKXG
2XfuHINw1P3j9vaGir2ypuZNrW+UJSsekNcW/6yxRrGF6qFqOakLwNMpTvNWXNUqE13NttDGujI6
3+oH7FoJpAPjpdtglprXzRHuwFQNqaTefxSr7/0tgHCZw14LgLKkJJ6UAYMx5RI5pV0sqWzGAVdH
i10eWBgwj42+Bb32RkOXhzxXtqG2UvQlPaTnyj8U3dfK0KPXqhaZIsJ1Xma93qJollqEHwuUzus3
f1LS5q4/0UGVrg3HXimUWCNH9RUHoUccXG9MfQuqeBVhPhcy+B/7z6OhemJirPHfGit7Z/Th2DST
VfLYwcQTjYUsDs+ScYtVBTsKQZcEqYum8Ls540mP45TrEiU9PoYUd1Qm9MSfCUFGk0J9r03v6TvO
mWc7FDv/O+qBD5lKqcAf599S0WFt395hAKkbv5yYZrfNY5p/1Yfi1zHKRQie747Z0YVo1O4H/MUz
UKbuld33QZymeQDndf3zhVzTGDT0DdBnjDEePON+cvPYcFBtqTY2e8youb6Bss3flSpUte8fV9+P
MQ3GFaYuVirDxtI7R743xJPHYNX1XRi2TE6d0i3Evjf25SKEiHBo91kURPHbH1BLAwQUAAIACACj
gqtApq/KeVEDAACiCQAAVgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3Jl
ZmxlY3Rpb25zL3JlZmxlY3Rpb24tb24tY29tcG9zaXRlZC1jcmFzaC1sb2cudHh0VVQJAANyPK1P
cjytT3V4CwABBOgDAAAE6AMAAKWWTXPbOAyGz+2v8DG5ifqypNnpzMau28wmbdZ2J4edPUAkaHMj
iVqKau3++kKR5MitlGR2bzaI5yUIAoS4gWo/y/RuJrWZLeu8XGMh0GwN4uyiVGLmOeE8uEzebrbL
z1+2yew3zEt7fNf8f79eJ7M3KVSYJALTepckGwv8YWuA4/D3xeXsL+cQBlKG+PfP5AUUujjmuq5m
BeRYlQRcdnQT0EbtCsg+QiEyNJ2SzyXEAyXnMJcyctM0irnrPNnvMV1oQ5u0p7qBI5or0lUFxVqX
Aix+MFDuFa8e1xa6kGpXG7BKF+1ejHkhj4Zhj4kudF7qSlltet0zM+1H57F4kkznQfyCZJJwXVgs
7GIPxQ5FzzJkkTvNXunDrRaYfU7/QW6TpLLHDJdKtCqdiINRjOxZkSlSoIj4M2Sm+cMUm7rIw2n2
FDLaTcP3Jw54iq/Dfi9UDhbSDM8FUojkmMAnylQrgmYFnK7vSGk3SFfVm1uNAFHO2X+UuJafEEV/
gwHKYD4ZzUssS1k0xr7PMKdaSRKw1Dj7zp1jEI66f9ze3lCxV9bUvKn1jbJkxQPy2uKfNdYotlA9
VK1O6gLwdEqneSuuapWJrmZb0ca6Mjrf6gfsWgmkA+Ol28gsNa+bI9yBqRqlknr/EVbf+1sA4TKH
vVYAypKSeCIDBmPkEjmlXSypbMYFro4WuzywMGAeG30LevZGQ5eHPFe2UW1R9KUT+ufkH4rua2Xo
0WupRaZI4Tovs563KJqlVsKPBUrn9Zs/kbS56090UKVrw7EnhRJr5Ki+4iD0iIPrjdG3oIpXKczn
Qgb/Y/95NKQnJsYa/62xsndGH45NM1klj52YeFJjIYvDs2TcYlXBjkLQJYnURVP43ZzxpMdxynWJ
kh4fQ8QdlQk98WcgyGgS1Pfa9J6+45x5tkOx87+jHviQqZQK/HH+LRUd1vbtHQaQuvHLiWl22zym
+Vc+FL+OURk5zPPdMXvgQjRq9wP+4hkoU/fK7vsgTtM8gPO6/vlCrmkMGvoG6DPGGA+ecT+5eWw4
qLZUG5s9ZtRc30DZ5u9KFara94+r78eYBuOEqYuVyrCx9M6R7w3lyWOw6vouDFsmp07pFmLfG/ty
mfsiwqHdZ1EQxW9/AFBLAwQUAAIACAChgqtAS1V5VSIDAADeCAAAVwAcAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLW9wYWNp
dHktY3Jhc2gtbG9nLnR4dFVUCQADbTytT208rU91eAsAAQToAwAABOgDAACllU1v2zgQQM/bX6Fj
chP1ZVkoCjR23QZNmqztIodiDyNyaLORRJWidu399TuKJEcupDTY3mxq3uNwOCS5gWrvZHrnSG2c
ZZ2XaywEmq1BdC5KJRzfjXx2mbzZbJd3X7eJ8xbz0h7fNf8/rNeJ80cKFSaJwLTeJcnGAn/cGuA4
/H1x6XxzD1EoZYR//UxeQKGLY67ryikgx6ok4LKjm4Q2aldA9gkKkaHpTAGXMB+Y3MNM8hDiWexx
z30ef8B0oQ1N0q7qBo5orsirCsq1LgVY/Gig3CtePX1b6EKqXW3AKl20czHmRzwepj0mXei81JWy
2vTes2Gaj9Zj8aRMZ+H8F8ok4bqwWNjFHoodip5lyGJvmr3Sh1stMLtLvyO3SVLZY4ZLJVpLJ3Ex
niN7UTJFChQxf4HMNH+cYlMPeTTNnlJGu2n4fsUhT/F12PtC5WAhzfBckEIsxwRfqFKtBM0KOG3f
kcpukLaqH24dIaKcsf+puJZfEEW/gyHKcDaZza9YlrJ4jP2QYU69kiRg6eDsu3COYTQa/ml7e0PN
XllT86bXN8rSKB6Q1xb/rLFGsYXqsWo9qQfA0ylPc1dc1SoTXc+20mZ0ZXS+1Y/YHSWQLoy3bqNZ
al43S7gHUzWmks7+E6z+7XcBhMdc9loBlCUV8USGDMbIJXIqu1hS24wLro4WuzqwKGQ+G70LevZG
Q1eHPFe2sbYoBtKNgnPys6L9Whm69FpqkSkyXOdl1vMWRfOpVQRzgdJ9/eTPJE3uBRMnqNK14diT
Qok1clR/4yD1mIPnj9G3oIpXGWYzIcPfmH8WD+mJF2ONP2qs7L3Rh2NzmKySx04mnm0sYvPorBi3
WFWwoxR0SZK6aBq/e2d86XOcCl2ipMvHEHFPbUJX/BkIMp4E9YM2fWTgumeR7aPYxd/TGfiYqfQp
rwdl90tFq7V8f3oJQzpU4QuLuaYnxND72c/GGH8p/BTms+Elv6W6bvaYUWP+A8o2f1eqUNW+v5iC
YI5pOE6YulipDJuRPjgO/KGeIgZfvcCDYbvl1GXdh3ngj736kRAxDscDFofx/M1/UEsDBBQAAgAI
AKGCq0Cw37gWUgMAAKIJAABbABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcv
cmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tc2l6ZS1jaGFuZ2UtY3Jhc2gtbG9nLnR4dFVU
CQADbjytT248rU91eAsAAQToAwAABOgDAACllk1z2zYQhs/Nr9DRvhH8EsnpdKaWosRTO3EldXzo
9LAEFhJikmBBsJHy67M0SZmKSdvT3KTFvg8Wi10suYFqP8v0bia1mS3rvFxjIdBsDeLsolRi5jmh
zy6Td5vt8vNf22T2K+alPf7W/H+/XiezX1KoMEkEpvUuSTYW+MPWAMfh74vL2d/OIQykDPGfH5UX
UOjimOu6mhWQY1WS4LJTNwFt1K6A7CMUIkPTkXwuIR6QnMNcIkdfRHPuOk/2e0wX2tAm7alu4Ijm
iriqoFjrUoDFDwbKveLV49pCF1LtagNW6aLdizEv5NEw7DHoQuelrpTVpueemWk/Oo/FEzKdB/Er
yCThurBY2MUeih2KXsuQRe609kofbrXA7HP6BblNksoeM1wq0VI6iINRjOxFyJRSoIj4C8pM84cp
beoiD6e1p5DRbhp9f+KAp/g22e+FysFCmuE5IIVIjgE+UaZaCJoVcLq+I6XdIF1Vb24ZAaKcs/+J
uJafEEV/gwHKYD4ZzWtalrJoTPs+w5xqJUnAUuPsO3eOQTjq/nF7e0PFXllT86bWN8qSFQ/Ia4t/
1lij2EL1ULWc1AXg6RSneSuuapWJrmZbaGNdGZ1v9QN2rQTSgfHSbTBLzevmCHdgqoZUUu8/itW3
/hZAuMxhbwVAWVIST8qAwZhyiZzSLpZUNuOAq6PFLg8sDJjHRt+CXnujoctDnivbUFsp+pIe0nPl
H4rua2Xo0WtVi0wR4Tovs15vUTRLLcKPBUrn7Zs/KWlz15/ooErXhmOvFEqs6SFV/+Eg9IiD642p
b0EVbyLM50IGP7H/PBqqJybGGv+tsbJ3Rh+OTTNZJY8dTDzRWMji8CwZt1hVsKMQdEmQumgKv5sz
nvQ4TrkuUdLjY0hxR2VCT/yZEGQ0KdT32vSevuOcebZDsfO/ox74kKmUCvxx/i0VHdb27R0GkLrx
64lpdts8pvm5PhTPx2gUS+n57nM7OJ4L0ajdD/irZ6BM3Su774M4TfMAzuv6xwu5pjFo6Bugzxhj
PHjB/eTmseGg2lJtbPaYUXN9BWWbvytVqGrfP66+H2MajCtMXaxUho2ld458b4gnj8Gq67swbJmc
OqVbiH1v7Mtl7ooIh3afRUEUv/sOUEsDBBQAAgAIAKSCq0AYS9iXFAMAAAgIAABOABwAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vcmRl
cmluZy1zdGRlcnIudHh0VVQJAANzPK1PczytT3V4CwABBOgDAAAE6AMAAJ2VzXbbNhCF1/ZTZGnv
CP6J5K6WIscnduJaOseLniyGwEBCTBIsCDZSnr4DkZQpS4rb7AhgvjuYwSVwkUODWSYwb1dZtrDA
X5YGOI6/r64//OVt4kjKGL9dXnTEFVS62pa6bT5UUGJTU+B1T83asl6oVQXFJ6hEgaZXCLmElBS8
zUQGOUDoCe57lxfPmE+1IdEnrASae9iiuSEdVdGe2lqAxVsD9VrxZrc21ZVUq9aAVbrqtBkLYp64
7Z0Sm+qy1o2y2gx6B9OUh/ZtcS+VT6L0jFSWcV1ZrOx0DdUKxcAwZIl/zNzozYMWWHzNvyO3WdbY
bYEzJTq6hz1MUmQn4XOEQJHwE0Sh+cs5JveRx8fMfmtoF44bKop4jr8O/6NSJVjICzwEc0jkGPxC
HehgNHPgdAxbaqNBavkw3bERopyw/4neyS+IYjiJCGU0Ocr+HsNyloyZjwWWdMZZBpYMve7DOEbx
Qdin5cM9mbGxpuXOiwtlaRY3yFuLf7bYolhC89J0fO4D8PwtvzSIN60qRO+tTszNzo0ul/oFe4uD
9ODQYg6fad66rT6CaZxCTf/eDlI/h66C8JnH3gOhrqk5eyJiMCZmyKmNYkbHfRq82Vrs62RxxAJ2
8C8OzL2Gvs6yVNapdQiG0ovDjvisqO9zQ5dKFz0tFJF3ZV0MnEXhljo0TAVK7/1krwQl88M3zm50
azgOhFDiCTmqf3C0xYSDH4ypB1DVfyInEyGj38g3SRx15qZ9wr9bbOyj0ZutM7lVctuLiFcVFrM0
3hX7gE0DK0qpa4Lbyhmzv5cDGXB8GzJDST+7ochHOl66Ig8AkMkRoJ+1GSJCz9tFdI9FH/dI3rwt
VE4G3L0LM0XF2OH3iiPI/fR8wU59sWvbMReL12cFvSQKQn88Tn1IDsZhxM/ujSp+VnY9JNm/XhF0
PnvbyDt6Dgy9dUPljPHoRNh+OWDu4l7S2S3WWJCpf4CybjhXlWrWw6UUhinm0WGkaau5KtDNDEFJ
GDg5WhnN+qEPzqolObSfSMNg9PIGMhEJunHIkihJL/8FUEsDBBQAAgAIAKGCq0BDcrk75wIAAGwH
AABUABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVz
dGVkLXJlZmxlY3Rpb24tb3BhY2l0eS1zdGRlcnIudHh0VVQJAANtPK1PbTytT3V4CwABBOgDAAAE
6AMAAJ2VwVLbMBCGz/AUPcLNcmzH8a1JGmAKlJLMcOj0sJZWiYotubLcJn36rmI7JBBK25st7ffv
avVLOsmhxiwTmDfLLJs74I8LCxz3v8/O330J1kksZYJfT09a4gy00ZvSNPU7DSXWFQWed9S0Kau5
WmooLkGLAm2nEHEJI1II1kPJY0iHacjD4PTkAfOJsSR6j1qgvYYN2jHpKE01NZUAhxcWqpXi9XZu
YrRUy8aCU0a32owNEp768o6JTUxZmVo5Y3u9g2HKQ3U73Enlw3j0ilSWcaMdajdZgV6i6BmGLA1f
MmOzvjECi0/5N+Quy2q3KXCqREt3cIDpCNlR+DVCoEj5EaIw/PE1Jg+RJy+ZXWno5p7rVxTzHP8c
/l6rEhzkBR6COaRyH7ylDrQw2hlw2oYNtdEitbwfbtkYUQ7ZP6JX8hZR9DsRo4yHL7K/xbCcpfvM
hwJL2uMsA0eGXnVhHOPkIOxycXNNZqydbbj34lw5GsU18sbh5wYbFAuoH+uWz0MAnj/nFxZx3KhC
dN5qxfzozJpyYR6xszjIAA4t5vGp4Y0v9Q5s7RUqOntbSP3quwoiZAF7C4SqoubsiJjBPjFFTm0U
U9ru4+B447BbJ0tiNmAHZ7Fnrg106yxL5bxai2AkgyRqiY+K+j6zdKm00ZNCEXlVVkXPORR+qkWj
kUAZvJ3siaBkYfTM2bVpLMeeEErcI0f1A/dKTDmEg33qBpT+K3I4FDL+j3zD1FOv3LT3+L3B2t1Z
s954kzslN52IeFJhCRsl28XeYF3DklKaiuBGe2N29/JADjg+D5mipMNuKfKOtpeuyAMAZPoCMA/G
9hFREGwj2seii7sjb14UKt/mf1BuNVW0GsdXuxciJpPHR4q9oivX0nvSqzPGj4XtpgfMX44L6s98
hQUZ5yco539nSqt61R/8KBphHh9G2kbPVIF+pA9Ko4GXo5m90TAKwduhJBd0A6NosP+6JUKk6P8j
lsbp6PQ3UEsDBBQAAgAIAJyCq0AMBlCMGAMAAKkHAABVABwAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZW1wdHktcmVmbGVjdGlvbi13aXRoLW1hc2stc3Rk
ZXJyLnR4dFVUCQADaDytT2g8rU91eAsAAQToAwAABOgDAACVlctu2zgUhtfJU3TZ7ETdLGvX2OM0
QNJmYg+yKIrBIXlkcyyRGopC7T79HFqSYcV2i9mJ1P/95LmQvOHQYJ5L5O06z5cOxHZlQeDp98e7
D9+CXZoURYrfb2864iNoo/eVaZsPGipsahLe9dS8reqlWmsoP4OWJdreIRYFTMkh2E2KRAY44ZkI
g9ubN+QzY8n0FbVE+wR7tPfkozTtqa0lOHywUG+UaA7/ZkYXat1acMrozpuxKBWZ394ls5mpatMo
Z+zgN5qmdWjfDo9WfJJMr1jluTDaoXazDeg1yoFhyLLwnLk3u2cjsfzK/0Hh8rxx+xLnSnZ0DweY
TZFdhK8REmUmLhClEdtrDA9RpOfMcWvolp4bIkoEx1/LP2lVgQNe4hjkkBWn4BfKQAejXYCgMuwp
jRYp5cN0xyaIxYT9T/Sx+IIoh0okWCSTs9V/xzDOslPmjxIrqnGeg6OG3vQygUk6kn1ePT9RMzbO
tsL34lI5msUditbhny22KFfQbJuO5yGA4O/5lUW8b1Up+97qzPzswppqZbbYtzgUAYxbzONzI1q/
1RewjXeo6ewdIPVzyCrIkAXsdyDUNSXnSCQMTok5CkqjnFO534NF2TZ9hliasDSLR2CvfrOUG1If
18Aki7i8JH0ycEhGobRqNij9mI7ogEVhOArmGZR+xca0VuCASiUXB3rMTiZC+FPzA/lWub/XZUs8
Gf31+tSRj1Vd5vnMn/AdVf+r9ldEiQ7lK/7bYuP6OJNsSncZOV25Bnv1izW7ve9Ap4r9FauUZbGM
yOoZmwbWFIKpyaDVvnP6izMqIoHvJXMs6DRaUr5QUinIEQBFdgaYN2MHRRwEB0V3m/e6F2qeh1Jx
6pDDxT1XFJAb+j9NgIfT60F79+WhDOdcKo/3PgvjKIji8HQch5CNxnEiru6NIn5TbjMscnxeEsAi
uJDIR6qmpcdoiJwxkVyQHX9HzPfIikq03GBJ/fADlPPDRd+QnTKOp8iTsdK2eqFKXB3LG8dZHHk7
+nMyG1LAvuYV9W4/MY2j06cRIpmhH8cso267/Q9QSwMEFAACAAgAnYKrQFb7BCsiAwAA3ggAAFwA
HAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQt
cmVmbGVjdGlvbi1hbmNob3ItcG9pbnQtY3Jhc2gtbG9nLnR4dFVUCQADajytT2o8rU91eAsAAQTo
AwAABOgDAACllU1z2zYQQM/Nr+DRvhH8FqfTmViKEk/txJXU8SHTwxJYSIhJggXBVuqv79IkZapD
Op7mJoH7HhaLBcAN1Acn13tHauOsmqLaYCnQ7Ayic1Up4fhumLjX6bvtbvXl913q/IxFZU+/tP8/
bDap81MGNaapwKzZp+nWAn/aGeA4/n117Xx1j1EoZYR//Je8glKXp0I3tVNCgXVFwHVPtwlt1b6E
/BOUIkfTmwIuYTEyucdYxkHCEhZzz30Zf8RsqQ1N0q3qDk5obsirSsq1qQRY/GigOiheP39b6lKq
fWPAKl12czHmRzwZpz0lXeqi0rWy2gzei2Gaj9Zj8azM4nDxHWWacl1aLO3yAOUexcAyZIk3z97o
470WmH/JviG3aVrbU44rJTpLL3ExWSB7VTJHChQJf4XMNX+aYzMPeTTPnlNGu235YcUhz/Bt2PtS
FWAhy/FSkEEipwSfqVKdBM0aOG3ficpukLZqGO4cIaKM2f9U3MrPiGLYwRBlGM9m8z2WZSyZYj/k
WFCvpClYOjiHPpxjGE2Gf9rd31Gz19Y0vO31rbI0ikfkjcXfGmxQ7KB+qjtP5gHwbM7T3hU3jcpF
37OdtB1dG13s9BP2RwmkC9Ot22pWmjftEh7A1K2porP/DKt/hl0A4TGXvVUAVUVFPJMhgylyhZzK
LlbUNtOCm5PFvg4sCpnPJu+Cgb3T0NehKJRtrR2KgXSj4JL8VdF+rQ1deh21zBUZbosqH3iLov3U
KYKFQOm+ffIXkib3gpkTVOvGcBxIocQGOaq/cJR6wsHzp+h7UOWbDHEsZPgD88fJmJ55MTb4Z4O1
fTD6eGoPk1Xy1MvEi41FbBFdFOMe6xr2lIKuSNKUbeP374wvfY5zoSuUdPkYIh6oTeiKvwBBJrOg
ftRmiAxc9yKyexT7+Ac6Ax9zlT3n9ajsYaVotZYfzi9hSIcqfGUxt/SEGHo/h9kY46+Fn8N8Nr7k
d1TX7QFzasy/Qdn271qVqj4MF1MQLDALpwnTlGuVYzsyBCeBP9ZTxOirF3gwbreCuqz/sAj8qVff
9USC4/GAJWGyePcvUEsDBBQAAgAIAKWCq0DQ6YfFUAMAAKIJAABUABwAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1wb3NpdGlvbmluZy1j
cmFzaC1sb2cudHh0VVQJAAN1PK1PdTytT3V4CwABBOgDAAAE6AMAAKWWTXPbOAyGz+2v0DG5ifqy
rNnpzMau28wmbdZ2J4edPUAkaHMjiVqKau3++kKR5MitlGR2bzaI5yUIAoS4gWrvZHrnSG2cZZ2X
aywEmq1BdC5KJRzfnTF2mbzdbJefv2wT5zfMS3t81/x/v14nzpsUKkwSgWm9S5KNBf6wNcBx+Pvi
0vnLPUShlBH+/TN5AYUujrmuK6eAHKuSgMuObgLaqF0B2UcoRIamUwq4hPlAyT3MJMRBzMDlnvtk
v8d0oQ1t0p7qBo5orkhXFRRrXQqw+MFAuVe8elxb6EKqXW3AKl20ezHmRzwehj0mutB5qStltel1
z8y0H53H4kkynYXzFySThOvCYmEXeyh2KHqWIYu9afZKH261wOxz+g9ymySVPWa4VKJV6URcjOfI
nhWZIgWKmD9DZpo/TLGphzyaZk8ho900fH/ikKf4Ouz3QuVgIc3wXCCFWI4JfKJMtSJoVsDp+o6U
doN0Vb251QgR5Yz9R4lr+QlR9DcYogxnk9G8xLKUxWPs+wxzqpUkAUuNs+/cOYbRqPvH7e0NFXtl
Tc2bWt8oS1Y8IK8t/lljjWIL1UPV6qQeAE+ndJq34qpWmehqthVtrCuj861+wK6VQLowXrqNzFLz
ujnCHZiqUSqp9x9h9b2/BRAec9lrBaAsKYknMmQwRi6RU9rFkspmXODqaLHLA4tC5rPRt6BnbzR0
echzZRvVFsVAulFwTv6h6L5Whh69llpkihSu8zLreYuiWWolgrlA6b5+8yeSNveCiQ6qdG049qRQ
Yo0c1VcchB5z8Pwx+hZU8SqF2UzI8H/sP4uH9MTEWOO/NVb2zujDsWkmq+SxExNPaixi8+gsGbdY
VbCjEHRJInXRFH43Z3zpc5xyXaKkx8cQcUdlQk/8GQgyngT1vTa9Z+C6Z57tUOz876gHPmQqpQJ/
nH9LRYe1fXtHIaTe/OXENLttHtP8Kx+JX8doShPGD7wxO/cgHrUHIX/xDJSpe2X3fRCnaR7CeV3/
fCHXNAYNfQP0GWOMh8+4n9x8NhxUW6qNzR4zaq5voGzzd6UKVe37xzUI5piG44Spi5XKsLH0znHg
D+XJY7DqBR4MWyanTukW5oE/9uUSpyLGoT1gcRjP3/4AUEsDBBQAAgAIAKCCq0AU/xgmUgMAABcJ
AABYABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVz
dGVkLXJlZmxlY3Rpb24tYW5pbWF0ZWQtY3Jhc2gtbG9nLnR4dFVUCQADazytT2s8rU91eAsAAQTo
AwAABOgDAACdlk1v4zYQhs/dX6FjctO3ZaEosLGT3QD5qqVFDkVRUOTQZi2RKkVh7f76Di3JlbtS
EvRmjuZ9ODOcIU01aXZOqbYOV9pZt1W9AclA5xrAuaoFcwI3dr3r9FOWr5+/5anzM1S1Of5i17eb
Ter8VJAG0pRB0W7TNDOE7nNNKIx/X107v7mHOOI8ht//q7wiUsljpdrGkaSCpkbBda+2AWViK0n5
lUhWgu5JIeVkOSK5hwUPgCexy6nv/mt/hWKlNG7SZfVAjqBvkCskxtrWjBj4okm9E7Q5fVspycW2
1cQIJbu9PC+IaTIOewq6UlWtGmGUHrgXZtwP8zFwRhaLaPkOMk2pkgakWe2I3AIbtB54iT+vvVGH
R8WgfC7+BGrStDHHEtaCdZQe4kKyBO9NyJySAUvoG8pS0f2ctvCBxvPac8hgMqsfMo5oAR+TfZai
IoYUJVwCCpLwKcATVqqDgL4jFI/viGXXgEc1mDtGBMAX3v9E3PMnADacYAQ8WsxG857WK7xkSntb
QoW9kqbE4ODsencKUTzp/jV/fMBmb4xuqe31TBi0wgFoa+DXFlpgOWn2TccpfEJoMcexd8VNK0rW
92wHtdY7rapc7aEfJcJdMt26FrNWtLUpvBDdWFKNs38Si7+HUyDM91zvowANDa7tCsfvMzegM6pF
bW5PWZ4HHKFBFH0UKpUR/HgnpGh2w6kgIVxMlnmFRwFsA41qtb0ScUX3TydEJwXiXd5kZ2nWFrrX
PShyqi0TrNvYGjCnHrEMoiQYIb5DsRfmj23ZIgZ53zYPHeG+qkuMyd4qB+yUZ2mvpxKMjfCvFhrT
z0uULPF+HRFnruhe9aLV4Wi716Y1g4y9JGTjIB+hacgWU1M1glppu62/3AMeUJhzXQPHideoeMEJ
wSJcCAlPZoXqVenBM3TdC8/uJer9X7DxvpSiwAY4PTprgQmbYabiiBT+8v3i2N2y0/H9qI/Zj28X
9ZNFEPpTdhy/ZNIeRvTdHLBSr8LshiDOT2hEgLtvHMg9donGh3eomOfR6A33s1vgjV+HHFsg20GJ
ffedCGOXl7MThksoommFbuWdKCE/t1EYJmEwxqPH6Ksf+mTcYxURsv+wDIOJvwsRJyyBsT30Euz+
T/8AUEsDBBQAAgAIAKCCq0CiNMIFFAMAAAgIAABYABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
Y29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tbWFzay1jaGFuZ2Utc3Rk
ZXJyLnR4dFVUCQADbDytT2w8rU91eAsAAQToAwAABOgDAACdlc122zYQhdf2U2SZ7Aj+ieSulqrE
p3bqWjrHi54uhsBAQk0CLAi2Up6+A5FUKEuq2+4IYL47mMElcFNCi0UhsOw2RbFywF/XFjhOvz9+
+vBrsEsTKVP87famJz6CNnpfm679oKHGtqHATwO16OpmpTYaqi+gRYV2UIi5hJwUgt1MJshEzGY8
DG5vXrCcG0uiz6gF2gfYo70jHaVpT10jwOFnC81W8fawNjdaqk1nwSmje23GopRnfnuXxOambkyr
nLGj3sk05aF9OzxKlbMkvyJVFNxoh9rNt6A3KEaGIcvCc+bO7B6NwOrn8nfkrihat69woURPD3CA
WY7sInyNECgyfoGoDH+9xpQh8vScOW4N3cpzY0UJL/Gfw3/QqgYHZYWnYAmZnIJfqQM9jHYJnI5h
T220SC0fp3s2QZQz9h/Re/kVUYwnkaBMZmfZ32NYybIp82OFNZ1xUYAjQ2+HMI5JehL2Zf34QGZs
ne249+JKOZrFHfLO4S8ddijW0L62PV+GALx8y68t4l2nKjF4qxfzs0tr6rV5xcHiIAM4tZjHF4Z3
fqtPYFuv0NC/d4DUt7GrIEIWsPdAaBpqzpFIGEyJBXJqo1jQcV8G7/YOhzpZmrCInfyLI/NgYKiz
rpXzaj2CsQzSuCd+UtT3paVLpY+eV4rI+7qpRs6h8Es9GucCZfB+su8EJQvjN85uTWc5joRQ4hk5
qj9xssWMQxhNqUdQ+l+Rs5mQyf/IN8s8deWmfcY/OmzdkzW7vTe5U3I/iIjvKixleXoo9hHbFjaU
0jQEd9obc7iXIxlxfBuyQEk/u6XIJzpeuiJPAJDZGWBejB0j4iA4RPSPxRD3RN78XKmSDHh4FxaK
inHj75UmUIb59YK9+urQtnMuFcdnhbyeySgOJ+M8CiE7GccJv7o3qvhFue2Y5Ph6JdD77G0j7+k5
sPTWjZUzxpMLYcfliPmLe01nt9piRab+C5Tzw6XSqt2Ol1Ic51gmp5G200tVoZ8Zg7I48nK0MpkN
4xC8VWty6DCRx9H05Q1CkaEfxyxLsvz2b1BLAwQUAAIACACggqtAs5//LlEDAACiCQAAWwAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZs
ZWN0aW9uLW1hc2stY2hhbmdlLWNyYXNoLWxvZy50eHRVVAkAA2w8rU9sPK1PdXgLAAEE6AMAAATo
AwAApZZNc9s4DIbP7a/wMbmJ+rKk2enMxq7bzCZt1nYnh509QCRocyOJWopq7f76QpHkyK2UZHZv
NojnJQgChLiBaj/L9G4mtZkt67xcYyHQbA3i7KJUYuY5IQsuk7eb7fLzl20y+w3z0h7fNf/fr9fJ
7E0KFSaJwLTeJcnGAn/YGuA4/H1xOfvLOYSBlCH+/TN5AYUujrmuq1kBOVYlAZcd3QS0UbsCso9Q
iAxNp+RzCfFAyTnMZYBM+GzOXefJfo/pQhvapD3VDRzRXJGuKijWuhRg8YOBcq949bi20IVUu9qA
Vbpo92LMC3k0DHtMdKHzUlfKatPrnplpPzqPxZNkOg/iFySThOvCYmEXeyh2KHqWIYvcafZKH261
wOxz+g9ymySVPWa4VKJV6UQcjGJkz4pMkQJFxJ8hM80fptjURR5Os6eQ0W4avj9xwFN8HfZ7oXKw
kGZ4LpBCJMcEPlGmWhE0K+B0fUdKu0G6qt7cagSIcs7+o8S1/IQo+hsMUAbzyWheYlnKojH2fYY5
1UqSgKXG2XfuHINw1P3j9vaGir2ypuZNrW+UJSsekNcW/6yxRrGF6qFqdVIXgKdTOs1bcVWrTHQ1
24o21pXR+VY/YNdKIB0YL91GZql53RzhDkzVKJXU+4+w+t7fAgiXOey1AlCWlMQTGTAYI5fIKe1i
SWUzLnB1tNjlgYUB89joW9CzNxq6POS5so1qi6IvndA/J/9QdF8rQ49eSy0yRQrXeZn1vEXRLLUS
fixQOq/f/ImkzV1/ooMqXRuOPSmUWCNH9RUHoUccXG+MvgVVvEphPhcy+B/7z6MhPTEx1vhvjZW9
M/pwbJrJKnnsxMSTGgtZHJ4l4xarCnYUgi5JpC6awu/mjCc9jlOuS5T0+Bgi7qhM6Ik/A0FGk6C+
16b39B3nzLMdip3/HfXAh0ylVOCP82+p6LC2b+8wgNSNX05Ms9vmMc2/8qH4ZYxSj0XS890Re+y5
EI3a/YC/eAbK1L2y+z6I0zQP4Lyuf76QaxqDhr4B+owxxoNn3E9uHhsOqi3VxmaPGTXXN1C2+btS
har2/ePq+zGmwThh6mKlMmwsvXPke0N58hisur4Lw5bJqVO6hdj3xr5cHFdEOLT7LAqi+O0PUEsD
BBQAAgAIAJuCq0C0bZ+OVAMAADMJAABhABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9z
aXRpbmcvcmVmbGVjdGlvbnMvYmVjb21lLXNpbXBsZS1jb21wb3NpdGVkLXJlZmxlY3Rpb24tY3Jh
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
oR6Nc4EyeH+y7wRNFsZvnN2aznIcCaHEM3JUf+JkiRmHMJpSj6D0vyJnMyGT/zHfLPPUlZv2Gf/o
sHVP1uz23uROyf0gIr6rsJTl6aHYR2xb2NCUpiG4096Yw70cyYjj25QFSjrsljKfaHvpijwBQGZn
gHkxdsyIg+CQ0T8WQ94TefNzpUoy4OFdWCgqxo3HK02gDPPrBXv11aFt51wqjs8KRgHMojicftPJ
y06+44RfXRtV/KLcdpzk+Hol0PvsbSPv6Tmw9NaNlTPGkwtpx+GI+Yt7TXu32mJFpv4LlPOfS6VV
ux0vpTjOsUxOM22nl6pCHxmTsjjycjQyiYZxCN6qNTl0CORxNH15GYgM/XfMsiTLb/8GUEsDBBQA
AgAIAJuCq0BISTS6JwMAAG8IAABYABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRp
bmcvcmVmbGVjdGlvbnMvYmFja2ZhY2UtaGlkZGVuLXJlZmxlY3Rpb24tY3Jhc2gtbG9nLnR4dFVU
CQADZTytT2U8rU91eAsAAQToAwAABOgDAACdlU2P2zYQhs/Nr9Bx9ybqw5aFokDWjpMFdrNbW8Ee
gqKgyKHNWiJVikTs/vqOLMmVA8kJ6pNFzfuQM/NqyAyt916hd57Qxlu5stqA4mAyA+DdVZJ7oR+S
6D59t81WL1+y1PsVysqefmueP2w2qfdLTmtIUw6526Xp1lJ2yAxlMPx/d+999Y+zWIgZ/PG98o4q
rU6ldrWnaAl1hYL7Tt0caCt3ihafqOIFmI4UMUEXA5J/nAuIAX8JC/z/1t8gX2qDm7RZPdETmAfk
SoVndRWnFj4aWu0lq8/vlloJuXOGWqlVuxch4Ywlw2OPQZe6rHQtrTY992oZ98N8LFyQ+Txe/ACZ
pkwrC8ou91TtgPdaAiQJprUP+visORQv+V/AbJrW9lTASvKW0kF8SBZAbkKmlBx4wm4oC80OU9o8
ADab1l6ODHbb6PuMY5bDz8neK1lSS/MCrgE5TcQY4DNWqoWAWVOG7Tth2Q1gq/rlloHeEnPyPxGP
4jMA7zsYg4jnk6f5kZbkJBnTfiigRK+kKbX44ey7cAbxbDT8U/b8hGavrXGs8fpWWlyFIzBn4XcH
DnhG60PdcvKAUpZPcZpZ8eBkwTvPttBmdW10mekDdJ8SFT4dt26DWWnmmhReqakbUoXf/lks/+m7
QHlAfPKzAFpVWMSLMiZ0TLkChmXnK7TN9wBRuLqrJJnFZJZEo4BO9Wawhqi67AlxEub8luRJ03PR
hFSy3gNvnnFU9PIwCEaTfaZSbaDWzjDoEVzy9ZlyzZjPGRt+rd8gP0j7565wyEHgl81TS3gsqyJN
l83EOaKLXlQzugqwwDfwt4PadnWIkwXO3gFxYnx3qlejj6fG2VaK0wRyRpKIhwPkM9Q13WFqukKQ
U40Tu8EfipDBVOgKBE4Dg4pXbAIW4UpIRTIp1G/a9JGR719FtrdUF/+KpvxYyPx8rjdp9yuJGVu2
v1xNMbo8vpHMI1bY4IXW70YIuxV+CQvJsI8Zlm+7hwJ79o1K2zyuOxO1iihaQB6PK4xTa1lAdmlB
FCVROMRjxOBtEAV02J8S/de9WETh2DXMQ57AcD0iCTrn3b9QSwMEFAACAAgAooKrQLRJLhYTAwAA
CAgAAFkAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9u
ZXN0ZWQtcmVmbGVjdGlvbi10cmFuc2Zvcm1lZDItc3RkZXJyLnR4dFVUCQADbzytT288rU91eAsA
AQToAwAABOgDAACdlc122zYQhdf2U2Rp7wj+ieSuliLHJ3biWjrHi54shsBAQkwSLAg2Up6+A5GU
KUuK2+wIYL47mMElcJFDg1kmMG9XWbawwF+WBjiOv6+uP/zlbeJIyhi/XV50xBVUutqWum0+VFBi
U1PgdU/N2rJeqFUFxSeoRIGmVwi5hJQUvM1EoheknvS5711ePGM+1YZEn7ASaO5hi+aGdFRFe2pr
ARZvDdRrxZvd2lRXUq1aA1bpqtNmLIh54rZ3Smyqy1o3ymoz6B1MUx7at8W9VD6J0jNSWcZ1ZbGy
0zVUKxQDw5Al/jFzozcPWmDxNf+O3GZZY7cFzpTo6B72MEmRnYTPEQJFwk8QheYv55jcRx4fM/ut
oV04bqgo4jn+OvyPSpVgIS/wEMwhkWPwC3Wgg9HMgdMxbKmNBqnlw3THRohywv4neie/IIrhJCKU
0eQo+3sMy1kyZj4WWNIZZxlYMvS6D+MYxQdhn5YP92TGxpqWOy8ulKVZ3CBvLf7ZYotiCc1L0/G5
D8Dzt/zSIN60qhC9tzoxNzs3ulzqF+wtDtKDQ4s5fKZ567b6CKZxCjX9eztI/Ry6CsJnHnsPhLqm
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
8+cGF9vPDB3O+Ov/Zm314dvHz9FsyLSR5hvc41tQZvMfuKpNcHnTH4gcrz8SfX79+OYO7NX2lpxr
+hOYZEjsU5zPiqUYssNggFN+58FjSgq7wArQUdzUybhZ488cTBBhQwnHCBWCLJwTesRbX3C+UZoZ
+I756sFJxqHA6+wOS/w81yQJSbbcFUaoqAB0YDDOIDBCagoacroJcUJ7bDqiBV1Qz8kjUFnNnHNk
sIzw26jE1DHFEvf+fJ6GEtCuavy+IOLGh4EpoDVg0Tu6AUqZCkOV9cQ9B3UapYlJOY+KWBwMDlTM
HGnQOcpzfrS4f7GL06yjlCxkPVtQqKQlPVDFCyT1fTwjOAf7PRs/3utkx2F9jVTz5pOgxZjlGqZB
Fdl1XyHzlwHoZB49GfPoZ2D+px6AJ1P7iYH3u8oOqh7xfWIvy7XllxgKnaxAZcvxjeqcmLyWpeob
JkyPHOgaJqcLsU4XDV/3yOz1tryPcnFQy1dxEoIeIuAMNjFTanEeyqFtsRvGVoJ1w1fE8c8nbTHq
zTxb0/fxrKzwE5HwmtVsAo5JGuMHHMe3j66+rArcs5W8OAWo/StZQA36Kg74/8+SBE+BrhHG3gcm
4nY2QytDAxLsgtwpWlqE/f4GS2D1BwBQSwECHgMKAAAAAACsgqtAAAAAAAAAAAAAAAAAGAAYAAAA
AAAAABAA7UEAAAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvVVQFAAODPK1PdXgLAAEE6AMAAATo
AwAAUEsBAh4DFAACAAgAeYKrQDHolHg9KAAAk/QBADQAGAAAAAAAAQAAAKSBUgAAAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL3dlYmtpdF91bml0X3Rlc3RzX291dHB1dC54bWxVVAUAAyY8rU91eAsA
AQToAwAABOgDAABQSwECHgMUAAIACAClgqtAo5J8ioIGAADqIQAAJgAYAAAAAAABAAAApIH9KAAA
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50eHRVVAUAA3Y8rU91eAsAAQToAwAA
BOgDAABQSwECHgMKAAAAAACDgqtAAAAAAAAAAAAAAAAAQwAYAAAAAAAAAAAApIHfLwAAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvcHl3ZWJzb2NrZXQud3MubG9nLTExTWF5MjAxMi0xNjIwMDUtZXJy
LnR4dFVUBQADNTytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAKWCq0CU4X8/YBMAACavAAAm
ABgAAAAAAAEAAACkgVwwAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy90ZXN0c19ydW4xLnR4dFVU
BQADdTytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAKWCq0A5NK1T8gQAAOgZAAAmABgAAAAA
AAEAAACkgRxEAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy90ZXN0c19ydW4zLnR4dFVUBQADdTyt
T3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAIOCq0AAAAAAAAAAAAAAAABDABgAAAAAAAAAAACk
gW5JAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9weXdlYnNvY2tldC53cy5sb2ctMTFNYXkyMDEy
LTE2MjAwNS1vdXQudHh0VVQFAAM1PK1PdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAh4KrQAAA
AAAAAAAAAAAAAB0AGAAAAAAAAAAQAO1B60kAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAv
VVQFAAM9PK1PdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAoYKrQAAAAAAAAAAAAAAAACMAGAAA
AAAAAAAQAO1BQkoAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvVVQFAANtPK1P
dXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAh4KrQAAAAAAAAAAAAAAAACkAGAAAAAAAAAAQAO1B
n0oAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvVVQFAAM+PK1PdXgL
AAEE6AMAAAToAwAAUEsBAh4DFAACAAgAh4KrQAD4L+WfAQAALwMAAFAAGAAAAAAAAQAAAKSBAksA
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvbG9hZGVkLWZyb20tY2Fj
aGUtYWZ0ZXItcmVsb2FkLWRpZmYudHh0VVQFAAM+PK1PdXgLAAEE6AMAAAToAwAAUEsBAh4DFAAC
AAgAh4KrQP7BpR1AAQAAWgIAAFIAGAAAAAAAAQAAAKSBK00AAHRtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL2h0dHAvdGVzdHMvY2FjaGUvbG9hZGVkLWZyb20tY2FjaGUtYWZ0ZXItcmVsb2FkLWFjdHVh
bC50eHRVVAUAAz48rU91eAsAAQToAwAABOgDAABQSwECHgMKAAIAAACHgqtA7nAgwgUAAAAFAAAA
YgAYAAAAAAABAAAApIH3TgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9jYWNo
ZS9sb2FkZWQtZnJvbS1jYWNoZS1hZnRlci1yZWxvYWQtd2l0aGluLWlmcmFtZS1leHBlY3RlZC50
eHRVVAUAAz08rU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACHgqtAcPu6VnQIAABmHgAAZgAY
AAAAAAABAAAApIGYTwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9s
b2FkZWQtZnJvbS1jYWNoZS1hZnRlci1yZWxvYWQtd2l0aGluLWlmcmFtZS1wcmV0dHktZGlmZi5o
dG1sVVQFAAM+PK1PdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAh4KrQDzV6oj8HAAAoigAAGAA
GAAAAAAAAAAAAKSBrFgAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUv
bG9hZGVkLWZyb20tY2FjaGUtYWZ0ZXItcmVsb2FkLXdpdGhpbi1pZnJhbWUtYWN0dWFsLnBuZ1VU
BQADPjytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAIeCq0C5x48m2x8AAKgrAABSABgAAAAA
AAAAAACkgUJ2AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2NhY2hlL2xvYWRl
ZC1mcm9tLWNhY2hlLWFmdGVyLXJlbG9hZC1hY3R1YWwucG5nVVQFAAM+PK1PdXgLAAEE6AMAAATo
AwAAUEsBAh4DFAACAAgAh4KrQI2lfIqPAQAA6AIAAFIAGAAAAAAAAQAAAKSBqZYAAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvbG9hZGVkLWZyb20tY2FjaGUtYWZ0ZXIt
cmVsb2FkLXdkaWZmLmh0bWxVVAUAAz48rU91eAsAAQToAwAABOgDAABQSwECHgMKAAIAAACHgqtA
7nAgwgUAAAAFAAAAVAAYAAAAAAABAAAApIHEmAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0
cC90ZXN0cy9jYWNoZS9sb2FkZWQtZnJvbS1jYWNoZS1hZnRlci1yZWxvYWQtZXhwZWN0ZWQudHh0
VVQFAAM+PK1PdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAh4KrQI2lfIqPAQAA6AIAAGAAGAAA
AAAAAQAAAKSBV5kAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvbG9h
ZGVkLWZyb20tY2FjaGUtYWZ0ZXItcmVsb2FkLXdpdGhpbi1pZnJhbWUtd2RpZmYuaHRtbFVUBQAD
PTytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAIeCq0DCy5TcbAgAAFgeAABYABgAAAAAAAEA
AACkgYCbAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2NhY2hlL2xvYWRlZC1m
cm9tLWNhY2hlLWFmdGVyLXJlbG9hZC1wcmV0dHktZGlmZi5odG1sVVQFAAM+PK1PdXgLAAEE6AMA
AAToAwAAUEsBAh4DFAACAAgAh4KrQM9E0TqoAQAASwMAAF4AGAAAAAAAAQAAAKSBfqQAAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvbG9hZGVkLWZyb20tY2FjaGUtYWZ0
ZXItcmVsb2FkLXdpdGhpbi1pZnJhbWUtZGlmZi50eHRVVAUAAz08rU91eAsAAQToAwAABOgDAABQ
SwECHgMUAAIACACHgqtA/sGlHUABAABaAgAAYAAYAAAAAAABAAAApIG+pgAAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9sb2FkZWQtZnJvbS1jYWNoZS1hZnRlci1yZWxv
YWQtd2l0aGluLWlmcmFtZS1hY3R1YWwudHh0VVQFAAM9PK1PdXgLAAEE6AMAAAToAwAAUEsBAh4D
CgAAAAAAoYKrQAAAAAAAAAAAAAAAAC0AGAAAAAAAAAAQAO1BmKgAAHRtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL1VUBQADbTytT3V4CwABBOgDAAAE6AMAAFBLAQIe
AxQAAgAIAKGCq0BHGHbChQEAAGgFAABKABgAAAAAAAEAAACkgf+oAAB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItcGFnZXMtd2RpZmYuaHRt
bFVUBQADbTytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAKGCq0Dabs1YoQcAAP8ZAABQABgA
AAAAAAEAAACkgQirAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZS1oYXItcGFnZXMtcHJldHR5LWRpZmYuaHRtbFVUBQADbTytT3V4CwABBOgDAAAE
6AMAAFBLAQIeAxQAAgAIAKGCq0AO1i1FLgEAALUEAABKABgAAAAAAAEAAACkgTOzAAB0bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItcGFnZXMt
YWN0dWFsLnR4dFVUBQADbTytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAKGCq0Cj9bH0OAEA
AMQEAABMABgAAAAAAAEAAACkgeW0AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZS1oYXItcGFnZXMtZXhwZWN0ZWQudHh0VVQFAANtPK1PdXgLAAEE
6AMAAAToAwAAUEsBAh4DFAACAAgAoYKrQFSrmBzCAAAARQEAAEgAGAAAAAAAAQAAAKSBo7YAAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1w
YWdlcy1kaWZmLnR4dFVUBQADbTytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAKWCq0C+xqfH
kgYAABZuAAAlABgAAAAAAAEAAACkgee3AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9lcnJvcl9s
b2cudHh0VVQFAAN2PK1PdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgArIKrQAAxi8xLIwAA5ZYA
ACQAGAAAAAAAAQAAAKSB2L4AAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Jlc3VsdHMuaHRtbFVU
BQADgzytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAKWCq0BlZNbgNQUAAHIaAAAmABgAAAAA
AAEAAACkgYHiAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy90ZXN0c19ydW4yLnR4dFVUBQADdjyt
T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAKeCq0A8ccDETwIAAFAJAAApABgAAAAAAAEAAACk
gRboAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mdWxsX3Jlc3VsdHMuanNvblVUBQADeTytT3V4
CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAIKCq0CR7GaBGiQAAG9hAAAiABgAAAAAAAEAAACkgcjq
AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwZC5jb25mVVQFAAM0PK1PdXgLAAEE6AMAAATo
AwAAUEsBAh4DCgAAAAAAm4KrQAAAAAAAAAAAAAAAACQAGAAAAAAAAAAQAO1BPg8BAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL1VUBQADZTytT3V4CwABBOgDAAAE6AMAAFBLAQIe
AwoAAAAAAJOCq0AAAAAAAAAAAAAAAAAtABgAAAAAAAAAEADtQZwPAQB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9VVAUAA1U8rU91eAsAAQToAwAABOgDAABQSwEC
HgMUAAIACACTgqtAqWI0yGcAAADSAAAASwAYAAAAAAABAAAApIEDEAEAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtaW4tY29tcG9zaXRlZC1zdGRlcnIu
dHh0VVQFAANVPK1PdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAk4KrQJ7YDfBbAAAAvgAAAEkA
GAAAAAAAAQAAAKSB7xABAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL2dlb21l
dHJ5L2VtcHR5LWVtYmVkLXJlY3RzLXN0ZGVyci50eHRVVAUAA1U8rU91eAsAAQToAwAABOgDAABQ
SwECHgMKAAAAAAClgqtAAAAAAAAAAAAAAAAAMAAYAAAAAAAAABAA7UHNEQEAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvVVQFAAN1PK1PdXgLAAEE6AMAAATo
AwAAUEsBAh4DFAACAAgApYKrQK3ByngTAwAACAgAAFEAGAAAAAAAAQAAAKSBNxIBAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tcG9zaXRp
b25pbmctc3RkZXJyLnR4dFVUBQADdTytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAKSCq0CE
RQ6kFAMAAAgIAABSABgAAAAAAAEAAACkgdUVAQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jb21w
b3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLXBvc2l0aW9uaW5nMi1zdGRlcnIudHh0VVQF
AAN0PK1PdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAo4KrQAgerxsUAwAACAgAAFMAGAAAAAAA
AQAAAKSBdRkBAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25z
L3JlZmxlY3Rpb24tb24tY29tcG9zaXRlZC1zdGRlcnIudHh0VVQFAANyPK1PdXgLAAEE6AMAAATo
AwAAUEsBAh4DFAACAAgApIKrQE1Tji9RAwAAogkAAFUAGAAAAAAAAQAAAKSBFh0BAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tcG9zaXRp
b25pbmcyLWNyYXNoLWxvZy50eHRVVAUAA3Q8rU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACc
gqtAgr5ENFUDAAAzCQAAWAAYAAAAAAABAAAApIH2IAEAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
Y29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZW1wdHktcmVmbGVjdGlvbi13aXRoLW1hc2stY3Jhc2gt
bG9nLnR4dFVUBQADaDytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAKKCq0Bw/m8hTwMAAKIJ
AABcABgAAAAAAAEAAACkgd0kAQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jb21wb3NpdGluZy9y
ZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi10cmFuc2Zvcm1lZDItY3Jhc2gtbG9nLnR4dFVU
BQADbzytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAKOCq0Cmr8p5UQMAAKIJAABWABgAAAAA
AAEAAACkgcIoAQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9u
cy9yZWZsZWN0aW9uLW9uLWNvbXBvc2l0ZWQtY3Jhc2gtbG9nLnR4dFVUBQADcjytT3V4CwABBOgD
AAAE6AMAAFBLAQIeAxQAAgAIAKGCq0BLVXlVIgMAAN4IAABXABgAAAAAAAEAAACkgaMsAQB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVj
dGlvbi1vcGFjaXR5LWNyYXNoLWxvZy50eHRVVAUAA208rU91eAsAAQToAwAABOgDAABQSwECHgMU
AAIACAChgqtAsN+4FlIDAACiCQAAWwAYAAAAAAABAAAApIFWMAEAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tc2l6ZS1jaGFu
Z2UtY3Jhc2gtbG9nLnR4dFVUBQADbjytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAKSCq0AY
S9iXFAMAAAgIAABOABgAAAAAAAEAAACkgT00AQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jb21w
b3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW9yZGVyaW5nLXN0ZGVyci50eHRVVAUAA3M8
rU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACAChgqtAQ3K5O+cCAABsBwAAVAAYAAAAAAABAAAA
pIHZNwEAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVz
dGVkLXJlZmxlY3Rpb24tb3BhY2l0eS1zdGRlcnIudHh0VVQFAANtPK1PdXgLAAEE6AMAAAToAwAA
UEsBAh4DFAACAAgAnIKrQAwGUIwYAwAAqQcAAFUAGAAAAAAAAQAAAKSBTjsBAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL2VtcHR5LXJlZmxlY3Rpb24td2l0
aC1tYXNrLXN0ZGVyci50eHRVVAUAA2g8rU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACdgqtA
VvsEKyIDAADeCAAAXAAYAAAAAAABAAAApIH1PgEAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29t
cG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tYW5jaG9yLXBvaW50LWNyYXNo
LWxvZy50eHRVVAUAA2o8rU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACAClgqtA0OmHxVADAACi
CQAAVAAYAAAAAAABAAAApIGtQgEAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcv
cmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1wb3NpdGlvbmluZy1jcmFzaC1sb2cudHh0VVQFAAN1PK1P
dXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAoIKrQBT/GCZSAwAAFwkAAFgAGAAAAAAAAQAAAKSB
i0YBAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3Rl
ZC1yZWZsZWN0aW9uLWFuaW1hdGVkLWNyYXNoLWxvZy50eHRVVAUAA2s8rU91eAsAAQToAwAABOgD
AABQSwECHgMUAAIACACggqtAojTCBRQDAAAICAAAWAAYAAAAAAABAAAApIFvSgEAdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24t
bWFzay1jaGFuZ2Utc3RkZXJyLnR4dFVUBQADbDytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAI
AKCCq0Czn/8uUQMAAKIJAABbABgAAAAAAAEAAACkgRVOAQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi1tYXNrLWNoYW5nZS1j
cmFzaC1sb2cudHh0VVQFAANsPK1PdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAm4KrQLRtn45U
AwAAMwkAAGEAGAAAAAAAAQAAAKSB+1EBAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0
aW5nL3JlZmxlY3Rpb25zL2JlY29tZS1zaW1wbGUtY29tcG9zaXRlZC1yZWZsZWN0aW9uLWNyYXNo
LWxvZy50eHRVVAUAA2Y8rU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACjgqtAHYCCGlADAACi
CQAATwAYAAAAAAABAAAApIHqVQEAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcv
cmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tY3Jhc2gtbG9nLnR4dFVUBQADcTytT3V4CwAB
BOgDAAAE6AMAAFBLAQIeAxQAAgAIAKKCq0B6w6ASIgMAAN4IAABbABgAAAAAAAEAAACkgcNZAQB0
bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVm
bGVjdGlvbi10cmFuc2Zvcm1lZC1jcmFzaC1sb2cudHh0VVQFAANwPK1PdXgLAAEE6AMAAAToAwAA
UEsBAh4DFAACAAgAooKrQOtMfuzlAgAAbAcAAFgAGAAAAAAAAQAAAKSBel0BAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLXRy
YW5zZm9ybWVkLXN0ZGVyci50eHRVVAUAA3A8rU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACk
gqtAsgXdtFEDAACiCQAAUQAYAAAAAAABAAAApIHxYAEAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
Y29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vcmRlcmluZy1jcmFzaC1sb2cudHh0
VVQFAANzPK1PdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAoYKrQP/K1G4UAwAACAgAAFgAGAAA
AAAAAQAAAKSBzWQBAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rp
b25zL25lc3RlZC1yZWZsZWN0aW9uLXNpemUtY2hhbmdlLXN0ZGVyci50eHRVVAUAA248rU91eAsA
AQToAwAABOgDAABQSwECHgMUAAIACACdgqtA0y3v+ecCAABsBwAAWQAYAAAAAAABAAAApIFzaAEA
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJl
ZmxlY3Rpb24tYW5jaG9yLXBvaW50LXN0ZGVyci50eHRVVAUAA2o8rU91eAsAAQToAwAABOgDAABQ
SwECHgMUAAIACACjgqtAFnr1rhMDAAAICAAATAAYAAAAAAABAAAApIHtawEAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tc3Rk
ZXJyLnR4dFVUBQADcTytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAKCCq0CLjiW/FgMAAJUH
AABVABgAAAAAAAEAAACkgYZvAQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jb21wb3NpdGluZy9y
ZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi1hbmltYXRlZC1zdGRlcnIudHh0VVQFAANrPK1P
dXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAoYKrQImNiYRRAwAAogkAAFsAGAAAAAAAAQAAAKSB
K3MBAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3Rl
ZC1yZWZsZWN0aW9uLW9uLW92ZXJmbG93LWNyYXNoLWxvZy50eHRVVAUAA208rU91eAsAAQToAwAA
BOgDAABQSwECHgMUAAIACAChgqtArlEI8hQDAAAICAAAWAAYAAAAAAABAAAApIERdwEAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rp
b24tb24tb3ZlcmZsb3ctc3RkZXJyLnR4dFVUBQADbTytT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQA
AgAIAJuCq0BISTS6JwMAAG8IAABYABgAAAAAAAEAAACkgbd6AQB0bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9iYWNrZmFjZS1oaWRkZW4tcmVmbGVjdGlvbi1j
cmFzaC1sb2cudHh0VVQFAANlPK1PdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAooKrQLRJLhYT
AwAACAgAAFkAGAAAAAAAAQAAAKSBcH4BAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0
aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLXRyYW5zZm9ybWVkMi1zdGRlcnIudHh0
VVQFAANvPK1PdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAm4KrQI7iGdsZAwAAqQcAAF4AGAAA
AAAAAQAAAKSBFoIBAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL3JlZmxlY3Rp
b25zL2JlY29tZS1zaW1wbGUtY29tcG9zaXRlZC1yZWZsZWN0aW9uLXN0ZGVyci50eHRVVAUAA2Y8
rU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACbgqtAxQ9TAesCAAANBwAAVQAYAAAAAAABAAAA
pIHHhQEAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvYmFj
a2ZhY2UtaGlkZGVuLXJlZmxlY3Rpb24tc3RkZXJyLnR4dFVUBQADZTytT3V4CwABBOgDAAAE6AMA
AFBLAQIeAxQAAgAIAKWCq0A8oN8SDhkAAOwuAQAmABgAAAAAAAEAAACkgUGJAQB0bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy9hY2Nlc3NfbG9nLnR4dFVUBQADdjytT3V4CwABBOgDAAAE6AMAAFBLBQYA
AAAARwBHAL8nAACvogEAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144752</attachid>
            <date>2012-05-30 01:40:00 -0700</date>
            <delta_ts>2012-05-30 08:30:59 -0700</delta_ts>
            <desc>patch for review.</desc>
            <filename>86214_20120530-102927.patch</filename>
            <type>text/plain</type>
            <size>29628</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwNWRhNDk2Li42NDlkM2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTkg
QEAKIDIwMTItMDUtMjkgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKKyAgICAg
ICAgRml4IGFuZCBlbmFibGUgV2ViR0wgZm9yIFdlYktpdDIgb24gUXQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjIxNAorCisgICAgICAgIE1ha2Ug
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIHVzZSBhIEdyYXBoaWNzU3VyZmFjZQorICAgICAgICBm
b3IgV0syLiBUaGUgR3JhcGhpY3NDb250ZXh0M0QgdGhlbiB1c2VzIHRoZSBleGlzdGluZworICAg
ICAgICBSZW5kZXJCdWZmZXIgZm9yIG11bHRpc2FtcGxlIHJlbmRlcmluZy4KKyAgICAgICAgV2hl
biBXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZSBpcyBiZWluZworICAgICAg
ICBleGVjdXRlZCwgdGhlIGNhbnZhcyBpcyBiZWluZyBzeW5jZWQgYXMgd2VsbC4gVGhpcyBtZWFu
cworICAgICAgICB0aGF0IHRoZSBSZW5kZXJCdWZmZXIgY29udGVudHMgYXJlIGJlaW5nIGJsaXQg
b250bworICAgICAgICB0aGUgR3JhcGhpY3NTdXJmYWNlLCBhbmQgdGhlIEdyYXBoaWNzU3VyZmFj
ZSB0b2tlbiBpcworICAgICAgICBiZWluZyBzZW50IHRvIHRoZSBVSVByb2Nlc3MuCisgICAgICAg
IFRoZSBXZWJMYXllclRyZWVSZW5kZXJlciB0aGVuIGNyZWF0ZXMgYQorICAgICAgICBUZXh0dXJl
TWFwcGVyRGlyZWN0QmFja2luZ1N0b3JlIGZvciB0aGUgY2FudmFzIGFuZAorICAgICAgICBwYXNz
ZXMgdGhlIEdyYXBoaWNzU3VyZmFjZSB0b2tlbiBhcyBhbiBhcmd1bWVudC4KKyAgICAgICAgVGhl
IHRva2VuIGNhbiB0aGVuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIEdyYXBoaWNzU3VyZmFjZQor
ICAgICAgICBmcm9tIHRoZSBVSVByb2Nlc3Mgc2lkZS4KKworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaDoKKyAgICAgICAgQWRkZWQgcmVzaGFwZVN1cmZhY2UgZnVuY3Rpb24uIFRoaXMg
aXMgY3VycmVudGx5IG9ubHkKKyAgICAgICAgYmVpbmcgdXNlZCBieSB0aGUgUXQgcG9ydC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5H
TENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFw
ZSk6CisgICAgICAgIENhbGxpbmcgdGhlIHJlc2hhcGVTdXJmYWNlIGZ1bmN0aW9uIHdoZW4gdGhl
IEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGlzIHJlc2hhcGVkLiBUaGlzIGlzIGN1cnJlbnRs
eSBvbmx5IHJlbGV2YW50IGZvciB0aGUgUXQgcG9ydC4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwOgorICAgICAgICAoR3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlKToKKyAgICAgICAgQWRkZWQgbV9ncmFwaGljc1N1cmZhY2UgYW5kIG1fc3Vy
ZmFjZUZsYWdzIG1lbWJlcnMuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6CisgICAgICAgIEluIGNhc2Ugb2YgV0sy
LCBjcmVhdGUgYSBRT3BlbkdMQ29udGV4dCBhbmQgYSBHcmFwaGljc1N1cmZhY2UKKyAgICAgICAg
Zm9yIHNoYXJpbmcgdGhlIFdlYkdMIGNvbnRlbnQgd2l0aCB0aGUgVUlQcm9jZXNzLgorICAgICAg
ICBDcmVhdGluZyBhIFFPcGVuR0xDb250ZXh0IGN1cnJlbnRseSByZXF1aXJlcyBzaG93aW5nIGEg
UVdpbmRvdy4KKyAgICAgICAgRm9yIHRoZSBtb21lbnQgd2UgdGhlcmVmb3JlIGNyZWF0ZSBhIG1p
bmltYWwgUVdpbmRvdyBhbmQgcGxhY2UKKyAgICAgICAgaXQgb2Zmc2NyZWVuLgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjb3B5VG9HcmFwaGljc1N1cmZhY2Up
OgorICAgICAgICBUaGlzIG5ldyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSB0aGUgV2ViR3JhcGhp
Y3NMYXllciwKKyAgICAgICAgdG8gYmxpdCB0aGUgbXVsdGlzYW1wbGUgZnJhbWVidWZmZXIgYW5k
IGNvcHkgaXRzIGNvbnRlbnRzCisgICAgICAgIG9udG8gdGhlIEdyYXBoaWNzU3VyZmFjZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cmVzaGFwZSk6CisgICAg
ICAgIFdoZW5ldmVyIHRoZSBHcmFwaGljc0NvbnRleHQzRCBpcyBiZWluZyByZXNoYXBlZCwKKyAg
ICAgICAgYSBuZXcgR3JhcGhpY3NTdXJmYWNlIG11c3QgYmUgY3JlYXRlZCB3aXRoIHRoZSB1cGRh
dGVkIGRpbWVuc2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVz
aGFwZVN1cmZhY2UpOgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmg6CisgICAgICAgIEFkZGVkIGEgbmV3IHZpcnR1YWwgZnVu
Y3Rpb24gY29weVRvR3JhcGhpY3NTdXJmYWNlLgorICAgICAgICAoVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI6
OmNvcHlUb0dyYXBoaWNzU3VyZmFjZSk6CisKKzIwMTItMDUtMjkgIFplbm8gQWxiaXNzZXIgIDx6
ZW5vQHdlYmtpdC5vcmc+CisKICAgICAgICAgTWFrZSBUZXh0dXJlTWFwcGVyIHdvcmsgd2l0aCBH
cmFwaGljc1N1cmZhY2UuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NzczOAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCA2OTJkYTU2Li41OTQwMTVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgK
QEAgLTkxMSw2ICs5MTEsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIHJlc2hhcGVGQk9zKGNvbnN0
IEludFNpemUmKTsKICAgICB2b2lkIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoY29u
c3QgSW50UmVjdCYgPSBJbnRSZWN0KCkpOworI2lmIFBMQVRGT1JNKFFUKSAmJiBVU0UoR1JBUEhJ
Q1NfU1VSRkFDRSkKKyAgICB2b2lkIHJlc2hhcGVTdXJmYWNlKGludCB3aWR0aCwgaW50IGhlaWdo
dCk7CisjZW5kaWYKIAogICAgIGludCBtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0Owog
ICAgIGJvb2wgaXNSZXNvdXJjZVNhZmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IGMxMTc3MjEuLjcwMzU0ODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMjIyLDYgKzIyMiwxMiBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkK
ICAgICBpZiAod2lkdGggPT0gbV9jdXJyZW50V2lkdGggJiYgaGVpZ2h0ID09IG1fY3VycmVudEhl
aWdodCkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oUVQpICYmIFVTRShHUkFQSElD
U19TVVJGQUNFKQorICAgIDo6Z2xGbHVzaCgpOyAvLyBNYWtlIHN1cmUgYWxsIEdMIGNhbGxzIGhh
dmUgYmVlbiBjb21taXR0ZWQgYmVmb3JlIHJlc2l6aW5nLgorICAgIHJlc2hhcGVTdXJmYWNlKHdp
ZHRoLCBoZWlnaHQpOworI2VuZGlmCisKKwogICAgIG1fY3VycmVudFdpZHRoID0gd2lkdGg7CiAg
ICAgbV9jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwCmluZGV4
IGFmOTVlNGYuLmM1MDE3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNET3BlbkdMLmgiCiAjZW5kaWYKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJHcmFwaGljc1N1cmZhY2UuaCIKICNpbmNsdWRl
ICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRl
ICJJbWFnZUJ1ZmZlci5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIk9wZW5HTFNoaW1z
LmgiCiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIu
aCIKKyNpbmNsdWRlIDxRV2luZG93PgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtNjcsMTYgKzY5LDI0IEBAIHB1YmxpYzoK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikK
ICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciosIGNv
bnN0IEZsb2F0UmVjdCYgdGFyZ2V0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0
IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spOwogI2VuZGlmCisjaWYgVVNFKEdSQVBISUNT
X1NVUkZBQ0UpCisgICAgdmlydHVhbCB1aW50MzJfdCBjb3B5VG9HcmFwaGljc1N1cmZhY2UoKTsK
KyNlbmRpZgogCiAgICAgUVJlY3RGIGJvdW5kaW5nUmVjdCgpIGNvbnN0OwogICAgIHZvaWQgYmxp
dE11bHRpc2FtcGxlRnJhbWVidWZmZXIoKSBjb25zdDsKICAgICB2b2lkIGJsaXRNdWx0aXNhbXBs
ZUZyYW1lYnVmZmVyQW5kUmVzdG9yZUNvbnRleHQoKSBjb25zdDsKICAgICBib29sIG1ha2VDdXJy
ZW50SWZOZWVkZWQoKSBjb25zdDsKKyAgICB2b2lkIHJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVp
Z2h0KTsKIAogICAgIEdyYXBoaWNzQ29udGV4dDNEKiBtX2NvbnRleHQ7CiAgICAgSG9zdFdpbmRv
dyogbV9ob3N0V2luZG93OwogICAgIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlM0QgbV9zdXJmYWNl
OwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgbV9wbGF0Zm9ybUNvbnRleHQ7CisjaWYg
VVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgR3JhcGhpY3NTdXJmYWNlOjpGbGFncyBtX3N1cmZh
Y2VGbGFnczsKKyAgICBSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPiBtX2dyYXBoaWNzU3VyZmFjZTsK
KyNlbmRpZgogfTsKIAogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6aXNHTEVTMkNvbXBsaWFudCgp
IGNvbnN0CkBAIC05NSwxMiArMTA1LDQxIEBAIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBICiAgICAg
LCBtX3BsYXRmb3JtQ29udGV4dCgwKQogewogICAgIFFXZWJQYWdlQ2xpZW50KiB3ZWJQYWdlQ2xp
ZW50ID0gbV9ob3N0V2luZG93LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKLSAgICBpZiAoIXdlYlBh
Z2VDbGllbnQpCi0gICAgICAgIHJldHVybjsKLSAgICB3ZWJQYWdlQ2xpZW50LT5jcmVhdGVQbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCZtX3BsYXRmb3JtQ29udGV4dCwgJm1fc3VyZmFjZSk7Ci0g
ICAgaWYgKCFtX3N1cmZhY2UpCi0gICAgICAgIHJldHVybjsKLSAgICBtYWtlQ3VycmVudElmTmVl
ZGVkKCk7CisgICAgaWYgKCF3ZWJQYWdlQ2xpZW50KSB7CisgICAgICAgIC8vIEZJWE1FOiBGaW5k
IGEgd2F5IHRvIGNyZWF0ZSBhIFFPcGVuR0xDb250ZXh0IHdpdGhvdXQgc2hvd2luZyBhIFFXaW5k
b3cgYXQgYWxsLgorICAgICAgICAvLyBXZSBuZWVkIHRvIGNyZWF0ZSBhIHN1cmZhY2UgaW4gb3Jk
ZXIgdG8gY3JlYXRlIGEgUU9wZW5HTENvbnRleHQgYW5kIG1ha2UgaXQgY3VycmVudC4KKyAgICAg
ICAgLy8gVGhlcmVmb3JlIHdlIGNyZWF0ZSBhIG1pbmltYWwgUVdpbmRvdywgYW5kIHBsYWNlIGl0
IG9mZnNjcmVlbi4KKyAgICAgICAgUVdpbmRvdyogd2luZG93ID0gbmV3IFFXaW5kb3c7CisgICAg
ICAgIHdpbmRvdy0+c2V0U3VyZmFjZVR5cGUoUVN1cmZhY2U6Ok9wZW5HTFN1cmZhY2UpOworICAg
ICAgICB3aW5kb3ctPnNldEdlb21ldHJ5KC0xMCwgLTEwLCAxLCAxKTsKKyAgICAgICAgd2luZG93
LT5zaG93KCk7CisgICAgICAgIG1fc3VyZmFjZSA9IHdpbmRvdzsKKworICAgICAgICBtX3BsYXRm
b3JtQ29udGV4dCA9IG5ldyBRT3BlbkdMQ29udGV4dCh3aW5kb3cpOworICAgICAgICBpZiAoIW1f
cGxhdGZvcm1Db250ZXh0LT5jcmVhdGUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBtYWtlQ3VycmVudElmTmVlZGVkKCk7CisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAg
ICAgIC8vIFRoZSBzaXplIG9mIHRoZSBjb250ZXh0IHNob3VsZCBuZXZlciBiZSAwIGluIGFueSBk
aW1lbnNpb24sIG90aGVyd2lzZSBjcmVhdGluZyBhIHN1cmZhY2Ugd2lsbCBmYWlsLgorICAgICAg
ICBJbnRTaXplIHN1cmZhY2VTaXplKG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGggPyBtX2NvbnRl
eHQtPm1fY3VycmVudFdpZHRoIDogMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgbV9j
b250ZXh0LT5tX2N1cnJlbnRIZWlnaHQgPyBtX2NvbnRleHQtPm1fY3VycmVudEhlaWdodCA6IDEp
OworCisgICAgICAgIG1fc3VyZmFjZUZsYWdzID0KKyAgICAgICAgICAgIEdyYXBoaWNzU3VyZmFj
ZTo6U3VwcG9ydHNTb2Z0d2FyZVdyaXRlCisgICAgICAgICAgICB8IEdyYXBoaWNzU3VyZmFjZTo6
U3VwcG9ydHNTb2Z0d2FyZVJlYWQKKyAgICAgICAgICAgIHwgR3JhcGhpY3NTdXJmYWNlOjpTdXBw
b3J0c0NvcHlUb1RleHR1cmUKKyAgICAgICAgICAgIHwgR3JhcGhpY3NTdXJmYWNlOjpTdXBwb3J0
c0NvcHlGcm9tVGV4dHVyZQorICAgICAgICAgICAgfCBHcmFwaGljc1N1cmZhY2U6OlN1cHBvcnRz
U2hhcmluZzsKKworICAgICAgICBtX2dyYXBoaWNzU3VyZmFjZSA9IEdyYXBoaWNzU3VyZmFjZTo6
Y3JlYXRlKHN1cmZhY2VTaXplLCBtX3N1cmZhY2VGbGFncyk7CisjZW5kaWYKKyAgICB9IGVsc2Ug
eworICAgICAgICAvLyBUaGlzIGlzIHRoZSBXZWJLaXQxIGNvZGUgcGF0aC4KKyAgICAgICAgd2Vi
UGFnZUNsaWVudC0+Y3JlYXRlUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgmbV9wbGF0Zm9ybUNv
bnRleHQsICZtX3N1cmZhY2UpOworICAgICAgICBpZiAoIW1fc3VyZmFjZSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICB9CiB9CiAKIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6fkdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZSgpCkBAIC0xNzQsNiArMjEzLDE2IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJl
TWFwcGVyCiB9CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCisjaWYg
VVNFKEdSQVBISUNTX1NVUkZBQ0UpCit1aW50MzJfdCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6
OmNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpCit7CisgICAgYmxpdE11bHRpc2FtcGxlRnJhbWVidWZm
ZXJBbmRSZXN0b3JlQ29udGV4dCgpOworICAgIG1ha2VDdXJyZW50SWZOZWVkZWQoKTsKKyAgICBt
X2dyYXBoaWNzU3VyZmFjZS0+Y29weUZyb21GcmFtZWJ1ZmZlcihtX2NvbnRleHQtPm1fZmJvLCBJ
bnRSZWN0KDAsIDAsIG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1fY29udGV4dC0+bV9jdXJy
ZW50SGVpZ2h0KSk7CisgICAgcmV0dXJuIG1fZ3JhcGhpY3NTdXJmYWNlLT5leHBvcnRUb2tlbigp
OworfQorI2VuZGlmCisKIFFSZWN0RiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmJvdW5kaW5n
UmVjdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFFSZWN0RihRUG9pbnRGKDAsIDApLCBRU2l6ZUYo
bV9jb250ZXh0LT5tX2N1cnJlbnRXaWR0aCwgbV9jb250ZXh0LT5tX2N1cnJlbnRIZWlnaHQpKTsK
QEAgLTIzNSw2ICsyODQsMTUgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6Om1ha2VD
dXJyZW50SWZOZWVkZWQoKSBjb25zdAogI2VuZGlmCiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyNpZiBVU0UoR1JB
UEhJQ1NfU1VSRkFDRSkKKyAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgY29udGV4dCBzaG91bGQgbmV2
ZXIgYmUgMCBpbiBhbnkgZGltZW5zaW9uLCBvdGhlcndpc2UgY3JlYXRpbmcgYSBzdXJmYWNlIHdp
bGwgZmFpbC4KKyAgICBJbnRTaXplIGNvbnRleHRTaXplKHdpZHRoID8gd2lkdGggOiAxLCBoZWln
aHQgPyBoZWlnaHQgOiAxKTsKKyAgICBtX2dyYXBoaWNzU3VyZmFjZSA9IEdyYXBoaWNzU3VyZmFj
ZTo6Y3JlYXRlKGNvbnRleHRTaXplLCBtX3N1cmZhY2VGbGFncyk7CisjZW5kaWYKK30KKwogUGFz
c1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFw
aGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywg
R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQogewogICAgIC8vIFRo
aXMgaW1wbGVtZW50YXRpb24gZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCByZW5kZXJpbmcgZGly
ZWN0bHkgdG8gdGhlIEhvc3RXaW5kb3cuCkBAIC00MDcsNiArNDY1LDEzIEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OnBhaW50VG9DYW52YXMoY29uc3QgdW5zaWduZWQgY2hhciogaW1hZ2VQaXhl
bHMsIGludCBpbWFnCiAgICAgY29udGV4dC0+cmVzdG9yZSgpOwogfQogCisjaWYgVVNFKEdSQVBI
SUNTX1NVUkZBQ0UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlU3VyZmFjZShpbnQg
d2lkdGgsIGludCBoZWlnaHQpCit7CisgICAgbV9wcml2YXRlLT5yZXNoYXBlKHdpZHRoLCBoZWln
aHQpOworfQorI2VuZGlmCisKICNpZiBkZWZpbmVkKFFUX09QRU5HTF9FU18yKQogUGFzc1JlZlB0
cjxJbWFnZURhdGE+IEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0lt
YWdlRGF0YShEcmF3aW5nQnVmZmVyKikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyLmgKaW5kZXggM2QyNDdhMi4uOTYxNGM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyLmgKQEAgLTMyLDYgKzMyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
flRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHBhaW50
VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4ID0gVHJhbnNmb3JtYXRpb25NYXRy
aXgoKSwgZmxvYXQgb3BhY2l0eSA9IDEuMCwgQml0bWFwVGV4dHVyZSogbWFzayA9IDApID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKSB7IH0KKyNpZiBVU0UoR1JBUEhJQ1NfU1VS
RkFDRSkKKyAgICB2aXJ0dWFsIHVpbnQzMl90IGNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpIHsgcmV0
dXJuIDA7IH0KKyNlbmRpZgogfTsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0MDliMmM1Li5kZTliMDNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTItMDUtMjkgIFplbm8gQWxiaXNzZXIg
IDx6ZW5vQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRml4IGFuZCBlbmFibGUgV2ViR0wgZm9yIFdl
YktpdDIgb24gUXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NjIxNAorCisgICAgICAgIEFkZGVkIGdsdWUgY29kZSB0byBtYWtlIHVzZSBvZiBHcmFw
aGljc1N1cmZhY2UKKyAgICAgICAgYXMgYSBiYWNrZW5kIGZvciB0aGUgd2ViZ2wtY2FudmFzIGlu
IGNhc2Ugb2YgV0syLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAo
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZSk6CisgICAgICAgIChRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2Vz
Ojp3ZWJHTEVuYWJsZWQpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzOjpzZXRXZWJHTEVuYWJs
ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3AuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaDoKKyAgICAgICAg
QWRkZWQgV2ViR0xFbmFibGVkIGVudW0gdG8gYWxsb3cgZW5hYmxpbmcvZGlzYWJsaW5nIG9mCisg
ICAgICAgIFdlYkdMIHVzaW5nIFFXZWJQcmVmZXJlbmNlcy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9MYXllclRyZWVIb3N0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0
UHJveHk6OnN5bmNDYW52YXMpOgorICAgICAgICBEaXNwYXRjaCBzeW5jQ2FudmFzIGNhbGxzIHRv
IHRoZSBhcHJvcHJpYXRlCisgICAgICAgIFdlYkxheWVyVHJlZVJlbmRlcmVyLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oOgorICAgICAgICAoTGF5ZXJUcmVlSG9z
dFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5oOgorICAgICAg
ICAoV2ViTGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMYXllclRy
ZWVSZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVJlbmRlcmVyOjpz
eW5jQ2FudmFzKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlUmVuZGVyZXI6OmRlbGV0
ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlUmVuZGVyZXI6OnB1cmdlR0xS
ZXNvdXJjZXMpOgorICAgICAgICBDcmVhdGUgYSBUZXh0dXJlTWFwcGVyRGlyZWN0QmFja2luZ1N0
b3JlIGZvciB0aGUgY2FudmFzCisgICAgICAgIGlmIG5lY2Vzc2FyeSBhbmQgcGFzcyBvciB1cGRh
dGUgdGhlIGdyYXBoaWNzU3VyZmFjZVRva2VuCisgICAgICAgIGZvciB0byBiZSB1c2VkIHdpdGgg
dGhlIGJhY2tpbmcgc3RvcmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXll
cjo6V2ViR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9DYW52YXMpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR3JhcGhpY3NMYXllcjo6c3luY0NhbnZhcyk6CisgICAgICAgIENvcHkgdGhlIG11
bHRpc2FtcGxlIGZyYW1lYnVmZmVyIGNvbnRlbnRzIG9udG8gdGhlIEdyYXBoaWNzU3VyZmFjZS4K
KyAgICAgICAgTm90aWZ5IHRoZSBVSVByb2Nlc3Mgb2YgdGhlIGF2YWlsYWJpbGl0eSBvZiBhIG5l
dyB0ZXh0dXJlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllcjo6c3luY0NvbXBv
c2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgU3luYyB0aGUgY2FudmFzIGFz
IHdlbGwuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNz
TGF5ZXIuaDoKKyAgICAgICAgQWRkZWQgYSBwdXJlIHZpcnR1YWwgZnVuY3Rpb24gc3luY0NhbnZh
cy4KKyAgICAgICAgVGhpcyBpcyBndWFyZGVkIGJ5IFBMQVRGT1JNKFFUKS4KKyAgICAgICAgKFdl
YkdyYXBoaWNzTGF5ZXJDbGllbnQpOgorICAgICAgICAoV2ViR3JhcGhpY3NMYXllcik6CisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFF0OjpzeW5jTGF5ZXJDaGlsZHJlbik6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UXQ6OnN5bmNDYW52YXMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaDoKKyAg
ICAgICAgKExheWVyVHJlZUhvc3RRdCk6CisKIDIwMTItMDUtMjkgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCByZXR1cm4gdmFs
dWUgaW5mb3JtYXRpb24gdG8gV2ViS2l0V2ViVmlldzo6bG9hZC1mYWlsZWQgc2lnbmFsIGRvY3Vt
ZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdl
YnByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBy
ZWZlcmVuY2VzLmNwcAppbmRleCAwYjNmMzZkLi45YTMwZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCkBAIC02Myw2ICs2
MywxMCBAQCBib29sIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUoUVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlCiAgICAgICAgIHJldHVybiBXS1ByZWZlcmVu
Y2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNl
IERldmVsb3BlckV4dHJhc0VuYWJsZWQ6CiAgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0
RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKKyNpZiBFTkFCTEUoV0VC
R0wpCisgICAgY2FzZSBXZWJHTEVuYWJsZWQ6CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2Vz
R2V0V2ViR0xFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOworI2VuZGlmCiAgICAgZGVmYXVsdDoK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTEwNiw2ICsxMTAsMTEgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1
dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlIGEKICAgICBjYXNlIERldmVs
b3BlckV4dHJhc0VuYWJsZWQ6CiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRy
YXNFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOworI2lm
IEVOQUJMRShXRUJHTCkKKyAgICBjYXNlIFdlYkdMRW5hYmxlZDoKKyAgICAgICAgV0tQcmVmZXJl
bmNlc1NldFdlYkdMRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOworICAgICAgICBi
cmVhazsKKyNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIH0KQEAgLTQ3Niw2ICs0ODUsMjUgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXM6OnNldERl
ZmF1bHRGaXhlZEZvbnRTaXplKHVuc2lnbmVkIHNpemUpCiAgICAgZW1pdCBkZWZhdWx0Rml4ZWRG
b250U2l6ZUNoYW5nZWQoKTsKIH0KIAorYm9vbCBRV2ViUHJlZmVyZW5jZXM6OndlYkdMRW5hYmxl
ZCgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFdFQkdMKQorICAgIHJldHVybiBkLT50ZXN0QXR0cmli
dXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OldlYkdMRW5hYmxlZCk7CisjZWxzZQorICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgorfQorCit2b2lkIFFXZWJQcmVmZXJlbmNlczo6c2V0V2ViR0xF
bmFibGVkKGJvb2wgZW5hYmxlKQoreworI2lmIEVOQUJMRShXRUJHTCkKKyAgICBkLT5zZXRBdHRy
aWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViR0xFbmFibGVkLCBlbmFibGUpOworICAg
IGVtaXQgd2ViR0xFbmFibGVkQ2hhbmdlZCgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5h
YmxlKTsKKyNlbmRpZgorfQorCiBXS1ByZWZlcmVuY2VzUmVmIFFXZWJQcmVmZXJlbmNlc1ByaXZh
dGU6OnByZWZlcmVuY2VzUmVmKCkgY29uc3QKIHsKICAgICBXS1BhZ2VHcm91cFJlZiBwYWdlR3Jv
dXBSZWYgPSB0b0FQSSh3ZWJWaWV3UHJpdmF0ZS0+d2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJl
bmNlc19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNl
c19wLmgKaW5kZXggMjQ4NTliZi4uODYxOGY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3AuaApAQCAtNDMsNiArNDMsNyBAQCBw
dWJsaWM6CiAgICAgUV9QUk9QRVJUWShib29sIG5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCBSRUFE
IG5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCBXUklURSBzZXROYXZpZ2F0b3JRdE9iamVjdEVuYWJs
ZWQgTk9USUZZIG5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZENoYW5nZWQgRklOQUwpCiAgICAgUV9Q
Uk9QRVJUWShib29sIGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgUkVBRCBmcmFtZUZsYXR0ZW5pbmdF
bmFibGVkIFdSSVRFIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgTk9USUZZIGZyYW1lRmxhdHRl
bmluZ0VuYWJsZWRDaGFuZ2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoYm9vbCBkZXZlbG9wZXJF
eHRyYXNFbmFibGVkIFJFQUQgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBXUklURSBzZXREZXZlbG9w
ZXJFeHRyYXNFbmFibGVkIE5PVElGWSBkZXZlbG9wZXJFeHRyYXNFbmFibGVkQ2hhbmdlZCBGSU5B
TCkKKyAgICBRX1BST1BFUlRZKGJvb2wgd2ViR0xFbmFibGVkIFJFQUQgd2ViR0xFbmFibGVkIFdS
SVRFIHNldFdlYkdMRW5hYmxlZCBOT1RJRlkgd2ViR0xFbmFibGVkQ2hhbmdlZCBGSU5BTCkKIAog
ICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzdGFuZGFyZEZvbnRGYW1pbHkgUkVBRCBzdGFuZGFyZEZv
bnRGYW1pbHkgV1JJVEUgc2V0U3RhbmRhcmRGb250RmFtaWx5IE5PVElGWSBzdGFuZGFyZEZvbnRG
YW1pbHlDaGFuZ2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoUVN0cmluZyBmaXhlZEZvbnRGYW1p
bHkgUkVBRCBmaXhlZEZvbnRGYW1pbHkgV1JJVEUgc2V0Rml4ZWRGb250RmFtaWx5IE5PVElGWSBm
aXhlZEZvbnRGYW1pbHlDaGFuZ2VkIEZJTkFMKQpAQCAtOTEsNiArOTIsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZXZl
bG9wZXJFeHRyYXNFbmFibGVkKGJvb2wgZW5hYmxlKTsKIAorICAgIGJvb2wgd2ViR0xFbmFibGVk
KCkgY29uc3Q7CisgICAgdm9pZCBzZXRXZWJHTEVuYWJsZWQoYm9vbCBlbmFibGUpOworCiAgICAg
UVN0cmluZyBzdGFuZGFyZEZvbnRGYW1pbHkoKSBjb25zdDsKICAgICB2b2lkIHNldFN0YW5kYXJk
Rm9udEZhbWlseShjb25zdCBRU3RyaW5nJiBmYW1pbHkpOwogCkBAIC0xMzEsNiArMTM1LDcgQEAg
UV9TSUdOQUxTOgogICAgIHZvaWQgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkQ2hhbmdlZCgpOwog
ICAgIHZvaWQgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIGRldmVs
b3BlckV4dHJhc0VuYWJsZWRDaGFuZ2VkKCk7CisgICAgdm9pZCB3ZWJHTEVuYWJsZWRDaGFuZ2Vk
KCk7CiAKICAgICB2b2lkIHN0YW5kYXJkRm9udEZhbWlseUNoYW5nZWQoKTsKICAgICB2b2lkIGZp
eGVkRm9udEZhbWlseUNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKaW5kZXggYWU2MzZjMS4uN2MxYzliZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5j
ZXNfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXNfcF9wLmgKQEAgLTM4LDcgKzM4LDggQEAgcHVibGljOgogICAgICAgICBGcmFtZUZsYXR0
ZW5pbmdFbmFibGVkLAogICAgICAgICBQcml2YXRlQnJvd3NpbmdFbmFibGVkLAogICAgICAgICBE
bnNQcmVmZXRjaEVuYWJsZWQsCi0gICAgICAgIERldmVsb3BlckV4dHJhc0VuYWJsZWQKKyAgICAg
ICAgRGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCwKKyAgICAgICAgV2ViR0xFbmFibGVkCiAgICAgfTsK
IAogICAgIGVudW0gRm9udEZhbWlseSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXllclRyZWVIb3N0UHJveHkuY3BwCmluZGV4IDAzYTVlYWMuLmVkNGIxYWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuY3BwCkBAIC0xNTAsNiAr
MTUwLDExIEBAIHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpkaWRDaGFuZ2VTY3JvbGxQb3NpdGlv
bihjb25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiAgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmV2Vi
TGF5ZXJUcmVlUmVuZGVyZXI6OmRpZENoYW5nZVNjcm9sbFBvc2l0aW9uLCBtX3JlbmRlcmVyLmdl
dCgpLCBwb3NpdGlvbikpOwogfQogCit2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6c3luY0NhbnZh
cyh1aW50MzJfdCBpZCwgY29uc3QgSW50U2l6ZSYgY2FudmFzU2l6ZSwgdWludDMyX3QgZ3JhcGhp
Y3NTdXJmYWNlVG9rZW4pCit7CisgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmV2ViTGF5ZXJUcmVl
UmVuZGVyZXI6OnN5bmNDYW52YXMsIG1fcmVuZGVyZXIuZ2V0KCksIGlkLCBjYW52YXNTaXplLCBn
cmFwaGljc1N1cmZhY2VUb2tlbikpOworfQorCiB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6cHVy
Z2VCYWNraW5nU3RvcmVzKCkKIHsKICAgICBtX3JlbmRlcmVyLT5zZXRBY3RpdmUoZmFsc2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCmluZGV4IGFj
M2QzZDIuLjc5NThhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXll
clRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVl
SG9zdFByb3h5LmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlVmll
d3BvcnQoKTsKICAgICB2b2lkIHJlbmRlck5leHRGcmFtZSgpOwogICAgIHZvaWQgZGlkQ2hhbmdl
U2Nyb2xsUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uKTsKKyAgICB2
b2lkIHN5bmNDYW52YXModWludDMyX3QgaWQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNhbnZh
c1NpemUsIHVpbnQzMl90IGdyYXBoaWNzU3VyZmFjZVRva2VuKTsKICAgICB2b2lkIHB1cmdlQmFj
a2luZ1N0b3JlcygpOwogICAgIFdlYkxheWVyVHJlZVJlbmRlcmVyKiBsYXllclRyZWVSZW5kZXJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXIuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggMWNkYWUwZC4uYTg4YjQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMyw1ICszMyw2IEBAIG1l
c3NhZ2VzIC0+IExheWVyVHJlZUhvc3RQcm94eSB7CiAgICAgRGVzdHJveURpcmVjdGx5Q29tcG9z
aXRlZEltYWdlKGludDY0X3Qga2V5KQogICAgIERpZFJlbmRlckZyYW1lKCkKICAgICBEaWRDaGFu
Z2VTY3JvbGxQb3NpdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbikKKyAgICBTeW5jQ2Fu
dmFzKHVpbnQzMl90IGlkLCBXZWJDb3JlOjpJbnRTaXplIGNhbnZhc1NpemUsIHVpbnQzMl90IGdy
YXBoaWNzU3VyZmFjZVRva2VuKQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVyLmNwcAppbmRleCBjNmMwZmFkLi41YTAyN2UzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNs
dWRlICJUZXh0dXJlTWFwcGVyLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9y
ZS5oIgorI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJHTC5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJMYXllci5oIgogI2luY2x1ZGUgIlVwZGF0ZUluZm8uaCIKICNpbmNsdWRlIDxPcGVuR0xTaGlt
cy5oPgpAQCAtMTk0LDYgKzE5NSwyOCBAQCB2b2lkIFdlYkxheWVyVHJlZVJlbmRlcmVyOjpkaWRD
aGFuZ2VTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiAgICAgbV9wZW5k
aW5nUmVuZGVyZWRDb250ZW50c1Njcm9sbFBvc2l0aW9uID0gYm91bmRlZFNjcm9sbFBvc2l0aW9u
KHBvc2l0aW9uLCBtX3Zpc2libGVDb250ZW50c1JlY3QsIG1fY29udGVudHNTaXplKTsKIH0KIAor
dm9pZCBXZWJMYXllclRyZWVSZW5kZXJlcjo6c3luY0NhbnZhcyhXZWJMYXllcklEIGlkLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBjYW52YXNTaXplLCB1aW50MzJfdCBncmFwaGljc1N1cmZhY2VU
b2tlbikKK3sKKyAgICBpZiAoY2FudmFzU2l6ZS5pc0VtcHR5KCkgfHwgIW1fdGV4dHVyZU1hcHBl
cikKKyAgICAgICAgcmV0dXJuOworCisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgZW5z
dXJlTGF5ZXIoaWQpOworICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJCeUlEKGlkKTsK
KworICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyRGlyZWN0QmFja2luZ1N0b3JlPiBjYW52YXNCYWNr
aW5nU3RvcmU7CisgICAgRGlyZWN0QmFja2luZ1N0b3JlTWFwOjppdGVyYXRvciBpdCA9IG1fZGly
ZWN0QmFja2luZ1N0b3Jlcy5maW5kKGlkKTsKKyAgICBpZiAoaXQgPT0gbV9kaXJlY3RCYWNraW5n
U3RvcmVzLmVuZCgpKSB7CisgICAgICAgIGNhbnZhc0JhY2tpbmdTdG9yZSA9IFRleHR1cmVNYXBw
ZXJEaXJlY3RCYWNraW5nU3RvcmU6OmNyZWF0ZSgpOworICAgICAgICBtX2RpcmVjdEJhY2tpbmdT
dG9yZXMuc2V0KGlkLCBjYW52YXNCYWNraW5nU3RvcmUpOworICAgIH0gZWxzZQorICAgICAgICBj
YW52YXNCYWNraW5nU3RvcmUgPSBpdC0+c2Vjb25kOworCisgICAgY2FudmFzQmFja2luZ1N0b3Jl
LT5zZXRHcmFwaGljc1N1cmZhY2UoZ3JhcGhpY3NTdXJmYWNlVG9rZW4sIGNhbnZhc1NpemUpOwor
ICAgIGxheWVyLT5zZXRDb250ZW50c1RvTWVkaWEoY2FudmFzQmFja2luZ1N0b3JlLmdldCgpKTsK
KyNlbmRpZgorfQorCiB2b2lkIFdlYkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllckNoaWxkcmVu
KFdlYkxheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxXZWJMYXllcklEPiYgY2hpbGRJRHMpCiB7CiAg
ICAgZW5zdXJlTGF5ZXIoaWQpOwpAQCAtMjcxLDYgKzI5NCw3IEBAIHZvaWQgV2ViTGF5ZXJUcmVl
UmVuZGVyZXI6OmRlbGV0ZUxheWVyKFdlYkxheWVySUQgbGF5ZXJJRCkKICAgICBsYXllci0+cmVt
b3ZlRnJvbVBhcmVudCgpOwogICAgIG1fbGF5ZXJzLnJlbW92ZShsYXllcklEKTsKICAgICBtX2Zp
eGVkTGF5ZXJzLnJlbW92ZShsYXllcklEKTsKKyAgICBtX2RpcmVjdEJhY2tpbmdTdG9yZXMucmVt
b3ZlKGxheWVySUQpOwogICAgIGRlbGV0ZSBsYXllcjsKIH0KIApAQCAtNDE5LDYgKzQ0Myw3IEBA
IHZvaWQgV2ViTGF5ZXJUcmVlUmVuZGVyZXI6OnB1cmdlR0xSZXNvdXJjZXMoKQogICAgICAgICBs
YXllci0+Y2xlYXJCYWNraW5nU3RvcmVzUmVjdXJzaXZlKCk7CiAKICAgICBtX2RpcmVjdGx5Q29t
cG9zaXRlZEltYWdlcy5jbGVhcigpOworICAgIG1fZGlyZWN0QmFja2luZ1N0b3Jlcy5jbGVhcigp
OwogCiAgICAgbV9yb290TGF5ZXItPnJlbW92ZUFsbENoaWxkcmVuKCk7CiAgICAgbV9yb290TGF5
ZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMYXll
clRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJl
bmRlcmVyLmgKaW5kZXggMDQyYzUyZC4uMzY3MzE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2lm
IFVTRShVSV9TSURFX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIkJhY2tpbmdTdG9yZS5oIgorI2lu
Y2x1ZGUgIkdyYXBoaWNzU3VyZmFjZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZVN1cmZhY2UuaCIK
ICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckJhY2tp
bmdTdG9yZS5oIgpAQCAtNjcsNiArNjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb250ZW50
c1NpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBzZXRWaXNpYmxlQ29u
dGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBmbG9hdCBzY2FsZSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgYWNjdXJhdGVWaXNpYmxlQ29udGVudHNQb3NpdGlvbik7CiAgICAg
dm9pZCBkaWRDaGFuZ2VTY3JvbGxQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24pOworICAgIHZvaWQgc3luY0NhbnZhcyh1aW50MzJfdCBpZCwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgY2FudmFzU2l6ZSwgdWludDMyX3QgZ3JhcGhpY3NTdXJmYWNlVG9rZW4pOwogCiAg
ICAgdm9pZCBkZXRhY2goKTsKICAgICB2b2lkIGFwcGVuZFVwZGF0ZShjb25zdCBGdW5jdGlvbjx2
b2lkKCk+Jik7CkBAIC0xMTgsNiArMTIwLDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxpbnQ2
NF90LCBSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZT4gPiBtX2RpcmVj
dGx5Q29tcG9zaXRlZEltYWdlczsKICAgICBIYXNoU2V0PFJlZlB0cjxMYXllckJhY2tpbmdTdG9y
ZT4gPiBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnM7CiAjZW5kaWYKKyNpZiBVU0Uo
R1JBUEhJQ1NfU1VSRkFDRSkKKyAgICB0eXBlZGVmIEhhc2hNYXA8V2ViTGF5ZXJJRCwgUmVmUHRy
PFdlYkNvcmU6OlRleHR1cmVNYXBwZXJEaXJlY3RCYWNraW5nU3RvcmU+ID4gRGlyZWN0QmFja2lu
Z1N0b3JlTWFwOworICAgIERpcmVjdEJhY2tpbmdTdG9yZU1hcCBtX2RpcmVjdEJhY2tpbmdTdG9y
ZXM7CisjZW5kaWYKIAogICAgIHZvaWQgc2NoZWR1bGVXZWJWaWV3VXBkYXRlKCk7CiAgICAgdm9p
ZCBzeW5jaHJvbml6ZVZpZXdwb3J0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcAppbmRleCA4
MGU4YjYxLi4wM2U1NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9z
dFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRp
bGUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CkBAIC0xMDksOCArMTEwLDEwIEBAIFdlYkdyYXBoaWNzTGF5ZXI6OldlYkdyYXBoaWNzTGF5ZXIo
R3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogICAgICwgbV9zaG91bGRTeW5jTGF5ZXJTdGF0
ZSh0cnVlKQogICAgICwgbV9zaG91bGRTeW5jQ2hpbGRyZW4odHJ1ZSkKICAgICAsIG1fZml4ZWRU
b1ZpZXdwb3J0KGZhbHNlKQorICAgICwgbV9jYW52YXNOZWVkc0Rpc3BsYXkoZmFsc2UpCiAgICAg
LCBtX3dlYkdyYXBoaWNzTGF5ZXJDbGllbnQoMCkKICAgICAsIG1fY29udGVudHNTY2FsZSgxKQor
ICAgICwgbV9jYW52YXNQbGF0Zm9ybUxheWVyKDApCiB7CiAgICAgc3RhdGljIFdlYkxheWVySUQg
bmV4dExheWVySUQgPSAxOwogICAgIG1faWQgPSBuZXh0TGF5ZXJJRCsrOwpAQCAtMzE2LDYgKzMx
OSwxNSBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KCkK
ICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9pbWFnZTsKICAgICBzZXRDb250ZW50c1RvSW1h
Z2UoMCk7CiAgICAgc2V0Q29udGVudHNUb0ltYWdlKGltYWdlLmdldCgpKTsKKyAgICBtX2NhbnZh
c05lZWRzRGlzcGxheSA9IHRydWU7Cit9CisKK3ZvaWQgV2ViR3JhcGhpY3NMYXllcjo6c2V0Q29u
dGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKQoreworICAgIG1fY2Fu
dmFzUGxhdGZvcm1MYXllciA9IHBsYXRmb3JtTGF5ZXI7CisgICAgbV9jYW52YXNOZWVkc0Rpc3Bs
YXkgPSB0cnVlOworICAgIGlmIChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50KCktPm5vdGlmeVN5
bmNSZXF1aXJlZCh0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKQEAgLTQ2OCw2
ICs0ODAsMTcgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAg
bV93ZWJHcmFwaGljc0xheWVyQ2xpZW50LT5zeW5jTGF5ZXJTdGF0ZShtX2lkLCBtX2xheWVySW5m
byk7CiB9CiAKK3ZvaWQgV2ViR3JhcGhpY3NMYXllcjo6c3luY0NhbnZhcygpCit7CisgICAgaWYg
KCFtX2NhbnZhc05lZWRzRGlzcGxheSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghbV9jYW52
YXNQbGF0Zm9ybUxheWVyKQorICAgICAgICByZXR1cm47CisgICAgdWludDMyX3QgZ3JhcGhpY3NT
dXJmYWNlVG9rZW4gPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXItPmNvcHlUb0dyYXBoaWNzU3VyZmFj
ZSgpOworICAgIG1fd2ViR3JhcGhpY3NMYXllckNsaWVudC0+c3luY0NhbnZhcyhtX2lkLCBJbnRT
aXplKHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpLCBncmFwaGljc1N1cmZhY2VUb2tl
bik7CisgICAgbV9jYW52YXNOZWVkc0Rpc3BsYXkgPSBmYWxzZTsKK30KKwogdm9pZCBXZWJHcmFw
aGljc0xheWVyOjplbnN1cmVJbWFnZUJhY2tpbmdTdG9yZSgpCiB7CiAgICAgaWYgKCFtX2ltYWdl
KQpAQCAtNDc1LDYgKzQ5OCw3IEBAIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6ZW5zdXJlSW1hZ2VC
YWNraW5nU3RvcmUoKQogICAgIGlmICghbV9sYXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRCkK
ICAgICAgICAgbV9sYXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRCA9IG1fd2ViR3JhcGhpY3NM
YXllckNsaWVudC0+YWRvcHRJbWFnZUJhY2tpbmdTdG9yZShtX2ltYWdlLmdldCgpKTsKIH0KKwog
dm9pZCBXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9u
bHkoKQogewogICAgIC8vIFRoZSByZW1vdGUgaW1hZ2UgbWlnaHQgaGF2ZSBiZWVuIHJlbGVhc2Vk
IGJ5IHB1cmdlQmFja2luZ1N0b3Jlcy4KQEAgLTQ4Niw2ICs1MTAsNyBAQCB2b2lkIFdlYkdyYXBo
aWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpCiAgICAgc3lu
Y0ZpbHRlcnMoKTsKICNlbmRpZgogICAgIHVwZGF0ZUNvbnRlbnRCdWZmZXJzKCk7CisgICAgc3lu
Y0NhbnZhcygpOwogfQogCiB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3Jl
UGFpbnRCZWdpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oCmluZGV4IGMyMmE4ODIuLmNkZDc4MDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
R3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oCkBAIC02MCw2ICs2MCw5IEBAIHB1YmxpYzoKICNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHN5bmNMYXllckZpbHRlcnMoV2Vi
TGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpID0gMDsKICNlbmRpZgor
I2lmIFBMQVRGT1JNKFFUKQorICAgIHZpcnR1YWwgdm9pZCBzeW5jQ2FudmFzKFdlYkxheWVySUQs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNhbnZhc1NpemUsIHVpbnQzMl90IGdyYXBoaWNzU3Vy
ZmFjZVRva2VuKSA9IDA7CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoTGF5ZXIoV2Vi
Q29yZTo6V2ViR3JhcGhpY3NMYXllciopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5
ZXIoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllciopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3lu
Y0ZpeGVkTGF5ZXJzKCkgPSAwOwpAQCAtOTgsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0T3BhY2l0eShmbG9hdCk7CiAgICAgdm9pZCBzZXRDb250ZW50c1JlY3QoY29uc3QgSW50UmVj
dCYpOwogICAgIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKEltYWdlKik7CisgICAgdm9pZCBzZXRD
b250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqKTsKICAgICB2b2lkIHNldE1hc2tMYXllcihH
cmFwaGljc0xheWVyKik7CiAgICAgdm9pZCBzZXRSZXBsaWNhdGVkQnlMYXllcihHcmFwaGljc0xh
eWVyKik7CiAgICAgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKTsKQEAgLTE0Nyw2ICsxNTEsNyBAQCBw
dWJsaWM6CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZvaWQgc3luY0ZpbHRlcnMoKTsK
ICNlbmRpZgorICAgIHZvaWQgc3luY0NhbnZhcygpOwogICAgIHZvaWQgZW5zdXJlSW1hZ2VCYWNr
aW5nU3RvcmUoKTsKIAogICAgIHZvaWQgYWRqdXN0VmlzaWJsZVJlY3QoKTsKQEAgLTE2OCw2ICsx
NzMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRTeW5jQ2hpbGRyZW46IDE7CiAgICAg
Ym9vbCBtX3Nob3VsZFN5bmNGaWx0ZXJzOiAxOwogICAgIGJvb2wgbV9maXhlZFRvVmlld3BvcnQg
OiAxOworICAgIGJvb2wgbV9jYW52YXNOZWVkc0Rpc3BsYXkgOiAxOwogCiAgICAgdm9pZCBub3Rp
ZnlDaGFuZ2UoKTsKICAgICB2b2lkIGRpZENoYW5nZUdlb21ldHJ5KCk7CkBAIC0xOTEsNiArMTk3
LDcgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8V2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU+IG1f
bWFpbkJhY2tpbmdTdG9yZTsKICAgICBPd25QdHI8V2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU+
IG1fcHJldmlvdXNCYWNraW5nU3RvcmU7CiAgICAgZmxvYXQgbV9jb250ZW50c1NjYWxlOworICAg
IFBsYXRmb3JtTGF5ZXIqIG1fY2FudmFzUGxhdGZvcm1MYXllcjsKIH07CiAKIFdlYkdyYXBoaWNz
TGF5ZXIqIHRvV2ViR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3Bw
CmluZGV4IDkwMzk0NTQuLmMyOTY0ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwCkBAIC0yNTYsNiArMjU2
LDEyIEBAIHZvaWQgTGF5ZXJUcmVlSG9zdFF0OjpzeW5jTGF5ZXJDaGlsZHJlbihXZWJMYXllcklE
IGlkLCBjb25zdCBWZWN0b3I8V2ViTGF5ZXJJRD4mCiAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpMYXllclRyZWVIb3N0UHJveHk6OlNldENvbXBvc2l0aW5nTGF5ZXJDaGlsZHJlbihpZCwg
Y2hpbGRyZW4pKTsKIH0KIAordm9pZCBMYXllclRyZWVIb3N0UXQ6OnN5bmNDYW52YXMoV2ViTGF5
ZXJJRCBpZCwgY29uc3QgSW50U2l6ZSYgY2FudmFzU2l6ZSwgdWludDMyX3QgZ3JhcGhpY3NTdXJm
YWNlVG9rZW4pCit7CisgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOworICAgIG1fd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlSG9zdFByb3h5OjpTeW5jQ2FudmFzKGlkLCBjYW52
YXNTaXplLCBncmFwaGljc1N1cmZhY2VUb2tlbikpOworfQorCiAjaWYgRU5BQkxFKENTU19GSUxU
RVJTKQogdm9pZCBMYXllclRyZWVIb3N0UXQ6OnN5bmNMYXllckZpbHRlcnMoV2ViTGF5ZXJJRCBp
ZCwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaAppbmRleCBl
ZWNiNjJlLi4zM2ZkZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5oCkBAIC03OSw2ICs3OSw3IEBAIHB1YmxpYzoK
ICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHN5bmNMYXllckZpbHRl
cnMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwogI2VuZGlm
CisgICAgdmlydHVhbCB2b2lkIHN5bmNDYW52YXMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgY2FudmFzU2l6ZSwgdWludDMyX3QgZ3JhcGhpY3NTdXJmYWNlVG9rZW4pIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hMYXllcihXZWJDb3JlOjpXZWJHcmFwaGljc0xh
eWVyKik7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaExheWVyKFdlYkNvcmU6OldlYkdyYXBoaWNz
TGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3luY0ZpeGVkTGF5ZXJzKCk7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGQ0NGIxOC4uMzFmODE1
YyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTA1LTI5ICBaZW5vIEFsYmlzc2VyICA8emVub0B3ZWJraXQub3Jn
PgorCisgICAgICAgIEZpeCBhbmQgZW5hYmxlIFdlYkdMIGZvciBXZWJLaXQyIG9uIFF0LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYyMTQKKworICAg
ICAgICBFbmFibGUgV2ViR0wgYnkgZGVmYXVsdCBmb3IgUXQgTWluaUJyb3dzZXIuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9x
dC9xbWwvQnJvd3NlcldpbmRvdy5xbWw6CisKIDIwMTItMDUtMjkgIENocmlzdG9waGUgRHVtZXog
IDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBDb21waWxhdGlv
biB3YXJuaW5nIGluIER1bXBSZW5kZXJUcmVlVmlldy5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL01p
bmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbCBiL1Rvb2xzL01pbmlCcm93c2VyL3F0
L3FtbC9Ccm93c2VyV2luZG93LnFtbAppbmRleCA1MjM3YzcxLi44MTQxOTQyIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKKysrIGIvVG9vbHMv
TWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCkBAIC0zMzMsNiArMzMzLDcgQEAg
UmVjdGFuZ2xlIHsKIAogICAgICAgICBleHBlcmltZW50YWwuZGV2aWNlUGl4ZWxSYXRpbzogMS41
CiAgICAgICAgIGV4cGVyaW1lbnRhbC5wcmVmZXJlbmNlcy5mdWxsU2NyZWVuRW5hYmxlZDogdHJ1
ZQorICAgICAgICBleHBlcmltZW50YWwucHJlZmVyZW5jZXMud2ViR0xFbmFibGVkOiB0cnVlCiAg
ICAgICAgIGV4cGVyaW1lbnRhbC5wcmVmZXJyZWRNaW5pbXVtQ29udGVudHNXaWR0aDogOTgwCiAg
ICAgICAgIGV4cGVyaW1lbnRhbC5pdGVtU2VsZWN0b3I6IEl0ZW1TZWxlY3RvciB7IH0KICAgICAg
ICAgZXhwZXJpbWVudGFsLmFsZXJ0RGlhbG9nOiBBbGVydERpYWxvZyB7IH0K
</data>
<flag name="review"
          id="151673"
          type_id="1"
          status="-"
          setter="noam"
    />
    <flag name="commit-queue"
          id="151683"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144825</attachid>
            <date>2012-05-30 08:30:59 -0700</date>
            <delta_ts>2012-06-01 13:45:07 -0700</delta_ts>
            <desc>patch for review. - fixed issues as commented before.</desc>
            <filename>86214_20120530-172854.patch</filename>
            <type>text/plain</type>
            <size>29219</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwNWRhNDk2Li42NDlkM2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTkg
QEAKIDIwMTItMDUtMjkgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKKyAgICAg
ICAgRml4IGFuZCBlbmFibGUgV2ViR0wgZm9yIFdlYktpdDIgb24gUXQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjIxNAorCisgICAgICAgIE1ha2Ug
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIHVzZSBhIEdyYXBoaWNzU3VyZmFjZQorICAgICAgICBm
b3IgV0syLiBUaGUgR3JhcGhpY3NDb250ZXh0M0QgdGhlbiB1c2VzIHRoZSBleGlzdGluZworICAg
ICAgICBSZW5kZXJCdWZmZXIgZm9yIG11bHRpc2FtcGxlIHJlbmRlcmluZy4KKyAgICAgICAgV2hl
biBXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZSBpcyBiZWluZworICAgICAg
ICBleGVjdXRlZCwgdGhlIGNhbnZhcyBpcyBiZWluZyBzeW5jZWQgYXMgd2VsbC4gVGhpcyBtZWFu
cworICAgICAgICB0aGF0IHRoZSBSZW5kZXJCdWZmZXIgY29udGVudHMgYXJlIGJlaW5nIGJsaXQg
b250bworICAgICAgICB0aGUgR3JhcGhpY3NTdXJmYWNlLCBhbmQgdGhlIEdyYXBoaWNzU3VyZmFj
ZSB0b2tlbiBpcworICAgICAgICBiZWluZyBzZW50IHRvIHRoZSBVSVByb2Nlc3MuCisgICAgICAg
IFRoZSBXZWJMYXllclRyZWVSZW5kZXJlciB0aGVuIGNyZWF0ZXMgYQorICAgICAgICBUZXh0dXJl
TWFwcGVyRGlyZWN0QmFja2luZ1N0b3JlIGZvciB0aGUgY2FudmFzIGFuZAorICAgICAgICBwYXNz
ZXMgdGhlIEdyYXBoaWNzU3VyZmFjZSB0b2tlbiBhcyBhbiBhcmd1bWVudC4KKyAgICAgICAgVGhl
IHRva2VuIGNhbiB0aGVuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIEdyYXBoaWNzU3VyZmFjZQor
ICAgICAgICBmcm9tIHRoZSBVSVByb2Nlc3Mgc2lkZS4KKworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaDoKKyAgICAgICAgQWRkZWQgcmVzaGFwZVN1cmZhY2UgZnVuY3Rpb24uIFRoaXMg
aXMgY3VycmVudGx5IG9ubHkKKyAgICAgICAgYmVpbmcgdXNlZCBieSB0aGUgUXQgcG9ydC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5H
TENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFw
ZSk6CisgICAgICAgIENhbGxpbmcgdGhlIHJlc2hhcGVTdXJmYWNlIGZ1bmN0aW9uIHdoZW4gdGhl
IEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGlzIHJlc2hhcGVkLiBUaGlzIGlzIGN1cnJlbnRs
eSBvbmx5IHJlbGV2YW50IGZvciB0aGUgUXQgcG9ydC4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwOgorICAgICAgICAoR3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlKToKKyAgICAgICAgQWRkZWQgbV9ncmFwaGljc1N1cmZhY2UgYW5kIG1fc3Vy
ZmFjZUZsYWdzIG1lbWJlcnMuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6CisgICAgICAgIEluIGNhc2Ugb2YgV0sy
LCBjcmVhdGUgYSBRT3BlbkdMQ29udGV4dCBhbmQgYSBHcmFwaGljc1N1cmZhY2UKKyAgICAgICAg
Zm9yIHNoYXJpbmcgdGhlIFdlYkdMIGNvbnRlbnQgd2l0aCB0aGUgVUlQcm9jZXNzLgorICAgICAg
ICBDcmVhdGluZyBhIFFPcGVuR0xDb250ZXh0IGN1cnJlbnRseSByZXF1aXJlcyBzaG93aW5nIGEg
UVdpbmRvdy4KKyAgICAgICAgRm9yIHRoZSBtb21lbnQgd2UgdGhlcmVmb3JlIGNyZWF0ZSBhIG1p
bmltYWwgUVdpbmRvdyBhbmQgcGxhY2UKKyAgICAgICAgaXQgb2Zmc2NyZWVuLgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjb3B5VG9HcmFwaGljc1N1cmZhY2Up
OgorICAgICAgICBUaGlzIG5ldyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSB0aGUgV2ViR3JhcGhp
Y3NMYXllciwKKyAgICAgICAgdG8gYmxpdCB0aGUgbXVsdGlzYW1wbGUgZnJhbWVidWZmZXIgYW5k
IGNvcHkgaXRzIGNvbnRlbnRzCisgICAgICAgIG9udG8gdGhlIEdyYXBoaWNzU3VyZmFjZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cmVzaGFwZSk6CisgICAg
ICAgIFdoZW5ldmVyIHRoZSBHcmFwaGljc0NvbnRleHQzRCBpcyBiZWluZyByZXNoYXBlZCwKKyAg
ICAgICAgYSBuZXcgR3JhcGhpY3NTdXJmYWNlIG11c3QgYmUgY3JlYXRlZCB3aXRoIHRoZSB1cGRh
dGVkIGRpbWVuc2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVz
aGFwZVN1cmZhY2UpOgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmg6CisgICAgICAgIEFkZGVkIGEgbmV3IHZpcnR1YWwgZnVu
Y3Rpb24gY29weVRvR3JhcGhpY3NTdXJmYWNlLgorICAgICAgICAoVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI6
OmNvcHlUb0dyYXBoaWNzU3VyZmFjZSk6CisKKzIwMTItMDUtMjkgIFplbm8gQWxiaXNzZXIgIDx6
ZW5vQHdlYmtpdC5vcmc+CisKICAgICAgICAgTWFrZSBUZXh0dXJlTWFwcGVyIHdvcmsgd2l0aCBH
cmFwaGljc1N1cmZhY2UuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NzczOAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCA2OTJkYTU2Li41OTQwMTVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgK
QEAgLTkxMSw2ICs5MTEsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIHJlc2hhcGVGQk9zKGNvbnN0
IEludFNpemUmKTsKICAgICB2b2lkIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoY29u
c3QgSW50UmVjdCYgPSBJbnRSZWN0KCkpOworI2lmIFBMQVRGT1JNKFFUKSAmJiBVU0UoR1JBUEhJ
Q1NfU1VSRkFDRSkKKyAgICB2b2lkIHJlc2hhcGVTdXJmYWNlKGludCB3aWR0aCwgaW50IGhlaWdo
dCk7CisjZW5kaWYKIAogICAgIGludCBtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0Owog
ICAgIGJvb2wgaXNSZXNvdXJjZVNhZmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IGMxMTc3MjEuLjcwMzU0ODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMjIyLDYgKzIyMiwxMiBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkK
ICAgICBpZiAod2lkdGggPT0gbV9jdXJyZW50V2lkdGggJiYgaGVpZ2h0ID09IG1fY3VycmVudEhl
aWdodCkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oUVQpICYmIFVTRShHUkFQSElD
U19TVVJGQUNFKQorICAgIDo6Z2xGbHVzaCgpOyAvLyBNYWtlIHN1cmUgYWxsIEdMIGNhbGxzIGhh
dmUgYmVlbiBjb21taXR0ZWQgYmVmb3JlIHJlc2l6aW5nLgorICAgIHJlc2hhcGVTdXJmYWNlKHdp
ZHRoLCBoZWlnaHQpOworI2VuZGlmCisKKwogICAgIG1fY3VycmVudFdpZHRoID0gd2lkdGg7CiAg
ICAgbV9jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwCmluZGV4
IGFmOTVlNGYuLjkxMTRmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNET3BlbkdMLmgiCiAjZW5kaWYKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJHcmFwaGljc1N1cmZhY2UuaCIKICNpbmNsdWRl
ICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRl
ICJJbWFnZUJ1ZmZlci5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIk9wZW5HTFNoaW1z
LmgiCiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIu
aCIKKyNpbmNsdWRlIDxRV2luZG93PgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtNjcsMTYgKzY5LDI0IEBAIHB1YmxpYzoK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikK
ICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciosIGNv
bnN0IEZsb2F0UmVjdCYgdGFyZ2V0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0
IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spOwogI2VuZGlmCisjaWYgVVNFKEdSQVBISUNT
X1NVUkZBQ0UpCisgICAgdmlydHVhbCB1aW50MzJfdCBjb3B5VG9HcmFwaGljc1N1cmZhY2UoKTsK
KyNlbmRpZgogCiAgICAgUVJlY3RGIGJvdW5kaW5nUmVjdCgpIGNvbnN0OwogICAgIHZvaWQgYmxp
dE11bHRpc2FtcGxlRnJhbWVidWZmZXIoKSBjb25zdDsKICAgICB2b2lkIGJsaXRNdWx0aXNhbXBs
ZUZyYW1lYnVmZmVyQW5kUmVzdG9yZUNvbnRleHQoKSBjb25zdDsKICAgICBib29sIG1ha2VDdXJy
ZW50SWZOZWVkZWQoKSBjb25zdDsKKyAgICB2b2lkIHJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVp
Z2h0KTsKIAogICAgIEdyYXBoaWNzQ29udGV4dDNEKiBtX2NvbnRleHQ7CiAgICAgSG9zdFdpbmRv
dyogbV9ob3N0V2luZG93OwogICAgIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlM0QgbV9zdXJmYWNl
OwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgbV9wbGF0Zm9ybUNvbnRleHQ7CisjaWYg
VVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgR3JhcGhpY3NTdXJmYWNlOjpGbGFncyBtX3N1cmZh
Y2VGbGFnczsKKyAgICBSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPiBtX2dyYXBoaWNzU3VyZmFjZTsK
KyNlbmRpZgogfTsKIAogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6aXNHTEVTMkNvbXBsaWFudCgp
IGNvbnN0CkBAIC05NSwxMiArMTA1LDM1IEBAIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBICiAgICAg
LCBtX3BsYXRmb3JtQ29udGV4dCgwKQogewogICAgIFFXZWJQYWdlQ2xpZW50KiB3ZWJQYWdlQ2xp
ZW50ID0gbV9ob3N0V2luZG93LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKLSAgICBpZiAoIXdlYlBh
Z2VDbGllbnQpCi0gICAgICAgIHJldHVybjsKLSAgICB3ZWJQYWdlQ2xpZW50LT5jcmVhdGVQbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCZtX3BsYXRmb3JtQ29udGV4dCwgJm1fc3VyZmFjZSk7Ci0g
ICAgaWYgKCFtX3N1cmZhY2UpCi0gICAgICAgIHJldHVybjsKLSAgICBtYWtlQ3VycmVudElmTmVl
ZGVkKCk7CisgICAgaWYgKCF3ZWJQYWdlQ2xpZW50KSB7CisgICAgICAgIC8vIEZJWE1FOiBGaW5k
IGEgd2F5IHRvIGNyZWF0ZSBhIFFPcGVuR0xDb250ZXh0IHdpdGhvdXQgY3JlYXRpbmcgYSBRV2lu
ZG93IGF0IGFsbC4KKyAgICAgICAgLy8gV2UgbmVlZCB0byBjcmVhdGUgYSBzdXJmYWNlIGluIG9y
ZGVyIHRvIGNyZWF0ZSBhIFFPcGVuR0xDb250ZXh0IGFuZCBtYWtlIGl0IGN1cnJlbnQuCisgICAg
ICAgIFFXaW5kb3cqIHdpbmRvdyA9IG5ldyBRV2luZG93OworICAgICAgICB3aW5kb3ctPnNldFN1
cmZhY2VUeXBlKFFTdXJmYWNlOjpPcGVuR0xTdXJmYWNlKTsKKyAgICAgICAgd2luZG93LT5zZXRH
ZW9tZXRyeSgtMTAsIC0xMCwgMSwgMSk7CisgICAgICAgIHdpbmRvdy0+Y3JlYXRlKCk7CisgICAg
ICAgIG1fc3VyZmFjZSA9IHdpbmRvdzsKKworICAgICAgICBtX3BsYXRmb3JtQ29udGV4dCA9IG5l
dyBRT3BlbkdMQ29udGV4dCh3aW5kb3cpOworICAgICAgICBpZiAoIW1fcGxhdGZvcm1Db250ZXh0
LT5jcmVhdGUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtYWtlQ3VycmVudElm
TmVlZGVkKCk7CisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgICAgIEludFNpemUgc3Vy
ZmFjZVNpemUobV9jb250ZXh0LT5tX2N1cnJlbnRXaWR0aCwgbV9jb250ZXh0LT5tX2N1cnJlbnRI
ZWlnaHQpOworCisgICAgICAgIG1fc3VyZmFjZUZsYWdzID0gR3JhcGhpY3NTdXJmYWNlOjpTdXBw
b3J0c1RleHR1cmVUYXJnZXQKKyAgICAgICAgICAgICAgICAgICAgICAgIHwgR3JhcGhpY3NTdXJm
YWNlOjpTdXBwb3J0c1NoYXJpbmc7CisKKyAgICAgICAgaWYgKCFzdXJmYWNlU2l6ZS5pc0VtcHR5
KCkpCisgICAgICAgICAgICBtX2dyYXBoaWNzU3VyZmFjZSA9IEdyYXBoaWNzU3VyZmFjZTo6Y3Jl
YXRlKHN1cmZhY2VTaXplLCBtX3N1cmZhY2VGbGFncyk7CisjZW5kaWYKKyAgICB9IGVsc2Ugewor
ICAgICAgICAvLyBUaGlzIGlzIHRoZSBXZWJLaXQxIGNvZGUgcGF0aC4KKyAgICAgICAgd2ViUGFn
ZUNsaWVudC0+Y3JlYXRlUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgmbV9wbGF0Zm9ybUNvbnRl
eHQsICZtX3N1cmZhY2UpOworICAgICAgICBpZiAoIW1fc3VyZmFjZSkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICB9CiB9CiAKIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6fkdyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZSgpCkBAIC0xNzQsNiArMjA3LDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFw
cGVyCiB9CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCisjaWYgVVNF
KEdSQVBISUNTX1NVUkZBQ0UpCit1aW50MzJfdCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNv
cHlUb0dyYXBoaWNzU3VyZmFjZSgpCit7CisgICAgaWYgKCFtX2dyYXBoaWNzU3VyZmFjZSkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgYmxpdE11bHRpc2FtcGxlRnJhbWVidWZmZXJBbmRSZXN0b3Jl
Q29udGV4dCgpOworICAgIG1ha2VDdXJyZW50SWZOZWVkZWQoKTsKKyAgICBtX2dyYXBoaWNzU3Vy
ZmFjZS0+Y29weUZyb21GcmFtZWJ1ZmZlcihtX2NvbnRleHQtPm1fZmJvLCBJbnRSZWN0KDAsIDAs
IG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1fY29udGV4dC0+bV9jdXJyZW50SGVpZ2h0KSk7
CisgICAgcmV0dXJuIG1fZ3JhcGhpY3NTdXJmYWNlLT5leHBvcnRUb2tlbigpOworfQorI2VuZGlm
CisKIFFSZWN0RiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmJvdW5kaW5nUmVjdCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIFFSZWN0RihRUG9pbnRGKDAsIDApLCBRU2l6ZUYobV9jb250ZXh0LT5t
X2N1cnJlbnRXaWR0aCwgbV9jb250ZXh0LT5tX2N1cnJlbnRIZWlnaHQpKTsKQEAgLTIzNSw2ICsy
ODAsMTcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6Om1ha2VDdXJyZW50SWZOZWVk
ZWQoKSBjb25zdAogI2VuZGlmCiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpy
ZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFD
RSkKKyAgICBJbnRTaXplIGNvbnRleHRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgIGlmIChjb250
ZXh0U2l6ZS5pc0VtcHR5KCkpCisgICAgICAgIG1fZ3JhcGhpY3NTdXJmYWNlID0gMDsKKyAgICBl
bHNlCisgICAgICAgIG1fZ3JhcGhpY3NTdXJmYWNlID0gR3JhcGhpY3NTdXJmYWNlOjpjcmVhdGUo
Y29udGV4dFNpemUsIG1fc3VyZmFjZUZsYWdzKTsKKyNlbmRpZgorfQorCiBQYXNzUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4
dDNEOjpBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0Nv
bnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCiB7CiAgICAgLy8gVGhpcyBpbXBsZW1l
bnRhdGlvbiBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IHJlbmRlcmluZyBkaXJlY3RseSB0byB0
aGUgSG9zdFdpbmRvdy4KQEAgLTQwNyw2ICs0NjMsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6cGFpbnRUb0NhbnZhcyhjb25zdCB1bnNpZ25lZCBjaGFyKiBpbWFnZVBpeGVscywgaW50IGlt
YWcKICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiB9CiAKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFD
RSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVTdXJmYWNlKGludCB3aWR0aCwgaW50
IGhlaWdodCkKK3sKKyAgICBtX3ByaXZhdGUtPnJlc2hhcGUod2lkdGgsIGhlaWdodCk7Cit9Cisj
ZW5kaWYKKwogI2lmIGRlZmluZWQoUVRfT1BFTkdMX0VTXzIpCiBQYXNzUmVmUHRyPEltYWdlRGF0
YT4gR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKERy
YXdpbmdCdWZmZXIqKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaApp
bmRleCAzZDI0N2EyLi45NjE0Yzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXIuaApAQCAtMzIsNiArMzIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXIoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVN
YXBwZXIoVGV4dHVyZU1hcHBlciosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXggPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBmbG9h
dCBvcGFjaXR5ID0gMS4wLCBCaXRtYXBUZXh0dXJlKiBtYXNrID0gMCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzd2FwQnVmZmVycygpIHsgfQorI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQorICAg
IHZpcnR1YWwgdWludDMyX3QgY29weVRvR3JhcGhpY3NTdXJmYWNlKCkgeyByZXR1cm4gMDsgfQor
I2VuZGlmCiB9OwogCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQwOWIyYzUuLmRlOWIwM2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw2NCBAQAorMjAxMi0wNS0yOSAgWmVubyBBbGJpc3NlciAgPHplbm9Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBGaXggYW5kIGVuYWJsZSBXZWJHTCBmb3IgV2ViS2l0MiBvbiBR
dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MjE0
CisKKyAgICAgICAgQWRkZWQgZ2x1ZSBjb2RlIHRvIG1ha2UgdXNlIG9mIEdyYXBoaWNzU3VyZmFj
ZQorICAgICAgICBhcyBhIGJhY2tlbmQgZm9yIHRoZSB3ZWJnbC1jYW52YXMgaW4gY2FzZSBvZiBX
SzIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChRV2ViUHJlZmVy
ZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRlKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1By
aXZhdGU6OnNldEF0dHJpYnV0ZSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXM6OndlYkdMRW5h
YmxlZCk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXM6OnNldFdlYkdMRW5hYmxlZCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oOgorICAgICAgICBBZGRlZCBXZWJH
TEVuYWJsZWQgZW51bSB0byBhbGxvdyBlbmFibGluZy9kaXNhYmxpbmcgb2YKKyAgICAgICAgV2Vi
R0wgdXNpbmcgUVdlYlByZWZlcmVuY2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL0xheWVyVHJl
ZUhvc3RQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RQcm94eTo6c3lu
Y0NhbnZhcyk6CisgICAgICAgIERpc3BhdGNoIHN5bmNDYW52YXMgY2FsbHMgdG8gdGhlIGFwcm9w
cmlhdGUKKyAgICAgICAgV2ViTGF5ZXJUcmVlUmVuZGVyZXIuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvTGF5ZXJUcmVlSG9zdFByb3h5Lmg6CisgICAgICAgIChMYXllclRyZWVIb3N0UHJveHkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgIChXZWJMYXll
clRyZWVSZW5kZXJlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlUmVuZGVyZXI6OnN5bmNDYW52YXMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVSZW5kZXJlcjo6ZGVsZXRlTGF5ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVSZW5kZXJlcjo6cHVyZ2VHTFJlc291cmNlcyk6
CisgICAgICAgIENyZWF0ZSBhIFRleHR1cmVNYXBwZXJEaXJlY3RCYWNraW5nU3RvcmUgZm9yIHRo
ZSBjYW52YXMKKyAgICAgICAgaWYgbmVjZXNzYXJ5IGFuZCBwYXNzIG9yIHVwZGF0ZSB0aGUgZ3Jh
cGhpY3NTdXJmYWNlVG9rZW4KKyAgICAgICAgZm9yIHRvIGJlIHVzZWQgd2l0aCB0aGUgYmFja2lu
ZyBzdG9yZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhp
Y3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpXZWJHcmFw
aGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR3Jh
cGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0NhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
cmFwaGljc0xheWVyOjpzeW5jQ2FudmFzKToKKyAgICAgICAgQ29weSB0aGUgbXVsdGlzYW1wbGUg
ZnJhbWVidWZmZXIgY29udGVudHMgb250byB0aGUgR3JhcGhpY3NTdXJmYWNlLgorICAgICAgICBO
b3RpZnkgdGhlIFVJUHJvY2VzcyBvZiB0aGUgYXZhaWxhYmlsaXR5IG9mIGEgbmV3IHRleHR1cmUu
CisgICAgICAgIChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0
ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICBTeW5jIHRoZSBjYW52YXMgYXMgd2VsbC4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oOgor
ICAgICAgICBBZGRlZCBhIHB1cmUgdmlydHVhbCBmdW5jdGlvbiBzeW5jQ2FudmFzLgorICAgICAg
ICBUaGlzIGlzIGd1YXJkZWQgYnkgUExBVEZPUk0oUVQpLgorICAgICAgICAoV2ViR3JhcGhpY3NM
YXllckNsaWVudCk6CisgICAgICAgIChXZWJHcmFwaGljc0xheWVyKToKKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVIb3N0UXQ6OnN5bmNMYXllckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RRdDo6c3luY0NhbnZhcyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5oOgorICAgICAgICAoTGF5
ZXJUcmVlSG9zdFF0KToKKwogMjAxMi0wNS0yOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkIHJldHVybiB2YWx1ZSBpbmZvcm1h
dGlvbiB0byBXZWJLaXRXZWJWaWV3Ojpsb2FkLWZhaWxlZCBzaWduYWwgZG9jdW1lbnRhdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5j
ZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMu
Y3BwCmluZGV4IDBiM2YzNmQuLjlhMzBlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKQEAgLTYzLDYgKzYzLDEwIEBAIGJv
b2wgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQ
cml2YXRlOjpXZWJBdHRyaWJ1dGUKICAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRGcmFt
ZUZsYXR0ZW5pbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgRGV2ZWxvcGVy
RXh0cmFzRW5hYmxlZDoKICAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOworI2lmIEVOQUJMRShXRUJHTCkKKyAgICBj
YXNlIFdlYkdMRW5hYmxlZDoKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRXZWJHTEVu
YWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CisjZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTA2LDYgKzEx
MCwxMSBAQCB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEF0dHJpYnV0ZShRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUgYQogICAgIGNhc2UgRGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZDoKICAgICAgICAgV0tQcmVmZXJlbmNlc1NldERldmVsb3BlckV4dHJhc0VuYWJsZWQo
cHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKFdF
QkdMKQorICAgIGNhc2UgV2ViR0xFbmFibGVkOgorICAgICAgICBXS1ByZWZlcmVuY2VzU2V0V2Vi
R0xFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CisgICAgICAgIGJyZWFrOworI2Vu
ZGlmCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpA
QCAtNDc2LDYgKzQ4NSwyNSBAQCB2b2lkIFFXZWJQcmVmZXJlbmNlczo6c2V0RGVmYXVsdEZpeGVk
Rm9udFNpemUodW5zaWduZWQgc2l6ZSkKICAgICBlbWl0IGRlZmF1bHRGaXhlZEZvbnRTaXplQ2hh
bmdlZCgpOwogfQogCitib29sIFFXZWJQcmVmZXJlbmNlczo6d2ViR0xFbmFibGVkKCkgY29uc3QK
K3sKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgcmV0dXJuIGQtPnRlc3RBdHRyaWJ1dGUoUVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTo6V2ViR0xFbmFibGVkKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNl
OworI2VuZGlmCit9CisKK3ZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXRXZWJHTEVuYWJsZWQoYm9v
bCBlbmFibGUpCit7CisjaWYgRU5BQkxFKFdFQkdMKQorICAgIGQtPnNldEF0dHJpYnV0ZShRV2Vi
UHJlZmVyZW5jZXNQcml2YXRlOjpXZWJHTEVuYWJsZWQsIGVuYWJsZSk7CisgICAgZW1pdCB3ZWJH
TEVuYWJsZWRDaGFuZ2VkKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmFibGUpOworI2Vu
ZGlmCit9CisKIFdLUHJlZmVyZW5jZXNSZWYgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6cHJlZmVy
ZW5jZXNSZWYoKSBjb25zdAogewogICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiA9IHRv
QVBJKHdlYlZpZXdQcml2YXRlLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3AuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3AuaAppbmRl
eCAyNDg1OWJmLi44NjE4ZjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAg
ICBRX1BST1BFUlRZKGJvb2wgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkIFJFQUQgbmF2aWdhdG9y
UXRPYmplY3RFbmFibGVkIFdSSVRFIHNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCBOT1RJRlkg
bmF2aWdhdG9yUXRPYmplY3RFbmFibGVkQ2hhbmdlZCBGSU5BTCkKICAgICBRX1BST1BFUlRZKGJv
b2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCBSRUFEIGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgV1JJ
VEUgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCBOT1RJRlkgZnJhbWVGbGF0dGVuaW5nRW5hYmxl
ZENoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShib29sIGRldmVsb3BlckV4dHJhc0VuYWJs
ZWQgUkVBRCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkIFdSSVRFIHNldERldmVsb3BlckV4dHJhc0Vu
YWJsZWQgTk9USUZZIGRldmVsb3BlckV4dHJhc0VuYWJsZWRDaGFuZ2VkIEZJTkFMKQorICAgIFFf
UFJPUEVSVFkoYm9vbCB3ZWJHTEVuYWJsZWQgUkVBRCB3ZWJHTEVuYWJsZWQgV1JJVEUgc2V0V2Vi
R0xFbmFibGVkIE5PVElGWSB3ZWJHTEVuYWJsZWRDaGFuZ2VkIEZJTkFMKQogCiAgICAgUV9QUk9Q
RVJUWShRU3RyaW5nIHN0YW5kYXJkRm9udEZhbWlseSBSRUFEIHN0YW5kYXJkRm9udEZhbWlseSBX
UklURSBzZXRTdGFuZGFyZEZvbnRGYW1pbHkgTk9USUZZIHN0YW5kYXJkRm9udEZhbWlseUNoYW5n
ZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShRU3RyaW5nIGZpeGVkRm9udEZhbWlseSBSRUFEIGZp
eGVkRm9udEZhbWlseSBXUklURSBzZXRGaXhlZEZvbnRGYW1pbHkgTk9USUZZIGZpeGVkRm9udEZh
bWlseUNoYW5nZWQgRklOQUwpCkBAIC05MSw2ICs5Miw5IEBAIHB1YmxpYzoKICAgICBib29sIGRl
dmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldERldmVsb3BlckV4dHJh
c0VuYWJsZWQoYm9vbCBlbmFibGUpOwogCisgICAgYm9vbCB3ZWJHTEVuYWJsZWQoKSBjb25zdDsK
KyAgICB2b2lkIHNldFdlYkdMRW5hYmxlZChib29sIGVuYWJsZSk7CisKICAgICBRU3RyaW5nIHN0
YW5kYXJkRm9udEZhbWlseSgpIGNvbnN0OwogICAgIHZvaWQgc2V0U3RhbmRhcmRGb250RmFtaWx5
KGNvbnN0IFFTdHJpbmcmIGZhbWlseSk7CiAKQEAgLTEzMSw2ICsxMzUsNyBAQCBRX1NJR05BTFM6
CiAgICAgdm9pZCBuYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWRDaGFuZ2VkKCk7CiAgICAgdm9pZCBm
cmFtZUZsYXR0ZW5pbmdFbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgZGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZENoYW5nZWQoKTsKKyAgICB2b2lkIHdlYkdMRW5hYmxlZENoYW5nZWQoKTsKIAogICAg
IHZvaWQgc3RhbmRhcmRGb250RmFtaWx5Q2hhbmdlZCgpOwogICAgIHZvaWQgZml4ZWRGb250RmFt
aWx5Q2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2VicHJlZmVyZW5jZXNfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJwcmVmZXJlbmNlc19wX3AuaAppbmRleCBhZTYzNmMxLi43YzFjOWJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3Au
aApAQCAtMzgsNyArMzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIEZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWQsCiAgICAgICAgIFByaXZhdGVCcm93c2luZ0VuYWJsZWQsCiAgICAgICAgIERuc1ByZWZldGNo
RW5hYmxlZCwKLSAgICAgICAgRGV2ZWxvcGVyRXh0cmFzRW5hYmxlZAorICAgICAgICBEZXZlbG9w
ZXJFeHRyYXNFbmFibGVkLAorICAgICAgICBXZWJHTEVuYWJsZWQKICAgICB9OwogCiAgICAgZW51
bSBGb250RmFtaWx5IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXll
clRyZWVIb3N0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhv
c3RQcm94eS5jcHAKaW5kZXggMDNhNWVhYy4uZWQ0YjFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5jcHAKQEAgLTE1MCw2ICsxNTAsMTEgQEAg
dm9pZCBMYXllclRyZWVIb3N0UHJveHk6OmRpZENoYW5nZVNjcm9sbFBvc2l0aW9uKGNvbnN0IElu
dFBvaW50JiBwb3NpdGlvbikKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZXZWJMYXllclRyZWVS
ZW5kZXJlcjo6ZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24sIG1fcmVuZGVyZXIuZ2V0KCksIHBvc2l0
aW9uKSk7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpzeW5jQ2FudmFzKHVpbnQzMl90
IGlkLCBjb25zdCBJbnRTaXplJiBjYW52YXNTaXplLCB1aW50MzJfdCBncmFwaGljc1N1cmZhY2VU
b2tlbikKK3sKKyAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZXZWJMYXllclRyZWVSZW5kZXJlcjo6
c3luY0NhbnZhcywgbV9yZW5kZXJlci5nZXQoKSwgaWQsIGNhbnZhc1NpemUsIGdyYXBoaWNzU3Vy
ZmFjZVRva2VuKSk7Cit9CisKIHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpwdXJnZUJhY2tpbmdT
dG9yZXMoKQogewogICAgIG1fcmVuZGVyZXItPnNldEFjdGl2ZShmYWxzZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggYWMzZDNkMi4uNzk1
OGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHku
aApAQCAtNjksNiArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydCgpOwog
ICAgIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxQb3Np
dGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24pOworICAgIHZvaWQgc3luY0Nh
bnZhcyh1aW50MzJfdCBpZCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY2FudmFzU2l6ZSwgdWlu
dDMyX3QgZ3JhcGhpY3NTdXJmYWNlVG9rZW4pOwogICAgIHZvaWQgcHVyZ2VCYWNraW5nU3RvcmVz
KCk7CiAgICAgV2ViTGF5ZXJUcmVlUmVuZGVyZXIqIGxheWVyVHJlZVJlbmRlcmVyKCkgY29uc3Qg
eyByZXR1cm4gbV9yZW5kZXJlci5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxY2RhZTBk
Li5hODhiNDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVl
SG9zdFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXll
clRyZWVIb3N0UHJveHkubWVzc2FnZXMuaW4KQEAgLTMzLDUgKzMzLDYgQEAgbWVzc2FnZXMgLT4g
TGF5ZXJUcmVlSG9zdFByb3h5IHsKICAgICBEZXN0cm95RGlyZWN0bHlDb21wb3NpdGVkSW1hZ2Uo
aW50NjRfdCBrZXkpCiAgICAgRGlkUmVuZGVyRnJhbWUoKQogICAgIERpZENoYW5nZVNjcm9sbFBv
c2l0aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKQorICAgIFN5bmNDYW52YXModWludDMy
X3QgaWQsIFdlYkNvcmU6OkludFNpemUgY2FudmFzU2l6ZSwgdWludDMyX3QgZ3JhcGhpY3NTdXJm
YWNlVG9rZW4pCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJMYXllclRyZWVSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
TGF5ZXJUcmVlUmVuZGVyZXIuY3BwCmluZGV4IGM2YzBmYWQuLjVhMDI3ZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVyLmNwcApAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIlRleHR1
cmVNYXBwZXIuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgiCisjaW5j
bHVkZSAiVGV4dHVyZU1hcHBlckdMLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckxheWVyLmgi
CiAjaW5jbHVkZSAiVXBkYXRlSW5mby5oIgogI2luY2x1ZGUgPE9wZW5HTFNoaW1zLmg+CkBAIC0x
OTQsNiArMTk1LDI4IEBAIHZvaWQgV2ViTGF5ZXJUcmVlUmVuZGVyZXI6OmRpZENoYW5nZVNjcm9s
bFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKICAgICBtX3BlbmRpbmdSZW5kZXJl
ZENvbnRlbnRzU2Nyb2xsUG9zaXRpb24gPSBib3VuZGVkU2Nyb2xsUG9zaXRpb24ocG9zaXRpb24s
IG1fdmlzaWJsZUNvbnRlbnRzUmVjdCwgbV9jb250ZW50c1NpemUpOwogfQogCit2b2lkIFdlYkxh
eWVyVHJlZVJlbmRlcmVyOjpzeW5jQ2FudmFzKFdlYkxheWVySUQgaWQsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIGNhbnZhc1NpemUsIHVpbnQzMl90IGdyYXBoaWNzU3VyZmFjZVRva2VuKQorewor
ICAgIGlmIChjYW52YXNTaXplLmlzRW1wdHkoKSB8fCAhbV90ZXh0dXJlTWFwcGVyKQorICAgICAg
ICByZXR1cm47CisKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICBlbnN1cmVMYXllcihp
ZCk7CisgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckJ5SUQoaWQpOworCisgICAgUmVm
UHRyPFRleHR1cmVNYXBwZXJEaXJlY3RCYWNraW5nU3RvcmU+IGNhbnZhc0JhY2tpbmdTdG9yZTsK
KyAgICBEaXJlY3RCYWNraW5nU3RvcmVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kaXJlY3RCYWNraW5n
U3RvcmVzLmZpbmQoaWQpOworICAgIGlmIChpdCA9PSBtX2RpcmVjdEJhY2tpbmdTdG9yZXMuZW5k
KCkpIHsKKyAgICAgICAgY2FudmFzQmFja2luZ1N0b3JlID0gVGV4dHVyZU1hcHBlckRpcmVjdEJh
Y2tpbmdTdG9yZTo6Y3JlYXRlKCk7CisgICAgICAgIG1fZGlyZWN0QmFja2luZ1N0b3Jlcy5zZXQo
aWQsIGNhbnZhc0JhY2tpbmdTdG9yZSk7CisgICAgfSBlbHNlCisgICAgICAgIGNhbnZhc0JhY2tp
bmdTdG9yZSA9IGl0LT5zZWNvbmQ7CisKKyAgICBjYW52YXNCYWNraW5nU3RvcmUtPnNldEdyYXBo
aWNzU3VyZmFjZShncmFwaGljc1N1cmZhY2VUb2tlbiwgY2FudmFzU2l6ZSk7CisgICAgbGF5ZXIt
PnNldENvbnRlbnRzVG9NZWRpYShjYW52YXNCYWNraW5nU3RvcmUuZ2V0KCkpOworI2VuZGlmCit9
CisKIHZvaWQgV2ViTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyQ2hpbGRyZW4oV2ViTGF5ZXJJ
RCBpZCwgY29uc3QgVmVjdG9yPFdlYkxheWVySUQ+JiBjaGlsZElEcykKIHsKICAgICBlbnN1cmVM
YXllcihpZCk7CkBAIC0yNzEsNiArMjk0LDcgQEAgdm9pZCBXZWJMYXllclRyZWVSZW5kZXJlcjo6
ZGVsZXRlTGF5ZXIoV2ViTGF5ZXJJRCBsYXllcklEKQogICAgIGxheWVyLT5yZW1vdmVGcm9tUGFy
ZW50KCk7CiAgICAgbV9sYXllcnMucmVtb3ZlKGxheWVySUQpOwogICAgIG1fZml4ZWRMYXllcnMu
cmVtb3ZlKGxheWVySUQpOworICAgIG1fZGlyZWN0QmFja2luZ1N0b3Jlcy5yZW1vdmUobGF5ZXJJ
RCk7CiAgICAgZGVsZXRlIGxheWVyOwogfQogCkBAIC00MTksNiArNDQzLDcgQEAgdm9pZCBXZWJM
YXllclRyZWVSZW5kZXJlcjo6cHVyZ2VHTFJlc291cmNlcygpCiAgICAgICAgIGxheWVyLT5jbGVh
ckJhY2tpbmdTdG9yZXNSZWN1cnNpdmUoKTsKIAogICAgIG1fZGlyZWN0bHlDb21wb3NpdGVkSW1h
Z2VzLmNsZWFyKCk7CisgICAgbV9kaXJlY3RCYWNraW5nU3RvcmVzLmNsZWFyKCk7CiAKICAgICBt
X3Jvb3RMYXllci0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKICAgICBtX3Jvb3RMYXllci5jbGVhcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRl
cmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIuaApp
bmRleCAwNDJjNTJkLi4zNjczMTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTGF5ZXJUcmVlUmVuZGVyZXIuaApAQCAtMjIsNiArMjIsNyBAQAogCiAjaWYgVVNFKFVJX1NJ
REVfQ09NUE9TSVRJTkcpCiAjaW5jbHVkZSAiQmFja2luZ1N0b3JlLmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NTdXJmYWNlLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlU3VyZmFjZS5oIgogI2luY2x1ZGUg
IlRleHR1cmVNYXBwZXIuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgi
CkBAIC02Nyw2ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3Qo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiBhY2N1cmF0ZVZpc2libGVDb250ZW50c1Bvc2l0aW9uKTsKICAgICB2b2lkIGRpZENo
YW5nZVNjcm9sbFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7Cisg
ICAgdm9pZCBzeW5jQ2FudmFzKHVpbnQzMl90IGlkLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBj
YW52YXNTaXplLCB1aW50MzJfdCBncmFwaGljc1N1cmZhY2VUb2tlbik7CiAKICAgICB2b2lkIGRl
dGFjaCgpOwogICAgIHZvaWQgYXBwZW5kVXBkYXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsK
QEAgLTExOCw2ICsxMjAsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPGludDY0X3QsIFJlZlB0
cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlPiA+IG1fZGlyZWN0bHlDb21wb3Np
dGVkSW1hZ2VzOwogICAgIEhhc2hTZXQ8UmVmUHRyPExheWVyQmFja2luZ1N0b3JlPiA+IG1fYmFj
a2luZ1N0b3Jlc1dpdGhQZW5kaW5nQnVmZmVyczsKICNlbmRpZgorI2lmIFVTRShHUkFQSElDU19T
VVJGQUNFKQorICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJMYXllcklELCBSZWZQdHI8V2ViQ29yZTo6
VGV4dHVyZU1hcHBlckRpcmVjdEJhY2tpbmdTdG9yZT4gPiBEaXJlY3RCYWNraW5nU3RvcmVNYXA7
CisgICAgRGlyZWN0QmFja2luZ1N0b3JlTWFwIG1fZGlyZWN0QmFja2luZ1N0b3JlczsKKyNlbmRp
ZgogCiAgICAgdm9pZCBzY2hlZHVsZVdlYlZpZXdVcGRhdGUoKTsKICAgICB2b2lkIHN5bmNocm9u
aXplVmlld3BvcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDgwZThiNjEuLjAz
ZTU2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJMYXllclRyZWVIb3N0UHJveHlNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllci5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAgLTEwOSw4
ICsxMTAsMTAgQEAgV2ViR3JhcGhpY3NMYXllcjo6V2ViR3JhcGhpY3NMYXllcihHcmFwaGljc0xh
eWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX3Nob3VsZFN5bmNMYXllclN0YXRlKHRydWUpCiAg
ICAgLCBtX3Nob3VsZFN5bmNDaGlsZHJlbih0cnVlKQogICAgICwgbV9maXhlZFRvVmlld3BvcnQo
ZmFsc2UpCisgICAgLCBtX2NhbnZhc05lZWRzRGlzcGxheShmYWxzZSkKICAgICAsIG1fd2ViR3Jh
cGhpY3NMYXllckNsaWVudCgwKQogICAgICwgbV9jb250ZW50c1NjYWxlKDEpCisgICAgLCBtX2Nh
bnZhc1BsYXRmb3JtTGF5ZXIoMCkKIHsKICAgICBzdGF0aWMgV2ViTGF5ZXJJRCBuZXh0TGF5ZXJJ
RCA9IDE7CiAgICAgbV9pZCA9IG5leHRMYXllcklEKys7CkBAIC0zMTYsNiArMzE5LDE1IEBAIHZv
aWQgV2ViR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKQogICAgIFJlZlB0
cjxJbWFnZT4gaW1hZ2UgPSBtX2ltYWdlOwogICAgIHNldENvbnRlbnRzVG9JbWFnZSgwKTsKICAg
ICBzZXRDb250ZW50c1RvSW1hZ2UoaW1hZ2UuZ2V0KCkpOworICAgIG1fY2FudmFzTmVlZHNEaXNw
bGF5ID0gdHJ1ZTsKK30KKwordm9pZCBXZWJHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvQ2Fu
dmFzKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIpCit7CisgICAgbV9jYW52YXNQbGF0Zm9y
bUxheWVyID0gcGxhdGZvcm1MYXllcjsKKyAgICBtX2NhbnZhc05lZWRzRGlzcGxheSA9IHRydWU7
CisgICAgaWYgKGNsaWVudCgpKQorICAgICAgICBjbGllbnQoKS0+bm90aWZ5U3luY1JlcXVpcmVk
KHRoaXMpOwogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAtNDY4LDYgKzQ4MCwxNyBA
QCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNMYXllclN0YXRlKCkKICAgICBtX3dlYkdyYXBo
aWNzTGF5ZXJDbGllbnQtPnN5bmNMYXllclN0YXRlKG1faWQsIG1fbGF5ZXJJbmZvKTsKIH0KIAor
dm9pZCBXZWJHcmFwaGljc0xheWVyOjpzeW5jQ2FudmFzKCkKK3sKKyAgICBpZiAoIW1fY2FudmFz
TmVlZHNEaXNwbGF5KQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFtX2NhbnZhc1BsYXRmb3Jt
TGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICB1aW50MzJfdCBncmFwaGljc1N1cmZhY2VUb2tl
biA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Y29weVRvR3JhcGhpY3NTdXJmYWNlKCk7CisgICAg
bV93ZWJHcmFwaGljc0xheWVyQ2xpZW50LT5zeW5jQ2FudmFzKG1faWQsIEludFNpemUoc2l6ZSgp
LndpZHRoKCksIHNpemUoKS5oZWlnaHQoKSksIGdyYXBoaWNzU3VyZmFjZVRva2VuKTsKKyAgICBt
X2NhbnZhc05lZWRzRGlzcGxheSA9IGZhbHNlOworfQorCiB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6
OmVuc3VyZUltYWdlQmFja2luZ1N0b3JlKCkKIHsKICAgICBpZiAoIW1faW1hZ2UpCkBAIC00NzUs
NiArNDk4LDcgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjplbnN1cmVJbWFnZUJhY2tpbmdTdG9y
ZSgpCiAgICAgaWYgKCFtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlEKQogICAgICAgICBt
X2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlEID0gbV93ZWJHcmFwaGljc0xheWVyQ2xpZW50
LT5hZG9wdEltYWdlQmFja2luZ1N0b3JlKG1faW1hZ2UuZ2V0KCkpOwogfQorCiB2b2lkIFdlYkdy
YXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpCiB7CiAg
ICAgLy8gVGhlIHJlbW90ZSBpbWFnZSBtaWdodCBoYXZlIGJlZW4gcmVsZWFzZWQgYnkgcHVyZ2VC
YWNraW5nU3RvcmVzLgpAQCAtNDg2LDYgKzUxMCw3IEBAIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6
c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKICAgICBzeW5jRmlsdGVycygp
OwogI2VuZGlmCiAgICAgdXBkYXRlQ29udGVudEJ1ZmZlcnMoKTsKKyAgICBzeW5jQ2FudmFzKCk7
CiB9CiAKIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5nU3RvcmVQYWludEJlZ2lu
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJHcmFwaGljc0xheWVyLmgKaW5kZXggYzIyYTg4Mi4uY2RkNzgwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xh
eWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJH
cmFwaGljc0xheWVyLmgKQEAgLTYwLDYgKzYwLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1Nf
RklMVEVSUykKICAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyRmlsdGVycyhXZWJMYXllcklELCBj
b25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJikgPSAwOwogI2VuZGlmCisjaWYgUExBVEZP
Uk0oUVQpCisgICAgdmlydHVhbCB2b2lkIHN5bmNDYW52YXMoV2ViTGF5ZXJJRCwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgY2FudmFzU2l6ZSwgdWludDMyX3QgZ3JhcGhpY3NTdXJmYWNlVG9rZW4p
ID0gMDsKKyNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hMYXllcihXZWJDb3JlOjpXZWJH
cmFwaGljc0xheWVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXllcihXZWJDb3Jl
OjpXZWJHcmFwaGljc0xheWVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jRml4ZWRMYXll
cnMoKSA9IDA7CkBAIC05OCw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcGFjaXR5
KGZsb2F0KTsKICAgICB2b2lkIHNldENvbnRlbnRzUmVjdChjb25zdCBJbnRSZWN0Jik7CiAgICAg
dm9pZCBzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqKTsKKyAgICB2b2lkIHNldENvbnRlbnRzVG9D
YW52YXMoUGxhdGZvcm1MYXllciopOwogICAgIHZvaWQgc2V0TWFza0xheWVyKEdyYXBoaWNzTGF5
ZXIqKTsKICAgICB2b2lkIHNldFJlcGxpY2F0ZWRCeUxheWVyKEdyYXBoaWNzTGF5ZXIqKTsKICAg
ICB2b2lkIHNldE5lZWRzRGlzcGxheSgpOwpAQCAtMTQ3LDYgKzE1MSw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdm9pZCBzeW5jRmlsdGVycygpOwogI2VuZGlmCisg
ICAgdm9pZCBzeW5jQ2FudmFzKCk7CiAgICAgdm9pZCBlbnN1cmVJbWFnZUJhY2tpbmdTdG9yZSgp
OwogCiAgICAgdm9pZCBhZGp1c3RWaXNpYmxlUmVjdCgpOwpAQCAtMTY4LDYgKzE3Myw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFN5bmNDaGlsZHJlbjogMTsKICAgICBib29sIG1fc2hv
dWxkU3luY0ZpbHRlcnM6IDE7CiAgICAgYm9vbCBtX2ZpeGVkVG9WaWV3cG9ydCA6IDE7CisgICAg
Ym9vbCBtX2NhbnZhc05lZWRzRGlzcGxheSA6IDE7CiAKICAgICB2b2lkIG5vdGlmeUNoYW5nZSgp
OwogICAgIHZvaWQgZGlkQ2hhbmdlR2VvbWV0cnkoKTsKQEAgLTE5MSw2ICsxOTcsNyBAQCBwcml2
YXRlOgogICAgIE93blB0cjxXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZT4gbV9tYWluQmFja2lu
Z1N0b3JlOwogICAgIE93blB0cjxXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZT4gbV9wcmV2aW91
c0JhY2tpbmdTdG9yZTsKICAgICBmbG9hdCBtX2NvbnRlbnRzU2NhbGU7CisgICAgUGxhdGZvcm1M
YXllciogbV9jYW52YXNQbGF0Zm9ybUxheWVyOwogfTsKIAogV2ViR3JhcGhpY3NMYXllciogdG9X
ZWJHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKaW5kZXggOTAz
OTQ1NC4uYzI5NjQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKQEAgLTI1Niw2ICsyNTYsMTIgQEAgdm9p
ZCBMYXllclRyZWVIb3N0UXQ6OnN5bmNMYXllckNoaWxkcmVuKFdlYkxheWVySUQgaWQsIGNvbnN0
IFZlY3RvcjxXZWJMYXllcklEPiYKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVy
VHJlZUhvc3RQcm94eTo6U2V0Q29tcG9zaXRpbmdMYXllckNoaWxkcmVuKGlkLCBjaGlsZHJlbikp
OwogfQogCit2b2lkIExheWVyVHJlZUhvc3RRdDo6c3luY0NhbnZhcyhXZWJMYXllcklEIGlkLCBj
b25zdCBJbnRTaXplJiBjYW52YXNTaXplLCB1aW50MzJfdCBncmFwaGljc1N1cmZhY2VUb2tlbikK
K3sKKyAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpMYXllclRyZWVIb3N0UHJveHk6OlN5bmNDYW52YXMoaWQsIGNhbnZhc1NpemUsIGdy
YXBoaWNzU3VyZmFjZVRva2VuKSk7Cit9CisKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lk
IExheWVyVHJlZUhvc3RRdDo6c3luY0xheWVyRmlsdGVycyhXZWJMYXllcklEIGlkLCBjb25zdCBG
aWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5oCmluZGV4IGVlY2I2MmUuLjMz
ZmRlYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9M
YXllclRyZWVIb3N0UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
cXQvTGF5ZXJUcmVlSG9zdFF0LmgKQEAgLTc5LDYgKzc5LDcgQEAgcHVibGljOgogI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKICAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyRmlsdGVycyhXZWJMYXll
cklELCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CiAjZW5kaWYKKyAgICB2aXJ0
dWFsIHZvaWQgc3luY0NhbnZhcyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBj
YW52YXNTaXplLCB1aW50MzJfdCBncmFwaGljc1N1cmZhY2VUb2tlbikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGF0dGFjaExheWVyKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXIqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllciopOwog
ICAgIHZpcnR1YWwgdm9pZCBzeW5jRml4ZWRMYXllcnMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwZDQ0YjE4Li4zMWY4MTVjIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTItMDUtMjkgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgRml4IGFuZCBlbmFibGUgV2ViR0wgZm9yIFdlYktpdDIgb24gUXQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjIxNAorCisgICAgICAgIEVuYWJs
ZSBXZWJHTCBieSBkZWZhdWx0IGZvciBRdCBNaW5pQnJvd3Nlci4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL3F0L3FtbC9Ccm93
c2VyV2luZG93LnFtbDoKKwogMjAxMi0wNS0yOSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9w
aGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIENvbXBpbGF0aW9uIHdhcm5pbmcg
aW4gRHVtcFJlbmRlclRyZWVWaWV3LmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIv
cXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dz
ZXJXaW5kb3cucW1sCmluZGV4IDUyMzdjNzEuLjgxNDE5NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01p
bmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbAorKysgYi9Ub29scy9NaW5pQnJvd3Nl
ci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKQEAgLTMzMyw2ICszMzMsNyBAQCBSZWN0YW5nbGUg
ewogCiAgICAgICAgIGV4cGVyaW1lbnRhbC5kZXZpY2VQaXhlbFJhdGlvOiAxLjUKICAgICAgICAg
ZXhwZXJpbWVudGFsLnByZWZlcmVuY2VzLmZ1bGxTY3JlZW5FbmFibGVkOiB0cnVlCisgICAgICAg
IGV4cGVyaW1lbnRhbC5wcmVmZXJlbmNlcy53ZWJHTEVuYWJsZWQ6IHRydWUKICAgICAgICAgZXhw
ZXJpbWVudGFsLnByZWZlcnJlZE1pbmltdW1Db250ZW50c1dpZHRoOiA5ODAKICAgICAgICAgZXhw
ZXJpbWVudGFsLml0ZW1TZWxlY3RvcjogSXRlbVNlbGVjdG9yIHsgfQogICAgICAgICBleHBlcmlt
ZW50YWwuYWxlcnREaWFsb2c6IEFsZXJ0RGlhbG9nIHsgfQo=
</data>
<flag name="commit-queue"
          id="151812"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145373</attachid>
            <date>2012-06-01 13:45:07 -0700</date>
            <delta_ts>2012-06-01 13:54:39 -0700</delta_ts>
            <desc>patch for review.</desc>
            <filename>86214_20120601-224321.patch</filename>
            <type>text/plain</type>
            <size>30066</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZmU1MGUwLi5jOWI4NTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkg
QEAKKzIwMTItMDYtMDEgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgRml4IGFuZCBlbmFibGUgV2ViR0wgZm9yIFdlYktpdDIgb24gUXQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjIxNAorCisgICAgICAgIE1ha2Ug
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIHVzZSBHcmFwaGljc1N1cmZhY2VzCisgICAgICAgIGZv
ciBXSzIuIFRoZSBHcmFwaGljc0NvbnRleHQzRCB0aGVuIHVzZXMgdGhlIGV4aXN0aW5nCisgICAg
ICAgIFJlbmRlckJ1ZmZlciBmb3IgbXVsdGlzYW1wbGUgcmVuZGVyaW5nLgorICAgICAgICBXaGVu
IFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlIGlzIGJlaW5nCisgICAgICAg
IGV4ZWN1dGVkLCB0aGUgY2FudmFzIGlzIGJlaW5nIHN5bmNlZCBhcyB3ZWxsLiBUaGlzIG1lYW5z
CisgICAgICAgIHRoYXQgdGhlIFJlbmRlckJ1ZmZlciBjb250ZW50cyBhcmUgYmVpbmcgYmxpdCBv
bnRvCisgICAgICAgIGEgR3JhcGhpY3NTdXJmYWNlLCBhbmQgdGhlIEdyYXBoaWNzU3VyZmFjZSB0
b2tlbiBpcworICAgICAgICBiZWluZyBzZW50IHRvIHRoZSBVSVByb2Nlc3MuCisgICAgICAgIFRo
ZSBXZWJMYXllclRyZWVSZW5kZXJlciB0aGVuIGNyZWF0ZXMgYQorICAgICAgICBUZXh0dXJlTWFw
cGVyU3VyZmFjZUJhY2tpbmdTdG9yZSBmb3IgdGhlIGNhbnZhcyBhbmQKKyAgICAgICAgcGFzc2Vz
IHRoZSBHcmFwaGljc1N1cmZhY2UgdG9rZW4gYXMgYW4gYXJndW1lbnQuCisgICAgICAgIFRoZSB0
b2tlbiBjYW4gdGhlbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBHcmFwaGljc1N1cmZhY2UKKyAg
ICAgICAgZnJvbSB0aGUgVUlQcm9jZXNzIHNpZGUuCisKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmg6CisgICAgICAgIEFkZGVkIHJlc2hhcGVTdXJmYWNlIGZ1bmN0aW9uLiBUaGlzIGlz
IGN1cnJlbnRseSBvbmx5CisgICAgICAgIGJlaW5nIHVzZWQgYnkgdGhlIFF0IHBvcnQuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xD
b21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGUp
OgorICAgICAgICBDYWxsaW5nIHRoZSByZXNoYXBlU3VyZmFjZSBmdW5jdGlvbiB3aGVuIHRoZSBH
cmFwaGljc0NvbnRleHQzRAorICAgICAgICBpcyByZXNoYXBlZC4gVGhpcyBpcyBjdXJyZW50bHkg
b25seSByZWxldmFudCBmb3IgdGhlIFF0IHBvcnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZSk6CisgICAgICAgIEFkZGVkIG1fZnJvbnRCdWZmZXJHcmFwaGljc1N1cmZhY2Us
IG1fYmFja0J1ZmZlckdyYXBoaWNzU3VyZmFjZQorICAgICAgICBhbmQgbV9zdXJmYWNlRmxhZ3Mg
bWVtYmVycy4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlKToKKyAgICAgICAgSW4gY2FzZSBvZiBXSzIsIGNyZWF0ZSBh
IFFPcGVuR0xDb250ZXh0IGFuZCB0d28gR3JhcGhpY3NTdXJmYWNlCisgICAgICAgIGZvciBzaGFy
aW5nIHRoZSBXZWJHTCBjb250ZW50IHdpdGggdGhlIFVJUHJvY2Vzcy4gT25lIEdyYXBoaWNzU3Vy
ZmFjZQorICAgICAgICBpcyBiZWluZyB1c2VkIGFzIHRoZSBmcm9udCwgdGhlIG90aGVyIG9uZSBh
cyB0aGUgYmFja2J1ZmZlci4KKyAgICAgICAgQ3JlYXRpbmcgYSBRT3BlbkdMQ29udGV4dCBjdXJy
ZW50bHkgcmVxdWlyZXMgc2hvd2luZyBhIFFXaW5kb3cuCisgICAgICAgIEZvciB0aGUgbW9tZW50
IHdlIHRoZXJlZm9yZSBjcmVhdGUgYSBtaW5pbWFsIFFXaW5kb3cgYW5kIHBsYWNlCisgICAgICAg
IGl0IG9mZnNjcmVlbi4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZTo6Y29weVRvR3JhcGhpY3NTdXJmYWNlKToKKyAgICAgICAgVGhpcyBuZXcgZnVuY3Rpb24gaXMg
Y2FsbGVkIGZyb20gdGhlIFdlYkdyYXBoaWNzTGF5ZXIsCisgICAgICAgIHRvIGJsaXQgdGhlIG11
bHRpc2FtcGxlIGZyYW1lYnVmZmVyIGFuZCBjb3B5IGl0cyBjb250ZW50cworICAgICAgICBvbnRv
IHRoZSBHcmFwaGljc1N1cmZhY2UuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RFByaXZhdGU6OnJlc2hhcGUpOgorICAgICAgICBXaGVuZXZlciB0aGUgR3JhcGhpY3NDb250ZXh0
M0QgaXMgYmVpbmcgcmVzaGFwZWQsCisgICAgICAgIGEgbmV3IEdyYXBoaWNzU3VyZmFjZSBtdXN0
IGJlIGNyZWF0ZWQgd2l0aCB0aGUgdXBkYXRlZCBkaW1lbnNpb25zLgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVTdXJmYWNlKToKKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllci5oOgorICAgICAg
ICBBZGRlZCBhIG5ldyB2aXJ0dWFsIGZ1bmN0aW9uIGNvcHlUb0dyYXBoaWNzU3VyZmFjZS4KKyAg
ICAgICAgKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyOjpjb3B5VG9HcmFwaGljc1N1cmZhY2UpOgorCiAyMDEy
LTA2LTAxICBKb2UgVGhvbWFzICA8am9ldGhvbWFzQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBn
ZXRDb21wdXRlZFN0eWxlIGZvciBiYWNrZ3JvdW5kIHNob3J0aGFuZCBwcm9wZXJ0eSBkb2VzIG5v
dCByZXR1cm4gYmFja2dyb3VuZC1vcmlnaW4gYW5kIGJhY2tncm91bmQtY2xpcC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmlu
ZGV4IGIwYmM1YzAuLjYyNWVkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtOTExLDYgKzkxMSw5IEBAIHB1Ymxp
YzoKIAogICAgIGJvb2wgcmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYpOwogICAgIHZvaWQgcmVz
b2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShjb25zdCBJbnRSZWN0JiA9IEludFJlY3QoKSk7
CisjaWYgUExBVEZPUk0oUVQpICYmIFVTRShHUkFQSElDU19TVVJGQUNFKQorICAgIHZvaWQgcmVz
aGFwZVN1cmZhY2UoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyNlbmRpZgogCiAgICAgaW50IG1f
Y3VycmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQ7CiAgICAgYm9vbCBpc1Jlc291cmNlU2FmZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXgg
YzExNzcyMS4uNzAzNTQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0xDb21tb24uY3BwCkBAIC0yMjIsNiArMjIyLDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIGlmICh3aWR0aCA9PSBtX2N1cnJl
bnRXaWR0aCAmJiBoZWlnaHQgPT0gbV9jdXJyZW50SGVpZ2h0KQogICAgICAgICByZXR1cm47CiAK
KyNpZiBQTEFURk9STShRVCkgJiYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgOjpnbEZsdXNo
KCk7IC8vIE1ha2Ugc3VyZSBhbGwgR0wgY2FsbHMgaGF2ZSBiZWVuIGNvbW1pdHRlZCBiZWZvcmUg
cmVzaXppbmcuCisgICAgcmVzaGFwZVN1cmZhY2Uod2lkdGgsIGhlaWdodCk7CisjZW5kaWYKKwor
CiAgICAgbV9jdXJyZW50V2lkdGggPSB3aWR0aDsKICAgICBtX2N1cnJlbnRIZWlnaHQgPSBoZWln
aHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dy
YXBoaWNzQ29udGV4dDNEUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAKaW5kZXggZjNhN2VhOC4uM2IxNWM0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0
M0RRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhp
Y3NDb250ZXh0M0RRdC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJFeHRlbnNpb25z
M0RPcGVuR0wuaCIKICNlbmRpZgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1
ZGUgIkdyYXBoaWNzU3VyZmFjZS5oIgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSG9zdFdpbmRvdy5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCkBAIC0zNiw2
ICszNyw3IEBACiAjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKICNpbmNsdWRlICJRV2ViUGFnZUNs
aWVudC5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgPFFXaW5kb3c+CiAj
aW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCkBAIC02NywxNiArNjksMjUgQEAgcHVibGljOgogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQogICAgIHZpcnR1YWwgdm9pZCBwYWludFRv
VGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXQsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSog
bWFzayk7CiAjZW5kaWYKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICB2aXJ0dWFsIHVp
bnQzMl90IGNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpOworI2VuZGlmCiAKICAgICBRUmVjdEYgYm91
bmRpbmdSZWN0KCkgY29uc3Q7CiAgICAgdm9pZCBibGl0TXVsdGlzYW1wbGVGcmFtZWJ1ZmZlcigp
IGNvbnN0OwogICAgIHZvaWQgYmxpdE11bHRpc2FtcGxlRnJhbWVidWZmZXJBbmRSZXN0b3JlQ29u
dGV4dCgpIGNvbnN0OwogICAgIGJvb2wgbWFrZUN1cnJlbnRJZk5lZWRlZCgpIGNvbnN0OworICAg
IHZvaWQgcmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogCiAgICAgR3JhcGhpY3NDb250
ZXh0M0QqIG1fY29udGV4dDsKICAgICBIb3N0V2luZG93KiBtX2hvc3RXaW5kb3c7CiAgICAgUGxh
dGZvcm1HcmFwaGljc1N1cmZhY2UzRCBtX3N1cmZhY2U7CiAgICAgUGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCBtX3BsYXRmb3JtQ29udGV4dDsKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAg
ICBHcmFwaGljc1N1cmZhY2U6OkZsYWdzIG1fc3VyZmFjZUZsYWdzOworICAgIFJlZlB0cjxHcmFw
aGljc1N1cmZhY2U+IG1fZnJvbnRCdWZmZXJHcmFwaGljc1N1cmZhY2U7CisgICAgUmVmUHRyPEdy
YXBoaWNzU3VyZmFjZT4gbV9iYWNrQnVmZmVyR3JhcGhpY3NTdXJmYWNlOworI2VuZGlmCiB9Owog
CiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjppc0dMRVMyQ29tcGxpYW50KCkgY29uc3QKQEAgLTk1
LDEyICsxMDYsMzcgQEAgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpHcmFwaGljc0NvbnRleHQz
RFByaXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIEgKICAgICAsIG1fcGxhdGZvcm1D
b250ZXh0KDApCiB7CiAgICAgUVdlYlBhZ2VDbGllbnQqIHdlYlBhZ2VDbGllbnQgPSBtX2hvc3RX
aW5kb3ctPnBsYXRmb3JtUGFnZUNsaWVudCgpOwotICAgIGlmICghd2ViUGFnZUNsaWVudCkKLSAg
ICAgICAgcmV0dXJuOwotICAgIHdlYlBhZ2VDbGllbnQtPmNyZWF0ZVBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoJm1fcGxhdGZvcm1Db250ZXh0LCAmbV9zdXJmYWNlKTsKLSAgICBpZiAoIW1fc3Vy
ZmFjZSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1ha2VDdXJyZW50SWZOZWVkZWQoKTsKKyAgICBp
ZiAoIXdlYlBhZ2VDbGllbnQpIHsKKyAgICAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gY3Jl
YXRlIGEgUU9wZW5HTENvbnRleHQgd2l0aG91dCBjcmVhdGluZyBhIFFXaW5kb3cgYXQgYWxsLgor
ICAgICAgICAvLyBXZSBuZWVkIHRvIGNyZWF0ZSBhIHN1cmZhY2UgaW4gb3JkZXIgdG8gY3JlYXRl
IGEgUU9wZW5HTENvbnRleHQgYW5kIG1ha2UgaXQgY3VycmVudC4KKyAgICAgICAgUVdpbmRvdyog
d2luZG93ID0gbmV3IFFXaW5kb3c7CisgICAgICAgIHdpbmRvdy0+c2V0U3VyZmFjZVR5cGUoUVN1
cmZhY2U6Ok9wZW5HTFN1cmZhY2UpOworICAgICAgICB3aW5kb3ctPnNldEdlb21ldHJ5KC0xMCwg
LTEwLCAxLCAxKTsKKyAgICAgICAgd2luZG93LT5jcmVhdGUoKTsKKyAgICAgICAgbV9zdXJmYWNl
ID0gd2luZG93OworCisgICAgICAgIG1fcGxhdGZvcm1Db250ZXh0ID0gbmV3IFFPcGVuR0xDb250
ZXh0KHdpbmRvdyk7CisgICAgICAgIGlmICghbV9wbGF0Zm9ybUNvbnRleHQtPmNyZWF0ZSgpKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1ha2VDdXJyZW50SWZOZWVkZWQoKTsKKyNp
ZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICAgICAgSW50U2l6ZSBzdXJmYWNlU2l6ZShtX2Nv
bnRleHQtPm1fY3VycmVudFdpZHRoLCBtX2NvbnRleHQtPm1fY3VycmVudEhlaWdodCk7CisKKyAg
ICAgICAgbV9zdXJmYWNlRmxhZ3MgPSBHcmFwaGljc1N1cmZhY2U6OlN1cHBvcnRzVGV4dHVyZVRh
cmdldAorICAgICAgICAgICAgICAgICAgICAgICAgfCBHcmFwaGljc1N1cmZhY2U6OlN1cHBvcnRz
U2hhcmluZzsKKworICAgICAgICBpZiAoIXN1cmZhY2VTaXplLmlzRW1wdHkoKSkgeworICAgICAg
ICAgICAgbV9mcm9udEJ1ZmZlckdyYXBoaWNzU3VyZmFjZSA9IEdyYXBoaWNzU3VyZmFjZTo6Y3Jl
YXRlKHN1cmZhY2VTaXplLCBtX3N1cmZhY2VGbGFncyk7CisgICAgICAgICAgICBtX2JhY2tCdWZm
ZXJHcmFwaGljc1N1cmZhY2UgPSBHcmFwaGljc1N1cmZhY2U6OmNyZWF0ZShzdXJmYWNlU2l6ZSwg
bV9zdXJmYWNlRmxhZ3MpOworICAgICAgICB9CisjZW5kaWYKKyAgICB9IGVsc2UgeworICAgICAg
ICAvLyBUaGlzIGlzIHRoZSBXZWJLaXQxIGNvZGUgcGF0aC4KKyAgICAgICAgd2ViUGFnZUNsaWVu
dC0+Y3JlYXRlUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgmbV9wbGF0Zm9ybUNvbnRleHQsICZt
X3N1cmZhY2UpOworICAgICAgICBpZiAoIW1fc3VyZmFjZSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICB9CiB9CiAKIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6fkdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZSgpCkBAIC0xNzQsNiArMjEwLDI0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyCiB9
CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCisjaWYgVVNFKEdSQVBI
SUNTX1NVUkZBQ0UpCit1aW50MzJfdCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNvcHlUb0dy
YXBoaWNzU3VyZmFjZSgpCit7CisgICAgaWYgKCFtX2Zyb250QnVmZmVyR3JhcGhpY3NTdXJmYWNl
IHx8ICFtX2JhY2tCdWZmZXJHcmFwaGljc1N1cmZhY2UpCisgICAgICAgIHJldHVybiAwOworICAg
IGJsaXRNdWx0aXNhbXBsZUZyYW1lYnVmZmVyQW5kUmVzdG9yZUNvbnRleHQoKTsKKyAgICBtYWtl
Q3VycmVudElmTmVlZGVkKCk7CisgICAgbV9iYWNrQnVmZmVyR3JhcGhpY3NTdXJmYWNlLT5jb3B5
RnJvbUZyYW1lYnVmZmVyKG1fY29udGV4dC0+bV9mYm8sIEludFJlY3QoMCwgMCwgbV9jb250ZXh0
LT5tX2N1cnJlbnRXaWR0aCwgbV9jb250ZXh0LT5tX2N1cnJlbnRIZWlnaHQpKTsKKyAgICB1aW50
MzJfdCB0b2tlbiA9IG1fYmFja0J1ZmZlckdyYXBoaWNzU3VyZmFjZS0+ZXhwb3J0VG9rZW4oKTsK
KworICAgIC8vIFN3YXAgdGhlIGZyb250IGFuZCBiYWNrIGJ1ZmZlciBHcmFwaGljc1N1cmZhY2Uu
CisgICAgUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gdGVtcCA9IG1fZnJvbnRCdWZmZXJHcmFwaGlj
c1N1cmZhY2U7CisgICAgbV9mcm9udEJ1ZmZlckdyYXBoaWNzU3VyZmFjZSA9IG1fYmFja0J1ZmZl
ckdyYXBoaWNzU3VyZmFjZTsKKyAgICBtX2JhY2tCdWZmZXJHcmFwaGljc1N1cmZhY2UgPSB0ZW1w
OworICAgIHJldHVybiB0b2tlbjsKK30KKyNlbmRpZgorCiBRUmVjdEYgR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlOjpib3VuZGluZ1JlY3QoKSBjb25zdAogewogICAgIHJldHVybiBRUmVjdEYoUVBv
aW50RigwLCAwKSwgUVNpemVGKG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1fY29udGV4dC0+
bV9jdXJyZW50SGVpZ2h0KSk7CkBAIC0yMzUsNiArMjg5LDIwIEBAIGJvb2wgR3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlOjptYWtlQ3VycmVudElmTmVlZGVkKCkgY29uc3QKICNlbmRpZgogfQogCit2
b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWln
aHQpCit7CisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgSW50U2l6ZSBjb250ZXh0U2l6
ZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICBpZiAoY29udGV4dFNpemUuaXNFbXB0eSgpKSB7CisgICAg
ICAgIG1fZnJvbnRCdWZmZXJHcmFwaGljc1N1cmZhY2UgPSAwOworICAgICAgICBtX2JhY2tCdWZm
ZXJHcmFwaGljc1N1cmZhY2UgPSAwOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fZnJvbnRCdWZm
ZXJHcmFwaGljc1N1cmZhY2UgPSBHcmFwaGljc1N1cmZhY2U6OmNyZWF0ZShjb250ZXh0U2l6ZSwg
bV9zdXJmYWNlRmxhZ3MpOworICAgICAgICBtX2JhY2tCdWZmZXJHcmFwaGljc1N1cmZhY2UgPSBH
cmFwaGljc1N1cmZhY2U6OmNyZWF0ZShjb250ZXh0U2l6ZSwgbV9zdXJmYWNlRmxhZ3MpOworICAg
IH0KKyNlbmRpZgorfQorCiBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0Nv
bnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0
V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVy
U3R5bGUpCiB7CiAgICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGN1cnJlbnRseSBz
dXBwb3J0IHJlbmRlcmluZyBkaXJlY3RseSB0byB0aGUgSG9zdFdpbmRvdy4KQEAgLTQwNyw2ICs0
NzUsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0NhbnZhcyhjb25zdCB1bnNp
Z25lZCBjaGFyKiBpbWFnZVBpeGVscywgaW50IGltYWcKICAgICBjb250ZXh0LT5yZXN0b3JlKCk7
CiB9CiAKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnJlc2hhcGVTdXJmYWNlKGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBtX3ByaXZhdGUt
PnJlc2hhcGUod2lkdGgsIGhlaWdodCk7Cit9CisjZW5kaWYKKwogI2lmIGRlZmluZWQoUVRfT1BF
TkdMX0VTXzIpCiBQYXNzUmVmUHRyPEltYWdlRGF0YT4gR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50
UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKERyYXdpbmdCdWZmZXIqKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaAppbmRleCAzZDI0N2EyLi45NjE0Yzg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaApAQCAtMzIsNiArMzIsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciosIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgg
PSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBmbG9hdCBvcGFjaXR5ID0gMS4wLCBCaXRtYXBUZXh0
dXJlKiBtYXNrID0gMCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzd2FwQnVmZmVycygpIHsgfQor
I2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQorICAgIHZpcnR1YWwgdWludDMyX3QgY29weVRvR3Jh
cGhpY3NTdXJmYWNlKCkgeyByZXR1cm4gMDsgfQorI2VuZGlmCiB9OwogCiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGQzZjI0NTUuLjIyYzU5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NCBAQAorMjAxMi0w
Ni0wMSAgWmVubyBBbGJpc3NlciAgPHplbm9Ad2Via2l0Lm9yZz4KKworICAgICAgICBGaXggYW5k
IGVuYWJsZSBXZWJHTCBmb3IgV2ViS2l0MiBvbiBRdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MjE0CisKKyAgICAgICAgQWRkZWQgZ2x1ZSBjb2Rl
IHRvIG1ha2UgdXNlIG9mIEdyYXBoaWNzU3VyZmFjZQorICAgICAgICBhcyBhIGJhY2tlbmQgZm9y
IHRoZSB3ZWJnbC1jYW52YXMgaW4gY2FzZSBvZiBXSzIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJl
bmNlcy5jcHA6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRl
KToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEF0dHJpYnV0ZSk6CisgICAg
ICAgIChRV2ViUHJlZmVyZW5jZXM6OndlYkdMRW5hYmxlZCk6CisgICAgICAgIChRV2ViUHJlZmVy
ZW5jZXM6OnNldFdlYkdMRW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXNfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVu
Y2VzX3BfcC5oOgorICAgICAgICBBZGRlZCBXZWJHTEVuYWJsZWQgZW51bSB0byBhbGxvdyBlbmFi
bGluZy9kaXNhYmxpbmcgb2YKKyAgICAgICAgV2ViR0wgdXNpbmcgUVdlYlByZWZlcmVuY2VzLgor
CisgICAgICAgICogVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZUhvc3RQcm94eTo6c3luY0NhbnZhcyk6CisgICAgICAgIERpc3BhdGNo
IHN5bmNDYW52YXMgY2FsbHMgdG8gdGhlIGFwcm9wcmlhdGUKKyAgICAgICAgV2ViTGF5ZXJUcmVl
UmVuZGVyZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lmg6Cisg
ICAgICAgIChMYXllclRyZWVIb3N0UHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXllclRy
ZWVIb3N0UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxheWVyVHJl
ZVJlbmRlcmVyLmg6CisgICAgICAgIChXZWJMYXllclRyZWVSZW5kZXJlcik6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
TGF5ZXJUcmVlUmVuZGVyZXI6OnN5bmNDYW52YXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXll
clRyZWVSZW5kZXJlcjo6ZGVsZXRlTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRy
ZWVSZW5kZXJlcjo6cHVyZ2VHTFJlc291cmNlcyk6CisgICAgICAgIENyZWF0ZSBhIFRleHR1cmVN
YXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlIGZvciB0aGUgY2FudmFzCisgICAgICAgIGlmIG5lY2Vz
c2FyeSBhbmQgcGFzcyBvciB1cGRhdGUgdGhlIGdyYXBoaWNzU3VyZmFjZVRva2VuCisgICAgICAg
IGZvciB0byBiZSB1c2VkIHdpdGggdGhlIGJhY2tpbmcgc3RvcmUuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR3JhcGhpY3NMYXllcjo6V2ViR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9D
YW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllcjo6c3luY0NhbnZhcyk6
CisgICAgICAgIENvcHkgdGhlIG11bHRpc2FtcGxlIGZyYW1lYnVmZmVyIGNvbnRlbnRzIG9udG8g
dGhlIEdyYXBoaWNzU3VyZmFjZS4KKyAgICAgICAgTm90aWZ5IHRoZSBVSVByb2Nlc3Mgb2YgdGhl
IGF2YWlsYWJpbGl0eSBvZiBhIG5ldyB0ZXh0dXJlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR3Jh
cGhpY3NMYXllcjo6c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAg
ICAgU3luYyB0aGUgY2FudmFzIGFzIHdlbGwuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgQWRkZWQgYSBwdXJlIHZpcnR1
YWwgZnVuY3Rpb24gc3luY0NhbnZhcy4KKyAgICAgICAgVGhpcyBpcyBndWFyZGVkIGJ5IFBMQVRG
T1JNKFFUKS4KKyAgICAgICAgKFdlYkdyYXBoaWNzTGF5ZXJDbGllbnQpOgorICAgICAgICAoV2Vi
R3JhcGhpY3NMYXllcik6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJU
cmVlSG9zdFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFF0OjpzeW5jTGF5
ZXJDaGlsZHJlbik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRy
ZWVIb3N0UXQ6OnN5bmNDYW52YXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9xdC9M
YXllclRyZWVIb3N0UXQuaDoKKyAgICAgICAgKExheWVyVHJlZUhvc3RRdCk6CisKIDIwMTItMDYt
MDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8xMTMzNTYyMj4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04ODExOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2VicHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXMuY3BwCmluZGV4IDBiM2YzNmQuLjlhMzBlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKQEAgLTYzLDYg
KzYzLDEwIEBAIGJvb2wgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZShRV2Vi
UHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUKICAgICAgICAgcmV0dXJuIFdLUHJlZmVy
ZW5jZXNHZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNh
c2UgRGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDoKICAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNH
ZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOworI2lmIEVOQUJMRShX
RUJHTCkKKyAgICBjYXNlIFdlYkdMRW5hYmxlZDoKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5j
ZXNHZXRXZWJHTEVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CisjZW5kaWYKICAgICBkZWZhdWx0
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMTA2LDYgKzExMCwxMSBAQCB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEF0dHJp
YnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUgYQogICAgIGNhc2UgRGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZDoKICAgICAgICAgV0tQcmVmZXJlbmNlc1NldERldmVsb3BlckV4
dHJhc0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7Cisj
aWYgRU5BQkxFKFdFQkdMKQorICAgIGNhc2UgV2ViR0xFbmFibGVkOgorICAgICAgICBXS1ByZWZl
cmVuY2VzU2V0V2ViR0xFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CisgICAgICAg
IGJyZWFrOworI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgfQpAQCAtNDc2LDYgKzQ4NSwyNSBAQCB2b2lkIFFXZWJQcmVmZXJlbmNlczo6c2V0
RGVmYXVsdEZpeGVkRm9udFNpemUodW5zaWduZWQgc2l6ZSkKICAgICBlbWl0IGRlZmF1bHRGaXhl
ZEZvbnRTaXplQ2hhbmdlZCgpOwogfQogCitib29sIFFXZWJQcmVmZXJlbmNlczo6d2ViR0xFbmFi
bGVkKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgcmV0dXJuIGQtPnRlc3RBdHRy
aWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViR0xFbmFibGVkKTsKKyNlbHNlCisgICAg
cmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3ZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXRXZWJH
TEVuYWJsZWQoYm9vbCBlbmFibGUpCit7CisjaWYgRU5BQkxFKFdFQkdMKQorICAgIGQtPnNldEF0
dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJHTEVuYWJsZWQsIGVuYWJsZSk7Cisg
ICAgZW1pdCB3ZWJHTEVuYWJsZWRDaGFuZ2VkKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShl
bmFibGUpOworI2VuZGlmCit9CisKIFdLUHJlZmVyZW5jZXNSZWYgUVdlYlByZWZlcmVuY2VzUHJp
dmF0ZTo6cHJlZmVyZW5jZXNSZWYoKSBjb25zdAogewogICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VH
cm91cFJlZiA9IHRvQVBJKHdlYlZpZXdQcml2YXRlLT53ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZl
cmVuY2VzX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVu
Y2VzX3AuaAppbmRleCAyNDg1OWJmLi44NjE4ZjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oCkBAIC00Myw2ICs0Myw3IEBA
IHB1YmxpYzoKICAgICBRX1BST1BFUlRZKGJvb2wgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkIFJF
QUQgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkIFdSSVRFIHNldE5hdmlnYXRvclF0T2JqZWN0RW5h
YmxlZCBOT1RJRlkgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkQ2hhbmdlZCBGSU5BTCkKICAgICBR
X1BST1BFUlRZKGJvb2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCBSRUFEIGZyYW1lRmxhdHRlbmlu
Z0VuYWJsZWQgV1JJVEUgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCBOT1RJRlkgZnJhbWVGbGF0
dGVuaW5nRW5hYmxlZENoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShib29sIGRldmVsb3Bl
ckV4dHJhc0VuYWJsZWQgUkVBRCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkIFdSSVRFIHNldERldmVs
b3BlckV4dHJhc0VuYWJsZWQgTk9USUZZIGRldmVsb3BlckV4dHJhc0VuYWJsZWRDaGFuZ2VkIEZJ
TkFMKQorICAgIFFfUFJPUEVSVFkoYm9vbCB3ZWJHTEVuYWJsZWQgUkVBRCB3ZWJHTEVuYWJsZWQg
V1JJVEUgc2V0V2ViR0xFbmFibGVkIE5PVElGWSB3ZWJHTEVuYWJsZWRDaGFuZ2VkIEZJTkFMKQog
CiAgICAgUV9QUk9QRVJUWShRU3RyaW5nIHN0YW5kYXJkRm9udEZhbWlseSBSRUFEIHN0YW5kYXJk
Rm9udEZhbWlseSBXUklURSBzZXRTdGFuZGFyZEZvbnRGYW1pbHkgTk9USUZZIHN0YW5kYXJkRm9u
dEZhbWlseUNoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShRU3RyaW5nIGZpeGVkRm9udEZh
bWlseSBSRUFEIGZpeGVkRm9udEZhbWlseSBXUklURSBzZXRGaXhlZEZvbnRGYW1pbHkgTk9USUZZ
IGZpeGVkRm9udEZhbWlseUNoYW5nZWQgRklOQUwpCkBAIC05MSw2ICs5Miw5IEBAIHB1YmxpYzoK
ICAgICBib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldERl
dmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCBlbmFibGUpOwogCisgICAgYm9vbCB3ZWJHTEVuYWJs
ZWQoKSBjb25zdDsKKyAgICB2b2lkIHNldFdlYkdMRW5hYmxlZChib29sIGVuYWJsZSk7CisKICAg
ICBRU3RyaW5nIHN0YW5kYXJkRm9udEZhbWlseSgpIGNvbnN0OwogICAgIHZvaWQgc2V0U3RhbmRh
cmRGb250RmFtaWx5KGNvbnN0IFFTdHJpbmcmIGZhbWlseSk7CiAKQEAgLTEzMSw2ICsxMzUsNyBA
QCBRX1NJR05BTFM6CiAgICAgdm9pZCBuYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWRDaGFuZ2VkKCk7
CiAgICAgdm9pZCBmcmFtZUZsYXR0ZW5pbmdFbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgZGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZENoYW5nZWQoKTsKKyAgICB2b2lkIHdlYkdMRW5hYmxlZENoYW5n
ZWQoKTsKIAogICAgIHZvaWQgc3RhbmRhcmRGb250RmFtaWx5Q2hhbmdlZCgpOwogICAgIHZvaWQg
Zml4ZWRGb250RmFtaWx5Q2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaAppbmRleCBhZTYzNmMxLi43YzFjOWJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJl
bmNlc19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVm
ZXJlbmNlc19wX3AuaApAQCAtMzgsNyArMzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQsCiAgICAgICAgIFByaXZhdGVCcm93c2luZ0VuYWJsZWQsCiAgICAgICAg
IERuc1ByZWZldGNoRW5hYmxlZCwKLSAgICAgICAgRGV2ZWxvcGVyRXh0cmFzRW5hYmxlZAorICAg
ICAgICBEZXZlbG9wZXJFeHRyYXNFbmFibGVkLAorICAgICAgICBXZWJHTEVuYWJsZWQKICAgICB9
OwogCiAgICAgZW51bSBGb250RmFtaWx5IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xheWVyVHJlZUhvc3RQcm94eS5jcHAKaW5kZXggNWY3ODc2NC4uNGI5OTg0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5jcHAKQEAgLTE1MCw2
ICsxNTAsMTEgQEAgdm9pZCBMYXllclRyZWVIb3N0UHJveHk6OmRpZENoYW5nZVNjcm9sbFBvc2l0
aW9uKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZX
ZWJMYXllclRyZWVSZW5kZXJlcjo6ZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24sIG1fcmVuZGVyZXIu
Z2V0KCksIHBvc2l0aW9uKSk7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpzeW5jQ2Fu
dmFzKHVpbnQzMl90IGlkLCBjb25zdCBJbnRTaXplJiBjYW52YXNTaXplLCB1aW50MzJfdCBncmFw
aGljc1N1cmZhY2VUb2tlbikKK3sKKyAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZXZWJMYXllclRy
ZWVSZW5kZXJlcjo6c3luY0NhbnZhcywgbV9yZW5kZXJlci5nZXQoKSwgaWQsIGNhbnZhc1NpemUs
IGdyYXBoaWNzU3VyZmFjZVRva2VuKSk7Cit9CisKIHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5Ojpw
dXJnZUJhY2tpbmdTdG9yZXMoKQogewogICAgIG1fcmVuZGVyZXItPnNldEFjdGl2ZShmYWxzZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXgg
YWMzZDNkMi4uNzk1OGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
eWVyVHJlZUhvc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRy
ZWVIb3N0UHJveHkuaApAQCAtNjksNiArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVW
aWV3cG9ydCgpOwogICAgIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCk7CiAgICAgdm9pZCBkaWRDaGFu
Z2VTY3JvbGxQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24pOworICAg
IHZvaWQgc3luY0NhbnZhcyh1aW50MzJfdCBpZCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY2Fu
dmFzU2l6ZSwgdWludDMyX3QgZ3JhcGhpY3NTdXJmYWNlVG9rZW4pOwogICAgIHZvaWQgcHVyZ2VC
YWNraW5nU3RvcmVzKCk7CiAgICAgV2ViTGF5ZXJUcmVlUmVuZGVyZXIqIGxheWVyVHJlZVJlbmRl
cmVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJlci5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCAxY2RhZTBkLi5hODhiNDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkubWVzc2FnZXMuaW4KQEAgLTMzLDUgKzMzLDYgQEAg
bWVzc2FnZXMgLT4gTGF5ZXJUcmVlSG9zdFByb3h5IHsKICAgICBEZXN0cm95RGlyZWN0bHlDb21w
b3NpdGVkSW1hZ2UoaW50NjRfdCBrZXkpCiAgICAgRGlkUmVuZGVyRnJhbWUoKQogICAgIERpZENo
YW5nZVNjcm9sbFBvc2l0aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKQorICAgIFN5bmND
YW52YXModWludDMyX3QgaWQsIFdlYkNvcmU6OkludFNpemUgY2FudmFzU2l6ZSwgdWludDMyX3Qg
Z3JhcGhpY3NTdXJmYWNlVG9rZW4pCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCmluZGV4IGM2YzBmYWQuLjFhODhmN2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMYXllclRyZWVSZW5kZXJl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVy
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2lu
Y2x1ZGUgIlRleHR1cmVNYXBwZXIuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyQmFja2luZ1N0
b3JlLmgiCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1h
cHBlckxheWVyLmgiCiAjaW5jbHVkZSAiVXBkYXRlSW5mby5oIgogI2luY2x1ZGUgPE9wZW5HTFNo
aW1zLmg+CkBAIC0xOTQsNiArMTk1LDI4IEBAIHZvaWQgV2ViTGF5ZXJUcmVlUmVuZGVyZXI6OmRp
ZENoYW5nZVNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKICAgICBtX3Bl
bmRpbmdSZW5kZXJlZENvbnRlbnRzU2Nyb2xsUG9zaXRpb24gPSBib3VuZGVkU2Nyb2xsUG9zaXRp
b24ocG9zaXRpb24sIG1fdmlzaWJsZUNvbnRlbnRzUmVjdCwgbV9jb250ZW50c1NpemUpOwogfQog
Cit2b2lkIFdlYkxheWVyVHJlZVJlbmRlcmVyOjpzeW5jQ2FudmFzKFdlYkxheWVySUQgaWQsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIGNhbnZhc1NpemUsIHVpbnQzMl90IGdyYXBoaWNzU3VyZmFj
ZVRva2VuKQoreworICAgIGlmIChjYW52YXNTaXplLmlzRW1wdHkoKSB8fCAhbV90ZXh0dXJlTWFw
cGVyKQorICAgICAgICByZXR1cm47CisKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICBl
bnN1cmVMYXllcihpZCk7CisgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckJ5SUQoaWQp
OworCisgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlPiBjYW52YXNC
YWNraW5nU3RvcmU7CisgICAgU3VyZmFjZUJhY2tpbmdTdG9yZU1hcDo6aXRlcmF0b3IgaXQgPSBt
X3N1cmZhY2VCYWNraW5nU3RvcmVzLmZpbmQoaWQpOworICAgIGlmIChpdCA9PSBtX3N1cmZhY2VC
YWNraW5nU3RvcmVzLmVuZCgpKSB7CisgICAgICAgIGNhbnZhc0JhY2tpbmdTdG9yZSA9IFRleHR1
cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlOjpjcmVhdGUoKTsKKyAgICAgICAgbV9zdXJmYWNl
QmFja2luZ1N0b3Jlcy5zZXQoaWQsIGNhbnZhc0JhY2tpbmdTdG9yZSk7CisgICAgfSBlbHNlCisg
ICAgICAgIGNhbnZhc0JhY2tpbmdTdG9yZSA9IGl0LT5zZWNvbmQ7CisKKyAgICBjYW52YXNCYWNr
aW5nU3RvcmUtPnNldEdyYXBoaWNzU3VyZmFjZShncmFwaGljc1N1cmZhY2VUb2tlbiwgY2FudmFz
U2l6ZSk7CisgICAgbGF5ZXItPnNldENvbnRlbnRzVG9NZWRpYShjYW52YXNCYWNraW5nU3RvcmUu
Z2V0KCkpOworI2VuZGlmCit9CisKIHZvaWQgV2ViTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVy
Q2hpbGRyZW4oV2ViTGF5ZXJJRCBpZCwgY29uc3QgVmVjdG9yPFdlYkxheWVySUQ+JiBjaGlsZElE
cykKIHsKICAgICBlbnN1cmVMYXllcihpZCk7CkBAIC0yNzEsNiArMjk0LDkgQEAgdm9pZCBXZWJM
YXllclRyZWVSZW5kZXJlcjo6ZGVsZXRlTGF5ZXIoV2ViTGF5ZXJJRCBsYXllcklEKQogICAgIGxh
eWVyLT5yZW1vdmVGcm9tUGFyZW50KCk7CiAgICAgbV9sYXllcnMucmVtb3ZlKGxheWVySUQpOwog
ICAgIG1fZml4ZWRMYXllcnMucmVtb3ZlKGxheWVySUQpOworI2lmIFVTRShHUkFQSElDU19TVVJG
QUNFKQorICAgIG1fc3VyZmFjZUJhY2tpbmdTdG9yZXMucmVtb3ZlKGxheWVySUQpOworI2VuZGlm
CiAgICAgZGVsZXRlIGxheWVyOwogfQogCkBAIC00MTksNiArNDQ1LDkgQEAgdm9pZCBXZWJMYXll
clRyZWVSZW5kZXJlcjo6cHVyZ2VHTFJlc291cmNlcygpCiAgICAgICAgIGxheWVyLT5jbGVhckJh
Y2tpbmdTdG9yZXNSZWN1cnNpdmUoKTsKIAogICAgIG1fZGlyZWN0bHlDb21wb3NpdGVkSW1hZ2Vz
LmNsZWFyKCk7CisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgbV9zdXJmYWNlQmFja2lu
Z1N0b3Jlcy5jbGVhcigpOworI2VuZGlmCiAKICAgICBtX3Jvb3RMYXllci0+cmVtb3ZlQWxsQ2hp
bGRyZW4oKTsKICAgICBtX3Jvb3RMYXllci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRleCAwNDJjNTJkLi5kNjZiMTlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIuaApA
QCAtMjIsNiArMjIsNyBAQAogCiAjaWYgVVNFKFVJX1NJREVfQ09NUE9TSVRJTkcpCiAjaW5jbHVk
ZSAiQmFja2luZ1N0b3JlLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NTdXJmYWNlLmgiCiAjaW5jbHVk
ZSAiU2hhcmVhYmxlU3VyZmFjZS5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXIuaCIKICNpbmNs
dWRlICJUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgiCkBAIC02Nyw2ICs2OCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsK
ICAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYs
IGZsb2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhY2N1cmF0ZVZpc2libGVD
b250ZW50c1Bvc2l0aW9uKTsKICAgICB2b2lkIGRpZENoYW5nZVNjcm9sbFBvc2l0aW9uKGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7CisgICAgdm9pZCBzeW5jQ2FudmFzKHVpbnQz
Ml90IGlkLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjYW52YXNTaXplLCB1aW50MzJfdCBncmFw
aGljc1N1cmZhY2VUb2tlbik7CiAKICAgICB2b2lkIGRldGFjaCgpOwogICAgIHZvaWQgYXBwZW5k
VXBkYXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKQEAgLTExOCw2ICsxMjAsMTAgQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPGludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
QmFja2luZ1N0b3JlPiA+IG1fZGlyZWN0bHlDb21wb3NpdGVkSW1hZ2VzOwogICAgIEhhc2hTZXQ8
UmVmUHRyPExheWVyQmFja2luZ1N0b3JlPiA+IG1fYmFja2luZ1N0b3Jlc1dpdGhQZW5kaW5nQnVm
ZmVyczsKICNlbmRpZgorI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQorICAgIHR5cGVkZWYgSGFz
aE1hcDxXZWJMYXllcklELCBSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlclN1cmZhY2VCYWNr
aW5nU3RvcmU+ID4gU3VyZmFjZUJhY2tpbmdTdG9yZU1hcDsKKyAgICBTdXJmYWNlQmFja2luZ1N0
b3JlTWFwIG1fc3VyZmFjZUJhY2tpbmdTdG9yZXM7CisjZW5kaWYKIAogICAgIHZvaWQgc2NoZWR1
bGVXZWJWaWV3VXBkYXRlKCk7CiAgICAgdm9pZCBzeW5jaHJvbml6ZVZpZXdwb3J0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBo
aWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJHcmFwaGljc0xheWVyLmNwcAppbmRleCA4MGU4YjYxLi4wM2U1NjE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3Jh
cGhpY3NMYXllci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0xheWVy
LmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRl
ICJUaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkBAIC0xMDksOCArMTEwLDEwIEBAIFdlYkdyYXBo
aWNzTGF5ZXI6OldlYkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQog
ICAgICwgbV9zaG91bGRTeW5jTGF5ZXJTdGF0ZSh0cnVlKQogICAgICwgbV9zaG91bGRTeW5jQ2hp
bGRyZW4odHJ1ZSkKICAgICAsIG1fZml4ZWRUb1ZpZXdwb3J0KGZhbHNlKQorICAgICwgbV9jYW52
YXNOZWVkc0Rpc3BsYXkoZmFsc2UpCiAgICAgLCBtX3dlYkdyYXBoaWNzTGF5ZXJDbGllbnQoMCkK
ICAgICAsIG1fY29udGVudHNTY2FsZSgxKQorICAgICwgbV9jYW52YXNQbGF0Zm9ybUxheWVyKDAp
CiB7CiAgICAgc3RhdGljIFdlYkxheWVySUQgbmV4dExheWVySUQgPSAxOwogICAgIG1faWQgPSBu
ZXh0TGF5ZXJJRCsrOwpAQCAtMzE2LDYgKzMxOSwxNSBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6
OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KCkKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9p
bWFnZTsKICAgICBzZXRDb250ZW50c1RvSW1hZ2UoMCk7CiAgICAgc2V0Q29udGVudHNUb0ltYWdl
KGltYWdlLmdldCgpKTsKKyAgICBtX2NhbnZhc05lZWRzRGlzcGxheSA9IHRydWU7Cit9CisKK3Zv
aWQgV2ViR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBw
bGF0Zm9ybUxheWVyKQoreworICAgIG1fY2FudmFzUGxhdGZvcm1MYXllciA9IHBsYXRmb3JtTGF5
ZXI7CisgICAgbV9jYW52YXNOZWVkc0Rpc3BsYXkgPSB0cnVlOworICAgIGlmIChjbGllbnQoKSkK
KyAgICAgICAgY2xpZW50KCktPm5vdGlmeVN5bmNSZXF1aXJlZCh0aGlzKTsKIH0KIAogI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKQEAgLTQ2OCw2ICs0ODAsMTcgQEAgdm9pZCBXZWJHcmFwaGljc0xh
eWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAgbV93ZWJHcmFwaGljc0xheWVyQ2xpZW50LT5zeW5j
TGF5ZXJTdGF0ZShtX2lkLCBtX2xheWVySW5mbyk7CiB9CiAKK3ZvaWQgV2ViR3JhcGhpY3NMYXll
cjo6c3luY0NhbnZhcygpCit7CisgICAgaWYgKCFtX2NhbnZhc05lZWRzRGlzcGxheSkKKyAgICAg
ICAgcmV0dXJuOworICAgIGlmICghbV9jYW52YXNQbGF0Zm9ybUxheWVyKQorICAgICAgICByZXR1
cm47CisgICAgdWludDMyX3QgZ3JhcGhpY3NTdXJmYWNlVG9rZW4gPSBtX2NhbnZhc1BsYXRmb3Jt
TGF5ZXItPmNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpOworICAgIG1fd2ViR3JhcGhpY3NMYXllckNs
aWVudC0+c3luY0NhbnZhcyhtX2lkLCBJbnRTaXplKHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVp
Z2h0KCkpLCBncmFwaGljc1N1cmZhY2VUb2tlbik7CisgICAgbV9jYW52YXNOZWVkc0Rpc3BsYXkg
PSBmYWxzZTsKK30KKwogdm9pZCBXZWJHcmFwaGljc0xheWVyOjplbnN1cmVJbWFnZUJhY2tpbmdT
dG9yZSgpCiB7CiAgICAgaWYgKCFtX2ltYWdlKQpAQCAtNDc1LDYgKzQ5OCw3IEBAIHZvaWQgV2Vi
R3JhcGhpY3NMYXllcjo6ZW5zdXJlSW1hZ2VCYWNraW5nU3RvcmUoKQogICAgIGlmICghbV9sYXll
ckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRCkKICAgICAgICAgbV9sYXllckluZm8uaW1hZ2VCYWNr
aW5nU3RvcmVJRCA9IG1fd2ViR3JhcGhpY3NMYXllckNsaWVudC0+YWRvcHRJbWFnZUJhY2tpbmdT
dG9yZShtX2ltYWdlLmdldCgpKTsKIH0KKwogdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKQogewogICAgIC8vIFRoZSByZW1vdGUgaW1h
Z2UgbWlnaHQgaGF2ZSBiZWVuIHJlbGVhc2VkIGJ5IHB1cmdlQmFja2luZ1N0b3Jlcy4KQEAgLTQ4
Niw2ICs1MTAsNyBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRl
Rm9yVGhpc0xheWVyT25seSgpCiAgICAgc3luY0ZpbHRlcnMoKTsKICNlbmRpZgogICAgIHVwZGF0
ZUNvbnRlbnRCdWZmZXJzKCk7CisgICAgc3luY0NhbnZhcygpOwogfQogCiB2b2lkIFdlYkdyYXBo
aWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRCZWdpbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXll
ci5oCmluZGV4IGMyMmE4ODIuLmNkZDc4MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oCkBAIC02
MCw2ICs2MCw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVh
bCB2b2lkIHN5bmNMYXllckZpbHRlcnMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6RmlsdGVy
T3BlcmF0aW9ucyYpID0gMDsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFFUKQorICAgIHZpcnR1YWwg
dm9pZCBzeW5jQ2FudmFzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNhbnZh
c1NpemUsIHVpbnQzMl90IGdyYXBoaWNzU3VyZmFjZVRva2VuKSA9IDA7CisjZW5kaWYKICAgICB2
aXJ0dWFsIHZvaWQgYXR0YWNoTGF5ZXIoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllciopID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllciop
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3luY0ZpeGVkTGF5ZXJzKCkgPSAwOwpAQCAtOTgsNiAr
MTAxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3BhY2l0eShmbG9hdCk7CiAgICAgdm9pZCBz
ZXRDb250ZW50c1JlY3QoY29uc3QgSW50UmVjdCYpOwogICAgIHZvaWQgc2V0Q29udGVudHNUb0lt
YWdlKEltYWdlKik7CisgICAgdm9pZCBzZXRDb250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIq
KTsKICAgICB2b2lkIHNldE1hc2tMYXllcihHcmFwaGljc0xheWVyKik7CiAgICAgdm9pZCBzZXRS
ZXBsaWNhdGVkQnlMYXllcihHcmFwaGljc0xheWVyKik7CiAgICAgdm9pZCBzZXROZWVkc0Rpc3Bs
YXkoKTsKQEAgLTE0Nyw2ICsxNTEsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19GSUxURVJT
KQogICAgIHZvaWQgc3luY0ZpbHRlcnMoKTsKICNlbmRpZgorICAgIHZvaWQgc3luY0NhbnZhcygp
OwogICAgIHZvaWQgZW5zdXJlSW1hZ2VCYWNraW5nU3RvcmUoKTsKIAogICAgIHZvaWQgYWRqdXN0
VmlzaWJsZVJlY3QoKTsKQEAgLTE2OCw2ICsxNzMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9z
aG91bGRTeW5jQ2hpbGRyZW46IDE7CiAgICAgYm9vbCBtX3Nob3VsZFN5bmNGaWx0ZXJzOiAxOwog
ICAgIGJvb2wgbV9maXhlZFRvVmlld3BvcnQgOiAxOworICAgIGJvb2wgbV9jYW52YXNOZWVkc0Rp
c3BsYXkgOiAxOwogCiAgICAgdm9pZCBub3RpZnlDaGFuZ2UoKTsKICAgICB2b2lkIGRpZENoYW5n
ZUdlb21ldHJ5KCk7CkBAIC0xOTEsNiArMTk3LDcgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8V2Vi
Q29yZTo6VGlsZWRCYWNraW5nU3RvcmU+IG1fbWFpbkJhY2tpbmdTdG9yZTsKICAgICBPd25QdHI8
V2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU+IG1fcHJldmlvdXNCYWNraW5nU3RvcmU7CiAgICAg
ZmxvYXQgbV9jb250ZW50c1NjYWxlOworICAgIFBsYXRmb3JtTGF5ZXIqIG1fY2FudmFzUGxhdGZv
cm1MYXllcjsKIH07CiAKIFdlYkdyYXBoaWNzTGF5ZXIqIHRvV2ViR3JhcGhpY3NMYXllcihHcmFw
aGljc0xheWVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwCmluZGV4IDkwMzk0NTQuLmMyOTY0ODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0
UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRy
ZWVIb3N0UXQuY3BwCkBAIC0yNTYsNiArMjU2LDEyIEBAIHZvaWQgTGF5ZXJUcmVlSG9zdFF0Ojpz
eW5jTGF5ZXJDaGlsZHJlbihXZWJMYXllcklEIGlkLCBjb25zdCBWZWN0b3I8V2ViTGF5ZXJJRD4m
CiAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVIb3N0UHJveHk6OlNldENv
bXBvc2l0aW5nTGF5ZXJDaGlsZHJlbihpZCwgY2hpbGRyZW4pKTsKIH0KIAordm9pZCBMYXllclRy
ZWVIb3N0UXQ6OnN5bmNDYW52YXMoV2ViTGF5ZXJJRCBpZCwgY29uc3QgSW50U2l6ZSYgY2FudmFz
U2l6ZSwgdWludDMyX3QgZ3JhcGhpY3NTdXJmYWNlVG9rZW4pCit7CisgICAgbV9zaG91bGRTeW5j
RnJhbWUgPSB0cnVlOworICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlSG9z
dFByb3h5OjpTeW5jQ2FudmFzKGlkLCBjYW52YXNTaXplLCBncmFwaGljc1N1cmZhY2VUb2tlbikp
OworfQorCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9pZCBMYXllclRyZWVIb3N0UXQ6OnN5
bmNMYXllckZpbHRlcnMoV2ViTGF5ZXJJRCBpZCwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmls
dGVycykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9x
dC9MYXllclRyZWVIb3N0UXQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9x
dC9MYXllclRyZWVIb3N0UXQuaAppbmRleCBlZWNiNjJlLi4zM2ZkZWM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5o
CkBAIC03OSw2ICs3OSw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAg
dmlydHVhbCB2b2lkIHN5bmNMYXllckZpbHRlcnMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6
RmlsdGVyT3BlcmF0aW9ucyYpOwogI2VuZGlmCisgICAgdmlydHVhbCB2b2lkIHN5bmNDYW52YXMo
V2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY2FudmFzU2l6ZSwgdWludDMyX3Qg
Z3JhcGhpY3NTdXJmYWNlVG9rZW4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hM
YXllcihXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIGRldGFj
aExheWVyKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3lu
Y0ZpeGVkTGF5ZXJzKCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggNDMyMmQ0OC4uMzBkMWRmYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2LTAxICBaZW5v
IEFsYmlzc2VyICA8emVub0B3ZWJraXQub3JnPgorCisgICAgICAgIEZpeCBhbmQgZW5hYmxlIFdl
YkdMIGZvciBXZWJLaXQyIG9uIFF0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODYyMTQKKworICAgICAgICBFbmFibGUgV2ViR0wgYnkgZGVmYXVsdCBm
b3IgUXQgTWluaUJyb3dzZXIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWw6CisKIDIw
MTItMDYtMDEgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggV2luZG93cyBidWlsZC4KZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9C
cm93c2VyV2luZG93LnFtbCBiL1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93
LnFtbAppbmRleCAwZWJmMDI4Li5hNDJhMmU5IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nl
ci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1s
L0Jyb3dzZXJXaW5kb3cucW1sCkBAIC0zMzUsNiArMzM1LDcgQEAgUmVjdGFuZ2xlIHsKIAogICAg
ICAgICBleHBlcmltZW50YWwuZGV2aWNlUGl4ZWxSYXRpbzogMS41CiAgICAgICAgIGV4cGVyaW1l
bnRhbC5wcmVmZXJlbmNlcy5mdWxsU2NyZWVuRW5hYmxlZDogdHJ1ZQorICAgICAgICBleHBlcmlt
ZW50YWwucHJlZmVyZW5jZXMud2ViR0xFbmFibGVkOiB0cnVlCiAgICAgICAgIGV4cGVyaW1lbnRh
bC5wcmVmZXJyZWRNaW5pbXVtQ29udGVudHNXaWR0aDogOTgwCiAgICAgICAgIGV4cGVyaW1lbnRh
bC5pdGVtU2VsZWN0b3I6IEl0ZW1TZWxlY3RvciB7IH0KICAgICAgICAgZXhwZXJpbWVudGFsLmFs
ZXJ0RGlhbG9nOiBBbGVydERpYWxvZyB7IH0K
</data>
<flag name="review"
          id="152483"
          type_id="1"
          status="-"
          setter="zeno"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145374</attachid>
            <date>2012-06-01 13:54:39 -0700</date>
            <delta_ts>2012-06-01 17:17:26 -0700</delta_ts>
            <desc>patch for review.</desc>
            <filename>86214_20120601-225318.patch</filename>
            <type>text/plain</type>
            <size>30112</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZmU1MGUwLi5jOWI4NTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkg
QEAKKzIwMTItMDYtMDEgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgRml4IGFuZCBlbmFibGUgV2ViR0wgZm9yIFdlYktpdDIgb24gUXQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjIxNAorCisgICAgICAgIE1ha2Ug
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIHVzZSBHcmFwaGljc1N1cmZhY2VzCisgICAgICAgIGZv
ciBXSzIuIFRoZSBHcmFwaGljc0NvbnRleHQzRCB0aGVuIHVzZXMgdGhlIGV4aXN0aW5nCisgICAg
ICAgIFJlbmRlckJ1ZmZlciBmb3IgbXVsdGlzYW1wbGUgcmVuZGVyaW5nLgorICAgICAgICBXaGVu
IFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlIGlzIGJlaW5nCisgICAgICAg
IGV4ZWN1dGVkLCB0aGUgY2FudmFzIGlzIGJlaW5nIHN5bmNlZCBhcyB3ZWxsLiBUaGlzIG1lYW5z
CisgICAgICAgIHRoYXQgdGhlIFJlbmRlckJ1ZmZlciBjb250ZW50cyBhcmUgYmVpbmcgYmxpdCBv
bnRvCisgICAgICAgIGEgR3JhcGhpY3NTdXJmYWNlLCBhbmQgdGhlIEdyYXBoaWNzU3VyZmFjZSB0
b2tlbiBpcworICAgICAgICBiZWluZyBzZW50IHRvIHRoZSBVSVByb2Nlc3MuCisgICAgICAgIFRo
ZSBXZWJMYXllclRyZWVSZW5kZXJlciB0aGVuIGNyZWF0ZXMgYQorICAgICAgICBUZXh0dXJlTWFw
cGVyU3VyZmFjZUJhY2tpbmdTdG9yZSBmb3IgdGhlIGNhbnZhcyBhbmQKKyAgICAgICAgcGFzc2Vz
IHRoZSBHcmFwaGljc1N1cmZhY2UgdG9rZW4gYXMgYW4gYXJndW1lbnQuCisgICAgICAgIFRoZSB0
b2tlbiBjYW4gdGhlbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBHcmFwaGljc1N1cmZhY2UKKyAg
ICAgICAgZnJvbSB0aGUgVUlQcm9jZXNzIHNpZGUuCisKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmg6CisgICAgICAgIEFkZGVkIHJlc2hhcGVTdXJmYWNlIGZ1bmN0aW9uLiBUaGlzIGlz
IGN1cnJlbnRseSBvbmx5CisgICAgICAgIGJlaW5nIHVzZWQgYnkgdGhlIFF0IHBvcnQuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xD
b21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGUp
OgorICAgICAgICBDYWxsaW5nIHRoZSByZXNoYXBlU3VyZmFjZSBmdW5jdGlvbiB3aGVuIHRoZSBH
cmFwaGljc0NvbnRleHQzRAorICAgICAgICBpcyByZXNoYXBlZC4gVGhpcyBpcyBjdXJyZW50bHkg
b25seSByZWxldmFudCBmb3IgdGhlIFF0IHBvcnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZSk6CisgICAgICAgIEFkZGVkIG1fZnJvbnRCdWZmZXJHcmFwaGljc1N1cmZhY2Us
IG1fYmFja0J1ZmZlckdyYXBoaWNzU3VyZmFjZQorICAgICAgICBhbmQgbV9zdXJmYWNlRmxhZ3Mg
bWVtYmVycy4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlKToKKyAgICAgICAgSW4gY2FzZSBvZiBXSzIsIGNyZWF0ZSBh
IFFPcGVuR0xDb250ZXh0IGFuZCB0d28gR3JhcGhpY3NTdXJmYWNlCisgICAgICAgIGZvciBzaGFy
aW5nIHRoZSBXZWJHTCBjb250ZW50IHdpdGggdGhlIFVJUHJvY2Vzcy4gT25lIEdyYXBoaWNzU3Vy
ZmFjZQorICAgICAgICBpcyBiZWluZyB1c2VkIGFzIHRoZSBmcm9udCwgdGhlIG90aGVyIG9uZSBh
cyB0aGUgYmFja2J1ZmZlci4KKyAgICAgICAgQ3JlYXRpbmcgYSBRT3BlbkdMQ29udGV4dCBjdXJy
ZW50bHkgcmVxdWlyZXMgc2hvd2luZyBhIFFXaW5kb3cuCisgICAgICAgIEZvciB0aGUgbW9tZW50
IHdlIHRoZXJlZm9yZSBjcmVhdGUgYSBtaW5pbWFsIFFXaW5kb3cgYW5kIHBsYWNlCisgICAgICAg
IGl0IG9mZnNjcmVlbi4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZTo6Y29weVRvR3JhcGhpY3NTdXJmYWNlKToKKyAgICAgICAgVGhpcyBuZXcgZnVuY3Rpb24gaXMg
Y2FsbGVkIGZyb20gdGhlIFdlYkdyYXBoaWNzTGF5ZXIsCisgICAgICAgIHRvIGJsaXQgdGhlIG11
bHRpc2FtcGxlIGZyYW1lYnVmZmVyIGFuZCBjb3B5IGl0cyBjb250ZW50cworICAgICAgICBvbnRv
IHRoZSBHcmFwaGljc1N1cmZhY2UuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RFByaXZhdGU6OnJlc2hhcGUpOgorICAgICAgICBXaGVuZXZlciB0aGUgR3JhcGhpY3NDb250ZXh0
M0QgaXMgYmVpbmcgcmVzaGFwZWQsCisgICAgICAgIGEgbmV3IEdyYXBoaWNzU3VyZmFjZSBtdXN0
IGJlIGNyZWF0ZWQgd2l0aCB0aGUgdXBkYXRlZCBkaW1lbnNpb25zLgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVTdXJmYWNlKToKKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllci5oOgorICAgICAg
ICBBZGRlZCBhIG5ldyB2aXJ0dWFsIGZ1bmN0aW9uIGNvcHlUb0dyYXBoaWNzU3VyZmFjZS4KKyAg
ICAgICAgKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyOjpjb3B5VG9HcmFwaGljc1N1cmZhY2UpOgorCiAyMDEy
LTA2LTAxICBKb2UgVGhvbWFzICA8am9ldGhvbWFzQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBn
ZXRDb21wdXRlZFN0eWxlIGZvciBiYWNrZ3JvdW5kIHNob3J0aGFuZCBwcm9wZXJ0eSBkb2VzIG5v
dCByZXR1cm4gYmFja2dyb3VuZC1vcmlnaW4gYW5kIGJhY2tncm91bmQtY2xpcC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmlu
ZGV4IGIwYmM1YzAuLjYyNWVkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtOTExLDYgKzkxMSw5IEBAIHB1Ymxp
YzoKIAogICAgIGJvb2wgcmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYpOwogICAgIHZvaWQgcmVz
b2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShjb25zdCBJbnRSZWN0JiA9IEludFJlY3QoKSk7
CisjaWYgUExBVEZPUk0oUVQpICYmIFVTRShHUkFQSElDU19TVVJGQUNFKQorICAgIHZvaWQgcmVz
aGFwZVN1cmZhY2UoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyNlbmRpZgogCiAgICAgaW50IG1f
Y3VycmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQ7CiAgICAgYm9vbCBpc1Jlc291cmNlU2FmZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXgg
YzExNzcyMS4uNzAzNTQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0xDb21tb24uY3BwCkBAIC0yMjIsNiArMjIyLDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIGlmICh3aWR0aCA9PSBtX2N1cnJl
bnRXaWR0aCAmJiBoZWlnaHQgPT0gbV9jdXJyZW50SGVpZ2h0KQogICAgICAgICByZXR1cm47CiAK
KyNpZiBQTEFURk9STShRVCkgJiYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgOjpnbEZsdXNo
KCk7IC8vIE1ha2Ugc3VyZSBhbGwgR0wgY2FsbHMgaGF2ZSBiZWVuIGNvbW1pdHRlZCBiZWZvcmUg
cmVzaXppbmcuCisgICAgcmVzaGFwZVN1cmZhY2Uod2lkdGgsIGhlaWdodCk7CisjZW5kaWYKKwor
CiAgICAgbV9jdXJyZW50V2lkdGggPSB3aWR0aDsKICAgICBtX2N1cnJlbnRIZWlnaHQgPSBoZWln
aHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dy
YXBoaWNzQ29udGV4dDNEUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAKaW5kZXggZjNhN2VhOC4uYjEzZDFhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0
M0RRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhp
Y3NDb250ZXh0M0RRdC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJFeHRlbnNpb25z
M0RPcGVuR0wuaCIKICNlbmRpZgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1
ZGUgIkdyYXBoaWNzU3VyZmFjZS5oIgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSG9zdFdpbmRvdy5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCkBAIC0zNiw2
ICszNyw5IEBACiAjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKICNpbmNsdWRlICJRV2ViUGFnZUNs
aWVudC5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2lmIEhBVkUoUVQ1KQorI2luY2x1
ZGUgPFFXaW5kb3c+CisjZW5kaWYKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTY3LDE2ICs3MSwyNSBAQCBwdWJsaWM6CiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqLCBjb25z
dCBGbG9hdFJlY3QmIHRhcmdldCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCBv
cGFjaXR5LCBCaXRtYXBUZXh0dXJlKiBtYXNrKTsKICNlbmRpZgorI2lmIFVTRShHUkFQSElDU19T
VVJGQUNFKQorICAgIHZpcnR1YWwgdWludDMyX3QgY29weVRvR3JhcGhpY3NTdXJmYWNlKCk7Cisj
ZW5kaWYKIAogICAgIFFSZWN0RiBib3VuZGluZ1JlY3QoKSBjb25zdDsKICAgICB2b2lkIGJsaXRN
dWx0aXNhbXBsZUZyYW1lYnVmZmVyKCkgY29uc3Q7CiAgICAgdm9pZCBibGl0TXVsdGlzYW1wbGVG
cmFtZWJ1ZmZlckFuZFJlc3RvcmVDb250ZXh0KCkgY29uc3Q7CiAgICAgYm9vbCBtYWtlQ3VycmVu
dElmTmVlZGVkKCkgY29uc3Q7CisgICAgdm9pZCByZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdo
dCk7CiAKICAgICBHcmFwaGljc0NvbnRleHQzRCogbV9jb250ZXh0OwogICAgIEhvc3RXaW5kb3cq
IG1faG9zdFdpbmRvdzsKICAgICBQbGF0Zm9ybUdyYXBoaWNzU3VyZmFjZTNEIG1fc3VyZmFjZTsK
ICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIG1fcGxhdGZvcm1Db250ZXh0OworI2lmIFVT
RShHUkFQSElDU19TVVJGQUNFKQorICAgIEdyYXBoaWNzU3VyZmFjZTo6RmxhZ3MgbV9zdXJmYWNl
RmxhZ3M7CisgICAgUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gbV9mcm9udEJ1ZmZlckdyYXBoaWNz
U3VyZmFjZTsKKyAgICBSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPiBtX2JhY2tCdWZmZXJHcmFwaGlj
c1N1cmZhY2U7CisjZW5kaWYKIH07CiAKIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmlzR0xFUzJD
b21wbGlhbnQoKSBjb25zdApAQCAtOTUsMTIgKzEwOCwzOSBAQCBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4
dCwgSAogICAgICwgbV9wbGF0Zm9ybUNvbnRleHQoMCkKIHsKICAgICBRV2ViUGFnZUNsaWVudCog
d2ViUGFnZUNsaWVudCA9IG1faG9zdFdpbmRvdy0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7Ci0gICAg
aWYgKCF3ZWJQYWdlQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0gICAgd2ViUGFnZUNsaWVudC0+
Y3JlYXRlUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgmbV9wbGF0Zm9ybUNvbnRleHQsICZtX3N1
cmZhY2UpOwotICAgIGlmICghbV9zdXJmYWNlKQotICAgICAgICByZXR1cm47Ci0gICAgbWFrZUN1
cnJlbnRJZk5lZWRlZCgpOworICAgIGlmICghd2ViUGFnZUNsaWVudCkgeworI2lmIEhBVkUoUVQ1
KQorICAgICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byBjcmVhdGUgYSBRT3BlbkdMQ29udGV4
dCB3aXRob3V0IGNyZWF0aW5nIGEgUVdpbmRvdyBhdCBhbGwuCisgICAgICAgIC8vIFdlIG5lZWQg
dG8gY3JlYXRlIGEgc3VyZmFjZSBpbiBvcmRlciB0byBjcmVhdGUgYSBRT3BlbkdMQ29udGV4dCBh
bmQgbWFrZSBpdCBjdXJyZW50LgorICAgICAgICBRV2luZG93KiB3aW5kb3cgPSBuZXcgUVdpbmRv
dzsKKyAgICAgICAgd2luZG93LT5zZXRTdXJmYWNlVHlwZShRU3VyZmFjZTo6T3BlbkdMU3VyZmFj
ZSk7CisgICAgICAgIHdpbmRvdy0+c2V0R2VvbWV0cnkoLTEwLCAtMTAsIDEsIDEpOworICAgICAg
ICB3aW5kb3ctPmNyZWF0ZSgpOworICAgICAgICBtX3N1cmZhY2UgPSB3aW5kb3c7CisKKyAgICAg
ICAgbV9wbGF0Zm9ybUNvbnRleHQgPSBuZXcgUU9wZW5HTENvbnRleHQod2luZG93KTsKKyAgICAg
ICAgaWYgKCFtX3BsYXRmb3JtQ29udGV4dC0+Y3JlYXRlKCkpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgbWFrZUN1cnJlbnRJZk5lZWRlZCgpOworI2lmIFVTRShHUkFQSElDU19TVVJG
QUNFKQorICAgICAgICBJbnRTaXplIHN1cmZhY2VTaXplKG1fY29udGV4dC0+bV9jdXJyZW50V2lk
dGgsIG1fY29udGV4dC0+bV9jdXJyZW50SGVpZ2h0KTsKKworICAgICAgICBtX3N1cmZhY2VGbGFn
cyA9IEdyYXBoaWNzU3VyZmFjZTo6U3VwcG9ydHNUZXh0dXJlVGFyZ2V0CisgICAgICAgICAgICAg
ICAgICAgICAgICB8IEdyYXBoaWNzU3VyZmFjZTo6U3VwcG9ydHNTaGFyaW5nOworCisgICAgICAg
IGlmICghc3VyZmFjZVNpemUuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBtX2Zyb250QnVmZmVy
R3JhcGhpY3NTdXJmYWNlID0gR3JhcGhpY3NTdXJmYWNlOjpjcmVhdGUoc3VyZmFjZVNpemUsIG1f
c3VyZmFjZUZsYWdzKTsKKyAgICAgICAgICAgIG1fYmFja0J1ZmZlckdyYXBoaWNzU3VyZmFjZSA9
IEdyYXBoaWNzU3VyZmFjZTo6Y3JlYXRlKHN1cmZhY2VTaXplLCBtX3N1cmZhY2VGbGFncyk7Cisg
ICAgICAgIH0KKyNlbmRpZgorI2VuZGlmCisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVGhpcyBp
cyB0aGUgV2ViS2l0MSBjb2RlIHBhdGguCisgICAgICAgIHdlYlBhZ2VDbGllbnQtPmNyZWF0ZVBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoJm1fcGxhdGZvcm1Db250ZXh0LCAmbV9zdXJmYWNlKTsK
KyAgICAgICAgaWYgKCFtX3N1cmZhY2UpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQogfQog
CiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6On5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKQpA
QCAtMTc0LDYgKzIxNCwyNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cGFpbnRU
b1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcgogfQogI2VuZGlmIC8v
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAorI2lmIFVTRShHUkFQSElDU19TVVJGQUNF
KQordWludDMyX3QgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjb3B5VG9HcmFwaGljc1N1cmZh
Y2UoKQoreworICAgIGlmICghbV9mcm9udEJ1ZmZlckdyYXBoaWNzU3VyZmFjZSB8fCAhbV9iYWNr
QnVmZmVyR3JhcGhpY3NTdXJmYWNlKQorICAgICAgICByZXR1cm4gMDsKKyAgICBibGl0TXVsdGlz
YW1wbGVGcmFtZWJ1ZmZlckFuZFJlc3RvcmVDb250ZXh0KCk7CisgICAgbWFrZUN1cnJlbnRJZk5l
ZWRlZCgpOworICAgIG1fYmFja0J1ZmZlckdyYXBoaWNzU3VyZmFjZS0+Y29weUZyb21GcmFtZWJ1
ZmZlcihtX2NvbnRleHQtPm1fZmJvLCBJbnRSZWN0KDAsIDAsIG1fY29udGV4dC0+bV9jdXJyZW50
V2lkdGgsIG1fY29udGV4dC0+bV9jdXJyZW50SGVpZ2h0KSk7CisgICAgdWludDMyX3QgdG9rZW4g
PSBtX2JhY2tCdWZmZXJHcmFwaGljc1N1cmZhY2UtPmV4cG9ydFRva2VuKCk7CisKKyAgICAvLyBT
d2FwIHRoZSBmcm9udCBhbmQgYmFjayBidWZmZXIgR3JhcGhpY3NTdXJmYWNlLgorICAgIFJlZlB0
cjxHcmFwaGljc1N1cmZhY2U+IHRlbXAgPSBtX2Zyb250QnVmZmVyR3JhcGhpY3NTdXJmYWNlOwor
ICAgIG1fZnJvbnRCdWZmZXJHcmFwaGljc1N1cmZhY2UgPSBtX2JhY2tCdWZmZXJHcmFwaGljc1N1
cmZhY2U7CisgICAgbV9iYWNrQnVmZmVyR3JhcGhpY3NTdXJmYWNlID0gdGVtcDsKKyAgICByZXR1
cm4gdG9rZW47Cit9CisjZW5kaWYKKwogUVJlY3RGIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6
Ym91bmRpbmdSZWN0KCkgY29uc3QKIHsKICAgICByZXR1cm4gUVJlY3RGKFFQb2ludEYoMCwgMCks
IFFTaXplRihtX2NvbnRleHQtPm1fY3VycmVudFdpZHRoLCBtX2NvbnRleHQtPm1fY3VycmVudEhl
aWdodCkpOwpAQCAtMjM1LDYgKzI5MywyMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZTo6bWFrZUN1cnJlbnRJZk5lZWRlZCgpIGNvbnN0CiAjZW5kaWYKIH0KIAordm9pZCBHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGU6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQoreworI2lm
IFVTRShHUkFQSElDU19TVVJGQUNFKQorICAgIEludFNpemUgY29udGV4dFNpemUod2lkdGgsIGhl
aWdodCk7CisgICAgaWYgKGNvbnRleHRTaXplLmlzRW1wdHkoKSkgeworICAgICAgICBtX2Zyb250
QnVmZmVyR3JhcGhpY3NTdXJmYWNlID0gMDsKKyAgICAgICAgbV9iYWNrQnVmZmVyR3JhcGhpY3NT
dXJmYWNlID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICBtX2Zyb250QnVmZmVyR3JhcGhpY3NT
dXJmYWNlID0gR3JhcGhpY3NTdXJmYWNlOjpjcmVhdGUoY29udGV4dFNpemUsIG1fc3VyZmFjZUZs
YWdzKTsKKyAgICAgICAgbV9iYWNrQnVmZmVyR3JhcGhpY3NTdXJmYWNlID0gR3JhcGhpY3NTdXJm
YWNlOjpjcmVhdGUoY29udGV4dFNpemUsIG1fc3VyZmFjZUZsYWdzKTsKKyAgICB9CisjZW5kaWYK
K30KKwogUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNy
ZWF0ZShHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyogaG9z
dFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQogewog
ICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCByZW5k
ZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RXaW5kb3cuCkBAIC00MDcsNiArNDc5LDEzIEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50VG9DYW52YXMoY29uc3QgdW5zaWduZWQgY2hhciog
aW1hZ2VQaXhlbHMsIGludCBpbWFnCiAgICAgY29udGV4dC0+cmVzdG9yZSgpOwogfQogCisjaWYg
VVNFKEdSQVBISUNTX1NVUkZBQ0UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlU3Vy
ZmFjZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgICAgbV9wcml2YXRlLT5yZXNoYXBlKHdp
ZHRoLCBoZWlnaHQpOworfQorI2VuZGlmCisKICNpZiBkZWZpbmVkKFFUX09QRU5HTF9FU18yKQog
UGFzc1JlZlB0cjxJbWFnZURhdGE+IEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jl
c3VsdHNUb0ltYWdlRGF0YShEcmF3aW5nQnVmZmVyKikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyLmgKaW5kZXggM2QyNDdhMi4uOTYxNGM4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgKQEAgLTMyLDYgKzMyLDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgflRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyKCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4ID0gVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKSwgZmxvYXQgb3BhY2l0eSA9IDEuMCwgQml0bWFwVGV4dHVyZSogbWFzayA9
IDApID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKSB7IH0KKyNpZiBVU0UoR1JB
UEhJQ1NfU1VSRkFDRSkKKyAgICB2aXJ0dWFsIHVpbnQzMl90IGNvcHlUb0dyYXBoaWNzU3VyZmFj
ZSgpIHsgcmV0dXJuIDA7IH0KKyNlbmRpZgogfTsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkM2YyNDU1
Li4yMmM1OTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTItMDYtMDEgIFplbm8g
QWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRml4IGFuZCBlbmFibGUgV2Vi
R0wgZm9yIFdlYktpdDIgb24gUXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjIxNAorCisgICAgICAgIEFkZGVkIGdsdWUgY29kZSB0byBtYWtlIHVz
ZSBvZiBHcmFwaGljc1N1cmZhY2UKKyAgICAgICAgYXMgYSBiYWNrZW5kIGZvciB0aGUgd2ViZ2wt
Y2FudmFzIGluIGNhc2Ugb2YgV0syLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwOgor
ICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZSk6CisgICAgICAg
IChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUpOgorICAgICAgICAoUVdlYlBy
ZWZlcmVuY2VzOjp3ZWJHTEVuYWJsZWQpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzOjpzZXRX
ZWJHTEVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2Vz
X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaDoK
KyAgICAgICAgQWRkZWQgV2ViR0xFbmFibGVkIGVudW0gdG8gYWxsb3cgZW5hYmxpbmcvZGlzYWJs
aW5nIG9mCisgICAgICAgIFdlYkdMIHVzaW5nIFFXZWJQcmVmZXJlbmNlcy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVIb3N0UHJveHk6OnN5bmNDYW52YXMpOgorICAgICAgICBEaXNwYXRjaCBzeW5jQ2FudmFz
IGNhbGxzIHRvIHRoZSBhcHJvcHJpYXRlCisgICAgICAgIFdlYkxheWVyVHJlZVJlbmRlcmVyLgor
CisgICAgICAgICogVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oOgorICAgICAgICAoTGF5
ZXJUcmVlSG9zdFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5o
OgorICAgICAgICAoV2ViTGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJMYXllclRyZWVSZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVJl
bmRlcmVyOjpzeW5jQ2FudmFzKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlUmVuZGVy
ZXI6OmRlbGV0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlUmVuZGVyZXI6
OnB1cmdlR0xSZXNvdXJjZXMpOgorICAgICAgICBDcmVhdGUgYSBUZXh0dXJlTWFwcGVyU3VyZmFj
ZUJhY2tpbmdTdG9yZSBmb3IgdGhlIGNhbnZhcworICAgICAgICBpZiBuZWNlc3NhcnkgYW5kIHBh
c3Mgb3IgdXBkYXRlIHRoZSBncmFwaGljc1N1cmZhY2VUb2tlbgorICAgICAgICBmb3IgdG8gYmUg
dXNlZCB3aXRoIHRoZSBiYWNraW5nIHN0b3JlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdy
YXBoaWNzTGF5ZXI6OldlYkdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvQ2FudmFzKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDYW52YXMpOgorICAgICAgICBD
b3B5IHRoZSBtdWx0aXNhbXBsZSBmcmFtZWJ1ZmZlciBjb250ZW50cyBvbnRvIHRoZSBHcmFwaGlj
c1N1cmZhY2UuCisgICAgICAgIE5vdGlmeSB0aGUgVUlQcm9jZXNzIG9mIHRoZSBhdmFpbGFiaWxp
dHkgb2YgYSBuZXcgdGV4dHVyZS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6
OnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSk6CisgICAgICAgIFN5bmMgdGhl
IGNhbnZhcyBhcyB3ZWxsLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJHcmFwaGljc0xheWVyLmg6CisgICAgICAgIEFkZGVkIGEgcHVyZSB2aXJ0dWFsIGZ1bmN0aW9u
IHN5bmNDYW52YXMuCisgICAgICAgIFRoaXMgaXMgZ3VhcmRlZCBieSBQTEFURk9STShRVCkuCisg
ICAgICAgIChXZWJHcmFwaGljc0xheWVyQ2xpZW50KToKKyAgICAgICAgKFdlYkdyYXBoaWNzTGF5
ZXIpOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RRdDo6c3luY0xheWVyQ2hpbGRyZW4p
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFF0Ojpz
eW5jQ2FudmFzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9z
dFF0Lmg6CisgICAgICAgIChMYXllclRyZWVIb3N0UXQpOgorCiAyMDEyLTA2LTAxICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTEz
MzU2MjI+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVu
Y2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2Vz
LmNwcAppbmRleCAwYjNmMzZkLi45YTMwZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCkBAIC02Myw2ICs2MywxMCBAQCBi
b29sIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTo6V2ViQXR0cmlidXRlCiAgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIERldmVsb3Bl
ckV4dHJhc0VuYWJsZWQ6CiAgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RGV2ZWxvcGVy
RXh0cmFzRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAg
Y2FzZSBXZWJHTEVuYWJsZWQ6CisgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0V2ViR0xF
bmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOworI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEwNiw2ICsx
MTAsMTEgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUoUVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlIGEKICAgICBjYXNlIERldmVsb3BlckV4dHJh
c0VuYWJsZWQ6CiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVk
KHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShX
RUJHTCkKKyAgICBjYXNlIFdlYkdMRW5hYmxlZDoKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFdl
YkdMRW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOworICAgICAgICBicmVhazsKKyNl
bmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0K
QEAgLTQ3Niw2ICs0ODUsMjUgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXM6OnNldERlZmF1bHRGaXhl
ZEZvbnRTaXplKHVuc2lnbmVkIHNpemUpCiAgICAgZW1pdCBkZWZhdWx0Rml4ZWRGb250U2l6ZUNo
YW5nZWQoKTsKIH0KIAorYm9vbCBRV2ViUHJlZmVyZW5jZXM6OndlYkdMRW5hYmxlZCgpIGNvbnN0
Cit7CisjaWYgRU5BQkxFKFdFQkdMKQorICAgIHJldHVybiBkLT50ZXN0QXR0cmlidXRlKFFXZWJQ
cmVmZXJlbmNlc1ByaXZhdGU6OldlYkdMRW5hYmxlZCk7CisjZWxzZQorICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgorfQorCit2b2lkIFFXZWJQcmVmZXJlbmNlczo6c2V0V2ViR0xFbmFibGVkKGJv
b2wgZW5hYmxlKQoreworI2lmIEVOQUJMRShXRUJHTCkKKyAgICBkLT5zZXRBdHRyaWJ1dGUoUVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViR0xFbmFibGVkLCBlbmFibGUpOworICAgIGVtaXQgd2Vi
R0xFbmFibGVkQ2hhbmdlZCgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlKTsKKyNl
bmRpZgorfQorCiBXS1ByZWZlcmVuY2VzUmVmIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnByZWZl
cmVuY2VzUmVmKCkgY29uc3QKIHsKICAgICBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYgPSB0
b0FQSSh3ZWJWaWV3UHJpdmF0ZS0+d2ViUGFnZVByb3h5LT5wYWdlR3JvdXAoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgKaW5k
ZXggMjQ4NTliZi4uODYxOGY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3AuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAg
ICAgUV9QUk9QRVJUWShib29sIG5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCBSRUFEIG5hdmlnYXRv
clF0T2JqZWN0RW5hYmxlZCBXUklURSBzZXROYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQgTk9USUZZ
IG5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZENoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShi
b29sIGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgUkVBRCBmcmFtZUZsYXR0ZW5pbmdFbmFibGVkIFdS
SVRFIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgTk9USUZZIGZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWRDaGFuZ2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoYm9vbCBkZXZlbG9wZXJFeHRyYXNFbmFi
bGVkIFJFQUQgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBXUklURSBzZXREZXZlbG9wZXJFeHRyYXNF
bmFibGVkIE5PVElGWSBkZXZlbG9wZXJFeHRyYXNFbmFibGVkQ2hhbmdlZCBGSU5BTCkKKyAgICBR
X1BST1BFUlRZKGJvb2wgd2ViR0xFbmFibGVkIFJFQUQgd2ViR0xFbmFibGVkIFdSSVRFIHNldFdl
YkdMRW5hYmxlZCBOT1RJRlkgd2ViR0xFbmFibGVkQ2hhbmdlZCBGSU5BTCkKIAogICAgIFFfUFJP
UEVSVFkoUVN0cmluZyBzdGFuZGFyZEZvbnRGYW1pbHkgUkVBRCBzdGFuZGFyZEZvbnRGYW1pbHkg
V1JJVEUgc2V0U3RhbmRhcmRGb250RmFtaWx5IE5PVElGWSBzdGFuZGFyZEZvbnRGYW1pbHlDaGFu
Z2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoUVN0cmluZyBmaXhlZEZvbnRGYW1pbHkgUkVBRCBm
aXhlZEZvbnRGYW1pbHkgV1JJVEUgc2V0Rml4ZWRGb250RmFtaWx5IE5PVElGWSBmaXhlZEZvbnRG
YW1pbHlDaGFuZ2VkIEZJTkFMKQpAQCAtOTEsNiArOTIsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBk
ZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZXZlbG9wZXJFeHRy
YXNFbmFibGVkKGJvb2wgZW5hYmxlKTsKIAorICAgIGJvb2wgd2ViR0xFbmFibGVkKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRXZWJHTEVuYWJsZWQoYm9vbCBlbmFibGUpOworCiAgICAgUVN0cmluZyBz
dGFuZGFyZEZvbnRGYW1pbHkoKSBjb25zdDsKICAgICB2b2lkIHNldFN0YW5kYXJkRm9udEZhbWls
eShjb25zdCBRU3RyaW5nJiBmYW1pbHkpOwogCkBAIC0xMzEsNiArMTM1LDcgQEAgUV9TSUdOQUxT
OgogICAgIHZvaWQgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQg
ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIGRldmVsb3BlckV4dHJh
c0VuYWJsZWRDaGFuZ2VkKCk7CisgICAgdm9pZCB3ZWJHTEVuYWJsZWRDaGFuZ2VkKCk7CiAKICAg
ICB2b2lkIHN0YW5kYXJkRm9udEZhbWlseUNoYW5nZWQoKTsKICAgICB2b2lkIGZpeGVkRm9udEZh
bWlseUNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKaW5kZXggYWU2MzZjMS4uN2MxYzliZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9w
LmgKQEAgLTM4LDcgKzM4LDggQEAgcHVibGljOgogICAgICAgICBGcmFtZUZsYXR0ZW5pbmdFbmFi
bGVkLAogICAgICAgICBQcml2YXRlQnJvd3NpbmdFbmFibGVkLAogICAgICAgICBEbnNQcmVmZXRj
aEVuYWJsZWQsCi0gICAgICAgIERldmVsb3BlckV4dHJhc0VuYWJsZWQKKyAgICAgICAgRGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZCwKKyAgICAgICAgV2ViR0xFbmFibGVkCiAgICAgfTsKIAogICAgIGVu
dW0gRm9udEZhbWlseSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5
ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVI
b3N0UHJveHkuY3BwCmluZGV4IDVmNzg3NjQuLjRiOTk4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuY3BwCkBAIC0xNTAsNiArMTUwLDExIEBA
IHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpkaWRDaGFuZ2VTY3JvbGxQb3NpdGlvbihjb25zdCBJ
bnRQb2ludCYgcG9zaXRpb24pCiAgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmV2ViTGF5ZXJUcmVl
UmVuZGVyZXI6OmRpZENoYW5nZVNjcm9sbFBvc2l0aW9uLCBtX3JlbmRlcmVyLmdldCgpLCBwb3Np
dGlvbikpOwogfQogCit2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6c3luY0NhbnZhcyh1aW50MzJf
dCBpZCwgY29uc3QgSW50U2l6ZSYgY2FudmFzU2l6ZSwgdWludDMyX3QgZ3JhcGhpY3NTdXJmYWNl
VG9rZW4pCit7CisgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmV2ViTGF5ZXJUcmVlUmVuZGVyZXI6
OnN5bmNDYW52YXMsIG1fcmVuZGVyZXIuZ2V0KCksIGlkLCBjYW52YXNTaXplLCBncmFwaGljc1N1
cmZhY2VUb2tlbikpOworfQorCiB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6cHVyZ2VCYWNraW5n
U3RvcmVzKCkKIHsKICAgICBtX3JlbmRlcmVyLT5zZXRBY3RpdmUoZmFsc2UpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCmluZGV4IGFjM2QzZDIuLjc5
NThhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5
LmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlVmlld3BvcnQoKTsK
ICAgICB2b2lkIHJlbmRlck5leHRGcmFtZSgpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsUG9z
aXRpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uKTsKKyAgICB2b2lkIHN5bmND
YW52YXModWludDMyX3QgaWQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNhbnZhc1NpemUsIHVp
bnQzMl90IGdyYXBoaWNzU3VyZmFjZVRva2VuKTsKICAgICB2b2lkIHB1cmdlQmFja2luZ1N0b3Jl
cygpOwogICAgIFdlYkxheWVyVHJlZVJlbmRlcmVyKiBsYXllclRyZWVSZW5kZXJlcigpIGNvbnN0
IHsgcmV0dXJuIG1fcmVuZGVyZXIuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkubWVzc2FnZXMuaW4KaW5kZXggMWNkYWUw
ZC4uYTg4YjQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJl
ZUhvc3RQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5
ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMyw1ICszMyw2IEBAIG1lc3NhZ2VzIC0+
IExheWVyVHJlZUhvc3RQcm94eSB7CiAgICAgRGVzdHJveURpcmVjdGx5Q29tcG9zaXRlZEltYWdl
KGludDY0X3Qga2V5KQogICAgIERpZFJlbmRlckZyYW1lKCkKICAgICBEaWRDaGFuZ2VTY3JvbGxQ
b3NpdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbikKKyAgICBTeW5jQ2FudmFzKHVpbnQz
Ml90IGlkLCBXZWJDb3JlOjpJbnRTaXplIGNhbnZhc1NpemUsIHVpbnQzMl90IGdyYXBoaWNzU3Vy
ZmFjZVRva2VuKQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkxheWVyVHJlZVJlbmRlcmVyLmNwcAppbmRleCBjNmMwZmFkLi4xYTg4ZjdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5jcHAKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJUZXh0
dXJlTWFwcGVyLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oIgorI2lu
Y2x1ZGUgIlRleHR1cmVNYXBwZXJHTC5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJMYXllci5o
IgogI2luY2x1ZGUgIlVwZGF0ZUluZm8uaCIKICNpbmNsdWRlIDxPcGVuR0xTaGltcy5oPgpAQCAt
MTk0LDYgKzE5NSwyOCBAQCB2b2lkIFdlYkxheWVyVHJlZVJlbmRlcmVyOjpkaWRDaGFuZ2VTY3Jv
bGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiAgICAgbV9wZW5kaW5nUmVuZGVy
ZWRDb250ZW50c1Njcm9sbFBvc2l0aW9uID0gYm91bmRlZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9u
LCBtX3Zpc2libGVDb250ZW50c1JlY3QsIG1fY29udGVudHNTaXplKTsKIH0KIAordm9pZCBXZWJM
YXllclRyZWVSZW5kZXJlcjo6c3luY0NhbnZhcyhXZWJMYXllcklEIGlkLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBjYW52YXNTaXplLCB1aW50MzJfdCBncmFwaGljc1N1cmZhY2VUb2tlbikKK3sK
KyAgICBpZiAoY2FudmFzU2l6ZS5pc0VtcHR5KCkgfHwgIW1fdGV4dHVyZU1hcHBlcikKKyAgICAg
ICAgcmV0dXJuOworCisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgZW5zdXJlTGF5ZXIo
aWQpOworICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJCeUlEKGlkKTsKKworICAgIFJl
ZlB0cjxUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZT4gY2FudmFzQmFja2luZ1N0b3Jl
OworICAgIFN1cmZhY2VCYWNraW5nU3RvcmVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdXJmYWNlQmFj
a2luZ1N0b3Jlcy5maW5kKGlkKTsKKyAgICBpZiAoaXQgPT0gbV9zdXJmYWNlQmFja2luZ1N0b3Jl
cy5lbmQoKSkgeworICAgICAgICBjYW52YXNCYWNraW5nU3RvcmUgPSBUZXh0dXJlTWFwcGVyU3Vy
ZmFjZUJhY2tpbmdTdG9yZTo6Y3JlYXRlKCk7CisgICAgICAgIG1fc3VyZmFjZUJhY2tpbmdTdG9y
ZXMuc2V0KGlkLCBjYW52YXNCYWNraW5nU3RvcmUpOworICAgIH0gZWxzZQorICAgICAgICBjYW52
YXNCYWNraW5nU3RvcmUgPSBpdC0+c2Vjb25kOworCisgICAgY2FudmFzQmFja2luZ1N0b3JlLT5z
ZXRHcmFwaGljc1N1cmZhY2UoZ3JhcGhpY3NTdXJmYWNlVG9rZW4sIGNhbnZhc1NpemUpOworICAg
IGxheWVyLT5zZXRDb250ZW50c1RvTWVkaWEoY2FudmFzQmFja2luZ1N0b3JlLmdldCgpKTsKKyNl
bmRpZgorfQorCiB2b2lkIFdlYkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllckNoaWxkcmVuKFdl
YkxheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxXZWJMYXllcklEPiYgY2hpbGRJRHMpCiB7CiAgICAg
ZW5zdXJlTGF5ZXIoaWQpOwpAQCAtMjcxLDYgKzI5NCw5IEBAIHZvaWQgV2ViTGF5ZXJUcmVlUmVu
ZGVyZXI6OmRlbGV0ZUxheWVyKFdlYkxheWVySUQgbGF5ZXJJRCkKICAgICBsYXllci0+cmVtb3Zl
RnJvbVBhcmVudCgpOwogICAgIG1fbGF5ZXJzLnJlbW92ZShsYXllcklEKTsKICAgICBtX2ZpeGVk
TGF5ZXJzLnJlbW92ZShsYXllcklEKTsKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICBt
X3N1cmZhY2VCYWNraW5nU3RvcmVzLnJlbW92ZShsYXllcklEKTsKKyNlbmRpZgogICAgIGRlbGV0
ZSBsYXllcjsKIH0KIApAQCAtNDE5LDYgKzQ0NSw5IEBAIHZvaWQgV2ViTGF5ZXJUcmVlUmVuZGVy
ZXI6OnB1cmdlR0xSZXNvdXJjZXMoKQogICAgICAgICBsYXllci0+Y2xlYXJCYWNraW5nU3RvcmVz
UmVjdXJzaXZlKCk7CiAKICAgICBtX2RpcmVjdGx5Q29tcG9zaXRlZEltYWdlcy5jbGVhcigpOwor
I2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQorICAgIG1fc3VyZmFjZUJhY2tpbmdTdG9yZXMuY2xl
YXIoKTsKKyNlbmRpZgogCiAgICAgbV9yb290TGF5ZXItPnJlbW92ZUFsbENoaWxkcmVuKCk7CiAg
ICAgbV9yb290TGF5ZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkxheWVyVHJlZVJlbmRlcmVyLmgKaW5kZXggMDQyYzUyZC4uZDY2YjE5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTIyLDYgKzIy
LDcgQEAKIAogI2lmIFVTRShVSV9TSURFX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIkJhY2tpbmdT
dG9yZS5oIgorI2luY2x1ZGUgIkdyYXBoaWNzU3VyZmFjZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJs
ZVN1cmZhY2UuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyLmgiCiAjaW5jbHVkZSAiVGV4dHVy
ZU1hcHBlckJhY2tpbmdTdG9yZS5oIgpAQCAtNjcsNiArNjgsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBz
ZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBmbG9hdCBzY2Fs
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgYWNjdXJhdGVWaXNpYmxlQ29udGVudHNQb3Np
dGlvbik7CiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgcG9zaXRpb24pOworICAgIHZvaWQgc3luY0NhbnZhcyh1aW50MzJfdCBpZCwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgY2FudmFzU2l6ZSwgdWludDMyX3QgZ3JhcGhpY3NTdXJmYWNl
VG9rZW4pOwogCiAgICAgdm9pZCBkZXRhY2goKTsKICAgICB2b2lkIGFwcGVuZFVwZGF0ZShjb25z
dCBGdW5jdGlvbjx2b2lkKCk+Jik7CkBAIC0xMTgsNiArMTIwLDEwIEBAIHByaXZhdGU6CiAgICAg
SGFzaE1hcDxpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlckJhY2tpbmdTdG9y
ZT4gPiBtX2RpcmVjdGx5Q29tcG9zaXRlZEltYWdlczsKICAgICBIYXNoU2V0PFJlZlB0cjxMYXll
ckJhY2tpbmdTdG9yZT4gPiBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnM7CiAjZW5k
aWYKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICB0eXBlZGVmIEhhc2hNYXA8V2ViTGF5
ZXJJRCwgUmVmUHRyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlPiA+
IFN1cmZhY2VCYWNraW5nU3RvcmVNYXA7CisgICAgU3VyZmFjZUJhY2tpbmdTdG9yZU1hcCBtX3N1
cmZhY2VCYWNraW5nU3RvcmVzOworI2VuZGlmCiAKICAgICB2b2lkIHNjaGVkdWxlV2ViVmlld1Vw
ZGF0ZSgpOwogICAgIHZvaWQgc3luY2hyb25pemVWaWV3cG9ydCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NM
YXllci5jcHAKaW5kZXggODBlOGI2MS4uMDNlNTYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1
ZGUgIkxheWVyVHJlZUhvc3RQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2lu
Y2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNr
aW5nU3RvcmVSZW1vdGVUaWxlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgpAQCAtMTA5LDggKzExMCwxMCBAQCBXZWJHcmFwaGljc0xheWVyOjpX
ZWJHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1fc2hv
dWxkU3luY0xheWVyU3RhdGUodHJ1ZSkKICAgICAsIG1fc2hvdWxkU3luY0NoaWxkcmVuKHRydWUp
CiAgICAgLCBtX2ZpeGVkVG9WaWV3cG9ydChmYWxzZSkKKyAgICAsIG1fY2FudmFzTmVlZHNEaXNw
bGF5KGZhbHNlKQogICAgICwgbV93ZWJHcmFwaGljc0xheWVyQ2xpZW50KDApCiAgICAgLCBtX2Nv
bnRlbnRzU2NhbGUoMSkKKyAgICAsIG1fY2FudmFzUGxhdGZvcm1MYXllcigwKQogewogICAgIHN0
YXRpYyBXZWJMYXllcklEIG5leHRMYXllcklEID0gMTsKICAgICBtX2lkID0gbmV4dExheWVySUQr
KzsKQEAgLTMxNiw2ICszMTksMTUgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzZXRDb250ZW50
c05lZWRzRGlzcGxheSgpCiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IG1faW1hZ2U7CiAgICAg
c2V0Q29udGVudHNUb0ltYWdlKDApOwogICAgIHNldENvbnRlbnRzVG9JbWFnZShpbWFnZS5nZXQo
KSk7CisgICAgbV9jYW52YXNOZWVkc0Rpc3BsYXkgPSB0cnVlOworfQorCit2b2lkIFdlYkdyYXBo
aWNzTGF5ZXI6OnNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXll
cikKK3sKKyAgICBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgPSBwbGF0Zm9ybUxheWVyOworICAgIG1f
Y2FudmFzTmVlZHNEaXNwbGF5ID0gdHJ1ZTsKKyAgICBpZiAoY2xpZW50KCkpCisgICAgICAgIGNs
aWVudCgpLT5ub3RpZnlTeW5jUmVxdWlyZWQodGhpcyk7CiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCkBAIC00NjgsNiArNDgwLDE3IEBAIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6c3luY0xh
eWVyU3RhdGUoKQogICAgIG1fd2ViR3JhcGhpY3NMYXllckNsaWVudC0+c3luY0xheWVyU3RhdGUo
bV9pZCwgbV9sYXllckluZm8pOwogfQogCit2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDYW52
YXMoKQoreworICAgIGlmICghbV9jYW52YXNOZWVkc0Rpc3BsYXkpCisgICAgICAgIHJldHVybjsK
KyAgICBpZiAoIW1fY2FudmFzUGxhdGZvcm1MYXllcikKKyAgICAgICAgcmV0dXJuOworICAgIHVp
bnQzMl90IGdyYXBoaWNzU3VyZmFjZVRva2VuID0gbV9jYW52YXNQbGF0Zm9ybUxheWVyLT5jb3B5
VG9HcmFwaGljc1N1cmZhY2UoKTsKKyAgICBtX3dlYkdyYXBoaWNzTGF5ZXJDbGllbnQtPnN5bmND
YW52YXMobV9pZCwgSW50U2l6ZShzaXplKCkud2lkdGgoKSwgc2l6ZSgpLmhlaWdodCgpKSwgZ3Jh
cGhpY3NTdXJmYWNlVG9rZW4pOworICAgIG1fY2FudmFzTmVlZHNEaXNwbGF5ID0gZmFsc2U7Cit9
CisKIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6ZW5zdXJlSW1hZ2VCYWNraW5nU3RvcmUoKQogewog
ICAgIGlmICghbV9pbWFnZSkKQEAgLTQ3NSw2ICs0OTgsNyBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5
ZXI6OmVuc3VyZUltYWdlQmFja2luZ1N0b3JlKCkKICAgICBpZiAoIW1fbGF5ZXJJbmZvLmltYWdl
QmFja2luZ1N0b3JlSUQpCiAgICAgICAgIG1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQg
PSBtX3dlYkdyYXBoaWNzTGF5ZXJDbGllbnQtPmFkb3B0SW1hZ2VCYWNraW5nU3RvcmUobV9pbWFn
ZS5nZXQoKSk7CiB9CisKIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6c3luY0NvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCkKIHsKICAgICAvLyBUaGUgcmVtb3RlIGltYWdlIG1pZ2h0IGhh
dmUgYmVlbiByZWxlYXNlZCBieSBwdXJnZUJhY2tpbmdTdG9yZXMuCkBAIC00ODYsNiArNTEwLDcg
QEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXll
ck9ubHkoKQogICAgIHN5bmNGaWx0ZXJzKCk7CiAjZW5kaWYKICAgICB1cGRhdGVDb250ZW50QnVm
ZmVycygpOworICAgIHN5bmNDYW52YXMoKTsKIH0KIAogdm9pZCBXZWJHcmFwaGljc0xheWVyOjp0
aWxlZEJhY2tpbmdTdG9yZVBhaW50QmVnaW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaAppbmRleCBj
MjJhODgyLi5jZGQ3ODA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaApAQCAtNjAsNiArNjAsOSBA
QCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZpcnR1YWwgdm9pZCBzeW5j
TGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMm
KSA9IDA7CiAjZW5kaWYKKyNpZiBQTEFURk9STShRVCkKKyAgICB2aXJ0dWFsIHZvaWQgc3luY0Nh
bnZhcyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjYW52YXNTaXplLCB1aW50
MzJfdCBncmFwaGljc1N1cmZhY2VUb2tlbikgPSAwOworI2VuZGlmCiAgICAgdmlydHVhbCB2b2lk
IGF0dGFjaExheWVyKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXIqKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRldGFjaExheWVyKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXIqKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHN5bmNGaXhlZExheWVycygpID0gMDsKQEAgLTk4LDYgKzEwMSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldE9wYWNpdHkoZmxvYXQpOwogICAgIHZvaWQgc2V0Q29udGVudHNS
ZWN0KGNvbnN0IEludFJlY3QmKTsKICAgICB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSop
OworICAgIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKik7CiAgICAgdm9p
ZCBzZXRNYXNrTGF5ZXIoR3JhcGhpY3NMYXllciopOwogICAgIHZvaWQgc2V0UmVwbGljYXRlZEJ5
TGF5ZXIoR3JhcGhpY3NMYXllciopOwogICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCk7CkBAIC0x
NDcsNiArMTUxLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2b2lk
IHN5bmNGaWx0ZXJzKCk7CiAjZW5kaWYKKyAgICB2b2lkIHN5bmNDYW52YXMoKTsKICAgICB2b2lk
IGVuc3VyZUltYWdlQmFja2luZ1N0b3JlKCk7CiAKICAgICB2b2lkIGFkanVzdFZpc2libGVSZWN0
KCk7CkBAIC0xNjgsNiArMTczLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3luY0No
aWxkcmVuOiAxOwogICAgIGJvb2wgbV9zaG91bGRTeW5jRmlsdGVyczogMTsKICAgICBib29sIG1f
Zml4ZWRUb1ZpZXdwb3J0IDogMTsKKyAgICBib29sIG1fY2FudmFzTmVlZHNEaXNwbGF5IDogMTsK
IAogICAgIHZvaWQgbm90aWZ5Q2hhbmdlKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VHZW9tZXRyeSgp
OwpAQCAtMTkxLDYgKzE5Nyw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFdlYkNvcmU6OlRpbGVk
QmFja2luZ1N0b3JlPiBtX21haW5CYWNraW5nU3RvcmU7CiAgICAgT3duUHRyPFdlYkNvcmU6OlRp
bGVkQmFja2luZ1N0b3JlPiBtX3ByZXZpb3VzQmFja2luZ1N0b3JlOwogICAgIGZsb2F0IG1fY29u
dGVudHNTY2FsZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBtX2NhbnZhc1BsYXRmb3JtTGF5ZXI7CiB9
OwogCiBXZWJHcmFwaGljc0xheWVyKiB0b1dlYkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllciop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVy
VHJlZUhvc3RRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5
ZXJUcmVlSG9zdFF0LmNwcAppbmRleCA5MDM5NDU0Li5jMjk2NDgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNw
cApAQCAtMjU2LDYgKzI1NiwxMiBAQCB2b2lkIExheWVyVHJlZUhvc3RRdDo6c3luY0xheWVyQ2hp
bGRyZW4oV2ViTGF5ZXJJRCBpZCwgY29uc3QgVmVjdG9yPFdlYkxheWVySUQ+JgogICAgIG1fd2Vi
UGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlSG9zdFByb3h5OjpTZXRDb21wb3NpdGluZ0xh
eWVyQ2hpbGRyZW4oaWQsIGNoaWxkcmVuKSk7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVlSG9zdFF0Ojpz
eW5jQ2FudmFzKFdlYkxheWVySUQgaWQsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIHVpbnQz
Ml90IGdyYXBoaWNzU3VyZmFjZVRva2VuKQoreworICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1
ZTsKKyAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUhvc3RQcm94eTo6U3lu
Y0NhbnZhcyhpZCwgY2FudmFzU2l6ZSwgZ3JhcGhpY3NTdXJmYWNlVG9rZW4pKTsKK30KKwogI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgTGF5ZXJUcmVlSG9zdFF0OjpzeW5jTGF5ZXJGaWx0
ZXJzKFdlYkxheWVySUQgaWQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVl
SG9zdFF0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVl
SG9zdFF0LmgKaW5kZXggZWVjYjYyZS4uMzNmZGVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaApAQCAtNzksNiAr
NzksNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZpcnR1YWwgdm9p
ZCBzeW5jTGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbnMmKTsKICNlbmRpZgorICAgIHZpcnR1YWwgdm9pZCBzeW5jQ2FudmFzKFdlYkxheWVySUQs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNhbnZhc1NpemUsIHVpbnQzMl90IGdyYXBoaWNzU3Vy
ZmFjZVRva2VuKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoTGF5ZXIoV2ViQ29y
ZTo6V2ViR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXllcihXZWJD
b3JlOjpXZWJHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNGaXhlZExheWVy
cygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDQzMjJkNDguLjMwZDFkZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNi0wMSAgWmVubyBBbGJpc3NlciAg
PHplbm9Ad2Via2l0Lm9yZz4KKworICAgICAgICBGaXggYW5kIGVuYWJsZSBXZWJHTCBmb3IgV2Vi
S2l0MiBvbiBRdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MjE0CisKKyAgICAgICAgRW5hYmxlIFdlYkdMIGJ5IGRlZmF1bHQgZm9yIFF0IE1pbmlC
cm93c2VyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sOgorCiAyMDEyLTA2LTAxICBK
ZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IFdpbmRvd3Mg
YnVpbGQuCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRv
dy5xbWwgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKaW5kZXgg
MGViZjAyOC4uYTQyYTJlOSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jy
b3dzZXJXaW5kb3cucW1sCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2lu
ZG93LnFtbApAQCAtMzM1LDYgKzMzNSw3IEBAIFJlY3RhbmdsZSB7CiAKICAgICAgICAgZXhwZXJp
bWVudGFsLmRldmljZVBpeGVsUmF0aW86IDEuNQogICAgICAgICBleHBlcmltZW50YWwucHJlZmVy
ZW5jZXMuZnVsbFNjcmVlbkVuYWJsZWQ6IHRydWUKKyAgICAgICAgZXhwZXJpbWVudGFsLnByZWZl
cmVuY2VzLndlYkdMRW5hYmxlZDogdHJ1ZQogICAgICAgICBleHBlcmltZW50YWwucHJlZmVycmVk
TWluaW11bUNvbnRlbnRzV2lkdGg6IDk4MAogICAgICAgICBleHBlcmltZW50YWwuaXRlbVNlbGVj
dG9yOiBJdGVtU2VsZWN0b3IgeyB9CiAgICAgICAgIGV4cGVyaW1lbnRhbC5hbGVydERpYWxvZzog
QWxlcnREaWFsb2cgeyB9Cg==
</data>
<flag name="commit-queue"
          id="152485"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145409</attachid>
            <date>2012-06-01 17:17:26 -0700</date>
            <delta_ts>2012-06-01 17:31:33 -0700</delta_ts>
            <desc>patch for review.</desc>
            <filename>86214_20120602-021539.patch</filename>
            <type>text/plain</type>
            <size>30136</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZmU1MGUwLi5hODhiMTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTgg
QEAKKzIwMTItMDYtMDEgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgRml4IGFuZCBlbmFibGUgV2ViR0wgZm9yIFdlYktpdDIgb24gUXQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjIxNAorCisgICAgICAgIE1ha2Ug
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIHVzZSBHcmFwaGljc1N1cmZhY2VzCisgICAgICAgIGZv
ciBXSzIuIFRoZSBHcmFwaGljc0NvbnRleHQzRCB0aGVuIHVzZXMgdGhlIGV4aXN0aW5nCisgICAg
ICAgIFJlbmRlckJ1ZmZlciBmb3IgbXVsdGlzYW1wbGUgcmVuZGVyaW5nLgorICAgICAgICBXaGVu
IFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlIGlzIGJlaW5nCisgICAgICAg
IGV4ZWN1dGVkLCB0aGUgY2FudmFzIGlzIGJlaW5nIHN5bmNlZCBhcyB3ZWxsLiBUaGlzIG1lYW5z
CisgICAgICAgIHRoYXQgdGhlIFJlbmRlckJ1ZmZlciBjb250ZW50cyBhcmUgYmVpbmcgYmxpdCBv
bnRvCisgICAgICAgIGEgR3JhcGhpY3NTdXJmYWNlLCBhbmQgdGhlIEdyYXBoaWNzU3VyZmFjZSB0
b2tlbiBpcworICAgICAgICBiZWluZyBzZW50IHRvIHRoZSBVSVByb2Nlc3MuCisgICAgICAgIFRo
ZSBXZWJMYXllclRyZWVSZW5kZXJlciB0aGVuIGNyZWF0ZXMgYQorICAgICAgICBUZXh0dXJlTWFw
cGVyU3VyZmFjZUJhY2tpbmdTdG9yZSBmb3IgdGhlIGNhbnZhcyBhbmQKKyAgICAgICAgcGFzc2Vz
IHRoZSBHcmFwaGljc1N1cmZhY2UgdG9rZW4gYXMgYW4gYXJndW1lbnQuCisgICAgICAgIFRoZSB0
b2tlbiBjYW4gdGhlbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBHcmFwaGljc1N1cmZhY2UKKyAg
ICAgICAgZnJvbSB0aGUgVUlQcm9jZXNzIHNpZGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5oOgorICAgICAgICBBZGRlZCBjcmVhdGVHcmFwaGljc1N1cmZhY2VzIGZ1bmN0aW9uLiBU
aGlzIGlzIGN1cnJlbnRseSBvbmx5CisgICAgICAgIGJlaW5nIHVzZWQgYnkgdGhlIFF0IHBvcnQu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RP
cGVuR0xDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJl
c2hhcGUpOgorICAgICAgICBDYWxsaW5nIHRoZSBjcmVhdGVHcmFwaGljc1N1cmZhY2VzIGZ1bmN0
aW9uIHdoZW4gdGhlIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGlzIHJlc2hhcGVkLiBUaGlz
IGlzIGN1cnJlbnRseSBvbmx5IHJlbGV2YW50IGZvciB0aGUgUXQgcG9ydC4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwOgorICAgICAgICAo
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKToKKyAgICAgICAgQWRkZWQgbV9mcm9udEJ1ZmZlckdy
YXBoaWNzU3VyZmFjZSwgbV9iYWNrQnVmZmVyR3JhcGhpY3NTdXJmYWNlCisgICAgICAgIGFuZCBt
X3N1cmZhY2VGbGFncyBtZW1iZXJzLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGUpOgorICAgICAgICBJbiBjYXNlIG9m
IFdLMiwgY3JlYXRlIGEgUU9wZW5HTENvbnRleHQgYW5kIHR3byBHcmFwaGljc1N1cmZhY2UKKyAg
ICAgICAgZm9yIHNoYXJpbmcgdGhlIFdlYkdMIGNvbnRlbnQgd2l0aCB0aGUgVUlQcm9jZXNzLiBP
bmUgR3JhcGhpY3NTdXJmYWNlCisgICAgICAgIGlzIGJlaW5nIHVzZWQgYXMgdGhlIGZyb250LCB0
aGUgb3RoZXIgb25lIGFzIHRoZSBiYWNrYnVmZmVyLgorICAgICAgICBDcmVhdGluZyBhIFFPcGVu
R0xDb250ZXh0IGN1cnJlbnRseSByZXF1aXJlcyBzaG93aW5nIGEgUVdpbmRvdy4KKyAgICAgICAg
Rm9yIHRoZSBtb21lbnQgd2UgdGhlcmVmb3JlIGNyZWF0ZSBhIG1pbmltYWwgUVdpbmRvdyBhbmQg
cGxhY2UKKyAgICAgICAgaXQgb2Zmc2NyZWVuLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlOjpjb3B5VG9HcmFwaGljc1N1cmZhY2UpOgorICAgICAgICBUaGlzIG5l
dyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSB0aGUgV2ViR3JhcGhpY3NMYXllciwKKyAgICAgICAg
dG8gYmxpdCB0aGUgbXVsdGlzYW1wbGUgZnJhbWVidWZmZXIgYW5kIGNvcHkgaXRzIGNvbnRlbnRz
CisgICAgICAgIG9udG8gdGhlIEdyYXBoaWNzU3VyZmFjZS4KKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NTdXJmYWNlcyk6CisgICAgICAg
IFdoZW5ldmVyIHRoZSBHcmFwaGljc0NvbnRleHQzRCBpcyBiZWluZyByZXNoYXBlZCwKKyAgICAg
ICAgbmV3IEdyYXBoaWNzU3VyZmFjZXMgbXVzdCBiZSBjcmVhdGVkIHdpdGggdGhlIHVwZGF0ZWQg
ZGltZW5zaW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVH
cmFwaGljc1N1cmZhY2VzKToKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllci5oOgorICAgICAgICBBZGRlZCBhIG5ldyB2aXJ0dWFs
IGZ1bmN0aW9uIGNvcHlUb0dyYXBoaWNzU3VyZmFjZS4KKyAgICAgICAgKFRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxh
eWVyOjpjb3B5VG9HcmFwaGljc1N1cmZhY2UpOgorCiAyMDEyLTA2LTAxICBKb2UgVGhvbWFzICA8
am9ldGhvbWFzQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBnZXRDb21wdXRlZFN0eWxlIGZvciBi
YWNrZ3JvdW5kIHNob3J0aGFuZCBwcm9wZXJ0eSBkb2VzIG5vdCByZXR1cm4gYmFja2dyb3VuZC1v
cmlnaW4gYW5kIGJhY2tncm91bmQtY2xpcC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IGIwYmM1YzAuLjE4MDAwMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaApAQCAtOTExLDYgKzkxMSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcmVzaGFw
ZUZCT3MoY29uc3QgSW50U2l6ZSYpOwogICAgIHZvaWQgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5l
Y2Vzc2FyeShjb25zdCBJbnRSZWN0JiA9IEludFJlY3QoKSk7CisjaWYgUExBVEZPUk0oUVQpICYm
IFVTRShHUkFQSElDU19TVVJGQUNFKQorICAgIHZvaWQgY3JlYXRlR3JhcGhpY3NTdXJmYWNlcyhj
b25zdCBJbnRTaXplJik7CisjZW5kaWYKIAogICAgIGludCBtX2N1cnJlbnRXaWR0aCwgbV9jdXJy
ZW50SGVpZ2h0OwogICAgIGJvb2wgaXNSZXNvdXJjZVNhZmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5H
TENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IGMxMTc3MjEuLjhjMWU3ZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMjIy
LDYgKzIyMiwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwg
aW50IGhlaWdodCkKICAgICBpZiAod2lkdGggPT0gbV9jdXJyZW50V2lkdGggJiYgaGVpZ2h0ID09
IG1fY3VycmVudEhlaWdodCkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oUVQpICYm
IFVTRShHUkFQSElDU19TVVJGQUNFKQorICAgIDo6Z2xGbHVzaCgpOyAvLyBNYWtlIHN1cmUgYWxs
IEdMIGNhbGxzIGhhdmUgYmVlbiBjb21taXR0ZWQgYmVmb3JlIHJlc2l6aW5nLgorICAgIGNyZWF0
ZUdyYXBoaWNzU3VyZmFjZXMoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CisjZW5kaWYKKwogICAg
IG1fY3VycmVudFdpZHRoID0gd2lkdGg7CiAgICAgbV9jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGlj
c0NvbnRleHQzRFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dy
YXBoaWNzQ29udGV4dDNEUXQuY3BwCmluZGV4IGYzYTdlYTguLmIxOTg0ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29u
dGV4dDNEUXQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNET3Bl
bkdMLmgiCiAjZW5kaWYKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJH
cmFwaGljc1N1cmZhY2UuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgpAQCAtMzYsNiArMzcs
OSBAQAogI2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgiCiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQu
aCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpZiBIQVZFKFFUNSkKKyNpbmNsdWRlIDxR
V2luZG93PgorI2VuZGlmCiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC02NywxNiArNzEsMjUgQEAgcHVibGljOgogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQogICAgIHZp
cnR1YWwgdm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxv
YXRSZWN0JiB0YXJnZXQsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0
eSwgQml0bWFwVGV4dHVyZSogbWFzayk7CiAjZW5kaWYKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFD
RSkKKyAgICB2aXJ0dWFsIHVpbnQzMl90IGNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpOworI2VuZGlm
CiAKICAgICBRUmVjdEYgYm91bmRpbmdSZWN0KCkgY29uc3Q7CiAgICAgdm9pZCBibGl0TXVsdGlz
YW1wbGVGcmFtZWJ1ZmZlcigpIGNvbnN0OwogICAgIHZvaWQgYmxpdE11bHRpc2FtcGxlRnJhbWVi
dWZmZXJBbmRSZXN0b3JlQ29udGV4dCgpIGNvbnN0OwogICAgIGJvb2wgbWFrZUN1cnJlbnRJZk5l
ZWRlZCgpIGNvbnN0OworICAgIHZvaWQgY3JlYXRlR3JhcGhpY3NTdXJmYWNlcyhjb25zdCBJbnRT
aXplJik7CiAKICAgICBHcmFwaGljc0NvbnRleHQzRCogbV9jb250ZXh0OwogICAgIEhvc3RXaW5k
b3cqIG1faG9zdFdpbmRvdzsKICAgICBQbGF0Zm9ybUdyYXBoaWNzU3VyZmFjZTNEIG1fc3VyZmFj
ZTsKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIG1fcGxhdGZvcm1Db250ZXh0OworI2lm
IFVTRShHUkFQSElDU19TVVJGQUNFKQorICAgIEdyYXBoaWNzU3VyZmFjZTo6RmxhZ3MgbV9zdXJm
YWNlRmxhZ3M7CisgICAgUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gbV9mcm9udEJ1ZmZlckdyYXBo
aWNzU3VyZmFjZTsKKyAgICBSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPiBtX2JhY2tCdWZmZXJHcmFw
aGljc1N1cmZhY2U7CisjZW5kaWYKIH07CiAKIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmlzR0xF
UzJDb21wbGlhbnQoKSBjb25zdApAQCAtOTQsMTMgKzEwNywzOSBAQCBHcmFwaGljc0NvbnRleHQz
RFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShHcmFwaGljc0NvbnRleHQzRCogY29u
dGV4dCwgSAogICAgICwgbV9zdXJmYWNlKDApCiAgICAgLCBtX3BsYXRmb3JtQ29udGV4dCgwKQog
ewotICAgIFFXZWJQYWdlQ2xpZW50KiB3ZWJQYWdlQ2xpZW50ID0gbV9ob3N0V2luZG93LT5wbGF0
Zm9ybVBhZ2VDbGllbnQoKTsKLSAgICBpZiAoIXdlYlBhZ2VDbGllbnQpCi0gICAgICAgIHJldHVy
bjsKLSAgICB3ZWJQYWdlQ2xpZW50LT5jcmVhdGVQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCZt
X3BsYXRmb3JtQ29udGV4dCwgJm1fc3VyZmFjZSk7Ci0gICAgaWYgKCFtX3N1cmZhY2UpCi0gICAg
ICAgIHJldHVybjsKLSAgICBtYWtlQ3VycmVudElmTmVlZGVkKCk7CisgICAgaWYgKG1faG9zdFdp
bmRvdyAmJiBtX2hvc3RXaW5kb3ctPnBsYXRmb3JtUGFnZUNsaWVudCgpKSB7CisgICAgICAgIC8v
IFRoaXMgaXMgdGhlIFdlYktpdDEgY29kZSBwYXRoLgorICAgICAgICBRV2ViUGFnZUNsaWVudCog
d2ViUGFnZUNsaWVudCA9IG1faG9zdFdpbmRvdy0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CisgICAg
ICAgIHdlYlBhZ2VDbGllbnQtPmNyZWF0ZVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoJm1fcGxh
dGZvcm1Db250ZXh0LCAmbV9zdXJmYWNlKTsKKyAgICAgICAgaWYgKCFtX3N1cmZhY2UpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIG1ha2VDdXJyZW50SWZOZWVkZWQoKTsKKyAgICB9Cisj
aWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgICBlbHNlIHsKKyAgICAgICAgLy8gRklYTUU6
IEZpbmQgYSB3YXkgdG8gY3JlYXRlIGEgUU9wZW5HTENvbnRleHQgd2l0aG91dCBjcmVhdGluZyBh
IFFXaW5kb3cgYXQgYWxsLgorICAgICAgICAvLyBXZSBuZWVkIHRvIGNyZWF0ZSBhIHN1cmZhY2Ug
aW4gb3JkZXIgdG8gY3JlYXRlIGEgUU9wZW5HTENvbnRleHQgYW5kIG1ha2UgaXQgY3VycmVudC4K
KyAgICAgICAgUVdpbmRvdyogd2luZG93ID0gbmV3IFFXaW5kb3c7CisgICAgICAgIHdpbmRvdy0+
c2V0U3VyZmFjZVR5cGUoUVN1cmZhY2U6Ok9wZW5HTFN1cmZhY2UpOworICAgICAgICB3aW5kb3ct
PnNldEdlb21ldHJ5KC0xMCwgLTEwLCAxLCAxKTsKKyAgICAgICAgd2luZG93LT5jcmVhdGUoKTsK
KyAgICAgICAgbV9zdXJmYWNlID0gd2luZG93OworCisgICAgICAgIG1fcGxhdGZvcm1Db250ZXh0
ID0gbmV3IFFPcGVuR0xDb250ZXh0KHdpbmRvdyk7CisgICAgICAgIGlmICghbV9wbGF0Zm9ybUNv
bnRleHQtPmNyZWF0ZSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1ha2VDdXJy
ZW50SWZOZWVkZWQoKTsKKyAgICAgICAgSW50U2l6ZSBzdXJmYWNlU2l6ZShtX2NvbnRleHQtPm1f
Y3VycmVudFdpZHRoLCBtX2NvbnRleHQtPm1fY3VycmVudEhlaWdodCk7CisgICAgICAgIG1fc3Vy
ZmFjZUZsYWdzID0gR3JhcGhpY3NTdXJmYWNlOjpTdXBwb3J0c1RleHR1cmVUYXJnZXQKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHwgR3JhcGhpY3NTdXJmYWNlOjpTdXBwb3J0c1NoYXJpbmc7CisK
KyAgICAgICAgaWYgKCFzdXJmYWNlU2l6ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIG1fZnJv
bnRCdWZmZXJHcmFwaGljc1N1cmZhY2UgPSBHcmFwaGljc1N1cmZhY2U6OmNyZWF0ZShzdXJmYWNl
U2l6ZSwgbV9zdXJmYWNlRmxhZ3MpOworICAgICAgICAgICAgbV9iYWNrQnVmZmVyR3JhcGhpY3NT
dXJmYWNlID0gR3JhcGhpY3NTdXJmYWNlOjpjcmVhdGUoc3VyZmFjZVNpemUsIG1fc3VyZmFjZUZs
YWdzKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogfQogCiBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGU6On5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKQpAQCAtMTc0LDYgKzIxMywyMCBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVy
ZU1hcHBlciogdGV4dHVyZU1hcHBlcgogfQogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKIAorI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQordWludDMyX3QgR3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlOjpjb3B5VG9HcmFwaGljc1N1cmZhY2UoKQoreworICAgIGlmICghbV9m
cm9udEJ1ZmZlckdyYXBoaWNzU3VyZmFjZSB8fCAhbV9iYWNrQnVmZmVyR3JhcGhpY3NTdXJmYWNl
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGJsaXRNdWx0aXNhbXBsZUZyYW1lYnVmZmVyQW5k
UmVzdG9yZUNvbnRleHQoKTsKKyAgICBtYWtlQ3VycmVudElmTmVlZGVkKCk7CisgICAgbV9iYWNr
QnVmZmVyR3JhcGhpY3NTdXJmYWNlLT5jb3B5RnJvbUZyYW1lYnVmZmVyKG1fY29udGV4dC0+bV9m
Ym8sIEludFJlY3QoMCwgMCwgbV9jb250ZXh0LT5tX2N1cnJlbnRXaWR0aCwgbV9jb250ZXh0LT5t
X2N1cnJlbnRIZWlnaHQpKTsKKyAgICBzdGQ6OnN3YXAobV9mcm9udEJ1ZmZlckdyYXBoaWNzU3Vy
ZmFjZSwgbV9iYWNrQnVmZmVyR3JhcGhpY3NTdXJmYWNlKTsKKyAgICByZXR1cm4gbV9mcm9udEJ1
ZmZlckdyYXBoaWNzU3VyZmFjZS0+ZXhwb3J0VG9rZW4oKTsKK30KKyNlbmRpZgorCiBRUmVjdEYg
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpib3VuZGluZ1JlY3QoKSBjb25zdAogewogICAgIHJl
dHVybiBRUmVjdEYoUVBvaW50RigwLCAwKSwgUVNpemVGKG1fY29udGV4dC0+bV9jdXJyZW50V2lk
dGgsIG1fY29udGV4dC0+bV9jdXJyZW50SGVpZ2h0KSk7CkBAIC0yMzUsNiArMjg4LDE5IEBAIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjptYWtlQ3VycmVudElmTmVlZGVkKCkgY29uc3QK
ICNlbmRpZgogfQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhp
Y3NTdXJmYWNlcyhjb25zdCBJbnRTaXplJiBzaXplKQoreworI2lmIFVTRShHUkFQSElDU19TVVJG
QUNFKQorICAgIGlmIChzaXplLmlzRW1wdHkoKSkgeworICAgICAgICBtX2Zyb250QnVmZmVyR3Jh
cGhpY3NTdXJmYWNlID0gMDsKKyAgICAgICAgbV9iYWNrQnVmZmVyR3JhcGhpY3NTdXJmYWNlID0g
MDsKKyAgICB9IGVsc2UgeworICAgICAgICBtX2Zyb250QnVmZmVyR3JhcGhpY3NTdXJmYWNlID0g
R3JhcGhpY3NTdXJmYWNlOjpjcmVhdGUoc2l6ZSwgbV9zdXJmYWNlRmxhZ3MpOworICAgICAgICBt
X2JhY2tCdWZmZXJHcmFwaGljc1N1cmZhY2UgPSBHcmFwaGljc1N1cmZhY2U6OmNyZWF0ZShzaXpl
LCBtX3N1cmZhY2VGbGFncyk7CisgICAgfQorI2VuZGlmCit9CisKIFBhc3NSZWZQdHI8R3JhcGhp
Y3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0Q6
OkF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4
dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKIHsKICAgICAvLyBUaGlzIGltcGxlbWVudGF0
aW9uIGRvZXNuJ3QgY3VycmVudGx5IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBI
b3N0V2luZG93LgpAQCAtNDA3LDYgKzQ3MywxMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpw
YWludFRvQ2FudmFzKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4ZWxzLCBpbnQgaW1hZwog
ICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKIH0KIAorI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQor
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlR3JhcGhpY3NTdXJmYWNlcyhjb25zdCBJbnRT
aXplJiBzaXplKQoreworICAgIG1fcHJpdmF0ZS0+Y3JlYXRlR3JhcGhpY3NTdXJmYWNlcyhzaXpl
KTsKK30KKyNlbmRpZgorCiAjaWYgZGVmaW5lZChRVF9PUEVOR0xfRVNfMikKIFBhc3NSZWZQdHI8
SW1hZ2VEYXRhPiBHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9JbWFn
ZURhdGEoRHJhd2luZ0J1ZmZlciopCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllci5oCmluZGV4IDNkMjQ3YTIuLjk2MTRjODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllci5oCkBAIC0zMiw2ICszMiw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5U
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcigpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWludFRv
VGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4
KCksIGZsb2F0IG9wYWNpdHkgPSAxLjAsIEJpdG1hcFRleHR1cmUqIG1hc2sgPSAwKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHN3YXBCdWZmZXJzKCkgeyB9CisjaWYgVVNFKEdSQVBISUNTX1NVUkZB
Q0UpCisgICAgdmlydHVhbCB1aW50MzJfdCBjb3B5VG9HcmFwaGljc1N1cmZhY2UoKSB7IHJldHVy
biAwOyB9CisjZW5kaWYKIH07CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDNmMjQ1NS4uMjJjNTk1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTA2LTAxICBaZW5vIEFsYmlzc2VyICA8
emVub0B3ZWJraXQub3JnPgorCisgICAgICAgIEZpeCBhbmQgZW5hYmxlIFdlYkdMIGZvciBXZWJL
aXQyIG9uIFF0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODYyMTQKKworICAgICAgICBBZGRlZCBnbHVlIGNvZGUgdG8gbWFrZSB1c2Ugb2YgR3JhcGhp
Y3NTdXJmYWNlCisgICAgICAgIGFzIGEgYmFja2VuZCBmb3IgdGhlIHdlYmdsLWNhbnZhcyBpbiBj
YXNlIG9mIFdLMi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFFX
ZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUpOgorICAgICAgICAoUVdlYlByZWZl
cmVuY2VzUHJpdmF0ZTo6c2V0QXR0cmlidXRlKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlczo6
d2ViR0xFbmFibGVkKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlczo6c2V0V2ViR0xFbmFibGVk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmg6CisgICAgICAgIEFk
ZGVkIFdlYkdMRW5hYmxlZCBlbnVtIHRvIGFsbG93IGVuYWJsaW5nL2Rpc2FibGluZyBvZgorICAg
ICAgICBXZWJHTCB1c2luZyBRV2ViUHJlZmVyZW5jZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TGF5ZXJUcmVlSG9zdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFBy
b3h5OjpzeW5jQ2FudmFzKToKKyAgICAgICAgRGlzcGF0Y2ggc3luY0NhbnZhcyBjYWxscyB0byB0
aGUgYXByb3ByaWF0ZQorICAgICAgICBXZWJMYXllclRyZWVSZW5kZXJlci4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAgICAgKExheWVyVHJlZUhvc3RQ
cm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAg
KFdlYkxheWVyVHJlZVJlbmRlcmVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTGF5ZXJUcmVl
UmVuZGVyZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVSZW5kZXJlcjo6c3lu
Y0NhbnZhcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVJlbmRlcmVyOjpkZWxldGVM
YXllcik6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVJlbmRlcmVyOjpwdXJnZUdMUmVz
b3VyY2VzKToKKyAgICAgICAgQ3JlYXRlIGEgVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3Rv
cmUgZm9yIHRoZSBjYW52YXMKKyAgICAgICAgaWYgbmVjZXNzYXJ5IGFuZCBwYXNzIG9yIHVwZGF0
ZSB0aGUgZ3JhcGhpY3NTdXJmYWNlVG9rZW4KKyAgICAgICAgZm9yIHRvIGJlIHVzZWQgd2l0aCB0
aGUgYmFja2luZyBzdG9yZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVy
OjpXZWJHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0NhbnZhcyk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHcmFwaGljc0xheWVyOjpzeW5jQ2FudmFzKToKKyAgICAgICAgQ29weSB0aGUgbXVs
dGlzYW1wbGUgZnJhbWVidWZmZXIgY29udGVudHMgb250byB0aGUgR3JhcGhpY3NTdXJmYWNlLgor
ICAgICAgICBOb3RpZnkgdGhlIFVJUHJvY2VzcyBvZiB0aGUgYXZhaWxhYmlsaXR5IG9mIGEgbmV3
IHRleHR1cmUuCisgICAgICAgIChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9z
aXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICBTeW5jIHRoZSBjYW52YXMgYXMg
d2VsbC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NM
YXllci5oOgorICAgICAgICBBZGRlZCBhIHB1cmUgdmlydHVhbCBmdW5jdGlvbiBzeW5jQ2FudmFz
LgorICAgICAgICBUaGlzIGlzIGd1YXJkZWQgYnkgUExBVEZPUk0oUVQpLgorICAgICAgICAoV2Vi
R3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAgIChXZWJHcmFwaGljc0xheWVyKToKKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UXQ6OnN5bmNMYXllckNoaWxkcmVuKToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RRdDo6c3luY0NhbnZhcyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5oOgorICAg
ICAgICAoTGF5ZXJUcmVlSG9zdFF0KToKKwogMjAxMi0wNi0wMSAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzExMzM1NjIyPiBhbmQg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTE5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKaW5kZXgg
MGIzZjM2ZC4uOWEzMGUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcApAQCAtNjMsNiArNjMsMTAgQEAgYm9vbCBRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6Oldl
YkF0dHJpYnV0ZQogICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEZyYW1lRmxhdHRlbmlu
Z0VuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBEZXZlbG9wZXJFeHRyYXNFbmFi
bGVkOgogICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldERldmVsb3BlckV4dHJhc0VuYWJs
ZWQocHJlZmVyZW5jZXNSZWYoKSk7CisjaWYgRU5BQkxFKFdFQkdMKQorICAgIGNhc2UgV2ViR0xF
bmFibGVkOgorICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFdlYkdMRW5hYmxlZChwcmVm
ZXJlbmNlc1JlZigpKTsKKyNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDYsNiArMTEwLDExIEBAIHZv
aWQgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1By
aXZhdGU6OldlYkF0dHJpYnV0ZSBhCiAgICAgY2FzZSBEZXZlbG9wZXJFeHRyYXNFbmFibGVkOgog
ICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmZXJlbmNl
c1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAg
Y2FzZSBXZWJHTEVuYWJsZWQ6CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJHTEVuYWJsZWQo
cHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBk
ZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC00NzYsNiAr
NDg1LDI1IEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXREZWZhdWx0Rml4ZWRGb250U2l6ZSh1
bnNpZ25lZCBzaXplKQogICAgIGVtaXQgZGVmYXVsdEZpeGVkRm9udFNpemVDaGFuZ2VkKCk7CiB9
CiAKK2Jvb2wgUVdlYlByZWZlcmVuY2VzOjp3ZWJHTEVuYWJsZWQoKSBjb25zdAoreworI2lmIEVO
QUJMRShXRUJHTCkKKyAgICByZXR1cm4gZC0+dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQ
cml2YXRlOjpXZWJHTEVuYWJsZWQpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYK
K30KKwordm9pZCBRV2ViUHJlZmVyZW5jZXM6OnNldFdlYkdMRW5hYmxlZChib29sIGVuYWJsZSkK
K3sKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgZC0+c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNl
c1ByaXZhdGU6OldlYkdMRW5hYmxlZCwgZW5hYmxlKTsKKyAgICBlbWl0IHdlYkdMRW5hYmxlZENo
YW5nZWQoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZSk7CisjZW5kaWYKK30KKwog
V0tQcmVmZXJlbmNlc1JlZiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpwcmVmZXJlbmNlc1JlZigp
IGNvbnN0CiB7CiAgICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmID0gdG9BUEkod2ViVmll
d1ByaXZhdGUtPndlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oCmluZGV4IDI0ODU5YmYu
Ljg2MThmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdl
YnByZWZlcmVuY2VzX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3
ZWJwcmVmZXJlbmNlc19wLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIFFfUFJPUEVS
VFkoYm9vbCBuYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQgUkVBRCBuYXZpZ2F0b3JRdE9iamVjdEVu
YWJsZWQgV1JJVEUgc2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkIE5PVElGWSBuYXZpZ2F0b3JR
dE9iamVjdEVuYWJsZWRDaGFuZ2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoYm9vbCBmcmFtZUZs
YXR0ZW5pbmdFbmFibGVkIFJFQUQgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCBXUklURSBzZXRGcmFt
ZUZsYXR0ZW5pbmdFbmFibGVkIE5PVElGWSBmcmFtZUZsYXR0ZW5pbmdFbmFibGVkQ2hhbmdlZCBG
SU5BTCkKICAgICBRX1BST1BFUlRZKGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBSRUFEIGRl
dmVsb3BlckV4dHJhc0VuYWJsZWQgV1JJVEUgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBOT1RJ
RlkgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZENoYW5nZWQgRklOQUwpCisgICAgUV9QUk9QRVJUWShi
b29sIHdlYkdMRW5hYmxlZCBSRUFEIHdlYkdMRW5hYmxlZCBXUklURSBzZXRXZWJHTEVuYWJsZWQg
Tk9USUZZIHdlYkdMRW5hYmxlZENoYW5nZWQgRklOQUwpCiAKICAgICBRX1BST1BFUlRZKFFTdHJp
bmcgc3RhbmRhcmRGb250RmFtaWx5IFJFQUQgc3RhbmRhcmRGb250RmFtaWx5IFdSSVRFIHNldFN0
YW5kYXJkRm9udEZhbWlseSBOT1RJRlkgc3RhbmRhcmRGb250RmFtaWx5Q2hhbmdlZCBGSU5BTCkK
ICAgICBRX1BST1BFUlRZKFFTdHJpbmcgZml4ZWRGb250RmFtaWx5IFJFQUQgZml4ZWRGb250RmFt
aWx5IFdSSVRFIHNldEZpeGVkRm9udEZhbWlseSBOT1RJRlkgZml4ZWRGb250RmFtaWx5Q2hhbmdl
ZCBGSU5BTCkKQEAgLTkxLDYgKzkyLDkgQEAgcHVibGljOgogICAgIGJvb2wgZGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChi
b29sIGVuYWJsZSk7CiAKKyAgICBib29sIHdlYkdMRW5hYmxlZCgpIGNvbnN0OworICAgIHZvaWQg
c2V0V2ViR0xFbmFibGVkKGJvb2wgZW5hYmxlKTsKKwogICAgIFFTdHJpbmcgc3RhbmRhcmRGb250
RmFtaWx5KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoY29uc3QgUVN0
cmluZyYgZmFtaWx5KTsKIApAQCAtMTMxLDYgKzEzNSw3IEBAIFFfU0lHTkFMUzoKICAgICB2b2lk
IG5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIGZyYW1lRmxhdHRl
bmluZ0VuYWJsZWRDaGFuZ2VkKCk7CiAgICAgdm9pZCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkQ2hh
bmdlZCgpOworICAgIHZvaWQgd2ViR0xFbmFibGVkQ2hhbmdlZCgpOwogCiAgICAgdm9pZCBzdGFu
ZGFyZEZvbnRGYW1pbHlDaGFuZ2VkKCk7CiAgICAgdm9pZCBmaXhlZEZvbnRGYW1pbHlDaGFuZ2Vk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVm
ZXJlbmNlc19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZl
cmVuY2VzX3BfcC5oCmluZGV4IGFlNjM2YzEuLjdjMWM5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oCkBAIC0zOCw3
ICszOCw4IEBAIHB1YmxpYzoKICAgICAgICAgRnJhbWVGbGF0dGVuaW5nRW5hYmxlZCwKICAgICAg
ICAgUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwKICAgICAgICAgRG5zUHJlZmV0Y2hFbmFibGVkLAot
ICAgICAgICBEZXZlbG9wZXJFeHRyYXNFbmFibGVkCisgICAgICAgIERldmVsb3BlckV4dHJhc0Vu
YWJsZWQsCisgICAgICAgIFdlYkdMRW5hYmxlZAogICAgIH07CiAKICAgICBlbnVtIEZvbnRGYW1p
bHkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmNw
cAppbmRleCA1Zjc4NzY0Li40Yjk5ODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF5ZXJUcmVlSG9zdFByb3h5LmNwcApAQCAtMTUwLDYgKzE1MCwxMSBAQCB2b2lkIExheWVy
VHJlZUhvc3RQcm94eTo6ZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHBv
c2l0aW9uKQogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJldlYkxheWVyVHJlZVJlbmRlcmVyOjpk
aWRDaGFuZ2VTY3JvbGxQb3NpdGlvbiwgbV9yZW5kZXJlci5nZXQoKSwgcG9zaXRpb24pKTsKIH0K
IAordm9pZCBMYXllclRyZWVIb3N0UHJveHk6OnN5bmNDYW52YXModWludDMyX3QgaWQsIGNvbnN0
IEludFNpemUmIGNhbnZhc1NpemUsIHVpbnQzMl90IGdyYXBoaWNzU3VyZmFjZVRva2VuKQorewor
ICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJldlYkxheWVyVHJlZVJlbmRlcmVyOjpzeW5jQ2FudmFz
LCBtX3JlbmRlcmVyLmdldCgpLCBpZCwgY2FudmFzU2l6ZSwgZ3JhcGhpY3NTdXJmYWNlVG9rZW4p
KTsKK30KKwogdm9pZCBMYXllclRyZWVIb3N0UHJveHk6OnB1cmdlQmFja2luZ1N0b3JlcygpCiB7
CiAgICAgbV9yZW5kZXJlci0+c2V0QWN0aXZlKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaAppbmRleCBhYzNkM2QyLi43OTU4YTVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCkBAIC02OSw2
ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVZpZXdwb3J0KCk7CiAgICAgdm9pZCBy
ZW5kZXJOZXh0RnJhbWUoKTsKICAgICB2b2lkIGRpZENoYW5nZVNjcm9sbFBvc2l0aW9uKGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7CisgICAgdm9pZCBzeW5jQ2FudmFzKHVpbnQz
Ml90IGlkLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjYW52YXNTaXplLCB1aW50MzJfdCBncmFw
aGljc1N1cmZhY2VUb2tlbik7CiAgICAgdm9pZCBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKICAgICBX
ZWJMYXllclRyZWVSZW5kZXJlciogbGF5ZXJUcmVlUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBt
X3JlbmRlcmVyLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXllclRyZWVIb3N0UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDFjZGFlMGQuLmE4OGI0NGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMzMsNSArMzMsNiBAQCBtZXNzYWdlcyAtPiBMYXllclRyZWVI
b3N0UHJveHkgewogICAgIERlc3Ryb3lEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZShpbnQ2NF90IGtl
eSkKICAgICBEaWRSZW5kZXJGcmFtZSgpCiAgICAgRGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24pCisgICAgU3luY0NhbnZhcyh1aW50MzJfdCBpZCwgV2Vi
Q29yZTo6SW50U2l6ZSBjYW52YXNTaXplLCB1aW50MzJfdCBncmFwaGljc1N1cmZhY2VUb2tlbikK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxheWVy
VHJlZVJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMYXllclRyZWVS
ZW5kZXJlci5jcHAKaW5kZXggYzZjMGZhZC4uMWE4OGY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlci5o
IgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaCIKKyNpbmNsdWRlICJUZXh0
dXJlTWFwcGVyR0wuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyTGF5ZXIuaCIKICNpbmNsdWRl
ICJVcGRhdGVJbmZvLmgiCiAjaW5jbHVkZSA8T3BlbkdMU2hpbXMuaD4KQEAgLTE5NCw2ICsxOTUs
MjggQEAgdm9pZCBXZWJMYXllclRyZWVSZW5kZXJlcjo6ZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24o
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uKQogICAgIG1fcGVuZGluZ1JlbmRlcmVkQ29udGVudHNT
Y3JvbGxQb3NpdGlvbiA9IGJvdW5kZWRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiwgbV92aXNpYmxl
Q29udGVudHNSZWN0LCBtX2NvbnRlbnRzU2l6ZSk7CiB9CiAKK3ZvaWQgV2ViTGF5ZXJUcmVlUmVu
ZGVyZXI6OnN5bmNDYW52YXMoV2ViTGF5ZXJJRCBpZCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
Y2FudmFzU2l6ZSwgdWludDMyX3QgZ3JhcGhpY3NTdXJmYWNlVG9rZW4pCit7CisgICAgaWYgKGNh
bnZhc1NpemUuaXNFbXB0eSgpIHx8ICFtX3RleHR1cmVNYXBwZXIpCisgICAgICAgIHJldHVybjsK
KworI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQorICAgIGVuc3VyZUxheWVyKGlkKTsKKyAgICBH
cmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyQnlJRChpZCk7CisKKyAgICBSZWZQdHI8VGV4dHVy
ZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU+IGNhbnZhc0JhY2tpbmdTdG9yZTsKKyAgICBTdXJm
YWNlQmFja2luZ1N0b3JlTWFwOjppdGVyYXRvciBpdCA9IG1fc3VyZmFjZUJhY2tpbmdTdG9yZXMu
ZmluZChpZCk7CisgICAgaWYgKGl0ID09IG1fc3VyZmFjZUJhY2tpbmdTdG9yZXMuZW5kKCkpIHsK
KyAgICAgICAgY2FudmFzQmFja2luZ1N0b3JlID0gVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5n
U3RvcmU6OmNyZWF0ZSgpOworICAgICAgICBtX3N1cmZhY2VCYWNraW5nU3RvcmVzLnNldChpZCwg
Y2FudmFzQmFja2luZ1N0b3JlKTsKKyAgICB9IGVsc2UKKyAgICAgICAgY2FudmFzQmFja2luZ1N0
b3JlID0gaXQtPnNlY29uZDsKKworICAgIGNhbnZhc0JhY2tpbmdTdG9yZS0+c2V0R3JhcGhpY3NT
dXJmYWNlKGdyYXBoaWNzU3VyZmFjZVRva2VuLCBjYW52YXNTaXplKTsKKyAgICBsYXllci0+c2V0
Q29udGVudHNUb01lZGlhKGNhbnZhc0JhY2tpbmdTdG9yZS5nZXQoKSk7CisjZW5kaWYKK30KKwog
dm9pZCBXZWJMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJDaGlsZHJlbihXZWJMYXllcklEIGlk
LCBjb25zdCBWZWN0b3I8V2ViTGF5ZXJJRD4mIGNoaWxkSURzKQogewogICAgIGVuc3VyZUxheWVy
KGlkKTsKQEAgLTI3MSw2ICsyOTQsOSBAQCB2b2lkIFdlYkxheWVyVHJlZVJlbmRlcmVyOjpkZWxl
dGVMYXllcihXZWJMYXllcklEIGxheWVySUQpCiAgICAgbGF5ZXItPnJlbW92ZUZyb21QYXJlbnQo
KTsKICAgICBtX2xheWVycy5yZW1vdmUobGF5ZXJJRCk7CiAgICAgbV9maXhlZExheWVycy5yZW1v
dmUobGF5ZXJJRCk7CisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgbV9zdXJmYWNlQmFj
a2luZ1N0b3Jlcy5yZW1vdmUobGF5ZXJJRCk7CisjZW5kaWYKICAgICBkZWxldGUgbGF5ZXI7CiB9
CiAKQEAgLTQxOSw2ICs0NDUsOSBAQCB2b2lkIFdlYkxheWVyVHJlZVJlbmRlcmVyOjpwdXJnZUdM
UmVzb3VyY2VzKCkKICAgICAgICAgbGF5ZXItPmNsZWFyQmFja2luZ1N0b3Jlc1JlY3Vyc2l2ZSgp
OwogCiAgICAgbV9kaXJlY3RseUNvbXBvc2l0ZWRJbWFnZXMuY2xlYXIoKTsKKyNpZiBVU0UoR1JB
UEhJQ1NfU1VSRkFDRSkKKyAgICBtX3N1cmZhY2VCYWNraW5nU3RvcmVzLmNsZWFyKCk7CisjZW5k
aWYKIAogICAgIG1fcm9vdExheWVyLT5yZW1vdmVBbGxDaGlsZHJlbigpOwogICAgIG1fcm9vdExh
eWVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTGF5
ZXJUcmVlUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMYXllclRyZWVS
ZW5kZXJlci5oCmluZGV4IDA0MmM1MmQuLmQ2NmIxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5oCkBAIC0yMiw2ICsyMiw3IEBACiAKICNp
ZiBVU0UoVUlfU0lERV9DT01QT1NJVElORykKICNpbmNsdWRlICJCYWNraW5nU3RvcmUuaCIKKyNp
bmNsdWRlICJHcmFwaGljc1N1cmZhY2UuaCIKICNpbmNsdWRlICJTaGFyZWFibGVTdXJmYWNlLmgi
CiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlci5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJCYWNr
aW5nU3RvcmUuaCIKQEAgLTY3LDYgKzY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29udGVu
dHNTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0VmlzaWJsZUNv
bnRlbnRzUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgZmxvYXQgc2NhbGUsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIGFjY3VyYXRlVmlzaWJsZUNvbnRlbnRzUG9zaXRpb24pOwogICAg
IHZvaWQgZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBv
c2l0aW9uKTsKKyAgICB2b2lkIHN5bmNDYW52YXModWludDMyX3QgaWQsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIGNhbnZhc1NpemUsIHVpbnQzMl90IGdyYXBoaWNzU3VyZmFjZVRva2VuKTsKIAog
ICAgIHZvaWQgZGV0YWNoKCk7CiAgICAgdm9pZCBhcHBlbmRVcGRhdGUoY29uc3QgRnVuY3Rpb248
dm9pZCgpPiYpOwpAQCAtMTE4LDYgKzEyMCwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8aW50
NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmU+ID4gbV9kaXJl
Y3RseUNvbXBvc2l0ZWRJbWFnZXM7CiAgICAgSGFzaFNldDxSZWZQdHI8TGF5ZXJCYWNraW5nU3Rv
cmU+ID4gbV9iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdCdWZmZXJzOwogI2VuZGlmCisjaWYgVVNF
KEdSQVBISUNTX1NVUkZBQ0UpCisgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkxheWVySUQsIFJlZlB0
cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZT4gPiBTdXJmYWNlQmFj
a2luZ1N0b3JlTWFwOworICAgIFN1cmZhY2VCYWNraW5nU3RvcmVNYXAgbV9zdXJmYWNlQmFja2lu
Z1N0b3JlczsKKyNlbmRpZgogCiAgICAgdm9pZCBzY2hlZHVsZVdlYlZpZXdVcGRhdGUoKTsKICAg
ICB2b2lkIHN5bmNocm9uaXplVmlld3BvcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCmlu
ZGV4IDgwZThiNjEuLmZhNGExMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcApAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJMYXllclRy
ZWVIb3N0UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlUmVt
b3RlVGlsZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KQEAgLTEwOSw4ICsxMTAsMTAgQEAgV2ViR3JhcGhpY3NMYXllcjo6V2ViR3JhcGhpY3NM
YXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX3Nob3VsZFN5bmNMYXll
clN0YXRlKHRydWUpCiAgICAgLCBtX3Nob3VsZFN5bmNDaGlsZHJlbih0cnVlKQogICAgICwgbV9m
aXhlZFRvVmlld3BvcnQoZmFsc2UpCisgICAgLCBtX2NhbnZhc05lZWRzRGlzcGxheShmYWxzZSkK
ICAgICAsIG1fd2ViR3JhcGhpY3NMYXllckNsaWVudCgwKQogICAgICwgbV9jb250ZW50c1NjYWxl
KDEpCisgICAgLCBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIoMCkKIHsKICAgICBzdGF0aWMgV2ViTGF5
ZXJJRCBuZXh0TGF5ZXJJRCA9IDE7CiAgICAgbV9pZCA9IG5leHRMYXllcklEKys7CkBAIC0zMTYs
NiArMzE5LDE1IEBAIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNOZWVkc0Rpc3Bs
YXkoKQogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBtX2ltYWdlOwogICAgIHNldENvbnRlbnRz
VG9JbWFnZSgwKTsKICAgICBzZXRDb250ZW50c1RvSW1hZ2UoaW1hZ2UuZ2V0KCkpOworICAgIG1f
Y2FudmFzTmVlZHNEaXNwbGF5ID0gdHJ1ZTsKK30KKwordm9pZCBXZWJHcmFwaGljc0xheWVyOjpz
ZXRDb250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIpCit7CisgICAg
bV9jYW52YXNQbGF0Zm9ybUxheWVyID0gcGxhdGZvcm1MYXllcjsKKyAgICBtX2NhbnZhc05lZWRz
RGlzcGxheSA9IHRydWU7CisgICAgaWYgKGNsaWVudCgpKQorICAgICAgICBjbGllbnQoKS0+bm90
aWZ5U3luY1JlcXVpcmVkKHRoaXMpOwogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAt
NDY4LDYgKzQ4MCwxOSBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNMYXllclN0YXRlKCkK
ICAgICBtX3dlYkdyYXBoaWNzTGF5ZXJDbGllbnQtPnN5bmNMYXllclN0YXRlKG1faWQsIG1fbGF5
ZXJJbmZvKTsKIH0KIAordm9pZCBXZWJHcmFwaGljc0xheWVyOjpzeW5jQ2FudmFzKCkKK3sKKyAg
ICBpZiAoIW1fY2FudmFzTmVlZHNEaXNwbGF5KQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFt
X2NhbnZhc1BsYXRmb3JtTGF5ZXIpCisgICAgICAgIHJldHVybjsKKyNpZiBVU0UoR1JBUEhJQ1Nf
U1VSRkFDRSkKKyAgICB1aW50MzJfdCBncmFwaGljc1N1cmZhY2VUb2tlbiA9IG1fY2FudmFzUGxh
dGZvcm1MYXllci0+Y29weVRvR3JhcGhpY3NTdXJmYWNlKCk7CisgICAgbV93ZWJHcmFwaGljc0xh
eWVyQ2xpZW50LT5zeW5jQ2FudmFzKG1faWQsIEludFNpemUoc2l6ZSgpLndpZHRoKCksIHNpemUo
KS5oZWlnaHQoKSksIGdyYXBoaWNzU3VyZmFjZVRva2VuKTsKKyNlbmRpZgorICAgIG1fY2FudmFz
TmVlZHNEaXNwbGF5ID0gZmFsc2U7Cit9CisKIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6ZW5zdXJl
SW1hZ2VCYWNraW5nU3RvcmUoKQogewogICAgIGlmICghbV9pbWFnZSkKQEAgLTQ3NSw2ICs1MDAs
NyBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OmVuc3VyZUltYWdlQmFja2luZ1N0b3JlKCkKICAg
ICBpZiAoIW1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQpCiAgICAgICAgIG1fbGF5ZXJJ
bmZvLmltYWdlQmFja2luZ1N0b3JlSUQgPSBtX3dlYkdyYXBoaWNzTGF5ZXJDbGllbnQtPmFkb3B0
SW1hZ2VCYWNraW5nU3RvcmUobV9pbWFnZS5nZXQoKSk7CiB9CisKIHZvaWQgV2ViR3JhcGhpY3NM
YXllcjo6c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKIHsKICAgICAvLyBU
aGUgcmVtb3RlIGltYWdlIG1pZ2h0IGhhdmUgYmVlbiByZWxlYXNlZCBieSBwdXJnZUJhY2tpbmdT
dG9yZXMuCkBAIC00ODYsNiArNTEyLDcgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKQogICAgIHN5bmNGaWx0ZXJzKCk7CiAjZW5k
aWYKICAgICB1cGRhdGVDb250ZW50QnVmZmVycygpOworICAgIHN5bmNDYW52YXMoKTsKIH0KIAog
dm9pZCBXZWJHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50QmVnaW4oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFw
aGljc0xheWVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkdyYXBoaWNzTGF5ZXIuaAppbmRleCBjMjJhODgyLi5jZGQ3ODA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNz
TGF5ZXIuaApAQCAtNjAsNiArNjAsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19GSUxURVJT
KQogICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQsIGNvbnN0IFdl
YkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKSA9IDA7CiAjZW5kaWYKKyNpZiBQTEFURk9STShRVCkK
KyAgICB2aXJ0dWFsIHZvaWQgc3luY0NhbnZhcyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBjYW52YXNTaXplLCB1aW50MzJfdCBncmFwaGljc1N1cmZhY2VUb2tlbikgPSAwOwor
I2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaExheWVyKFdlYkNvcmU6OldlYkdyYXBoaWNz
TGF5ZXIqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaExheWVyKFdlYkNvcmU6OldlYkdy
YXBoaWNzTGF5ZXIqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNGaXhlZExheWVycygpID0g
MDsKQEAgLTk4LDYgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE9wYWNpdHkoZmxvYXQp
OwogICAgIHZvaWQgc2V0Q29udGVudHNSZWN0KGNvbnN0IEludFJlY3QmKTsKICAgICB2b2lkIHNl
dENvbnRlbnRzVG9JbWFnZShJbWFnZSopOworICAgIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQ
bGF0Zm9ybUxheWVyKik7CiAgICAgdm9pZCBzZXRNYXNrTGF5ZXIoR3JhcGhpY3NMYXllciopOwog
ICAgIHZvaWQgc2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhpY3NMYXllciopOwogICAgIHZvaWQg
c2V0TmVlZHNEaXNwbGF5KCk7CkBAIC0xNDcsNiArMTUxLDcgQEAgcHVibGljOgogI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKICAgICB2b2lkIHN5bmNGaWx0ZXJzKCk7CiAjZW5kaWYKKyAgICB2b2lk
IHN5bmNDYW52YXMoKTsKICAgICB2b2lkIGVuc3VyZUltYWdlQmFja2luZ1N0b3JlKCk7CiAKICAg
ICB2b2lkIGFkanVzdFZpc2libGVSZWN0KCk7CkBAIC0xNjgsNiArMTczLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fc2hvdWxkU3luY0NoaWxkcmVuOiAxOwogICAgIGJvb2wgbV9zaG91bGRTeW5j
RmlsdGVyczogMTsKICAgICBib29sIG1fZml4ZWRUb1ZpZXdwb3J0IDogMTsKKyAgICBib29sIG1f
Y2FudmFzTmVlZHNEaXNwbGF5IDogMTsKIAogICAgIHZvaWQgbm90aWZ5Q2hhbmdlKCk7CiAgICAg
dm9pZCBkaWRDaGFuZ2VHZW9tZXRyeSgpOwpAQCAtMTkxLDYgKzE5Nyw3IEBAIHByaXZhdGU6CiAg
ICAgT3duUHRyPFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlPiBtX21haW5CYWNraW5nU3RvcmU7
CiAgICAgT3duUHRyPFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlPiBtX3ByZXZpb3VzQmFja2lu
Z1N0b3JlOwogICAgIGZsb2F0IG1fY29udGVudHNTY2FsZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBt
X2NhbnZhc1BsYXRmb3JtTGF5ZXI7CiB9OwogCiBXZWJHcmFwaGljc0xheWVyKiB0b1dlYkdyYXBo
aWNzTGF5ZXIoR3JhcGhpY3NMYXllciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcAppbmRleCA5MDM5NDU0Li5j
Mjk2NDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQv
TGF5ZXJUcmVlSG9zdFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcApAQCAtMjU2LDYgKzI1NiwxMiBAQCB2b2lkIExheWVy
VHJlZUhvc3RRdDo6c3luY0xheWVyQ2hpbGRyZW4oV2ViTGF5ZXJJRCBpZCwgY29uc3QgVmVjdG9y
PFdlYkxheWVySUQ+JgogICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlSG9z
dFByb3h5OjpTZXRDb21wb3NpdGluZ0xheWVyQ2hpbGRyZW4oaWQsIGNoaWxkcmVuKSk7CiB9CiAK
K3ZvaWQgTGF5ZXJUcmVlSG9zdFF0OjpzeW5jQ2FudmFzKFdlYkxheWVySUQgaWQsIGNvbnN0IElu
dFNpemUmIGNhbnZhc1NpemUsIHVpbnQzMl90IGdyYXBoaWNzU3VyZmFjZVRva2VuKQoreworICAg
IG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKKyAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6
OkxheWVyVHJlZUhvc3RQcm94eTo6U3luY0NhbnZhcyhpZCwgY2FudmFzU2l6ZSwgZ3JhcGhpY3NT
dXJmYWNlVG9rZW4pKTsKK30KKwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgTGF5ZXJU
cmVlSG9zdFF0OjpzeW5jTGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQgaWQsIGNvbnN0IEZpbHRlck9w
ZXJhdGlvbnMmIGZpbHRlcnMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmgKaW5kZXggZWVjYjYyZS4uMzNmZGVjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJl
ZUhvc3RRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXll
clRyZWVIb3N0UXQuaApAQCAtNzksNiArNzksNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19G
SUxURVJTKQogICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQsIGNv
bnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKICNlbmRpZgorICAgIHZpcnR1YWwgdm9p
ZCBzeW5jQ2FudmFzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNhbnZhc1Np
emUsIHVpbnQzMl90IGdyYXBoaWNzU3VyZmFjZVRva2VuKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgYXR0YWNoTGF5ZXIoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1
YWwgdm9pZCBkZXRhY2hMYXllcihXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyKik7CiAgICAgdmly
dHVhbCB2b2lkIHN5bmNGaXhlZExheWVycygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQzMjJkNDguLjMwZDFkZmEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
Mi0wNi0wMSAgWmVubyBBbGJpc3NlciAgPHplbm9Ad2Via2l0Lm9yZz4KKworICAgICAgICBGaXgg
YW5kIGVuYWJsZSBXZWJHTCBmb3IgV2ViS2l0MiBvbiBRdC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MjE0CisKKyAgICAgICAgRW5hYmxlIFdlYkdM
IGJ5IGRlZmF1bHQgZm9yIFF0IE1pbmlCcm93c2VyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5k
b3cucW1sOgorCiAyMDEyLTA2LTAxICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IFdpbmRvd3MgYnVpbGQuCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJv
d3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwv
QnJvd3NlcldpbmRvdy5xbWwKaW5kZXggMGViZjAyOC4uYTQyYTJlOSAxMDA2NDQKLS0tIGEvVG9v
bHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCisrKyBiL1Rvb2xzL01pbmlC
cm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbApAQCAtMzM1LDYgKzMzNSw3IEBAIFJlY3Rh
bmdsZSB7CiAKICAgICAgICAgZXhwZXJpbWVudGFsLmRldmljZVBpeGVsUmF0aW86IDEuNQogICAg
ICAgICBleHBlcmltZW50YWwucHJlZmVyZW5jZXMuZnVsbFNjcmVlbkVuYWJsZWQ6IHRydWUKKyAg
ICAgICAgZXhwZXJpbWVudGFsLnByZWZlcmVuY2VzLndlYkdMRW5hYmxlZDogdHJ1ZQogICAgICAg
ICBleHBlcmltZW50YWwucHJlZmVycmVkTWluaW11bUNvbnRlbnRzV2lkdGg6IDk4MAogICAgICAg
ICBleHBlcmltZW50YWwuaXRlbVNlbGVjdG9yOiBJdGVtU2VsZWN0b3IgeyB9CiAgICAgICAgIGV4
cGVyaW1lbnRhbC5hbGVydERpYWxvZzogQWxlcnREaWFsb2cgeyB9Cg==
</data>
<flag name="review"
          id="152524"
          type_id="1"
          status="+"
          setter="noam"
    />
    <flag name="commit-queue"
          id="152525"
          type_id="3"
          status="-"
          setter="noam"
    />
          </attachment>
      

    </bug>

</bugzilla>