<?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>96087</bug_id>
          
          <creation_ts>2012-09-07 02:30:51 -0700</creation_ts>
          <short_desc>Optimize painting of composited scrolling layers</short_desc>
          <delta_ts>2012-11-19 05:02:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>78862</dependson>
    
    <dependson>96625</dependson>
    
    <dependson>97801</dependson>
    
    <dependson>100524</dependson>
    
    <dependson>102678</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sami Kyöstilä">skyostil</reporter>
          <assigned_to name="Sami Kyöstilä">skyostil</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>jamesr</cc>
    
    <cc>philn</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>skyostil</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>714319</commentid>
    <comment_count>0</comment_count>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-07 02:30:51 -0700</bug_when>
    <thetext>Currently composited scrolling layers (i.e., -webkit-overflow-scrolling: touch) are fully repainted every time the scroll offset changes. Also, painting is limited to the area of the overflow clip, so scrolling such a layer off the main thread will flicker because the layer has no valid content outside the clip.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714738</commentid>
    <comment_count>1</comment_count>
      <attachid>162817</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-07 10:54:06 -0700</bug_when>
    <thetext>Created attachment 162817
Patch

Work-in-progress patch; tests missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715372</commentid>
    <comment_count>2</comment_count>
      <attachid>162817</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-09-08 12:12:45 -0700</bug_when>
    <thetext>Comment on attachment 162817
Patch

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

&gt; Source/WebCore/ChangeLog:19
&gt; +        We also rename the configuration directive ENABLE_OVERFLOW_SCROLLING to
&gt; +        ENABLE_ACCELERATED_OVERFLOW_SCROLLING to better reflect its purpose.

if we are to go for it, please do it on its own patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715691</commentid>
    <comment_count>3</comment_count>
      <attachid>162817</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2012-09-09 21:08:27 -0700</bug_when>
    <thetext>Comment on attachment 162817
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        scrolling layer. This is done to increase the changes there is valid layer

changes -&gt; chances</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715876</commentid>
    <comment_count>4</comment_count>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-10 02:56:43 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; +        We also rename the configuration directive ENABLE_OVERFLOW_SCROLLING to
&gt; &gt; +        ENABLE_ACCELERATED_OVERFLOW_SCROLLING to better reflect its purpose.
&gt; 
&gt; if we are to go for it, please do it on its own patch.

Right you are: https://bugs.webkit.org/show_bug.cgi?id=96251.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715880</commentid>
    <comment_count>5</comment_count>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-10 02:59:00 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; changes -&gt; chances

Done.

Also trimmed the CC list a bit now that we&apos;re not touching the various build files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716226</commentid>
    <comment_count>6</comment_count>
      <attachid>163159</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-10 10:21:27 -0700</bug_when>
    <thetext>Created attachment 163159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716235</commentid>
    <comment_count>7</comment_count>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-10 10:26:41 -0700</bug_when>
    <thetext>Here&apos;s what I hope is a complete patch with tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716254</commentid>
    <comment_count>8</comment_count>
      <attachid>163159</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-10 10:46:38 -0700</bug_when>
    <thetext>Comment on attachment 163159
Patch

Attachment 163159 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13810286</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716273</commentid>
    <comment_count>9</comment_count>
      <attachid>163159</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-10 10:57:01 -0700</bug_when>
    <thetext>Comment on attachment 163159
Patch

Attachment 163159 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13804642</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716282</commentid>
    <comment_count>10</comment_count>
      <attachid>163159</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-10 11:03:42 -0700</bug_when>
    <thetext>Comment on attachment 163159
Patch

Attachment 163159 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13802749</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716958</commentid>
    <comment_count>11</comment_count>
      <attachid>163307</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-11 02:06:28 -0700</bug_when>
    <thetext>Created attachment 163307
Patch

Unbreak the build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716981</commentid>
    <comment_count>12</comment_count>
      <attachid>163307</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-11 02:36:33 -0700</bug_when>
    <thetext>Comment on attachment 163307
Patch

Attachment 163307 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13824177</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716991</commentid>
    <comment_count>13</comment_count>
      <attachid>163307</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-09-11 02:43:33 -0700</bug_when>
    <thetext>Comment on attachment 163307
Patch

Attachment 163307 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13818299</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717014</commentid>
    <comment_count>14</comment_count>
      <attachid>163307</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-11 03:20:47 -0700</bug_when>
    <thetext>Comment on attachment 163307
Patch

Attachment 163307 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13810586</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718127</commentid>
    <comment_count>15</comment_count>
      <attachid>163569</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-12 03:01:00 -0700</bug_when>
    <thetext>Created attachment 163569
Patch

Updated def files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718826</commentid>
    <comment_count>16</comment_count>
      <attachid>163569</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-09-12 15:44:05 -0700</bug_when>
    <thetext>Comment on attachment 163569
Patch

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

&gt; Source/WebCore/ChangeLog:21
&gt; +        A new internal API for setting a layer debug paint color is introduced to
&gt; +        allow testing the changes. All further paint operations to the associated
&gt; +        RenderLayerBacking are marked with the given color. The tests use this feature
&gt; +        to detect redundant and missing repaints.

I&apos;d prefer that we address this by making repaint testing work for composited layers, rather than doing something that requires matching pixel output.

&gt; Source/WebCore/rendering/RenderBox.cpp:663
&gt; +void RenderBox::applyCachedClipAndScrollOffsetForRepaint(LayoutRect&amp; paintRect) const
&gt; +{
&gt; +    paintRect.move(-scrolledContentOffset()); // For overflow:auto/scroll/hidden.
&gt; +
&gt; +    // Do not clip scroll layer contents to reduce the number of repaints while scrolling.
&gt; +    if (hasOverflowClip() &amp;&amp; hasLayer() &amp;&amp; layer()-&gt;usesCompositedScrolling())
&gt; +        return;
&gt; +
&gt; +    // height() is inaccurate if we&apos;re in the middle of a layout of this RenderBox, so use the
&gt; +    // layer&apos;s size instead. Even if the layer&apos;s size is wrong, the layer itself will repaint
&gt; +    // anyway if its size does change.
&gt; +    LayoutRect clipRect(LayoutPoint(), cachedSizeForOverflowClip());
&gt; +    paintRect = intersection(paintRect, clipRect);
&gt; +}

Please do this refactor in its own patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719299</commentid>
    <comment_count>17</comment_count>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-13 03:18:47 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; I&apos;d prefer that we address this by making repaint testing work for composited layers, rather than doing something that requires matching pixel output.

Okay, I&apos;ll have to study how repaint tests work currently. I was under the impression that they&apos;re also based on exact pixel output, or maybe I misunderstood your comment.
 
&gt; &gt; Source/WebCore/rendering/RenderBox.cpp:663
&gt; &gt; +void RenderBox::applyCachedClipAndScrollOffsetForRepaint(LayoutRect&amp; paintRect) const
&gt; Please do this refactor in its own patch.

Sure: https://bugs.webkit.org/show_bug.cgi?id=96625.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729381</commentid>
    <comment_count>18</comment_count>
      <attachid>165964</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-27 03:17:54 -0700</bug_when>
    <thetext>Created attachment 165964
Patch

Made TestRunner.display() to (optionally) work with composited layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729383</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-27 03:21:07 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729434</commentid>
    <comment_count>20</comment_count>
      <attachid>165964</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-27 05:13:05 -0700</bug_when>
    <thetext>Comment on attachment 165964
Patch

Attachment 165964 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14050256

New failing tests:
compositing/overflow/scrolling-content-updating.html
compositing/overflow/scrolling-content-prepainting.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729575</commentid>
    <comment_count>21</comment_count>
      <attachid>165964</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-09-27 09:02:05 -0700</bug_when>
    <thetext>Comment on attachment 165964
Patch

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

&gt; Source/WebCore/ChangeLog:22
&gt; +        This patch enables two optimization for composited scrolling layers: first,
&gt; +        when the layer scroll offset changes, do not mark the entire layer as needing
&gt; +        display, because the compositor will account for the corresponding layout
&gt; +        change simply by translating the layer to the correct position.
&gt; +
&gt; +        Second, overflow clipping is disabled when painting the contents of a
&gt; +        composited scrolling layer. This is done to increase the chances there is
&gt; +        valid layer content for the compositor to draw while scrolling the layer off
&gt; +        the main thread.
&gt; +
&gt; +        In order to test these changes, the existing TestRunner display() method is
&gt; +        extended to also work with composited layers. This is done by painting all
&gt; +        composited layers with a dark transparent mask. Any further repaints to the
&gt; +        layer contents will not have this mask, so they will appear highlighted compared
&gt; +        to the old contents.

You should break this into three patches. Do the last one first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729583</commentid>
    <comment_count>22</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-09-27 09:08:15 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; &gt; +        In order to test these changes, the existing TestRunner display() method is
&gt; &gt; +        extended to also work with composited layers. This is done by painting all
&gt; &gt; +        composited layers with a dark transparent mask. Any further repaints to the
&gt; &gt; +        layer contents will not have this mask, so they will appear highlighted compared
&gt; &gt; +        to the old contents.
&gt; 
&gt; You should break this into three patches. Do the last one first.

Okay, I&apos;ll split it up. Any comment on how the repaint tracking is done? It&apos;s a bit different to how FrameView accumulates a list of paint rects, but doing the same with layers gets a little messy when transforms are involved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729627</commentid>
    <comment_count>23</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-09-27 09:43:42 -0700</bug_when>
    <thetext>You could store a list of repaint rectangles in local layer coordinates on RenderLayerBacking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750805</commentid>
    <comment_count>24</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-10-25 07:35:25 -0700</bug_when>
    <thetext>&gt; &gt; +
&gt; &gt; +        Second, overflow clipping is disabled when painting the contents of a
&gt; &gt; +        composited scrolling layer. This is done to increase the chances there is
&gt; &gt; +        valid layer content for the compositor to draw while scrolling the layer off
&gt; &gt; +        the main thread.
&gt; &gt; +
&gt; &gt; +        

I&apos;ve seen some repaint regressions related to this change when we change the clip rectangular of the overflow element dynamically (e.g. When we rotate a device).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750833</commentid>
    <comment_count>25</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-10-25 07:53:14 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; &gt; &gt; +
&gt; &gt; &gt; +        Second, overflow clipping is disabled when painting the contents of a
&gt; &gt; &gt; +        composited scrolling layer. This is done to increase the chances there is
&gt; &gt; &gt; +        valid layer content for the compositor to draw while scrolling the layer off
&gt; &gt; &gt; +        the main thread.
&gt; &gt; &gt; +
&gt; &gt; &gt; +        
&gt; 
&gt; I&apos;ve seen some repaint regressions related to this change when we change the clip rectangular of the overflow element dynamically (e.g. When we rotate a device).

Err

S/rectangular/rect</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750848</commentid>
    <comment_count>26</comment_count>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-10-25 08:20:37 -0700</bug_when>
    <thetext>That is interesting. Would you happen to have a repro case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752101</commentid>
    <comment_count>27</comment_count>
      <attachid>170940</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-10-26 08:57:32 -0700</bug_when>
    <thetext>Created attachment 170940
Patch

Rebased against bug 100524.

Antonio: I wasn&apos;t able to trigger the repaint regression based on your description. Could you elaborate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752135</commentid>
    <comment_count>28</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-10-26 09:33:49 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; Created an attachment (id=170940) [details]
&gt; Patch
&gt; 
&gt; Rebased against bug 100524.
&gt; 
&gt; Antonio: I wasn&apos;t able to trigger the repaint regression based on your description. Could you elaborate?

Will try to get a reproducible test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759473</commentid>
    <comment_count>29</comment_count>
      <attachid>172537</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-11-06 03:08:53 -0800</bug_when>
    <thetext>Created attachment 172537
Patch

Rebased now that 97801 landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759620</commentid>
    <comment_count>30</comment_count>
      <attachid>172537</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-11-06 06:38:52 -0800</bug_when>
    <thetext>Comment on attachment 172537
Patch

Looks good to me. Will defer to smfr a final word though...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766938</commentid>
    <comment_count>31</comment_count>
      <attachid>174170</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-11-14 08:40:02 -0800</bug_when>
    <thetext>Created attachment 174170
Patch

Now that 100524 landed this one should be good to go. Simon, would you mind taking a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767053</commentid>
    <comment_count>32</comment_count>
      <attachid>174170</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 10:52:24 -0800</bug_when>
    <thetext>Comment on attachment 174170
Patch

Clearing flags on attachment: 174170

Committed r134628: &lt;http://trac.webkit.org/changeset/134628&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767054</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 10:52:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162817</attachid>
            <date>2012-09-07 10:54:06 -0700</date>
            <delta_ts>2012-09-10 10:21:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96087-20120907185345.patch</filename>
            <type>text/plain</type>
            <size>32394</size>
            <attacher name="Sami Kyöstilä">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjYwZDMxODY1ODBjNDZk
ODBhZDMxODA0ZTA3NGNlOTY2Y2VjOGIyZC4uMTdjYTA4MDI1OWRhOWM2NDhmY2NhNGZiZjliZDAy
ODM3YmU1MTlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDgwIEBACiAyMDEyLTA5LTA3ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAZ29vZ2xlLmNvbT4KIAorICAgICAgICBPcHRpbWl6ZSBwYWlu
dGluZyBvZiBjb21wb3NpdGVkIHNjcm9sbGluZyBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBlbmFibGVzIHR3byBvcHRpbWl6
YXRpb24gZm9yIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVyczogZmlyc3QsCisgICAgICAgIHdo
ZW4gdGhlIGxheWVyIHNjcm9sbCBvZmZzZXQgY2hhbmdlcywgZG8gbm90IG1hcmsgdGhlIGVudGly
ZSBsYXllciBhcyBuZWVkaW5nCisgICAgICAgIGRpc3BsYXksIGJlY2F1c2UgdGhlIGNvbXBvc2l0
b3Igd2lsbCBhY2NvdW50IGZvciB0aGUgY29ycmVzcG9uZGluZyBsYXlvdXQKKyAgICAgICAgY2hh
bmdlIHNpbXBseSBieSB0cmFuc2xhdGluZyB0aGUgbGF5ZXIgdG8gdGhlIGNvcnJlY3QgcG9zaXRp
b24uCisKKyAgICAgICAgU2Vjb25kLCBkaXNhYmxlIG92ZXJmbG93IGNsaXBwaW5nIHdoZW4gcGFp
bnRpbmcgdGhlIGNvbnRlbnRzIG9mIGEgY29tcG9zaXRlZAorICAgICAgICBzY3JvbGxpbmcgbGF5
ZXIuIFRoaXMgaXMgZG9uZSB0byBpbmNyZWFzZSB0aGUgY2hhbmdlcyB0aGVyZSBpcyB2YWxpZCBs
YXllcgorICAgICAgICBjb250ZW50IGZvciB0aGUgY29tcG9zaXRvciB0byBkcmF3IHdoaWxlIHNj
cm9sbGluZyB0aGUgbGF5ZXIgb2ZmIHRoZSBtYWluCisgICAgICAgIHRocmVhZC4KKworICAgICAg
ICBXZSBhbHNvIHJlbmFtZSB0aGUgY29uZmlndXJhdGlvbiBkaXJlY3RpdmUgRU5BQkxFX09WRVJG
TE9XX1NDUk9MTElORyB0bworICAgICAgICBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NS
T0xMSU5HIHRvIGJldHRlciByZWZsZWN0IGl0cyBwdXJwb3NlLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cyAoT09QUyEpIC0tIHN0aWxsIHdvcmtpbicgb24gaXQuCisKKyAgICAgICAgKiBjc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1Zh
bHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omlz
VmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjppc0tleXdv
cmRQcm9wZXJ0eUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6
CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
b3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlO
YW1lcy5pbjoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAgICAgKiBj
c3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpj
b2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0
T2Zmc2V0RnJvbVJlbmRlcmVyKTogT3B0aW9uYWxseSBhbGxvdworICAgICAgICBjaGFuZ2luZyB0
aGUgcmVuZGVyZXIgb2Zmc2V0IHdpdGhvdXQgaW52YWxpZGF0aW5nIHRoZSBsYXllci4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChHcmFwaGlj
c0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuaDogQ3VycmVudGx5IExh
eW91dFN0YXRlIGlzIG9ubHkgdXNlZCBmb3IKKyAgICAgICAgcm9vdC1yZWxhdGl2ZSBwYWludGlu
Zywgd2hpY2ggbWVhbnMgdGhlcmUgaXMgbm8gbmVlZCB0byBtb2RpZnkgaXQgZm9yCisgICAgICAg
IGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVycy4gSG93ZXZlciwgaW4gY2FzZSB3ZSBkZWNpZGUg
dG8gZG8gdGhpcworICAgICAgICBvcHRpbWl6YXRpb24gbGF0ZXIsIExheW91dFN0YXRlIHNob3Vs
ZCBiZSBtb2RpZmllZCB0byBzdXBwb3J0IHR3bworICAgICAgICB0eXBlcyBvZiBjbGlwIHJlY3Rz
OiBmb3IgbGF5b3V0IGNsaXBwaW5nIGFuZCBwYWludCBjbGlwcGluZy4gVGhlCisgICAgICAgIGZv
cm1lciBjYW4gYmUgdXNlZCBmb3IgaGl0IHRlc3RpbmcsIHdoaWxlIHRoZSBsYXR0ZXIgaXMgZm9y
IGFjdHVhbAorICAgICAgICByZXBhaW50aW5nIHdoaWNoIG1heSBleHRlbmQgYmV5b25kIHRoZSB2
aXN1YWwgY2xpcCByZWN0LiBBZGRlZCBhCisgICAgICAgIGNvbW1lbnQgYXMgYSByZW1pbmRlciBh
Ym91dCB0aGlzLgorICAgICAgICAoTGF5b3V0U3RhdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94OjphcHBseUNhY2hlZENsaXBBbmRTY3JvbGxPZmZzZXRGb3JSZXBhaW50KToKKyAgICAg
ICAgKFdlYkNvcmUpOiBBZGRlZCBjb21tb24gdXRpbGl0eSBmdW5jdGlvbiBmb3IgYXBwbHlpbmcg
YSBjbGlwIHRvCisgICAgICAgIHJlcGFpbnQgcmVjdGFuZ2xlLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3guaDoKKyAgICAgICAgKFJlbmRlckJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xs
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZXBhaW50QmxvY2tTZWxlY3Rp
b25HYXBzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdl
b21ldHJ5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJh
cmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmg6CisgICAgICAgIChTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhKToKKworMjAxMi0wOS0wNyAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGdv
b2dsZS5jb20+CisKICAgICAgICAgW2Nocm9taXVtXSBEeW5hbWljYWxseSByZW1vdmluZyBwcmVz
ZXJ2ZS0zZCBmcm9tIGEgbGF5ZXIgaGFzIG5vIGVmZmVjdAogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU3MzIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKaW5kZXggZjQzYTIwYzM0ODZhNzU2NjIxMzU3NmNkZDMxNmM3YjRlODY2NWNlOC4uYzFm
Mjk0Y2VjMDlmOWU0OTFmNjNjYmFlNTdmZTBmOTY4N2E2MDE5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDktMDcgIFNhbWkgS3lvc3RpbGEg
IDxza3lvc3RpbEBnb29nbGUuY29tPgorCisgICAgICAgIE9wdGltaXplIHBhaW50aW5nIG9mIGNv
bXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTYwODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZW5hbWVkIEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkcgdG8gRU5B
QkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORy4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmluOgorCiAyMDEyLTA5LTA2ICBDcnlzdGFs
IFpoYW5nICA8aGFpemhhbmdAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gIEltcGxl
bWVudCBhIGNvbG9yIHBpY2tlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzZmY0MTFk
MGQwODllZmRhZjgxYzAwOTU2ODRmYmE2MGM1ZmZiZjFkLi5iNTY5MGE4Mzg5MjQ3N2RkMzQ2MTY3
MGY0MzVhNTU2YTk4OTRkNGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDEyLTA5LTA3ICBTYW1pIEt5b3N0aWxhICA8c2t5b3N0aWxAZ29vZ2xlLmNvbT4K
KworICAgICAgICBPcHRpbWl6ZSBwYWludGluZyBvZiBjb21wb3NpdGVkIHNjcm9sbGluZyBsYXll
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDg3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1l
ZCBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HIHRvIEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxP
V19TQ1JPTExJTkcuCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorCiAyMDEyLTA5LTA3ICBB
bGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAg
IFgxMSBHbG9iYWwgU2VsZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGFhYjUwMGYwNWJiNDlkZjc2MzNhY2U2YjMz
YTY2NTEwZGZlZjQwNTkuLjE3MmE1MWQwNTFkNzE5MWMxMzM0ODA0YTU4ODgwNGY4YzNlNDc1ZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCkBAIC0zMDQsNyArMzA0LDcgQEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29t
cHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlXZWJraXRNYXNrU2l6ZSwKICAg
ICBDU1NQcm9wZXJ0eVdlYmtpdE5ic3BNb2RlLAogICAgIENTU1Byb3BlcnR5V2Via2l0T3JkZXIs
Ci0jaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURf
T1ZFUkZMT1dfU0NST0xMSU5HKQogICAgIENTU1Byb3BlcnR5V2Via2l0T3ZlcmZsb3dTY3JvbGxp
bmcsCiAjZW5kaWYKICAgICBDU1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZlLApAQCAtMjI3NCw3
ICsyMjc0LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnQKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdE1hcmdpblRvcENvbGxhcHNlOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0TWFyZ2luQmVmb3JlQ29sbGFwc2U6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29s
KCkuY3JlYXRlVmFsdWUoc3R5bGUtPm1hcmdpbkJlZm9yZUNvbGxhcHNlKCkpOwotI2lmIEVOQUJM
RShPVkVSRkxPV19TQ1JPTExJTkcpCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9XX1ND
Uk9MTElORykKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE92ZXJmbG93U2Nyb2xsaW5n
OgogICAgICAgICAgICAgaWYgKCFzdHlsZS0+dXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFs
dWUoQ1NTVmFsdWVBdXRvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMjhjZTEzMTU3
Zjk1NTRiNmE5MmY3NWUwOGE1ZGFlZDlmYWU1MThlMy4uMDllYjYzNjY2ZjQ5NTM3ZGIyNWE1OGI4
ZGIxZGI2MGY5M2ExMjBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTgzNCw3ICs4
MzQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVl
KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCwgaW50CiAgICAgICAgIGlmICh2YWx1ZUlEID09IENT
U1ZhbHVlTm9ybWFsIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTcGFjZSkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBicmVhazsKLSNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5H
KQorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdE92ZXJmbG93U2Nyb2xsaW5nOgogICAgICAgICBpZiAodmFsdWVJRCA9
PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVRvdWNoKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CkBAIC0xMDEyLDcgKzEwMTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNL
ZXl3b3JkUHJvcGVydHlJRChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQpCiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdE1hcnF1ZWVEaXJlY3Rpb246CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1hcnF1ZWVTdHlsZToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TmJzcE1vZGU6Ci0jaWYg
RU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZM
T1dfU0NST0xMSU5HKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRPdmVyZmxvd1Njcm9sbGlu
ZzoKICNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQcmludENvbG9yQWRqdXN0OgpA
QCAtMjg3Miw3ICsyODcyLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVy
dHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRN
YXJxdWVlRGlyZWN0aW9uOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlU3R5bGU6
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE5ic3BNb2RlOgotI2lmIEVOQUJMRShPVkVSRkxP
V19TQ1JPTExJTkcpCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0T3ZlcmZsb3dTY3JvbGxpbmc6CiAjZW5kaWYKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UHJpbnRDb2xvckFkanVzdDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJvcGVydHkuY3BwCmluZGV4IDdlYzAxOGQ2N2RkYWNkMjhiOGFmMDcxYWQzOGY5ZmY5MDhiNjdl
NzAuLjE1YmQ3YTI5NzcwYjkyMDQ0ODQxMGU4Yzk5ZmEzZmVlNzQ3ZmE2M2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5LmNwcApAQCAtMzQyLDcgKzM0Miw3IEBAIGJvb2wgQ1NTUHJvcGVydHk6
OmlzSW5oZXJpdGVkUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQogICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRMaW5lR3JpZDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TGlu
ZVNuYXA6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE5ic3BNb2RlOgotI2lmIEVOQUJMRShP
VkVSRkxPV19TQ1JPTExJTkcpCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9M
TElORykKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0T3ZlcmZsb3dTY3JvbGxpbmc6CiAjZW5k
aWYKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UHJpbnRDb2xvckFkanVzdDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggNzMzMGUwMDc2N2Q4NWU4MTY3MjQxOWZh
ODU1ZDU0MDQzY2QwYjc1YS4uYmRkODQ4ODExMWMzOGU0ODg1ZGNjOTk0ZmEyNjgzMTA0YWVhNDZm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTQxMSw2ICs0MTEs
NiBAQCB6LWluZGV4CiAjaWYgZGVmaW5lZChFTkFCTEVfV0lER0VUX1JFR0lPTikgJiYgRU5BQkxF
X1dJREdFVF9SRUdJT04KIC13ZWJraXQtd2lkZ2V0LXJlZ2lvbgogI2VuZGlmCi0jaWYgZGVmaW5l
ZChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HKSAmJiBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5H
CisjaWYgZGVmaW5lZChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAmJiBF
TkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HCiAtd2Via2l0LW92ZXJmbG93LXNj
cm9sbGluZwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4
IGVlZDkxMDA3NDZiNzgwY2Q4ZjBhYmM3NWM1ODE0ZWM2YjMxNGFiODMuLjRiOTk2Nzk2ZmE1NTdi
NTg2NzhiYWZiYzQxZWY1ZWFiMGI1OTQ2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCkBAIC04MjksNyArODI5LDcgQEAgbm8tbGltaXQKIG1hbnVhbAogLy8gYXV0bwog
Ci0jaWYgZGVmaW5lZChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HKSAmJiBFTkFCTEVfT1ZFUkZM
T1dfU0NST0xMSU5HCisjaWYgZGVmaW5lZChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NS
T0xMSU5HKSAmJiBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HCiAvLyAtd2Vi
a2l0LW92ZXJmbG93LXNjcm9sbGluZwogLy8gYXV0bwogdG91Y2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcAppbmRleCA0ZTMwNjVhYmY2Y2EyOTUxMGY5MDY4YWY5MDY1MDFmYTIyZWYy
YTAzLi4xY2FmOTI3MDYyNjhiM2U1N2JiMTU5YmY5YzMyNDUyMDRmY2I4Yzg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yMTk2LDcgKzIxOTYsNyBAQCB2b2lkIFN0eWxl
UmVzb2x2ZXI6OmFkanVzdFJlbmRlclN0eWxlKFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5
bGUqIHBhcmVudFN0eQogI2Vsc2UKICAgICAgICAgfHwgKHN0eWxlLT5wb3NpdGlvbigpID09IEZp
eGVkUG9zaXRpb24gJiYgZSAmJiBlLT5kb2N1bWVudCgpLT5wYWdlKCkgJiYgZS0+ZG9jdW1lbnQo
KS0+cGFnZSgpLT5zZXR0aW5ncygpLT5maXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4
dCgpKQogI2VuZGlmCi0jaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykKKyNpZiBFTkFCTEUo
QUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQogICAgICAgICAvLyBUb3VjaCBvdmVyZmxv
dyBzY3JvbGxpbmcgY3JlYXRlcyBhIHN0YWNraW5nIGNvbnRleHQuCiAgICAgICAgIHx8ICgoc3R5
bGUtPm92ZXJmbG93WCgpICE9IE9ISURERU4gfHwgc3R5bGUtPm92ZXJmbG93WSgpICE9IE9ISURE
RU4pICYmIHN0eWxlLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCkpCiAjZW5kaWYKQEAgLTQw
NDMsNyArNDA0Myw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5k
aWYKLSNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HKQorI2lmIEVOQUJMRShBQ0NFTEVSQVRF
RF9PVkVSRkxPV19TQ1JPTExJTkcpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE92ZXJmbG93
U2Nyb2xsaW5nOiB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHVzZVRvdWNo
T3ZlcmZsb3dTY3JvbGxpbmcsIFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcpOwogICAgICAgICBp
ZiAoIXByaW1pdGl2ZVZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCAyYWUzZmU3ODcwYWU0NzIyZDQzMWYwMDUwOWUw
NzY4OTZmYzA5YzdkLi5jMGNkZGViNTk5ZGE1YWQ5MGZmY2NiMmIzNzIzYjMyMTA1ZGFkNzdiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmNwcApAQCAtMjg1LDcgKzI4NSw3IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRl
ZEJ5TGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgbV9yZXBsaWNhTGF5ZXIgPSBsYXll
cjsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyOjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3Qg
SW50U2l6ZSYgb2Zmc2V0KQordm9pZCBHcmFwaGljc0xheWVyOjpzZXRPZmZzZXRGcm9tUmVuZGVy
ZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBTaG91bGRTZXROZWVkc0Rpc3BsYXkgc2hvdWxkU2V0
TmVlZHNEaXNwbGF5KQogewogICAgIGlmIChvZmZzZXQgPT0gbV9vZmZzZXRGcm9tUmVuZGVyZXIp
CiAgICAgICAgIHJldHVybjsKQEAgLTI5Myw3ICsyOTMsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6
OnNldE9mZnNldEZyb21SZW5kZXJlcihjb25zdCBJbnRTaXplJiBvZmZzZXQpCiAgICAgbV9vZmZz
ZXRGcm9tUmVuZGVyZXIgPSBvZmZzZXQ7CiAKICAgICAvLyBJZiB0aGUgY29tcG9zaXRpbmcgbGF5
ZXIgb2Zmc2V0IGNoYW5nZXMsIHdlIG5lZWQgdG8gcmVwYWludC4KLSAgICBzZXROZWVkc0Rpc3Bs
YXkoKTsKKyAgICBpZiAoc2hvdWxkU2V0TmVlZHNEaXNwbGF5ID09IFNldE5lZWRzRGlzcGxheSkK
KyAgICAgICAgc2V0TmVlZHNEaXNwbGF5KCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0
QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA0MjMzYmM3ZjczYWRjODIz
MjUzOGRmYmNhMDFlMGU1YzJhNTM4NDNjLi41ODM1MDUwMmVmMDU2NGYwOTI3ODdlMTA1YzVmOWY5
NjI3MzhmZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5oCkBAIC0yMzMsOSArMjMzLDE0IEBAIHB1YmxpYzoKICAgICBjb25zdCBGbG9h
dFBvaW50JiByZXBsaWNhdGVkTGF5ZXJQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGlj
YXRlZExheWVyUG9zaXRpb247IH0KICAgICB2b2lkIHNldFJlcGxpY2F0ZWRMYXllclBvc2l0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmIHApIHsgbV9yZXBsaWNhdGVkTGF5ZXJQb3NpdGlvbiA9IHA7IH0K
IAorICAgIGVudW0gU2hvdWxkU2V0TmVlZHNEaXNwbGF5IHsKKyAgICAgICAgRG9udFNldE5lZWRz
RGlzcGxheSwKKyAgICAgICAgU2V0TmVlZHNEaXNwbGF5CisgICAgfTsKKwogICAgIC8vIE9mZnNl
dCBpcyBvcmlnaW4gb2YgdGhlIHJlbmRlcmVyIG1pbnVzIG9yaWdpbiBvZiB0aGUgZ3JhcGhpY3Mg
bGF5ZXIgKHNvIGVpdGhlciB6ZXJvIG9yIG5lZ2F0aXZlKS4KICAgICBJbnRTaXplIG9mZnNldEZy
b21SZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0RnJvbVJlbmRlcmVyOyB9Ci0gICAg
dm9pZCBzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYpOworICAgIHZvaWQgc2V0
T2Zmc2V0RnJvbVJlbmRlcmVyKGNvbnN0IEludFNpemUmLCBTaG91bGRTZXROZWVkc0Rpc3BsYXkg
PSBTZXROZWVkc0Rpc3BsYXkpOwogCiAgICAgLy8gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXllciAo
dGhlIGxvY2F0aW9uIG9mIGl0cyB0b3AtbGVmdCBjb3JuZXIgaW4gaXRzIHBhcmVudCkKICAgICBj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKaW5kZXggMTUyYzgwNDY1NDU4ZmQx
NWIyOTc5YzdhY2MzYWU3ZGYyYjA5ZTA5ZS4uMzc5MzQ3M2I1YjVjYThmY2FkNGNlYzU0MjJiZGY5
ZGEyYTczMTUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0
YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKQEAgLTEw
MCw2ICsxMDAsMTAgQEAgcHJpdmF0ZToKIHB1YmxpYzoKICAgICBib29sIG1fY2xpcHBlZDsKICAg
ICBib29sIG1faXNQYWdpbmF0ZWQ7CisKKyAgICAvLyBMYXlvdXQgY2xpcCByZWN0LgorICAgIC8v
IEZJWE1FOiBEaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBsYXlvdXQgY2xpcCByZWN0IGFuZCB0aGUg
cGFpbnQgY2xpcCByZWN0IHdoaWNoIG1heSBiZSBsYXJnZXIsCisgICAgLy8gZS5nLiwgYmVjYXVz
ZSBvZiBjb21wb3NpdGVkIHNjcm9sbGluZy4KICAgICBMYXlvdXRSZWN0IG1fY2xpcFJlY3Q7CiAg
ICAgCiAgICAgLy8geC95IG9mZnNldCBmcm9tIGNvbnRhaW5lci4gSW5jbHVkZXMgcmVsYXRpdmUg
cG9zaXRpb25pbmcgYW5kIHNjcm9sbCBvZmZzZXRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAKaW5kZXggMTAyMTZiYzAwNzhhY2MxM2RlOTU4MDI3MWI2OTg4NDAxMDJh
NWEwYi4uMDdhOGJkOGUyNmZhYTEzZmJhZDlkNmI2ZmM5NzAxMGZhMTU1YTcxOCAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0yNzI3LDcgKzI3MjcsNyBAQCB2
b2lkIFJlbmRlckJsb2NrOjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0
UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgIC8vIENoZWNrIGlmIHdlIG5lZWQgdG8gZG8gYW55dGhp
bmcgYXQgYWxsLgogICAgIC8vIEZJWE1FOiBDb3VsZCBlbGltaW5hdGUgdGhlIGlzUm9vdCgpIGNo
ZWNrIGlmIHdlIGZpeCBiYWNrZ3JvdW5kIHBhaW50aW5nIHNvIHRoYXQgdGhlIFJlbmRlclZpZXcK
ICAgICAvLyBwYWludHMgdGhlIHJvb3QncyBiYWNrZ3JvdW5kLgotICAgIGlmICghaXNSb290KCkp
IHsKKyAgICBpZiAoIWlzUm9vdCgpICYmICEoaGFzT3ZlcmZsb3dDbGlwKCkgJiYgaGFzTGF5ZXIo
KSAmJiBsYXllcigpLT51c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKSkgewogICAgICAgICBMYXlv
dXRSZWN0IG92ZXJmbG93Qm94ID0gdmlzdWFsT3ZlcmZsb3dSZWN0KCk7CiAgICAgICAgIGZsaXBG
b3JXcml0aW5nTW9kZShvdmVyZmxvd0JveCk7CiAgICAgICAgIG92ZXJmbG93Qm94LmluZmxhdGUo
bWF4aW1hbE91dGxpbmVTaXplKHBhaW50SW5mby5waGFzZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAppbmRleCAxNzJjNDVmZjRkZGI5YTg1MDM2ZGUyYmRiOGNjZjkyNTVi
OTNiZjg5Li4wMWE0NjMxY2UwOTQ2NTc2NmM0NTgxODBlNDQ4ZWFkMWQxOWMwNmE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNjQ3LDYgKzY0NywyMSBAQCBMYXlv
dXRTaXplIFJlbmRlckJveDo6Y2FjaGVkU2l6ZUZvck92ZXJmbG93Q2xpcCgpIGNvbnN0CiAgICAg
cmV0dXJuIGxheWVyKCktPnNpemUoKTsKIH0KIAordm9pZCBSZW5kZXJCb3g6OmFwcGx5Q2FjaGVk
Q2xpcEFuZFNjcm9sbE9mZnNldEZvclJlcGFpbnQoTGF5b3V0UmVjdCYgcGFpbnRSZWN0KSBjb25z
dAoreworICAgIHBhaW50UmVjdC5tb3ZlKC1zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7IC8vIEZv
ciBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4uCisKKyAgICAvLyBEbyBub3QgY2xpcCBzY3Jv
bGwgbGF5ZXIgY29udGVudHMgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgcmVwYWludHMgd2hpbGUg
c2Nyb2xsaW5nLgorICAgIGlmIChoYXNPdmVyZmxvd0NsaXAoKSAmJiBoYXNMYXllcigpICYmIGxh
eWVyKCktPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIGhlaWdodCgpIGlzIGluYWNjdXJhdGUgaWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxh
eW91dCBvZiB0aGlzIFJlbmRlckJveCwgc28gdXNlIHRoZQorICAgIC8vIGxheWVyJ3Mgc2l6ZSBp
bnN0ZWFkLiBFdmVuIGlmIHRoZSBsYXllcidzIHNpemUgaXMgd3JvbmcsIHRoZSBsYXllciBpdHNl
bGYgd2lsbCByZXBhaW50CisgICAgLy8gYW55d2F5IGlmIGl0cyBzaXplIGRvZXMgY2hhbmdlLgor
ICAgIExheW91dFJlY3QgY2xpcFJlY3QoTGF5b3V0UG9pbnQoKSwgY2FjaGVkU2l6ZUZvck92ZXJm
bG93Q2xpcCgpKTsKKyAgICBwYWludFJlY3QgPSBpbnRlcnNlY3Rpb24ocGFpbnRSZWN0LCBjbGlw
UmVjdCk7Cit9CisKIExheW91dFVuaXQgUmVuZGVyQm94OjptaW5QcmVmZXJyZWRMb2dpY2FsV2lk
dGgoKSBjb25zdAogewogICAgIGlmIChwcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoKSkKQEAg
LTE1NzQsMjEgKzE1ODksMTMgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWlu
dChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGEKIAogICAgIC8vIEZJ
WE1FOiBXZSBpZ25vcmUgdGhlIGxpZ2h0d2VpZ2h0IGNsaXBwaW5nIHJlY3QgdGhhdCBjb250cm9s
cyB1c2UsIHNpbmNlIGlmIHxvfCBpcyBpbiBtaWQtbGF5b3V0LAogICAgIC8vIGl0cyBjb250cm9s
Q2xpcFJlY3Qgd2lsbCBiZSB3cm9uZy4gRm9yIG92ZXJmbG93IGNsaXAgd2UgdXNlIHRoZSB2YWx1
ZXMgY2FjaGVkIGJ5IHRoZSBsYXllci4KKyAgICByZWN0LnNldExvY2F0aW9uKHRvcExlZnQpOwog
ICAgIGlmIChvLT5oYXNPdmVyZmxvd0NsaXAoKSkgewogICAgICAgICBSZW5kZXJCb3gqIGNvbnRh
aW5lckJveCA9IHRvUmVuZGVyQm94KG8pOwotCi0gICAgICAgIC8vIG8tPmhlaWdodCgpIGlzIGlu
YWNjdXJhdGUgaWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxheW91dCBvZiB8b3wsIHNvIHVz
ZSB0aGUKLSAgICAgICAgLy8gbGF5ZXIncyBzaXplIGluc3RlYWQuICBFdmVuIGlmIHRoZSBsYXll
cidzIHNpemUgaXMgd3JvbmcsIHRoZSBsYXllciBpdHNlbGYgd2lsbCByZXBhaW50Ci0gICAgICAg
IC8vIGFueXdheSBpZiBpdHMgc2l6ZSBkb2VzIGNoYW5nZS4KLSAgICAgICAgdG9wTGVmdCAtPSBj
b250YWluZXJCb3gtPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOyAvLyBGb3Igb3ZlcmZsb3c6YXV0
by9zY3JvbGwvaGlkZGVuLgotCi0gICAgICAgIExheW91dFJlY3QgcmVwYWludFJlY3QodG9wTGVm
dCwgcmVjdC5zaXplKCkpOwotICAgICAgICBMYXlvdXRSZWN0IGJveFJlY3QoTGF5b3V0UG9pbnQo
KSwgY29udGFpbmVyQm94LT5jYWNoZWRTaXplRm9yT3ZlcmZsb3dDbGlwKCkpOwotICAgICAgICBy
ZWN0ID0gaW50ZXJzZWN0aW9uKHJlcGFpbnRSZWN0LCBib3hSZWN0KTsKKyAgICAgICAgY29udGFp
bmVyQm94LT5hcHBseUNhY2hlZENsaXBBbmRTY3JvbGxPZmZzZXRGb3JSZXBhaW50KHJlY3QpOwog
ICAgICAgICBpZiAocmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgfSBl
bHNlCi0gICAgICAgIHJlY3Quc2V0TG9jYXRpb24odG9wTGVmdCk7CisgICAgfQogCiAgICAgaWYg
KGNvbnRhaW5lclNraXBwZWQpIHsKICAgICAgICAgLy8gSWYgdGhlIHJlcGFpbnRDb250YWluZXIg
aXMgYmVsb3cgbywgdGhlbiB3ZSBuZWVkIHRvIG1hcCB0aGUgcmVjdCBpbnRvIHJlcGFpbnRDb250
YWluZXIncyBjb29yZGluYXRlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRl
eCBiYTkyMDNlNzdlYTNlMjU2ZDU2MjIzOTM5MGIxY2MwYmFmZWYyMGQ2Li40NGI0NmUzMWM5MDhh
NWFhODEwMTc1MGU5MTIwNzExZDg1OGYxNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5oCkBAIC01MDksNiArNTA5LDcgQEAgcHVibGljOgogCiAgICAgSW50U2l6ZSBzY3JvbGxl
ZENvbnRlbnRPZmZzZXQoKSBjb25zdDsKICAgICBMYXlvdXRTaXplIGNhY2hlZFNpemVGb3JPdmVy
Zmxvd0NsaXAoKSBjb25zdDsKKyAgICB2b2lkIGFwcGx5Q2FjaGVkQ2xpcEFuZFNjcm9sbE9mZnNl
dEZvclJlcGFpbnQoTGF5b3V0UmVjdCYgcGFpbnRSZWN0KSBjb25zdDsKIAogICAgIHZpcnR1YWwg
Ym9vbCBoYXNSZWxhdGl2ZURpbWVuc2lvbnMoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaGFz
UmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwCmluZGV4IDk0MTM3NTUwOTk5ZjQ1ODUzMmRjZTQ1NDBhZjc2NjA3ZjVh
YjI0YzMuLjIzNGNlYTI4YmI1NDQ5NzcwYWZiZTBiOWZiZmZhYzQxMzMwMjg2NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC05OTMsMTUgKzk5Myw4IEBA
IExheW91dFJlY3QgUmVuZGVySW5saW5lOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChS
ZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwCiAgICAgaWYgKGNiLT5oYXNDb2x1bW5zKCkpCiAgICAg
ICAgIGNiLT5hZGp1c3RSZWN0Rm9yQ29sdW1ucyhyZXBhaW50UmVjdCk7CiAKLSAgICBpZiAoY2It
Pmhhc092ZXJmbG93Q2xpcCgpKSB7Ci0gICAgICAgIC8vIGNiLT5oZWlnaHQoKSBpcyBpbmFjY3Vy
YXRlIGlmIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgYSBsYXlvdXQgb2YgfGNifCwgc28gdXNlIHRo
ZQotICAgICAgICAvLyBsYXllcidzIHNpemUgaW5zdGVhZC4gIEV2ZW4gaWYgdGhlIGxheWVyJ3Mg
c2l6ZSBpcyB3cm9uZywgdGhlIGxheWVyIGl0c2VsZiB3aWxsIHJlcGFpbnQKLSAgICAgICAgLy8g
YW55d2F5IGlmIGl0cyBzaXplIGRvZXMgY2hhbmdlLgotICAgICAgICByZXBhaW50UmVjdC5tb3Zl
KC1jYi0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOyAvLyBGb3Igb3ZlcmZsb3c6YXV0by9zY3Jv
bGwvaGlkZGVuLgotCi0gICAgICAgIExheW91dFJlY3QgYm94UmVjdChMYXlvdXRQb2ludCgpLCBj
Yi0+Y2FjaGVkU2l6ZUZvck92ZXJmbG93Q2xpcCgpKTsKLSAgICAgICAgcmVwYWludFJlY3QuaW50
ZXJzZWN0KGJveFJlY3QpOwotICAgIH0KKyAgICBpZiAoY2ItPmhhc092ZXJmbG93Q2xpcCgpKQor
ICAgICAgICBjYi0+YXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xsT2Zmc2V0Rm9yUmVwYWludChyZXBh
aW50UmVjdCk7CiAKICAgICBjYi0+Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWlu
ZXIsIHJlcGFpbnRSZWN0KTsKIApAQCAtMTA3MywyMSArMTA2NiwxMyBAQCB2b2lkIFJlbmRlcklu
bGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLAogICAgIAogICAgIC8vIEZJWE1FOiBXZSBpZ25vcmUgdGhlIGxpZ2h0d2VpZ2h0
IGNsaXBwaW5nIHJlY3QgdGhhdCBjb250cm9scyB1c2UsIHNpbmNlIGlmIHxvfCBpcyBpbiBtaWQt
bGF5b3V0LAogICAgIC8vIGl0cyBjb250cm9sQ2xpcFJlY3Qgd2lsbCBiZSB3cm9uZy4gRm9yIG92
ZXJmbG93IGNsaXAgd2UgdXNlIHRoZSB2YWx1ZXMgY2FjaGVkIGJ5IHRoZSBsYXllci4KKyAgICBy
ZWN0LnNldExvY2F0aW9uKHRvcExlZnQpOwogICAgIGlmIChvLT5oYXNPdmVyZmxvd0NsaXAoKSkg
ewogICAgICAgICBSZW5kZXJCb3gqIGNvbnRhaW5lckJveCA9IHRvUmVuZGVyQm94KG8pOwotCi0g
ICAgICAgIC8vIG8tPmhlaWdodCgpIGlzIGluYWNjdXJhdGUgaWYgd2UncmUgaW4gdGhlIG1pZGRs
ZSBvZiBhIGxheW91dCBvZiB8b3wsIHNvIHVzZSB0aGUKLSAgICAgICAgLy8gbGF5ZXIncyBzaXpl
IGluc3RlYWQuICBFdmVuIGlmIHRoZSBsYXllcidzIHNpemUgaXMgd3JvbmcsIHRoZSBsYXllciBp
dHNlbGYgd2lsbCByZXBhaW50Ci0gICAgICAgIC8vIGFueXdheSBpZiBpdHMgc2l6ZSBkb2VzIGNo
YW5nZS4KLSAgICAgICAgdG9wTGVmdCAtPSBjb250YWluZXJCb3gtPnNjcm9sbGVkQ29udGVudE9m
ZnNldCgpOyAvLyBGb3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgotCi0gICAgICAgIExh
eW91dFJlY3QgcmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwotICAgICAgICBMYXlv
dXRSZWN0IGJveFJlY3QoTGF5b3V0UG9pbnQoKSwgY29udGFpbmVyQm94LT5jYWNoZWRTaXplRm9y
T3ZlcmZsb3dDbGlwKCkpOwotICAgICAgICByZWN0ID0gaW50ZXJzZWN0aW9uKHJlcGFpbnRSZWN0
LCBib3hSZWN0KTsKKyAgICAgICAgY29udGFpbmVyQm94LT5hcHBseUNhY2hlZENsaXBBbmRTY3Jv
bGxPZmZzZXRGb3JSZXBhaW50KHJlY3QpOwogICAgICAgICBpZiAocmVjdC5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlCi0gICAgICAgIHJlY3Quc2V0TG9jYXRpb24o
dG9wTGVmdCk7CisgICAgfQogCiAgICAgaWYgKGNvbnRhaW5lclNraXBwZWQpIHsKICAgICAgICAg
Ly8gSWYgdGhlIHJlcGFpbnRDb250YWluZXIgaXMgYmVsb3cgbywgdGhlbiB3ZSBuZWVkIHRvIG1h
cCB0aGUgcmVjdCBpbnRvIHJlcGFpbnRDb250YWluZXIncyBjb29yZGluYXRlcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDYwMGJlN2IwN2E3MmEwYTg4ZWQ5
MzI5ODhhM2Q2MTVjOWRiOGNkMzUuLjhhZjM5ODIzNmZlNDM2ZDlmZjA5NThmNjJkNmNjN2FlZjdk
Zjk5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTU3
Myw3ICsxNTczLDcgQEAgYm9vbCBSZW5kZXJMYXllcjo6dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmco
KSBjb25zdAogICAgIGlmICghc2Nyb2xsc092ZXJmbG93KCkgfHwgIWFsbG93c1Njcm9sbGluZygp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5H
KQorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCiAgICAgcmV0dXJu
IHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKTsKICNlbHNl
CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDIwMCw3ICs0MjAwLDcgQEAgdm9pZCBSZW5kZXJMYXll
cjo6cmVwYWludEJsb2NrU2VsZWN0aW9uR2FwcygpCiAKICAgICBMYXlvdXRSZWN0IHJlY3QgPSBt
X2Jsb2NrU2VsZWN0aW9uR2Fwc0JvdW5kczsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGVkQ29udGVu
dE9mZnNldCgpKTsKLSAgICBpZiAocmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkpCisgICAg
aWYgKHJlbmRlcmVyKCktPmhhc092ZXJmbG93Q2xpcCgpICYmICF1c2VzQ29tcG9zaXRlZFNjcm9s
bGluZygpKQogICAgICAgICByZWN0LmludGVyc2VjdCh0b1JlbmRlckJveChyZW5kZXJlcigpKS0+
b3ZlcmZsb3dDbGlwUmVjdChMYXlvdXRQb2ludCgpLCAwKSk7IC8vIEZJWE1FOiBSZWdpb25zIG5v
dCBhY2NvdW50ZWQgZm9yLgogICAgIGlmIChyZW5kZXJlcigpLT5oYXNDbGlwKCkpCiAgICAgICAg
IHJlY3QuaW50ZXJzZWN0KHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5jbGlwUmVjdChMYXlvdXRQ
b2ludCgpLCAwKSk7IC8vIEZJWE1FOiBSZWdpb25zIG5vdCBhY2NvdW50ZWQgZm9yLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBhYzZh
NDdhZTg5YWJlZTZiZDE0YzRjYjQ4ODk5NTA5MjQ3MjMzNzMyLi4xNDg0NTM0YTdkZjNkMmI2NzEy
MzBhNmNiZDBlMTIyMGU3YWZlMzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNjc4LDkgKzY3OCw4IEBAIHZvaWQgUmVuZGVyTGF5
ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkoKQogICAgICAgICAgICAgY29t
cG9zaXRvcigpLT5zY3JvbGxpbmdMYXllckRpZENoYW5nZShtX293bmluZ0xheWVyKTsKIAogICAg
ICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNldFNpemUoc2Nyb2xsU2l6ZSk7Ci0gICAg
ICAgIC8vIEZJWE1FOiBTY3JvbGxpbmcgdGhlIGNvbnRlbnQgbGF5ZXIgZG9lcyBub3QgbmVlZCB0
byB0cmlnZ2VyIGEgcmVwYWludC4gVGhlIG9mZnNldCB3aWxsIGJlIGNvbXBlbnNhdGVkIGF3YXkg
ZHVyaW5nIHBhaW50aW5nLgogICAgICAgICAvLyBGSVhNRTogVGhlIHBhaW50IG9mZnNldCBhbmQg
dGhlIHNjcm9sbCBvZmZzZXQgc2hvdWxkIHJlYWxseSBiZSBzZXBhcmF0ZSBjb25jZXB0cy4KLSAg
ICAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIoc2Ny
b2xsaW5nQ29udGVudHNPZmZzZXQpOworICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIt
PnNldE9mZnNldEZyb21SZW5kZXJlcihzY3JvbGxpbmdDb250ZW50c09mZnNldCwgR3JhcGhpY3NM
YXllcjo6RG9udFNldE5lZWRzRGlzcGxheSk7CiAgICAgfQogCiAgICAgbV9ncmFwaGljc0xheWVy
LT5zZXRDb250ZW50c1JlY3QoY29udGVudHNCb3goKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDhiZmQ5Zjc0ZGRkYzMzNGNkODc1YzliYmU0NmJkZDcw
NTM3MWU0NTMuLjM3MmRhMTU2MTMxMzdjYmNmYjk3MTMyNzcxNWI0MDZiOWM0YWI3OWIgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0xNTA3LDE2ICsxNTA3
LDggQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwKICAgICAgICAgfQogCiAgICAgICAgIGlmIChv
LT5oYXNPdmVyZmxvd0NsaXAoKSkgewotICAgICAgICAgICAgLy8gby0+aGVpZ2h0KCkgaXMgaW5h
Y2N1cmF0ZSBpZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbGF5b3V0IG9mIHxvfCwgc28gdXNl
IHRoZQotICAgICAgICAgICAgLy8gbGF5ZXIncyBzaXplIGluc3RlYWQuICBFdmVuIGlmIHRoZSBs
YXllcidzIHNpemUgaXMgd3JvbmcsIHRoZSBsYXllciBpdHNlbGYgd2lsbCByZXBhaW50Ci0gICAg
ICAgICAgICAvLyBhbnl3YXkgaWYgaXRzIHNpemUgZG9lcyBjaGFuZ2UuCiAgICAgICAgICAgICBS
ZW5kZXJCb3gqIGJveFBhcmVudCA9IHRvUmVuZGVyQm94KG8pOwotCi0gICAgICAgICAgICBMYXlv
dXRSZWN0IHJlcGFpbnRSZWN0KHJlY3QpOwotICAgICAgICAgICAgcmVwYWludFJlY3QubW92ZSgt
Ym94UGFyZW50LT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7IC8vIEZvciBvdmVyZmxvdzphdXRv
L3Njcm9sbC9oaWRkZW4uCi0KLSAgICAgICAgICAgIExheW91dFJlY3QgYm94UmVjdChMYXlvdXRQ
b2ludCgpLCBib3hQYXJlbnQtPmNhY2hlZFNpemVGb3JPdmVyZmxvd0NsaXAoKSk7Ci0gICAgICAg
ICAgICByZWN0ID0gaW50ZXJzZWN0aW9uKHJlcGFpbnRSZWN0LCBib3hSZWN0KTsKKyAgICAgICAg
ICAgIGJveFBhcmVudC0+YXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xsT2Zmc2V0Rm9yUmVwYWludChy
ZWN0KTsKICAgICAgICAgICAgIGlmIChyZWN0LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKaW5kZXggYzUwNzg1Mjk1ZmZmOTgzNDNkMTZmZjMxY2ZjYzFiNjQ5OWY1NDU2OC4u
YjNkZTA5ZTUxMzYzZTU4NzM4YTM5ODZjNDUzOTAzY2U0NDA0OWUwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTk1Myw3ICs5NTMsNyBAQCBw
dWJsaWM6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBDb2xvciB0YXBIaWdobGlnaHRD
b2xvcigpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT50YXBIaWdobGlnaHRDb2xv
cjsgfQogI2VuZGlmCi0jaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykKKyNpZiBFTkFCTEUo
QUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQogICAgIGJvb2wgdXNlVG91Y2hPdmVyZmxv
d1Njcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT51c2VUb3VjaE92
ZXJmbG93U2Nyb2xsaW5nOyB9CiAjZW5kaWYKICAgICBib29sIHRleHRTaXplQWRqdXN0KCkgY29u
c3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPnRleHRTaXplQWRqdXN0OyB9CkBAIC0xNDA1
LDcgKzE0MDUsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICB2b2lk
IHNldFRhcEhpZ2hsaWdodENvbG9yKGNvbnN0IENvbG9yJiBjKSB7IFNFVF9WQVIocmFyZUluaGVy
aXRlZERhdGEsIHRhcEhpZ2hsaWdodENvbG9yLCBjKTsgfQogI2VuZGlmCi0jaWYgRU5BQkxFKE9W
RVJGTE9XX1NDUk9MTElORykKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xM
SU5HKQogICAgIHZvaWQgc2V0VXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZyhib29sIHYpIHsgU0VU
X1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZywgdik7IH0K
ICNlbmRpZgogICAgIGJvb2wgc2V0VGV4dFNpemVBZGp1c3QoYm9vbCk7CkBAIC0xNzI3LDcgKzE3
MjcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBzdGF0aWMgQ29s
b3IgaW5pdGlhbFRhcEhpZ2hsaWdodENvbG9yKCk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoT1ZFUkZM
T1dfU0NST0xMSU5HKQorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcp
CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSB7IHJl
dHVybiBmYWxzZTsgfQogI2VuZGlmCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKSB8fCBF
TkFCTEUoV0lER0VUX1JFR0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAppbmRleCAyNDY1YWNjY2FkMDJj
ZDUyOTY5NTE1NGU3ZjBlNmVlYzQ0NjBhMGY3Li4wM2JlMTBjOTZhNmFkYTcxOTk5MmU3YzIzNmM5
MDk5YzE1OWUxOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCkBAIC04OCw3ICs4OCw3IEBAIFN0eWxl
UmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoKQogICAgICwgbV9pbWFn
ZVJlbmRlcmluZyhSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdlUmVuZGVyaW5nKCkpCiAgICAgLCBt
X2xpbmVTbmFwKFJlbmRlclN0eWxlOjppbml0aWFsTGluZVNuYXAoKSkKICAgICAsIG1fbGluZUFs
aWduKFJlbmRlclN0eWxlOjppbml0aWFsTGluZUFsaWduKCkpCi0jaWYgRU5BQkxFKE9WRVJGTE9X
X1NDUk9MTElORykKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQog
ICAgICwgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZyhSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZVRv
dWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSkKICNlbmRpZgogI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVT
T0xVVElPTikKQEAgLTE1MCw3ICsxNTAsNyBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHls
ZVJhcmVJbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pCiAgICAg
LCBtX2ltYWdlUmVuZGVyaW5nKG8ubV9pbWFnZVJlbmRlcmluZykKICAgICAsIG1fbGluZVNuYXAo
by5tX2xpbmVTbmFwKQogICAgICwgbV9saW5lQWxpZ24oby5tX2xpbmVBbGlnbikKLSNpZiBFTkFC
TEUoT1ZFUkZMT1dfU0NST0xMSU5HKQorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19T
Q1JPTExJTkcpCiAgICAgLCB1c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKG8udXNlVG91Y2hPdmVy
Zmxvd1Njcm9sbGluZykKICNlbmRpZgogI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikK
QEAgLTIxNSw3ICsyMTUsNyBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9y
PT0oY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAgICAgICAgJiYgb3Zl
cmZsb3dXcmFwID09IG8ub3ZlcmZsb3dXcmFwCiAgICAgICAgICYmIG5ic3BNb2RlID09IG8ubmJz
cE1vZGUKICAgICAgICAgJiYga2h0bWxMaW5lQnJlYWsgPT0gby5raHRtbExpbmVCcmVhawotI2lm
IEVOQUJMRShPVkVSRkxPV19TQ1JPTExJTkcpCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJG
TE9XX1NDUk9MTElORykKICAgICAgICAgJiYgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZyA9PSBv
LnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcKICNlbmRpZgogICAgICAgICAmJiB0ZXh0U2l6ZUFk
anVzdCA9PSBvLnRleHRTaXplQWRqdXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAppbmRleCA2MGI0ZmY2ZDlkZTk5
YmMzNTcyNmE3NTY0N2VhNDliZmJlMjk5NTIzLi4xODg5ZGYzOTdiYTRiNTEzN2YzZjkzMzQ3MjU1
MDlmZWM4MmQ0ZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6
CiAgICAgdW5zaWduZWQgbV9pbWFnZVJlbmRlcmluZyA6IDI7IC8vIEVJbWFnZVJlbmRlcmluZwog
ICAgIHVuc2lnbmVkIG1fbGluZVNuYXAgOiAyOyAvLyBMaW5lU25hcAogICAgIHVuc2lnbmVkIG1f
bGluZUFsaWduIDogMTsgLy8gTGluZUFsaWduCi0jaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElO
RykKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQogICAgIHVuc2ln
bmVkIHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmc6IDE7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NT
X0lNQUdFX1JFU09MVVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhRW5hYmxlRmVhdHVyZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhRW5hYmxlRmVhdHVyZXMuaW4KaW5k
ZXggNDJmYzM4OWY4MzAyMTc0Mzg4MTA0OTM3OWUzMDIyYzUwMzY4NWRiNC4uYWY5NmU2ZDBjNTFi
YjQ0NzM0NDA2MzYxYTAyMjIzM2Y5ODdlYTQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9BYm91dERhdGFFbmFibGVG
ZWF0dXJlcy5pbgpAQCAtMSw2ICsxLDcgQEAKIDNEX0NBTlZBUwogM0RfUkVOREVSSU5HCiBBQ0NF
TEVSQVRFRF8yRF9DQU5WQVMKK0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORwogQUxMX1ZB
UklBQkxFU19DQVBUVVJFRAogQVNTRU1CTEVSCiBBU1NFTUJMRVJfV1hfRVhDTFVTSVZFCkBAIC0x
MzQsNyArMTM1LDYgQEAgT1BDT0RFX1NBTVBMSU5HCiBPUENPREVfU1RBVFMKIE9SSUVOVEFUSU9O
X0VWRU5UUwogT1NSX0VOVFJZCi1PVkVSRkxPV19TQ1JPTExJTkcKIFBBR0VfUE9QVVAKIFBBR0Vf
VklTSUJJTElUWV9BUEkKIFBBTl9TQ1JPTExJTkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMu
Z3lwaQppbmRleCA0NjY0YjA0YTQyMzQzMzE3NGEyZWE3MGIzOWUyNGU3NWQwMzc3NGIyLi5iOThk
YjM2ZDk5M2UxNDZmMGNhZjQ5N2IwNDhiZjQ5YzNkMTk5NDVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9mZWF0dXJlcy5neXBpCkBAIC0xNDcsNiArMTQ3LDcgQEAKICAgICAnY29uZGl0aW9ucyc6IFsK
ICAgICAgIFsnT1M9PSJhbmRyb2lkIicsIHsKICAgICAgICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsK
KyAgICAgICAgICAnRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORz0xJywKICAg
ICAgICAgICAnRU5BQkxFX0NBTEVOREFSX1BJQ0tFUj0wJywKICAgICAgICAgICAnRU5BQkxFX0RB
VEFMSVNUX0VMRU1FTlQ9MCcsCiAgICAgICAgICAgJ0VOQUJMRV9JTlBVVF9TUEVFQ0g9MCcsCkBA
IC0xNTcsNyArMTU4LDYgQEAKICAgICAgICAgICAnRU5BQkxFX01FRElBX1NUUkVBTT0wJywKICAg
ICAgICAgICAnRU5BQkxFX05PVElGSUNBVElPTlM9MCcsCiAgICAgICAgICAgJ0VOQUJMRV9PUklF
TlRBVElPTl9FVkVOVFM9MScsCi0gICAgICAgICAgJ0VOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkc9
MScsCiAgICAgICAgICAgJ0VOQUJMRV9QQUdFX1BPUFVQPTAnLAogICAgICAgICAgICdFTkFCTEVf
UFJJTlRJTkc9MCcsCiAgICAgICAgICAgIyBGSVhNRTogRGlzYWJsZSBvbmNlIHRoZSBsaW5raW5n
IGVycm9yIGhhcyBiZWVuIHJlc29sdmVkLgpAQCAtMTY5LDYgKzE2OSw3IEBACiAgICAgICAgICdl
bmFibGVfdG91Y2hfaWNvbl9sb2FkaW5nJzogMSwKICAgICAgIH0sIHsgIyBPUyE9ImFuZHJvaWQi
CiAgICAgICAgICdmZWF0dXJlX2RlZmluZXMnOiBbCisgICAgICAgICAgJ0VOQUJMRV9BQ0NFTEVS
QVRFRF9PVkVSRkxPV19TQ1JPTExJTkc9MCcsCiAgICAgICAgICAgJ0VOQUJMRV9DQUxFTkRBUl9Q
SUNLRVI9MScsCiAgICAgICAgICAgJ0VOQUJMRV9EQVRBTElTVF9FTEVNRU5UPTEnLAogICAgICAg
ICAgICdFTkFCTEVfSU5QVVRfU1BFRUNIPTEnLApAQCAtMTgwLDcgKzE4MSw2IEBACiAgICAgICAg
ICAgJ0VOQUJMRV9NRURJQV9TVFJFQU09MScsCiAgICAgICAgICAgJ0VOQUJMRV9OT1RJRklDQVRJ
T05TPTEnLAogICAgICAgICAgICdFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTPTAnLAotICAgICAg
ICAgICdFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HPTAnLAogICAgICAgICAgICdFTkFCTEVfUEFH
RV9QT1BVUD0xJywKICAgICAgICAgICAnRU5BQkxFX1BSSU5USU5HPTEnLAogICAgICAgICAgICdF
TkFCTEVfU0hBUkVEX1dPUktFUlM9MScsCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Vjb25maWcu
aC5jbWFrZSBiL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCmluZGV4IGNlZTI2MGUxMThjOWMx
M2RiZWFhMWM3ZTA3NGY0OTgwYTllMTMxNzUuLjBmYmJkNDNkNjIzODkxZTkwZGY2NmQxMjczOTcy
Y2VlZjZkNWI5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCisrKyBi
L1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCkBAIC0zLDYgKzMsNyBAQAogCiAjY21ha2VkZWZp
bmUwMSBFTkFCTEVfM0RfUkVOREVSSU5HCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfQUNDRUxFUkFU
RURfMkRfQ0FOVkFTCisjY21ha2VkZWZpbmUwMSBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1df
U0NST0xMSU5HCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfQU5JTUFUSU9OX0FQSQogI2NtYWtlZGVm
aW5lMDEgRU5BQkxFX0FQSV9URVNUUwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0FTX0lNQUdFCkBA
IC03OCw3ICs3OSw2IEBACiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfTkVUV09SS19JTkZPCiAjY21h
a2VkZWZpbmUwMSBFTkFCTEVfTk9USUZJQ0FUSU9OUwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX09S
SUVOVEFUSU9OX0VWRU5UUwotI2NtYWtlZGVmaW5lMDEgRU5BQkxFX09WRVJGTE9XX1NDUk9MTElO
RwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX1BBR0VfUE9QVVAKICNjbWFrZWRlZmluZTAxIEVOQUJM
RV9QQUdFX1ZJU0lCSUxJVFlfQVBJCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfUExVR0lOX1BST1hZ
X0ZPUl9WSURFTwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDBjYTM1MjJjODMyYmNhZjVlMzBjMTI1NzFiYzc3NDM1YWZkOWQw
ZjYuLjA0M2I1Y2E5MzhkZjJjN2I5MmU0OGZlOTQ5ODE4YmZiYTY5ZjczODAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxMi0wOS0wNyAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGdvb2dsZS5j
b20+CisKKyAgICAgICAgT3B0aW1pemUgcGFpbnRpbmcgb2YgY29tcG9zaXRlZCBzY3JvbGxpbmcg
bGF5ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NjA4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bmFtZWQgRU5BQkxFX09WRVJGTE9XX1NDUk9MTElORyB0byBFTkFCTEVfQUNDRUxFUkFURURfT1ZF
UkZMT1dfU0NST0xMSU5HLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxMi0wOS0wNyAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFmOTNiMWI5NzhhOWI1
MTk4YTRkMzRhNTliN2M5MGRmNWJiZDJlN2EuLjMyMTA1MzZhN2NmYjcyNTk3ODM4ZjE1YWIxYjE3
MmQ0MmUxYjhhYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMzQzMiw3ICszNDMyLDcgQEAgQlVHV0s5NTU4MSA6IGh0dHAvdGVzdHMv
bWlzYy9qYXZhc2NyaXB0LXVybC1zdG9wLWxvYWRlcnMuaHRtbCA9IFRJTUVPVVQgUEFTUwogCiBC
VUdXSzk0MjYxIERFQlVHIDogaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL3Jlc291cmNl
cy1wYW5lbC5odG1sID0gUEFTUyBDUkFTSCBUSU1FT1VUCiAKLS8vIEVOQUJMRV9PVkVSRkxPV19T
Q1JPTExJTkcgaXMgbm90IGN1cnJlbnRseSBlbmFibGVkIGluIENocm9taXVtLgorLy8gRU5BQkxF
X0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyBpcyBub3QgY3VycmVudGx5IGVuYWJsZWQg
aW4gQ2hyb21pdW0uCiBCVUdXSzk0MzUzIDogY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5n
LWNvbnRlbnQtY2xpcC10by12aWV3cG9ydC5odG1sID0gVEVYVAogQlVHV0s5NDM1MyA6IGNvbXBv
c2l0aW5nL292ZXJmbG93L3RleHRhcmVhLXNjcm9sbC10b3VjaC5odG1sID0gVEVYVAogLy8gRmFp
bGluZyBvbiBMaW51eCAoQ29udGVudCBTaGVsbCkgb25seSBub3cKZGlmZiAtLWdpdCBhL0NoYW5n
ZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyYjdiYzhlMTNlZWQ5MDk4ZjBkZDVlMjNjMmIxZmY0YzMw
ZmE1Mjg3Li41MzU3NTI1ODQzNWViYjc3ZjQwNWExZGY5YzhhOTM0ZmVlMmEwODA0IDEwMDY0NAot
LS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDkt
MDcgIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBnb29nbGUuY29tPgorCisgICAgICAgIE9wdGlt
aXplIHBhaW50aW5nIG9mIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWVkIEVOQUJMRV9PVkVSRkxP
V19TQ1JPTExJTkcgdG8gRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORy4KKwor
ICAgICAgICAqIFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlOgorCiAyMDEyLTA5LTA2ICBaYW4g
RG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0d0a10gUmVtb3Zl
IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgZmVhdHVyZXMgdGhhdCBhcmUgbm90IHN1cHBvcnRl
ZCBieSB0aGUgR3RrIHBvcnQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163159</attachid>
            <date>2012-09-10 10:21:27 -0700</date>
            <delta_ts>2012-09-11 02:06:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96087-20120910182103.patch</filename>
            <type>text/plain</type>
            <size>27720</size>
            <attacher name="Sami Kyöstilä">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGRlNmU3NTc4YjkwOTFk
OWQ4YjVjZWNkMDM1NWM1ZmI4NDBhNTRjYS4uZjQ0YzUxOGNhZmViZmI2YThkNjcyOGRmMWFhMzA0
YTI1MjMxZmFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTA5LTEwICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAZ29vZ2xlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBwYWlu
dGluZyBvZiBjb21wb3NpdGVkIHNjcm9sbGluZyBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBlbmFibGVzIHR3byBvcHRpbWl6
YXRpb24gZm9yIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVyczogZmlyc3QsCisgICAgICAgIHdo
ZW4gdGhlIGxheWVyIHNjcm9sbCBvZmZzZXQgY2hhbmdlcywgZG8gbm90IG1hcmsgdGhlIGVudGly
ZSBsYXllciBhcyBuZWVkaW5nCisgICAgICAgIGRpc3BsYXksIGJlY2F1c2UgdGhlIGNvbXBvc2l0
b3Igd2lsbCBhY2NvdW50IGZvciB0aGUgY29ycmVzcG9uZGluZyBsYXlvdXQKKyAgICAgICAgY2hh
bmdlIHNpbXBseSBieSB0cmFuc2xhdGluZyB0aGUgbGF5ZXIgdG8gdGhlIGNvcnJlY3QgcG9zaXRp
b24uCisKKyAgICAgICAgU2Vjb25kLCBvdmVyZmxvdyBjbGlwcGluZyBpcyBkaXNhYmxlZCB3aGVu
IHBhaW50aW5nIHRoZSBjb250ZW50cyBvZiBhCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
IGxheWVyLiBUaGlzIGlzIGRvbmUgdG8gaW5jcmVhc2UgdGhlIGNoYW5jZXMgdGhlcmUgaXMKKyAg
ICAgICAgdmFsaWQgbGF5ZXIgY29udGVudCBmb3IgdGhlIGNvbXBvc2l0b3IgdG8gZHJhdyB3aGls
ZSBzY3JvbGxpbmcgdGhlIGxheWVyIG9mZgorICAgICAgICB0aGUgbWFpbiB0aHJlYWQuCisKKyAg
ICAgICAgQSBuZXcgaW50ZXJuYWwgQVBJIGZvciBzZXR0aW5nIGEgbGF5ZXIgZGVidWcgcGFpbnQg
Y29sb3IgaXMgaW50cm9kdWNlZCB0bworICAgICAgICBhbGxvdyB0ZXN0aW5nIHRoZSBjaGFuZ2Vz
LiBBbGwgZnVydGhlciBwYWludCBvcGVyYXRpb25zIHRvIHRoZSBhc3NvY2lhdGVkCisgICAgICAg
IFJlbmRlckxheWVyQmFja2luZyBhcmUgbWFya2VkIHdpdGggdGhlIGdpdmVuIGNvbG9yLiBUaGUg
dGVzdHMgdXNlIHRoaXMgZmVhdHVyZQorICAgICAgICB0byBkZXRlY3QgcmVkdW5kYW50IGFuZCBt
aXNzaW5nIHJlcGFpbnRzLgorCisgICAgICAgIFRlc3RzOiBjb21wb3NpdGluZy9vdmVyZmxvdy9z
Y3JvbGxpbmctY29udGVudC1wcmVwYWludGluZy5odG1sCisgICAgICAgICAgICAgICBjb21wb3Np
dGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC11cGRhdGluZy5odG1sCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OnNldE9mZnNldEZyb21SZW5kZXJlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOiBBbGxvdyBjaGFuZ2luZyByZW5kZXJlciBvZmZz
ZXQKKyAgICAgICAgd2l0aG91dCBpbnZhbGlkYXRpbmcgdGhlIGxheWVyLgorICAgICAgICAoR3Jh
cGhpY3NMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmg6CisgICAgICAg
IChMYXlvdXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmFwcGx5Q2FjaGVk
Q2xpcEFuZFNjcm9sbE9mZnNldEZvclJlcGFpbnQpOgorICAgICAgICBDb25zb2xpZGF0ZSBhIG51
bWJlciBvZiBjb3BpZXMgb2YgdGhlIHNhbWUgY2xpcHBpbmcgY29kZSBhbmQKKyAgICAgICAgc2tp
cCBhcHBseWluZyB0aGUgb3ZlcmZsb3cgY2xpcCBpZiB0aGUgUmVuZGVyQm94IGlzIGEgcGFydCBv
ZiBhCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVyLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlcklubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6cmVwYWludEJsb2NrU2VsZWN0aW9uR2Fwcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRQYWludERlYnVnQ29sb3IpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
T2JqZWN0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0TGF5ZXJQYWludERlYnVn
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRs
OgorCiAyMDEyLTA5LTEwICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgQ2xhcmlmeSB0aGUgY2F1c2Ugb2YgY29uc29sZSB3YXJuaW5ncyBnZW5lcmF0ZWQgYnkgImNy
b3NzLW9yaWdpbiIgYWNjZXNzIHRvIHNhbmRib3hlZCBpZnJhbWVzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCAyYWUzZmU3
ODcwYWU0NzIyZDQzMWYwMDUwOWUwNzY4OTZmYzA5YzdkLi5jMGNkZGViNTk5ZGE1YWQ5MGZmY2Ni
MmIzNzIzYjMyMTA1ZGFkNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtMjg1LDcgKzI4NSw3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllcjo6c2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAg
bV9yZXBsaWNhTGF5ZXIgPSBsYXllcjsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyOjpzZXRPZmZz
ZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQordm9pZCBHcmFwaGljc0xheWVy
OjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBTaG91bGRTZXRO
ZWVkc0Rpc3BsYXkgc2hvdWxkU2V0TmVlZHNEaXNwbGF5KQogewogICAgIGlmIChvZmZzZXQgPT0g
bV9vZmZzZXRGcm9tUmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTI5Myw3ICsyOTMsOCBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXI6OnNldE9mZnNldEZyb21SZW5kZXJlcihjb25zdCBJbnRTaXpl
JiBvZmZzZXQpCiAgICAgbV9vZmZzZXRGcm9tUmVuZGVyZXIgPSBvZmZzZXQ7CiAKICAgICAvLyBJ
ZiB0aGUgY29tcG9zaXRpbmcgbGF5ZXIgb2Zmc2V0IGNoYW5nZXMsIHdlIG5lZWQgdG8gcmVwYWlu
dC4KLSAgICBzZXROZWVkc0Rpc3BsYXkoKTsKKyAgICBpZiAoc2hvdWxkU2V0TmVlZHNEaXNwbGF5
ID09IFNldE5lZWRzRGlzcGxheSkKKyAgICAgICAgc2V0TmVlZHNEaXNwbGF5KCk7CiB9CiAKIHZv
aWQgR3JhcGhpY3NMYXllcjo6c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApp
bmRleCA0MjMzYmM3ZjczYWRjODIzMjUzOGRmYmNhMDFlMGU1YzJhNTM4NDNjLi41ODM1MDUwMmVm
MDU2NGYwOTI3ODdlMTA1YzVmOWY5NjI3MzhmZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0yMzMsOSArMjMzLDE0IEBAIHB1
YmxpYzoKICAgICBjb25zdCBGbG9hdFBvaW50JiByZXBsaWNhdGVkTGF5ZXJQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fcmVwbGljYXRlZExheWVyUG9zaXRpb247IH0KICAgICB2b2lkIHNldFJl
cGxpY2F0ZWRMYXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHApIHsgbV9yZXBsaWNhdGVk
TGF5ZXJQb3NpdGlvbiA9IHA7IH0KIAorICAgIGVudW0gU2hvdWxkU2V0TmVlZHNEaXNwbGF5IHsK
KyAgICAgICAgRG9udFNldE5lZWRzRGlzcGxheSwKKyAgICAgICAgU2V0TmVlZHNEaXNwbGF5Cisg
ICAgfTsKKwogICAgIC8vIE9mZnNldCBpcyBvcmlnaW4gb2YgdGhlIHJlbmRlcmVyIG1pbnVzIG9y
aWdpbiBvZiB0aGUgZ3JhcGhpY3MgbGF5ZXIgKHNvIGVpdGhlciB6ZXJvIG9yIG5lZ2F0aXZlKS4K
ICAgICBJbnRTaXplIG9mZnNldEZyb21SZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0
RnJvbVJlbmRlcmVyOyB9Ci0gICAgdm9pZCBzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50
U2l6ZSYpOworICAgIHZvaWQgc2V0T2Zmc2V0RnJvbVJlbmRlcmVyKGNvbnN0IEludFNpemUmLCBT
aG91bGRTZXROZWVkc0Rpc3BsYXkgPSBTZXROZWVkc0Rpc3BsYXkpOwogCiAgICAgLy8gVGhlIHBv
c2l0aW9uIG9mIHRoZSBsYXllciAodGhlIGxvY2F0aW9uIG9mIGl0cyB0b3AtbGVmdCBjb3JuZXIg
aW4gaXRzIHBhcmVudCkKICAgICBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fcG9zaXRpb247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgK
aW5kZXggMTUyYzgwNDY1NDU4ZmQxNWIyOTc5YzdhY2MzYWU3ZGYyYjA5ZTA5ZS4uMzc5MzQ3M2I1
YjVjYThmY2FkNGNlYzU0MjJiZGY5ZGEyYTczMTUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xheW91dFN0YXRlLmgKQEAgLTEwMCw2ICsxMDAsMTAgQEAgcHJpdmF0ZToKIHB1YmxpYzoKICAg
ICBib29sIG1fY2xpcHBlZDsKICAgICBib29sIG1faXNQYWdpbmF0ZWQ7CisKKyAgICAvLyBMYXlv
dXQgY2xpcCByZWN0LgorICAgIC8vIEZJWE1FOiBEaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBsYXlv
dXQgY2xpcCByZWN0IGFuZCB0aGUgcGFpbnQgY2xpcCByZWN0IHdoaWNoIG1heSBiZSBsYXJnZXIs
CisgICAgLy8gZS5nLiwgYmVjYXVzZSBvZiBjb21wb3NpdGVkIHNjcm9sbGluZy4KICAgICBMYXlv
dXRSZWN0IG1fY2xpcFJlY3Q7CiAgICAgCiAgICAgLy8geC95IG9mZnNldCBmcm9tIGNvbnRhaW5l
ci4gSW5jbHVkZXMgcmVsYXRpdmUgcG9zaXRpb25pbmcgYW5kIHNjcm9sbCBvZmZzZXRzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggMTAyMTZiYzAwNzhhY2Mx
M2RlOTU4MDI3MWI2OTg4NDAxMDJhNWEwYi4uMDdhOGJkOGUyNmZhYTEzZmJhZDlkNmI2ZmM5NzAx
MGZhMTU1YTcxOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBA
IC0yNzI3LDcgKzI3MjcsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludChQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgIC8vIENoZWNrIGlm
IHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgYXQgYWxsLgogICAgIC8vIEZJWE1FOiBDb3VsZCBlbGlt
aW5hdGUgdGhlIGlzUm9vdCgpIGNoZWNrIGlmIHdlIGZpeCBiYWNrZ3JvdW5kIHBhaW50aW5nIHNv
IHRoYXQgdGhlIFJlbmRlclZpZXcKICAgICAvLyBwYWludHMgdGhlIHJvb3QncyBiYWNrZ3JvdW5k
LgotICAgIGlmICghaXNSb290KCkpIHsKKyAgICBpZiAoIWlzUm9vdCgpICYmICEoaGFzT3ZlcmZs
b3dDbGlwKCkgJiYgaGFzTGF5ZXIoKSAmJiBsYXllcigpLT51c2VzQ29tcG9zaXRlZFNjcm9sbGlu
ZygpKSkgewogICAgICAgICBMYXlvdXRSZWN0IG92ZXJmbG93Qm94ID0gdmlzdWFsT3ZlcmZsb3dS
ZWN0KCk7CiAgICAgICAgIGZsaXBGb3JXcml0aW5nTW9kZShvdmVyZmxvd0JveCk7CiAgICAgICAg
IG92ZXJmbG93Qm94LmluZmxhdGUobWF4aW1hbE91dGxpbmVTaXplKHBhaW50SW5mby5waGFzZSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA3OTJiOWMyOGJlOTEw
ZTk0ZmY5N2Q1ZjdhYjRlNjdhMjJiM2ZkM2JhLi41YzI0YWYwMWExNzRkYzQ0NmIxOTkyMzAzYjMz
YzVjMmI0YTUzMzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAt
NjQ3LDYgKzY0NywyMSBAQCBMYXlvdXRTaXplIFJlbmRlckJveDo6Y2FjaGVkU2l6ZUZvck92ZXJm
bG93Q2xpcCgpIGNvbnN0CiAgICAgcmV0dXJuIGxheWVyKCktPnNpemUoKTsKIH0KIAordm9pZCBS
ZW5kZXJCb3g6OmFwcGx5Q2FjaGVkQ2xpcEFuZFNjcm9sbE9mZnNldEZvclJlcGFpbnQoTGF5b3V0
UmVjdCYgcGFpbnRSZWN0KSBjb25zdAoreworICAgIHBhaW50UmVjdC5tb3ZlKC1zY3JvbGxlZENv
bnRlbnRPZmZzZXQoKSk7IC8vIEZvciBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4uCisKKyAg
ICAvLyBEbyBub3QgY2xpcCBzY3JvbGwgbGF5ZXIgY29udGVudHMgdG8gcmVkdWNlIHRoZSBudW1i
ZXIgb2YgcmVwYWludHMgd2hpbGUgc2Nyb2xsaW5nLgorICAgIGlmIChoYXNPdmVyZmxvd0NsaXAo
KSAmJiBoYXNMYXllcigpICYmIGxheWVyKCktPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIGhlaWdodCgpIGlzIGluYWNjdXJhdGUgaWYgd2UncmUg
aW4gdGhlIG1pZGRsZSBvZiBhIGxheW91dCBvZiB0aGlzIFJlbmRlckJveCwgc28gdXNlIHRoZQor
ICAgIC8vIGxheWVyJ3Mgc2l6ZSBpbnN0ZWFkLiBFdmVuIGlmIHRoZSBsYXllcidzIHNpemUgaXMg
d3JvbmcsIHRoZSBsYXllciBpdHNlbGYgd2lsbCByZXBhaW50CisgICAgLy8gYW55d2F5IGlmIGl0
cyBzaXplIGRvZXMgY2hhbmdlLgorICAgIExheW91dFJlY3QgY2xpcFJlY3QoTGF5b3V0UG9pbnQo
KSwgY2FjaGVkU2l6ZUZvck92ZXJmbG93Q2xpcCgpKTsKKyAgICBwYWludFJlY3QgPSBpbnRlcnNl
Y3Rpb24ocGFpbnRSZWN0LCBjbGlwUmVjdCk7Cit9CisKIExheW91dFVuaXQgUmVuZGVyQm94Ojpt
aW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdAogewogICAgIGlmIChwcmVmZXJyZWRMb2dp
Y2FsV2lkdGhzRGlydHkoKSkKQEAgLTE1NzQsMjEgKzE1ODksMTMgQEAgdm9pZCBSZW5kZXJCb3g6
OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgTGEKIAogICAgIC8vIEZJWE1FOiBXZSBpZ25vcmUgdGhlIGxpZ2h0d2VpZ2h0IGNsaXBw
aW5nIHJlY3QgdGhhdCBjb250cm9scyB1c2UsIHNpbmNlIGlmIHxvfCBpcyBpbiBtaWQtbGF5b3V0
LAogICAgIC8vIGl0cyBjb250cm9sQ2xpcFJlY3Qgd2lsbCBiZSB3cm9uZy4gRm9yIG92ZXJmbG93
IGNsaXAgd2UgdXNlIHRoZSB2YWx1ZXMgY2FjaGVkIGJ5IHRoZSBsYXllci4KKyAgICByZWN0LnNl
dExvY2F0aW9uKHRvcExlZnQpOwogICAgIGlmIChvLT5oYXNPdmVyZmxvd0NsaXAoKSkgewogICAg
ICAgICBSZW5kZXJCb3gqIGNvbnRhaW5lckJveCA9IHRvUmVuZGVyQm94KG8pOwotCi0gICAgICAg
IC8vIG8tPmhlaWdodCgpIGlzIGluYWNjdXJhdGUgaWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBh
IGxheW91dCBvZiB8b3wsIHNvIHVzZSB0aGUKLSAgICAgICAgLy8gbGF5ZXIncyBzaXplIGluc3Rl
YWQuICBFdmVuIGlmIHRoZSBsYXllcidzIHNpemUgaXMgd3JvbmcsIHRoZSBsYXllciBpdHNlbGYg
d2lsbCByZXBhaW50Ci0gICAgICAgIC8vIGFueXdheSBpZiBpdHMgc2l6ZSBkb2VzIGNoYW5nZS4K
LSAgICAgICAgdG9wTGVmdCAtPSBjb250YWluZXJCb3gtPnNjcm9sbGVkQ29udGVudE9mZnNldCgp
OyAvLyBGb3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgotCi0gICAgICAgIExheW91dFJl
Y3QgcmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwotICAgICAgICBMYXlvdXRSZWN0
IGJveFJlY3QoTGF5b3V0UG9pbnQoKSwgY29udGFpbmVyQm94LT5jYWNoZWRTaXplRm9yT3ZlcmZs
b3dDbGlwKCkpOwotICAgICAgICByZWN0ID0gaW50ZXJzZWN0aW9uKHJlcGFpbnRSZWN0LCBib3hS
ZWN0KTsKKyAgICAgICAgY29udGFpbmVyQm94LT5hcHBseUNhY2hlZENsaXBBbmRTY3JvbGxPZmZz
ZXRGb3JSZXBhaW50KHJlY3QpOwogICAgICAgICBpZiAocmVjdC5pc0VtcHR5KCkpCiAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgfSBlbHNlCi0gICAgICAgIHJlY3Quc2V0TG9jYXRpb24odG9wTGVm
dCk7CisgICAgfQogCiAgICAgaWYgKGNvbnRhaW5lclNraXBwZWQpIHsKICAgICAgICAgLy8gSWYg
dGhlIHJlcGFpbnRDb250YWluZXIgaXMgYmVsb3cgbywgdGhlbiB3ZSBuZWVkIHRvIG1hcCB0aGUg
cmVjdCBpbnRvIHJlcGFpbnRDb250YWluZXIncyBjb29yZGluYXRlcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaAppbmRleCBlZDcwYTk0Yjg1ODIzMDI4MzRmMGViNjI5OTE2ZmIzZTNj
MGY0NzBiLi5mMjBkYTRlYTY1OWFiNjlkMTBjMmQ2NWUxMGVhNDQ1YTNhNzVhNDdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC01MDksNiArNTA5LDcgQEAgcHVibGljOgog
CiAgICAgSW50U2l6ZSBzY3JvbGxlZENvbnRlbnRPZmZzZXQoKSBjb25zdDsKICAgICBMYXlvdXRT
aXplIGNhY2hlZFNpemVGb3JPdmVyZmxvd0NsaXAoKSBjb25zdDsKKyAgICB2b2lkIGFwcGx5Q2Fj
aGVkQ2xpcEFuZFNjcm9sbE9mZnNldEZvclJlcGFpbnQoTGF5b3V0UmVjdCYgcGFpbnRSZWN0KSBj
b25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZURpbWVuc2lvbnMoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IDk0MTM3NTUwOTk5ZjQ1
ODUzMmRjZTQ1NDBhZjc2NjA3ZjVhYjI0YzMuLjIzNGNlYTI4YmI1NDQ5NzcwYWZiZTBiOWZiZmZh
YzQxMzMwMjg2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
CkBAIC05OTMsMTUgKzk5Myw4IEBAIExheW91dFJlY3QgUmVuZGVySW5saW5lOjpjbGlwcGVkT3Zl
cmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwCiAgICAgaWYgKGNi
LT5oYXNDb2x1bW5zKCkpCiAgICAgICAgIGNiLT5hZGp1c3RSZWN0Rm9yQ29sdW1ucyhyZXBhaW50
UmVjdCk7CiAKLSAgICBpZiAoY2ItPmhhc092ZXJmbG93Q2xpcCgpKSB7Ci0gICAgICAgIC8vIGNi
LT5oZWlnaHQoKSBpcyBpbmFjY3VyYXRlIGlmIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgYSBsYXlv
dXQgb2YgfGNifCwgc28gdXNlIHRoZQotICAgICAgICAvLyBsYXllcidzIHNpemUgaW5zdGVhZC4g
IEV2ZW4gaWYgdGhlIGxheWVyJ3Mgc2l6ZSBpcyB3cm9uZywgdGhlIGxheWVyIGl0c2VsZiB3aWxs
IHJlcGFpbnQKLSAgICAgICAgLy8gYW55d2F5IGlmIGl0cyBzaXplIGRvZXMgY2hhbmdlLgotICAg
ICAgICByZXBhaW50UmVjdC5tb3ZlKC1jYi0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOyAvLyBG
b3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgotCi0gICAgICAgIExheW91dFJlY3QgYm94
UmVjdChMYXlvdXRQb2ludCgpLCBjYi0+Y2FjaGVkU2l6ZUZvck92ZXJmbG93Q2xpcCgpKTsKLSAg
ICAgICAgcmVwYWludFJlY3QuaW50ZXJzZWN0KGJveFJlY3QpOwotICAgIH0KKyAgICBpZiAoY2It
Pmhhc092ZXJmbG93Q2xpcCgpKQorICAgICAgICBjYi0+YXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xs
T2Zmc2V0Rm9yUmVwYWludChyZXBhaW50UmVjdCk7CiAKICAgICBjYi0+Y29tcHV0ZVJlY3RGb3JS
ZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0KTsKIApAQCAtMTA3MywyMSArMTA2
NiwxMyBAQCB2b2lkIFJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJv
eE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLAogICAgIAogICAgIC8vIEZJWE1FOiBXZSBp
Z25vcmUgdGhlIGxpZ2h0d2VpZ2h0IGNsaXBwaW5nIHJlY3QgdGhhdCBjb250cm9scyB1c2UsIHNp
bmNlIGlmIHxvfCBpcyBpbiBtaWQtbGF5b3V0LAogICAgIC8vIGl0cyBjb250cm9sQ2xpcFJlY3Qg
d2lsbCBiZSB3cm9uZy4gRm9yIG92ZXJmbG93IGNsaXAgd2UgdXNlIHRoZSB2YWx1ZXMgY2FjaGVk
IGJ5IHRoZSBsYXllci4KKyAgICByZWN0LnNldExvY2F0aW9uKHRvcExlZnQpOwogICAgIGlmIChv
LT5oYXNPdmVyZmxvd0NsaXAoKSkgewogICAgICAgICBSZW5kZXJCb3gqIGNvbnRhaW5lckJveCA9
IHRvUmVuZGVyQm94KG8pOwotCi0gICAgICAgIC8vIG8tPmhlaWdodCgpIGlzIGluYWNjdXJhdGUg
aWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxheW91dCBvZiB8b3wsIHNvIHVzZSB0aGUKLSAg
ICAgICAgLy8gbGF5ZXIncyBzaXplIGluc3RlYWQuICBFdmVuIGlmIHRoZSBsYXllcidzIHNpemUg
aXMgd3JvbmcsIHRoZSBsYXllciBpdHNlbGYgd2lsbCByZXBhaW50Ci0gICAgICAgIC8vIGFueXdh
eSBpZiBpdHMgc2l6ZSBkb2VzIGNoYW5nZS4KLSAgICAgICAgdG9wTGVmdCAtPSBjb250YWluZXJC
b3gtPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOyAvLyBGb3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwv
aGlkZGVuLgotCi0gICAgICAgIExheW91dFJlY3QgcmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5z
aXplKCkpOwotICAgICAgICBMYXlvdXRSZWN0IGJveFJlY3QoTGF5b3V0UG9pbnQoKSwgY29udGFp
bmVyQm94LT5jYWNoZWRTaXplRm9yT3ZlcmZsb3dDbGlwKCkpOwotICAgICAgICByZWN0ID0gaW50
ZXJzZWN0aW9uKHJlcGFpbnRSZWN0LCBib3hSZWN0KTsKKyAgICAgICAgY29udGFpbmVyQm94LT5h
cHBseUNhY2hlZENsaXBBbmRTY3JvbGxPZmZzZXRGb3JSZXBhaW50KHJlY3QpOwogICAgICAgICBp
ZiAocmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlCi0gICAg
ICAgIHJlY3Quc2V0TG9jYXRpb24odG9wTGVmdCk7CisgICAgfQogCiAgICAgaWYgKGNvbnRhaW5l
clNraXBwZWQpIHsKICAgICAgICAgLy8gSWYgdGhlIHJlcGFpbnRDb250YWluZXIgaXMgYmVsb3cg
bywgdGhlbiB3ZSBuZWVkIHRvIG1hcCB0aGUgcmVjdCBpbnRvIHJlcGFpbnRDb250YWluZXIncyBj
b29yZGluYXRlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4
IDI3MTk5OTM4NWM5MTA2MGZjODNhNTBiODY4NDI0NzUyYmY3MDJhNDIuLmZlM2VlMTFiODIzN2Nm
ZmE0MzYxODYwZmI4YjA5ZGE1MzFlYmIwODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcApAQCAtNDE4MSw3ICs0MTgxLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVw
YWludEJsb2NrU2VsZWN0aW9uR2FwcygpCiAKICAgICBMYXlvdXRSZWN0IHJlY3QgPSBtX2Jsb2Nr
U2VsZWN0aW9uR2Fwc0JvdW5kczsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGVkQ29udGVudE9mZnNl
dCgpKTsKLSAgICBpZiAocmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkpCisgICAgaWYgKHJl
bmRlcmVyKCktPmhhc092ZXJmbG93Q2xpcCgpICYmICF1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygp
KQogICAgICAgICByZWN0LmludGVyc2VjdCh0b1JlbmRlckJveChyZW5kZXJlcigpKS0+b3ZlcmZs
b3dDbGlwUmVjdChMYXlvdXRQb2ludCgpLCAwKSk7IC8vIEZJWE1FOiBSZWdpb25zIG5vdCBhY2Nv
dW50ZWQgZm9yLgogICAgIGlmIChyZW5kZXJlcigpLT5oYXNDbGlwKCkpCiAgICAgICAgIHJlY3Qu
aW50ZXJzZWN0KHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5jbGlwUmVjdChMYXlvdXRQb2ludCgp
LCAwKSk7IC8vIEZJWE1FOiBSZWdpb25zIG5vdCBhY2NvdW50ZWQgZm9yLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAyNmNkNTBmNTA1
NmM1NTQwY2ZjNTdhMGYwZWNhNTk1ZDE3MDc1ODNlLi42NjkzYTRkODk3MWM5Y2QxYmIzNjEyZGMw
ZjAxZWQ1ZGM3OWVjODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcApAQCAtNjc4LDkgKzY3OCw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkoKQogICAgICAgICAgICAgY29tcG9zaXRv
cigpLT5zY3JvbGxpbmdMYXllckRpZENoYW5nZShtX293bmluZ0xheWVyKTsKIAogICAgICAgICBt
X3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNldFNpemUoc2Nyb2xsU2l6ZSk7Ci0gICAgICAgIC8v
IEZJWE1FOiBTY3JvbGxpbmcgdGhlIGNvbnRlbnQgbGF5ZXIgZG9lcyBub3QgbmVlZCB0byB0cmln
Z2VyIGEgcmVwYWludC4gVGhlIG9mZnNldCB3aWxsIGJlIGNvbXBlbnNhdGVkIGF3YXkgZHVyaW5n
IHBhaW50aW5nLgogICAgICAgICAvLyBGSVhNRTogVGhlIHBhaW50IG9mZnNldCBhbmQgdGhlIHNj
cm9sbCBvZmZzZXQgc2hvdWxkIHJlYWxseSBiZSBzZXBhcmF0ZSBjb25jZXB0cy4KLSAgICAgICAg
bV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIoc2Nyb2xsaW5n
Q29udGVudHNPZmZzZXQpOworICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNldE9m
ZnNldEZyb21SZW5kZXJlcihzY3JvbGxpbmdDb250ZW50c09mZnNldCwgR3JhcGhpY3NMYXllcjo6
RG9udFNldE5lZWRzRGlzcGxheSk7CiAgICAgfQogCiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRD
b250ZW50c1JlY3QoY29udGVudHNCb3goKSk7CkBAIC0xNDIxLDYgKzE0MjAsOSBAQCB2b2lkIFJl
bmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwg
R3JhcGhpY3NDb250ZXh0KgogICAgIGlmIChtX293bmluZ0xheWVyLT5jb250YWluc0RpcnR5T3Zl
cmxheVNjcm9sbGJhcnMoKSkKICAgICAgICAgbV9vd25pbmdMYXllci0+cGFpbnRPdmVybGF5U2Ny
b2xsYmFycyhjb250ZXh0LCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhhdmlvciwgcGFpbnRpbmdS
b290KTsKIAorICAgIGlmIChtX3BhaW50RGVidWdDb2xvci5hbHBoYSgpKQorICAgICAgICBjb250
ZXh0LT5maWxsUmVjdChwYWludERpcnR5UmVjdCwgbV9wYWludERlYnVnQ29sb3IsIENvbG9yU3Bh
Y2VTUkdCKTsKKwogICAgIEFTU0VSVCghbV9vd25pbmdMYXllci0+bV91c2VkVHJhbnNwYXJlbmN5
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
CmluZGV4IDA1MDhiNTJiYjJmYjZhNzliYTM3MmU5YWE5MDRjY2IwYjUxYzU5NDUuLmU0NDg0YTUw
OGI1MzQwMTI4YTA0ODgwNWE4YTkzYzE2YTVhMzM3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTE2OCw2ICsxNjgsMTAgQEAgcHVibGlj
OgogICAgIC8vIFJldHVybiBhbiBlc3RpbWF0ZSBvZiB0aGUgYmFja2luZyBzdG9yZSBhcmVhIChp
biBwaXhlbHMpIGFsbG9jYXRlZCBieSB0aGlzIG9iamVjdCdzIEdyYXBoaWNzTGF5ZXJzLgogICAg
IGRvdWJsZSBiYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpIGNvbnN0OwogCisgICAgLy8gSGln
aGxpZ2h0cyBmb2xsb3dpbmcgcGFpbnQgb3BlcmF0aW9ucyB0byB0aGlzIGxheWVyIHdpdGggdGhl
IGdpdmVuIGNvbG9yLiBUbyBkaXNhYmxlLCBwYXNzCisgICAgLy8gYSBmdWxseSB0cmFuc3BhcmVu
dCBjb2xvci4KKyAgICB2b2lkIHNldFBhaW50RGVidWdDb2xvcihjb25zdCBDb2xvciYgcGFpbnRE
ZWJ1Z0NvbG9yKSB7IG1fcGFpbnREZWJ1Z0NvbG9yID0gcGFpbnREZWJ1Z0NvbG9yOyB9CisKICAg
ICBTdHJpbmcgbmFtZUZvckxheWVyKCkgY29uc3Q7CiAgICAgCiAjaWYgRU5BQkxFKENTU19DT01Q
T1NJVElORykKQEAgLTI2Niw2ICsyNzAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jYW5Db21w
b3NpdGVGaWx0ZXJzOwogI2VuZGlmCiAKKyAgICBDb2xvciBtX3BhaW50RGVidWdDb2xvcjsKKwog
ICAgIHN0YXRpYyBib29sIG1fY3JlYXRpbmdQcmltYXJ5R3JhcGhpY3NMYXllcjsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggOGJmZDlmNzRkZGRj
MzM0Y2Q4NzVjOWJiZTQ2YmRkNzA1MzcxZTQ1My4uMzcyZGExNTYxMzEzN2NiY2ZiOTcxMzI3NzE1
YjQwNmI5YzRhYjc5YiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAKQEAgLTE1MDcsMTYgKzE1MDcsOCBAQCB2b2lkIFJlbmRlck9iamVjdDo6Y29tcHV0ZVJlY3RG
b3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLAogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKG8tPmhhc092ZXJmbG93Q2xpcCgpKSB7Ci0gICAgICAgICAgICAv
LyBvLT5oZWlnaHQoKSBpcyBpbmFjY3VyYXRlIGlmIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgYSBs
YXlvdXQgb2YgfG98LCBzbyB1c2UgdGhlCi0gICAgICAgICAgICAvLyBsYXllcidzIHNpemUgaW5z
dGVhZC4gIEV2ZW4gaWYgdGhlIGxheWVyJ3Mgc2l6ZSBpcyB3cm9uZywgdGhlIGxheWVyIGl0c2Vs
ZiB3aWxsIHJlcGFpbnQKLSAgICAgICAgICAgIC8vIGFueXdheSBpZiBpdHMgc2l6ZSBkb2VzIGNo
YW5nZS4KICAgICAgICAgICAgIFJlbmRlckJveCogYm94UGFyZW50ID0gdG9SZW5kZXJCb3gobyk7
Ci0KLSAgICAgICAgICAgIExheW91dFJlY3QgcmVwYWludFJlY3QocmVjdCk7Ci0gICAgICAgICAg
ICByZXBhaW50UmVjdC5tb3ZlKC1ib3hQYXJlbnQtPnNjcm9sbGVkQ29udGVudE9mZnNldCgpKTsg
Ly8gRm9yIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KLQotICAgICAgICAgICAgTGF5b3V0
UmVjdCBib3hSZWN0KExheW91dFBvaW50KCksIGJveFBhcmVudC0+Y2FjaGVkU2l6ZUZvck92ZXJm
bG93Q2xpcCgpKTsKLSAgICAgICAgICAgIHJlY3QgPSBpbnRlcnNlY3Rpb24ocmVwYWludFJlY3Qs
IGJveFJlY3QpOworICAgICAgICAgICAgYm94UGFyZW50LT5hcHBseUNhY2hlZENsaXBBbmRTY3Jv
bGxPZmZzZXRGb3JSZXBhaW50KHJlY3QpOwogICAgICAgICAgICAgaWYgKHJlY3QuaXNFbXB0eSgp
KQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IDA0Y2ZlY2QwZDFkMTJkNmFhNjZlMGQwZTQxM2E5ODVjODdiMDQ4
N2UuLjk0N2Q2YmYxOGYxZDYxOTRhMjNmOTU2NzRmN2Y1OTEwMWVjYTZjMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNs
dWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNp
bmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oIgpAQCAtOTgsNyArOTksNiBAQAogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNocm9t
aXVtLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCiAjZW5kaWYKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMTI2MCw0ICsxMjYwLDI2IEBAIFBhc3NSZWZQdHI8RE9NU3RyaW5n
TGlzdD4gSW50ZXJuYWxzOjpnZXRSZWZlcmVuY2VkRmlsZVBhdGhzKCkgY29uc3QKICAgICByZXR1
cm4gc3RyaW5nTGlzdC5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRMYXllclBh
aW50RGVidWdDb2xvcihOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIGNvbG9yVmFsdWUsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlbmRlck9iamVjdCog
cmVuZGVyT2JqZWN0ID0gbm9kZS0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXJlbmRlck9iamVjdCkg
eworICAgICAgICBlYyA9IElOVkFMSURfTk9ERV9UWVBFX0VSUjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIFJlbmRlckxheWVyKiByZW5kZXJMYXllciA9IHJlbmRlck9iamVjdC0+ZW5j
bG9zaW5nTGF5ZXIoKTsKKyAgICBpZiAoIXJlbmRlckxheWVyIHx8ICFyZW5kZXJMYXllci0+aXND
b21wb3NpdGVkKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIHJlbmRlckxheWVyLT5iYWNraW5nKCktPnNldFBhaW50RGVi
dWdDb2xvcihDb2xvcihjb2xvclZhbHVlKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCmluZGV4IGIwZjE2MDRiOTc1NWNhODZhZGY2ZWU2MDRjYTE2NmMzMWJkMzdhZjIuLmQ5
OGExMWY1ZWE1ZTUwMjZjYjFjOTU2NjE0NTgyYTA4MmQ2NzQ0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaApAQCAtMjE3LDYgKzIxNyw4IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQ
dHI8RE9NU3RyaW5nTGlzdD4gZ2V0UmVmZXJlbmNlZEZpbGVQYXRocygpIGNvbnN0OwogCisgICAg
dm9pZCBzZXRMYXllclBhaW50RGVidWdDb2xvcihOb2RlKiwgY29uc3QgU3RyaW5nJiBjb2xvclZh
bHVlLCBFeGNlcHRpb25Db2RlJik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxz
KERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGY2MmNlYWM4NTdmMThjY2JhZmNmYzAy
ZTYzN2NjZTlhN2UzMGNmNzAuLjQ5ZDY4OGZkMDY1YTg3Yjk4Njg3OGNiYjMzMmUzZWJlMmNiMmRh
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTE5Myw2ICsxOTMsOCBA
QCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgTWFsbG9jU3RhdGlzdGljcyBtYWxsb2NTdGF0aXN0
aWNzKCk7CiAKICAgICAgICAgRE9NU3RyaW5nW10gZ2V0UmVmZXJlbmNlZEZpbGVQYXRocygpOwor
CisgICAgICAgIHZvaWQgc2V0TGF5ZXJQYWludERlYnVnQ29sb3IoaW4gTm9kZSBub2RlLCBpbiBE
T01TdHJpbmcgY29sb3JWYWx1ZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGY0Yzg1OWIzZDQ0YjJiMWNjODBjN2E0Njc1NWQyOWZiNDA1OGZjNDQuLjZhYTVlYjAw
NDg5YTc3MDM1NWQ0NTU3YzdmZDM1YTA1NWY4NTEzNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxMi0wOS0xMCAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgT3B0aW1pemUgcGFpbnRpbmcgb2YgY29tcG9zaXRlZCBzY3JvbGxpbmcgbGF5ZXJzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA4NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHR3byB0ZXN0
cyBmb3IgdmVyaWZ5aW5nIG9wdGltaXphdGlvbnMgdG8gY29tcG9zaXRlZCBzY3JvbGxpbmcuIE5v
dGUgdGhhdAorICAgICAgICB0aGVzZSB0ZXN0cyBhcmUgd3JpdHRlbiBzbyB0aGF0IHRoZXkgd2ls
bCBwYXNzIGV2ZW4gaWYgT1ZFUkZMT1dfU0NST0xMSU5HIGlzCisgICAgICAgIG5vdCBlbmFibGVk
LgorCisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtcHJl
cGFpbnRpbmctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVy
Zmxvdy9zY3JvbGxpbmctY29udGVudC1wcmVwYWludGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50
aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGlu
Zy1jb250ZW50LXVwZGF0aW5nLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogY29tcG9z
aXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtdXBkYXRpbmctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC11
cGRhdGluZy5odG1sOiBBZGRlZC4KKwogMjAxMi0wOS0xMCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIGZhc3QvY2FudmFzL3dlYmdsL3NoYWRlci1wcmVjaXNpb24t
Zm9ybWF0Lmh0bWwgaXMgZmxha3kgaW4gZGVidWcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLWV4cGVjdGVk
LnBuZyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50
LXByZXBhaW50aW5nLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDAzNjhkMGZhM2VlMjEyMDll
YzdlYjMzODgyMGE4OTU4NmRiNTRhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyOTIwCnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5obEElQFdzJGxIYG9rPG19P29U
bjF5cQp6PFlZdEJXWG5WWTwyMGliMH1EJmojM1UxUTFMTT5yR1pRMElxbTsocW9zdFg7VCkjWUI5
NzhKUnl1R25JX3BwUEEKenRLO3AyRXRXSFBpJDNqJlQrQ0dAeXl9cHNLdFJFZmV1SyZIKnZ4R3o/
IVZxdSRIO0t1cikzb2IhLTNfMzVleTg1CnpqalJqOyFXZkwlK3ZNY3hgKSRoJFZ6KXAyX1VuMSZ5
IStjKDgyaz5nYXgqQlhaRDMkWFZ4cFgzQ1RyVnB5NHI2Mwp6YHVjZyNmN1dfNEpXej9EbEY4SV5B
PXNTRDdueWhMTnNhOEEkSDRJWFE0YGp7IVZKRHFrPG95e205PGRQIz5VTG8KejVDMnUpRkpgfVBk
ZCNBVmlENkRSdy18JGlQWFomdTVmLXUtJWh0OVY5LUMqKXorbCUjcC1KU35LZE91RHMyZEhzCm8o
VihMdz55TV9OKGV5S2QoJDU/RDIweHkhSzFANHdmSzZ1eFBnZyZlYnhzTFEwR2JMdmtwS1Z5Cgps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1wcmVwYWludGluZy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1wcmVwYWlu
dGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3YWQ3OGU2NGIw
YWFkN2JkZWQwOGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxIEBACisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93
L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1wcmVwYWludGluZy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBlNGI1MWZkMTQ4ZGNkMTFmZTU3YzI4YzI0YmMxMTBmZmQ3NTNhNDgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVu
dC1wcmVwYWludGluZy5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8
IS0tCitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYWNjZWxlcmF0ZWQgc2Nyb2xsaW5nIGxheWVycyBj
YW4gYmUgc2Nyb2xsZWQgd2l0aG91dAorcmVwYWludGluZyB0aGVpciBjb250ZW50cyBhbmQgdGhh
dCBhIHBhcnQgb2YgdGhlIGNvbnRlbnRzIGFyZSBhbHNvIHByZXBhaW50ZWQKK291dHNpZGUgdGhl
IG92ZXJmbG93IGNsaXAuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTYwODcuCisKK1Bhc3NpbmcgY3JpdGVyaWE6IGdyZWVuIHJlY3RhbmdsZSBzaG93biBpbnN0
ZWFkIG9mIHJlZC4KKy0tPgorCis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgorICAgICNzY3JvbGxlciB7CisgICAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAg
IC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKKyAgICAgICAgd2lkdGg6IDIwMHB4
OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgIH0KKworICAgICNpbmRpY2F0b3IgeworICAg
ICAgICBoZWlnaHQ6IDEwMDBweDsKKyAgICAgICAgLyoKKyAgICAgICAgICogTm90ZTogaW4gb3Jk
ZXIgdG8gbWFrZSB0aGlzIHRlc3QgYWxzbyBwYXNzIHdpdGhvdXQgYWNjZWxlcmF0ZWQKKyAgICAg
ICAgICogc2Nyb2xsaW5nIHN1cHBvcnQsIHdlIHNldCBpbmRpY2F0b3IgY29sb3IgdW5jb25kaXRp
b25hbGx5IHRvIGdyZWVuCisgICAgICAgICAqIGhlcmUuCisgICAgICAgICAqLworICAgICAgICBi
YWNrZ3JvdW5kOiBncmVlbjsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgICAgIGZ1bmN0aW9uIHRyeVNldExheWVyUGFpbnREZWJ1Z0NvbG9y
KG5vZGUsIGNvbG9yTmFtZSkgeworICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0TGF5ZXJQYWludERlYnVnQ29sb3Iobm9kZSwgY29sb3JOYW1lKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CisgICAg
ICAgICAgICAgIC8vIElmIHNldHRpbmcgdGhlIGRlYnVnIGNvbG9yIGZhaWxzIHdpdGggSU5WQUxJ
RF9TVEFURV9FUlIsIHRoZQorICAgICAgICAgICAgICAvLyBwbGF0Zm9ybSBkb2Vzbid0IHN1cHBv
cnQgYWNjZWxlcmF0ZWQgc2Nyb2xsaW5nLiBCYWlsIG91dCB0bworICAgICAgICAgICAgICAvLyBt
YWtlIHRoZSB0ZXN0IGEgbm8tb3AgaW4gdGhhdCBjYXNlLgorICAgICAgICAgICAgICBpZiAoZXJy
Lm5hbWUgPT0gJ0lOVkFMSURfU1RBVEVfRVJSJykKKyAgICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyOwor
ICAgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgIGFsZXJ0KCdUaGlzIHRlc3QgcmVxdWly
ZXMgdGVzdFJ1bm5lciB0byBydW4hJyk7CisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICB9CisgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworCisgICAgICAgICAg
Ly8gRmlyc3QgcGFpbnQgdGhlIHNjcm9sbGluZyBjb250ZW50cyBncmVlbi4KKyAgICAgICAgICB2
YXIgc2Nyb2xsZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nyb2xsZXInKTsKKyAgICAg
ICAgICB0cnlTZXRMYXllclBhaW50RGVidWdDb2xvcihzY3JvbGxlciwgJ2dyZWVuJyk7CisgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisKKyAgICAgICAgICAvLyBBbnkgcGFpbnRpbmcg
ZnJvbSBub3cgb24gd2lsbCBiZSByZWQuCisgICAgICAgICAgdHJ5U2V0TGF5ZXJQYWludERlYnVn
Q29sb3Ioc2Nyb2xsZXIsICdyZWQnKTsKKworICAgICAgICAgIC8vIFNjcm9sbCBkb3duIGEgYml0
IGFuZCB2ZXJpZnkgdGhhdCB0aGUgY29udGVudCBkaWRuJ3QgZ2V0IHJlcGFpbnRlZAorICAgICAg
ICAgIC8vIGFuZCB0aGF0IHRoZXJlIGFscmVhZHkgd2FzIHZhbGlkIChncmVlbikgY29udGVudCBv
dXRzaWRlIHRoZQorICAgICAgICAgIC8vIG92ZXJmbG93IGNsaXAuIFRoZSBhcmVhIGluc2lkZSB0
aGUgc2Nyb2xsYWJsZSBlbGVtZW50IHNob3VsZCBub3cgYmUKKyAgICAgICAgICAvLyBlbnRpcmVs
eSBncmVlbi4KKyAgICAgICAgICBzY3JvbGxlci5zY3JvbGxUb3AgPSAxMDA7CisgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB9KTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgPGRpdiBpZD0ic2Nyb2xsZXIiPgorICAgIDxkaXYgaWQ9ImluZGljYXRvciI+PC9k
aXY+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtdXBkYXRpbmctZXhwZWN0ZWQu
cG5nIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQt
dXBkYXRpbmctZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZWIzMGVmMGJmMTVkYmNmZWQ1Yjlm
NjY0ODk1MDJlZDNhYThlZDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI5MDUKemNtZUFTQE4/
KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpaKT1oXmhsQSVAV3MkbEhgb2s8bX0/b1RuNigq
Cno2QVF+XlF7eXh2bGF4ZGdiOTBNaVEmV3BIUSk0cWo2UWV8dnc4VWk+XjFtfU1hSn18KWFTVy1M
XlkrSD4rYHxxYwp6dTh1Ym93eSt3TWApcGtfISpyRngqVHF+TThXenZvWEx5ITNPVXZ6PFVtQmF3
eikoYHhGVVA+fUEodXNyIU5EaGkKems+TG0/VzcqcEY9ZFg3QD1VZXg+Wmc+NV4lRSlRfHFuUX1n
QTJ6V3YybmFfb0ZjPnh0MEF1Nko3bVA5WVl8Z3Y7CnpHYyooejklTiRaO004R2dtfm1pfkYmWVIl
Qz8pdHReWWB5UktGQGxgST5UY1pnJjd7aSNCNSstTk1objxQKjVYXwp6VlV9eSNXQkJiM0JmfCQl
M1FaITx7IXZ8SU44TT05alJxWWhTJHtQQmpIYUtGbHojRnsrQnZfKVkpZjFRWSU0USgKTXk4NX1T
YjRxOWUwSiVDJmBUemdgCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC11cGRhdGluZy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmct
Y29udGVudC11cGRhdGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2
OTI3YWQ3OGU2NGIwYWFkN2JkZWQwOGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXVwZGF0aW5nLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxIEBACisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXVwZGF0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC11cGRhdGluZy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk4MjJjNThmNWM5OGNmNDczNjVlYzA2OGU3NDNmY2E3ZmRjYTJjMGEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29u
dGVudC11cGRhdGluZy5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8
IS0tCitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIGNvbnRlbnRzIG9mIGFjY2VsZXJhdGVkIHNj
cm9sbGluZyBsYXllcnMgYXJlIHByb3Blcmx5Cit1cGRhdGVkIGFsc28gb3V0c2lkZSB0aGUgY3Vy
cmVudCBvdmVyZmxvdyBjbGlwLiBTZWUKK2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NjA4Ny4KKworUGFzc2luZyBjcml0ZXJpYTogZ3JlZW4gcmVjdGFuZ2xlIHNob3du
IGluc3RlYWQgb2YgcmVkLgorLS0+CisKKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisgICAgI3Njcm9sbGVyIHsKKyAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAg
ICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOworICAgICAgICB3aWR0aDog
MjAwcHg7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgfQorCisgICAgI2luZGljYXRvciB7
CisgICAgICAgIGJhY2tncm91bmQ6IHJlZDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB9
CisKKyAgICAjY29udGVudCB7CisgICAgICAgIGhlaWdodDogMTAwMHB4OworICAgIH0KKyAgPC9z
dHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZiAoIXdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgIGFsZXJ0KCdUaGlzIHRlc3QgcmVxdWlyZXMg
dGVzdFJ1bm5lciB0byBydW4hJyk7CisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9
CisKKyAgICAgICAgICB2YXIgc2Nyb2xsZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Ny
b2xsZXInKTsKKyAgICAgICAgICB2YXIgaW5kaWNhdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2luZGljYXRvcicpOworCisgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUp
OworCisgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBzY3JvbGxpbmcgY29udGVudCBpcyBwYWlu
dGVkIGJlZm9yZSB3ZSBzdGFydC4KKyAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKwor
ICAgICAgICAgIC8vIFNjcm9sbCBhbGwgdGhlIHdheSB0byB0aGUgYm90dG9tIGFuZCBjaGFuZ2Ug
dGhlIGNvbG9yIG9mIHRoZQorICAgICAgICAgIC8vIGluZGljYXRvciAod2hpY2ggaXMgbm93IG91
dHNpZGUgdGhlIG92ZXJmbG93IGNsaXApLgorICAgICAgICAgIHNjcm9sbGVyLnNjcm9sbFRvcCA9
IDEwMDA7CisgICAgICAgICAgaW5kaWNhdG9yLnN0eWxlLmJhY2tncm91bmQgPSAnZ3JlZW4nOwor
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworCisgICAgICAgICAgLy8gU2Nyb2xsIGJh
Y2sgdXAgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZSB1cGRhdGVkIChncmVlbikgaW5kaWNhdG9yIGlz
CisgICAgICAgICAgLy8gdmlzaWJsZS4KKyAgICAgICAgICBzY3JvbGxlci5zY3JvbGxUb3AgPSAw
OworICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgfSk7CisgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9InNjcm9sbGVyIj4KKyAgICA8ZGl2IGlkPSJp
bmRpY2F0b3IiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnRlbnQiPjwvZGl2PgorICA8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163307</attachid>
            <date>2012-09-11 02:06:28 -0700</date>
            <delta_ts>2012-09-12 03:00:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96087-20120911100602.patch</filename>
            <type>text/plain</type>
            <size>27744</size>
            <attacher name="Sami Kyöstilä">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkNDk5MDI3NzkyNjBi
NDFkM2VmYTgzY2VlMWYzNzdmNWVjNzUxMy4uYzhlZmNmOTZkZGZkZDZkOTYzZWZmMmVjNmQ3MmVj
MjhhNzdhZTE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTA5LTEwICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAZ29vZ2xlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBwYWlu
dGluZyBvZiBjb21wb3NpdGVkIHNjcm9sbGluZyBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBlbmFibGVzIHR3byBvcHRpbWl6
YXRpb24gZm9yIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVyczogZmlyc3QsCisgICAgICAgIHdo
ZW4gdGhlIGxheWVyIHNjcm9sbCBvZmZzZXQgY2hhbmdlcywgZG8gbm90IG1hcmsgdGhlIGVudGly
ZSBsYXllciBhcyBuZWVkaW5nCisgICAgICAgIGRpc3BsYXksIGJlY2F1c2UgdGhlIGNvbXBvc2l0
b3Igd2lsbCBhY2NvdW50IGZvciB0aGUgY29ycmVzcG9uZGluZyBsYXlvdXQKKyAgICAgICAgY2hh
bmdlIHNpbXBseSBieSB0cmFuc2xhdGluZyB0aGUgbGF5ZXIgdG8gdGhlIGNvcnJlY3QgcG9zaXRp
b24uCisKKyAgICAgICAgU2Vjb25kLCBvdmVyZmxvdyBjbGlwcGluZyBpcyBkaXNhYmxlZCB3aGVu
IHBhaW50aW5nIHRoZSBjb250ZW50cyBvZiBhCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
IGxheWVyLiBUaGlzIGlzIGRvbmUgdG8gaW5jcmVhc2UgdGhlIGNoYW5jZXMgdGhlcmUgaXMKKyAg
ICAgICAgdmFsaWQgbGF5ZXIgY29udGVudCBmb3IgdGhlIGNvbXBvc2l0b3IgdG8gZHJhdyB3aGls
ZSBzY3JvbGxpbmcgdGhlIGxheWVyIG9mZgorICAgICAgICB0aGUgbWFpbiB0aHJlYWQuCisKKyAg
ICAgICAgQSBuZXcgaW50ZXJuYWwgQVBJIGZvciBzZXR0aW5nIGEgbGF5ZXIgZGVidWcgcGFpbnQg
Y29sb3IgaXMgaW50cm9kdWNlZCB0bworICAgICAgICBhbGxvdyB0ZXN0aW5nIHRoZSBjaGFuZ2Vz
LiBBbGwgZnVydGhlciBwYWludCBvcGVyYXRpb25zIHRvIHRoZSBhc3NvY2lhdGVkCisgICAgICAg
IFJlbmRlckxheWVyQmFja2luZyBhcmUgbWFya2VkIHdpdGggdGhlIGdpdmVuIGNvbG9yLiBUaGUg
dGVzdHMgdXNlIHRoaXMgZmVhdHVyZQorICAgICAgICB0byBkZXRlY3QgcmVkdW5kYW50IGFuZCBt
aXNzaW5nIHJlcGFpbnRzLgorCisgICAgICAgIFRlc3RzOiBjb21wb3NpdGluZy9vdmVyZmxvdy9z
Y3JvbGxpbmctY29udGVudC1wcmVwYWludGluZy5odG1sCisgICAgICAgICAgICAgICBjb21wb3Np
dGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC11cGRhdGluZy5odG1sCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OnNldE9mZnNldEZyb21SZW5kZXJlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOiBBbGxvdyBjaGFuZ2luZyByZW5kZXJlciBvZmZz
ZXQKKyAgICAgICAgd2l0aG91dCBpbnZhbGlkYXRpbmcgdGhlIGxheWVyLgorICAgICAgICAoR3Jh
cGhpY3NMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmg6CisgICAgICAg
IChMYXlvdXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmFwcGx5Q2FjaGVk
Q2xpcEFuZFNjcm9sbE9mZnNldEZvclJlcGFpbnQpOgorICAgICAgICBDb25zb2xpZGF0ZSBhIG51
bWJlciBvZiBjb3BpZXMgb2YgdGhlIHNhbWUgY2xpcHBpbmcgY29kZSBhbmQKKyAgICAgICAgc2tp
cCBhcHBseWluZyB0aGUgb3ZlcmZsb3cgY2xpcCBpZiB0aGUgUmVuZGVyQm94IGlzIGEgcGFydCBv
ZiBhCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVyLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlcklubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6cmVwYWludEJsb2NrU2VsZWN0aW9uR2Fwcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRQYWludERlYnVnQ29sb3IpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
T2JqZWN0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0TGF5ZXJQYWludERlYnVn
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRs
OgorCiAyMDEyLTA5LTExICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIENyZWF0ZSBMb2NhbGl6ZXIgZmFjdG9yeSBtZXRob2QgZm9yIExvY2FsZU1hYwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApp
bmRleCAyYWUzZmU3ODcwYWU0NzIyZDQzMWYwMDUwOWUwNzY4OTZmYzA5YzdkLi5jMGNkZGViNTk5
ZGE1YWQ5MGZmY2NiMmIzNzIzYjMyMTA1ZGFkNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtMjg1LDcgKzI4NSw3IEBA
IHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhpY3NMYXllciog
bGF5ZXIpCiAgICAgbV9yZXBsaWNhTGF5ZXIgPSBsYXllcjsKIH0KIAotdm9pZCBHcmFwaGljc0xh
eWVyOjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQordm9pZCBH
cmFwaGljc0xheWVyOjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0
LCBTaG91bGRTZXROZWVkc0Rpc3BsYXkgc2hvdWxkU2V0TmVlZHNEaXNwbGF5KQogewogICAgIGlm
IChvZmZzZXQgPT0gbV9vZmZzZXRGcm9tUmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTI5
Myw3ICsyOTMsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OnNldE9mZnNldEZyb21SZW5kZXJlcihj
b25zdCBJbnRTaXplJiBvZmZzZXQpCiAgICAgbV9vZmZzZXRGcm9tUmVuZGVyZXIgPSBvZmZzZXQ7
CiAKICAgICAvLyBJZiB0aGUgY29tcG9zaXRpbmcgbGF5ZXIgb2Zmc2V0IGNoYW5nZXMsIHdlIG5l
ZWQgdG8gcmVwYWludC4KLSAgICBzZXROZWVkc0Rpc3BsYXkoKTsKKyAgICBpZiAoc2hvdWxkU2V0
TmVlZHNEaXNwbGF5ID09IFNldE5lZWRzRGlzcGxheSkKKyAgICAgICAgc2V0TmVlZHNEaXNwbGF5
KCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENv
bG9yJiBjb2xvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaAppbmRleCA0MjMzYmM3ZjczYWRjODIzMjUzOGRmYmNhMDFlMGU1YzJhNTM4NDNj
Li41ODM1MDUwMmVmMDU2NGYwOTI3ODdlMTA1YzVmOWY5NjI3MzhmZjY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0yMzMsOSAr
MjMzLDE0IEBAIHB1YmxpYzoKICAgICBjb25zdCBGbG9hdFBvaW50JiByZXBsaWNhdGVkTGF5ZXJQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGljYXRlZExheWVyUG9zaXRpb247IH0KICAg
ICB2b2lkIHNldFJlcGxpY2F0ZWRMYXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHApIHsg
bV9yZXBsaWNhdGVkTGF5ZXJQb3NpdGlvbiA9IHA7IH0KIAorICAgIGVudW0gU2hvdWxkU2V0TmVl
ZHNEaXNwbGF5IHsKKyAgICAgICAgRG9udFNldE5lZWRzRGlzcGxheSwKKyAgICAgICAgU2V0TmVl
ZHNEaXNwbGF5CisgICAgfTsKKwogICAgIC8vIE9mZnNldCBpcyBvcmlnaW4gb2YgdGhlIHJlbmRl
cmVyIG1pbnVzIG9yaWdpbiBvZiB0aGUgZ3JhcGhpY3MgbGF5ZXIgKHNvIGVpdGhlciB6ZXJvIG9y
IG5lZ2F0aXZlKS4KICAgICBJbnRTaXplIG9mZnNldEZyb21SZW5kZXJlcigpIGNvbnN0IHsgcmV0
dXJuIG1fb2Zmc2V0RnJvbVJlbmRlcmVyOyB9Ci0gICAgdm9pZCBzZXRPZmZzZXRGcm9tUmVuZGVy
ZXIoY29uc3QgSW50U2l6ZSYpOworICAgIHZvaWQgc2V0T2Zmc2V0RnJvbVJlbmRlcmVyKGNvbnN0
IEludFNpemUmLCBTaG91bGRTZXROZWVkc0Rpc3BsYXkgPSBTZXROZWVkc0Rpc3BsYXkpOwogCiAg
ICAgLy8gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXllciAodGhlIGxvY2F0aW9uIG9mIGl0cyB0b3At
bGVmdCBjb3JuZXIgaW4gaXRzIHBhcmVudCkKICAgICBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xh
eW91dFN0YXRlLmgKaW5kZXggMTUyYzgwNDY1NDU4ZmQxNWIyOTc5YzdhY2MzYWU3ZGYyYjA5ZTA5
ZS4uMzc5MzQ3M2I1YjVjYThmY2FkNGNlYzU0MjJiZGY5ZGEyYTczMTUxOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKQEAgLTEwMCw2ICsxMDAsMTAgQEAgcHJpdmF0ZToK
IHB1YmxpYzoKICAgICBib29sIG1fY2xpcHBlZDsKICAgICBib29sIG1faXNQYWdpbmF0ZWQ7CisK
KyAgICAvLyBMYXlvdXQgY2xpcCByZWN0LgorICAgIC8vIEZJWE1FOiBEaXN0aW5ndWlzaCBiZXR3
ZWVuIHRoZSBsYXlvdXQgY2xpcCByZWN0IGFuZCB0aGUgcGFpbnQgY2xpcCByZWN0IHdoaWNoIG1h
eSBiZSBsYXJnZXIsCisgICAgLy8gZS5nLiwgYmVjYXVzZSBvZiBjb21wb3NpdGVkIHNjcm9sbGlu
Zy4KICAgICBMYXlvdXRSZWN0IG1fY2xpcFJlY3Q7CiAgICAgCiAgICAgLy8geC95IG9mZnNldCBm
cm9tIGNvbnRhaW5lci4gSW5jbHVkZXMgcmVsYXRpdmUgcG9zaXRpb25pbmcgYW5kIHNjcm9sbCBv
ZmZzZXRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggNDRi
N2VhNzNiY2RkZjVlMjVmNmI2ZjhjMmFkYTE1ZjNlNThkMmQyYy4uODRkYjU1MzQ1NzJkN2ZmZGI1
NTQ3MWRiNWVkZDgwMmU4YjMyNTRjMiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCkBAIC0yNzI3LDcgKzI3MjcsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAg
IC8vIENoZWNrIGlmIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgYXQgYWxsLgogICAgIC8vIEZJWE1F
OiBDb3VsZCBlbGltaW5hdGUgdGhlIGlzUm9vdCgpIGNoZWNrIGlmIHdlIGZpeCBiYWNrZ3JvdW5k
IHBhaW50aW5nIHNvIHRoYXQgdGhlIFJlbmRlclZpZXcKICAgICAvLyBwYWludHMgdGhlIHJvb3Qn
cyBiYWNrZ3JvdW5kLgotICAgIGlmICghaXNSb290KCkpIHsKKyAgICBpZiAoIWlzUm9vdCgpICYm
ICEoaGFzT3ZlcmZsb3dDbGlwKCkgJiYgaGFzTGF5ZXIoKSAmJiBsYXllcigpLT51c2VzQ29tcG9z
aXRlZFNjcm9sbGluZygpKSkgewogICAgICAgICBMYXlvdXRSZWN0IG92ZXJmbG93Qm94ID0gdmlz
dWFsT3ZlcmZsb3dSZWN0KCk7CiAgICAgICAgIGZsaXBGb3JXcml0aW5nTW9kZShvdmVyZmxvd0Jv
eCk7CiAgICAgICAgIG92ZXJmbG93Qm94LmluZmxhdGUobWF4aW1hbE91dGxpbmVTaXplKHBhaW50
SW5mby5waGFzZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA1
ZDI2MDZjZjJlNmI3N2M0ZjZjYmVmY2Y5MmNhMTM2NzI3NzExODdjLi41ODMyMDg2YTM4NGJlYWE1
YmE3N2IzNzVhYWM3YzliNmI5Mzc4ZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcApAQCAtNjQ3LDYgKzY0NywyMSBAQCBMYXlvdXRTaXplIFJlbmRlckJveDo6Y2FjaGVk
U2l6ZUZvck92ZXJmbG93Q2xpcCgpIGNvbnN0CiAgICAgcmV0dXJuIGxheWVyKCktPnNpemUoKTsK
IH0KIAordm9pZCBSZW5kZXJCb3g6OmFwcGx5Q2FjaGVkQ2xpcEFuZFNjcm9sbE9mZnNldEZvclJl
cGFpbnQoTGF5b3V0UmVjdCYgcGFpbnRSZWN0KSBjb25zdAoreworICAgIHBhaW50UmVjdC5tb3Zl
KC1zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7IC8vIEZvciBvdmVyZmxvdzphdXRvL3Njcm9sbC9o
aWRkZW4uCisKKyAgICAvLyBEbyBub3QgY2xpcCBzY3JvbGwgbGF5ZXIgY29udGVudHMgdG8gcmVk
dWNlIHRoZSBudW1iZXIgb2YgcmVwYWludHMgd2hpbGUgc2Nyb2xsaW5nLgorICAgIGlmIChoYXNP
dmVyZmxvd0NsaXAoKSAmJiBoYXNMYXllcigpICYmIGxheWVyKCktPnVzZXNDb21wb3NpdGVkU2Ny
b2xsaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIGhlaWdodCgpIGlzIGluYWNjdXJh
dGUgaWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxheW91dCBvZiB0aGlzIFJlbmRlckJveCwg
c28gdXNlIHRoZQorICAgIC8vIGxheWVyJ3Mgc2l6ZSBpbnN0ZWFkLiBFdmVuIGlmIHRoZSBsYXll
cidzIHNpemUgaXMgd3JvbmcsIHRoZSBsYXllciBpdHNlbGYgd2lsbCByZXBhaW50CisgICAgLy8g
YW55d2F5IGlmIGl0cyBzaXplIGRvZXMgY2hhbmdlLgorICAgIExheW91dFJlY3QgY2xpcFJlY3Qo
TGF5b3V0UG9pbnQoKSwgY2FjaGVkU2l6ZUZvck92ZXJmbG93Q2xpcCgpKTsKKyAgICBwYWludFJl
Y3QgPSBpbnRlcnNlY3Rpb24ocGFpbnRSZWN0LCBjbGlwUmVjdCk7Cit9CisKIExheW91dFVuaXQg
UmVuZGVyQm94OjptaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdAogewogICAgIGlmIChw
cmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoKSkKQEAgLTE1NzQsMjEgKzE1ODksMTMgQEAgdm9p
ZCBSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgTGEKIAogICAgIC8vIEZJWE1FOiBXZSBpZ25vcmUgdGhlIGxpZ2h0
d2VpZ2h0IGNsaXBwaW5nIHJlY3QgdGhhdCBjb250cm9scyB1c2UsIHNpbmNlIGlmIHxvfCBpcyBp
biBtaWQtbGF5b3V0LAogICAgIC8vIGl0cyBjb250cm9sQ2xpcFJlY3Qgd2lsbCBiZSB3cm9uZy4g
Rm9yIG92ZXJmbG93IGNsaXAgd2UgdXNlIHRoZSB2YWx1ZXMgY2FjaGVkIGJ5IHRoZSBsYXllci4K
KyAgICByZWN0LnNldExvY2F0aW9uKHRvcExlZnQpOwogICAgIGlmIChvLT5oYXNPdmVyZmxvd0Ns
aXAoKSkgewogICAgICAgICBSZW5kZXJCb3gqIGNvbnRhaW5lckJveCA9IHRvUmVuZGVyQm94KG8p
OwotCi0gICAgICAgIC8vIG8tPmhlaWdodCgpIGlzIGluYWNjdXJhdGUgaWYgd2UncmUgaW4gdGhl
IG1pZGRsZSBvZiBhIGxheW91dCBvZiB8b3wsIHNvIHVzZSB0aGUKLSAgICAgICAgLy8gbGF5ZXIn
cyBzaXplIGluc3RlYWQuICBFdmVuIGlmIHRoZSBsYXllcidzIHNpemUgaXMgd3JvbmcsIHRoZSBs
YXllciBpdHNlbGYgd2lsbCByZXBhaW50Ci0gICAgICAgIC8vIGFueXdheSBpZiBpdHMgc2l6ZSBk
b2VzIGNoYW5nZS4KLSAgICAgICAgdG9wTGVmdCAtPSBjb250YWluZXJCb3gtPnNjcm9sbGVkQ29u
dGVudE9mZnNldCgpOyAvLyBGb3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgotCi0gICAg
ICAgIExheW91dFJlY3QgcmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwotICAgICAg
ICBMYXlvdXRSZWN0IGJveFJlY3QoTGF5b3V0UG9pbnQoKSwgY29udGFpbmVyQm94LT5jYWNoZWRT
aXplRm9yT3ZlcmZsb3dDbGlwKCkpOwotICAgICAgICByZWN0ID0gaW50ZXJzZWN0aW9uKHJlcGFp
bnRSZWN0LCBib3hSZWN0KTsKKyAgICAgICAgY29udGFpbmVyQm94LT5hcHBseUNhY2hlZENsaXBB
bmRTY3JvbGxPZmZzZXRGb3JSZXBhaW50KHJlY3QpOwogICAgICAgICBpZiAocmVjdC5pc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlCi0gICAgICAgIHJlY3Quc2V0TG9j
YXRpb24odG9wTGVmdCk7CisgICAgfQogCiAgICAgaWYgKGNvbnRhaW5lclNraXBwZWQpIHsKICAg
ICAgICAgLy8gSWYgdGhlIHJlcGFpbnRDb250YWluZXIgaXMgYmVsb3cgbywgdGhlbiB3ZSBuZWVk
IHRvIG1hcCB0aGUgcmVjdCBpbnRvIHJlcGFpbnRDb250YWluZXIncyBjb29yZGluYXRlcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA0MWNhNTNmMzdmMTBiYTUwOGI3ZDZk
NWEyNGVlNTVjOGY2ZjU0OThhLi5hYzMxN2E1ZjRmMWFlOWU1NDE2NTlmZmJlOTVhZmZhNDEzNGI1
YzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC01MDksNiArNTA5LDcg
QEAgcHVibGljOgogCiAgICAgSW50U2l6ZSBzY3JvbGxlZENvbnRlbnRPZmZzZXQoKSBjb25zdDsK
ICAgICBMYXlvdXRTaXplIGNhY2hlZFNpemVGb3JPdmVyZmxvd0NsaXAoKSBjb25zdDsKKyAgICB2
b2lkIGFwcGx5Q2FjaGVkQ2xpcEFuZFNjcm9sbE9mZnNldEZvclJlcGFpbnQoTGF5b3V0UmVjdCYg
cGFpbnRSZWN0KSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZURpbWVuc2lv
bnMoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IDk0
MTM3NTUwOTk5ZjQ1ODUzMmRjZTQ1NDBhZjc2NjA3ZjVhYjI0YzMuLjIzNGNlYTI4YmI1NDQ5Nzcw
YWZiZTBiOWZiZmZhYzQxMzMwMjg2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwCkBAIC05OTMsMTUgKzk5Myw4IEBAIExheW91dFJlY3QgUmVuZGVySW5saW5l
OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVw
CiAgICAgaWYgKGNiLT5oYXNDb2x1bW5zKCkpCiAgICAgICAgIGNiLT5hZGp1c3RSZWN0Rm9yQ29s
dW1ucyhyZXBhaW50UmVjdCk7CiAKLSAgICBpZiAoY2ItPmhhc092ZXJmbG93Q2xpcCgpKSB7Ci0g
ICAgICAgIC8vIGNiLT5oZWlnaHQoKSBpcyBpbmFjY3VyYXRlIGlmIHdlJ3JlIGluIHRoZSBtaWRk
bGUgb2YgYSBsYXlvdXQgb2YgfGNifCwgc28gdXNlIHRoZQotICAgICAgICAvLyBsYXllcidzIHNp
emUgaW5zdGVhZC4gIEV2ZW4gaWYgdGhlIGxheWVyJ3Mgc2l6ZSBpcyB3cm9uZywgdGhlIGxheWVy
IGl0c2VsZiB3aWxsIHJlcGFpbnQKLSAgICAgICAgLy8gYW55d2F5IGlmIGl0cyBzaXplIGRvZXMg
Y2hhbmdlLgotICAgICAgICByZXBhaW50UmVjdC5tb3ZlKC1jYi0+c2Nyb2xsZWRDb250ZW50T2Zm
c2V0KCkpOyAvLyBGb3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgotCi0gICAgICAgIExh
eW91dFJlY3QgYm94UmVjdChMYXlvdXRQb2ludCgpLCBjYi0+Y2FjaGVkU2l6ZUZvck92ZXJmbG93
Q2xpcCgpKTsKLSAgICAgICAgcmVwYWludFJlY3QuaW50ZXJzZWN0KGJveFJlY3QpOwotICAgIH0K
KyAgICBpZiAoY2ItPmhhc092ZXJmbG93Q2xpcCgpKQorICAgICAgICBjYi0+YXBwbHlDYWNoZWRD
bGlwQW5kU2Nyb2xsT2Zmc2V0Rm9yUmVwYWludChyZXBhaW50UmVjdCk7CiAKICAgICBjYi0+Y29t
cHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0KTsKIApAQCAt
MTA3MywyMSArMTA2NiwxMyBAQCB2b2lkIFJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBh
aW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLAogICAgIAogICAgIC8v
IEZJWE1FOiBXZSBpZ25vcmUgdGhlIGxpZ2h0d2VpZ2h0IGNsaXBwaW5nIHJlY3QgdGhhdCBjb250
cm9scyB1c2UsIHNpbmNlIGlmIHxvfCBpcyBpbiBtaWQtbGF5b3V0LAogICAgIC8vIGl0cyBjb250
cm9sQ2xpcFJlY3Qgd2lsbCBiZSB3cm9uZy4gRm9yIG92ZXJmbG93IGNsaXAgd2UgdXNlIHRoZSB2
YWx1ZXMgY2FjaGVkIGJ5IHRoZSBsYXllci4KKyAgICByZWN0LnNldExvY2F0aW9uKHRvcExlZnQp
OwogICAgIGlmIChvLT5oYXNPdmVyZmxvd0NsaXAoKSkgewogICAgICAgICBSZW5kZXJCb3gqIGNv
bnRhaW5lckJveCA9IHRvUmVuZGVyQm94KG8pOwotCi0gICAgICAgIC8vIG8tPmhlaWdodCgpIGlz
IGluYWNjdXJhdGUgaWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxheW91dCBvZiB8b3wsIHNv
IHVzZSB0aGUKLSAgICAgICAgLy8gbGF5ZXIncyBzaXplIGluc3RlYWQuICBFdmVuIGlmIHRoZSBs
YXllcidzIHNpemUgaXMgd3JvbmcsIHRoZSBsYXllciBpdHNlbGYgd2lsbCByZXBhaW50Ci0gICAg
ICAgIC8vIGFueXdheSBpZiBpdHMgc2l6ZSBkb2VzIGNoYW5nZS4KLSAgICAgICAgdG9wTGVmdCAt
PSBjb250YWluZXJCb3gtPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOyAvLyBGb3Igb3ZlcmZsb3c6
YXV0by9zY3JvbGwvaGlkZGVuLgotCi0gICAgICAgIExheW91dFJlY3QgcmVwYWludFJlY3QodG9w
TGVmdCwgcmVjdC5zaXplKCkpOwotICAgICAgICBMYXlvdXRSZWN0IGJveFJlY3QoTGF5b3V0UG9p
bnQoKSwgY29udGFpbmVyQm94LT5jYWNoZWRTaXplRm9yT3ZlcmZsb3dDbGlwKCkpOwotICAgICAg
ICByZWN0ID0gaW50ZXJzZWN0aW9uKHJlcGFpbnRSZWN0LCBib3hSZWN0KTsKKyAgICAgICAgY29u
dGFpbmVyQm94LT5hcHBseUNhY2hlZENsaXBBbmRTY3JvbGxPZmZzZXRGb3JSZXBhaW50KHJlY3Qp
OwogICAgICAgICBpZiAocmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
fSBlbHNlCi0gICAgICAgIHJlY3Quc2V0TG9jYXRpb24odG9wTGVmdCk7CisgICAgfQogCiAgICAg
aWYgKGNvbnRhaW5lclNraXBwZWQpIHsKICAgICAgICAgLy8gSWYgdGhlIHJlcGFpbnRDb250YWlu
ZXIgaXMgYmVsb3cgbywgdGhlbiB3ZSBuZWVkIHRvIG1hcCB0aGUgcmVjdCBpbnRvIHJlcGFpbnRD
b250YWluZXIncyBjb29yZGluYXRlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCmluZGV4IDMwZjc1OWM1ZDVjOTgzMGFkNjQ5OTI5OGM4NmUyOWYzNGUxNmNjYWQuLmRm
NjM0YTg1OTM0MjBiYzE4MjVjNGJhY2U1Nzg3MDEzMmQyNmM4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNDE4NCw3ICs0MTg0LDcgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6cmVwYWludEJsb2NrU2VsZWN0aW9uR2FwcygpCiAKICAgICBMYXlvdXRSZWN0IHJl
Y3QgPSBtX2Jsb2NrU2VsZWN0aW9uR2Fwc0JvdW5kczsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGVk
Q29udGVudE9mZnNldCgpKTsKLSAgICBpZiAocmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkp
CisgICAgaWYgKHJlbmRlcmVyKCktPmhhc092ZXJmbG93Q2xpcCgpICYmICF1c2VzQ29tcG9zaXRl
ZFNjcm9sbGluZygpKQogICAgICAgICByZWN0LmludGVyc2VjdCh0b1JlbmRlckJveChyZW5kZXJl
cigpKS0+b3ZlcmZsb3dDbGlwUmVjdChMYXlvdXRQb2ludCgpLCAwKSk7IC8vIEZJWE1FOiBSZWdp
b25zIG5vdCBhY2NvdW50ZWQgZm9yLgogICAgIGlmIChyZW5kZXJlcigpLT5oYXNDbGlwKCkpCiAg
ICAgICAgIHJlY3QuaW50ZXJzZWN0KHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5jbGlwUmVjdChM
YXlvdXRQb2ludCgpLCAwKSk7IC8vIEZJWE1FOiBSZWdpb25zIG5vdCBhY2NvdW50ZWQgZm9yLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRl
eCAyNmNkNTBmNTA1NmM1NTQwY2ZjNTdhMGYwZWNhNTk1ZDE3MDc1ODNlLi42NjkzYTRkODk3MWM5
Y2QxYmIzNjEyZGMwZjAxZWQ1ZGM3OWVjODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNjc4LDkgKzY3OCw4IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkoKQogICAgICAgICAg
ICAgY29tcG9zaXRvcigpLT5zY3JvbGxpbmdMYXllckRpZENoYW5nZShtX293bmluZ0xheWVyKTsK
IAogICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNldFNpemUoc2Nyb2xsU2l6ZSk7
Ci0gICAgICAgIC8vIEZJWE1FOiBTY3JvbGxpbmcgdGhlIGNvbnRlbnQgbGF5ZXIgZG9lcyBub3Qg
bmVlZCB0byB0cmlnZ2VyIGEgcmVwYWludC4gVGhlIG9mZnNldCB3aWxsIGJlIGNvbXBlbnNhdGVk
IGF3YXkgZHVyaW5nIHBhaW50aW5nLgogICAgICAgICAvLyBGSVhNRTogVGhlIHBhaW50IG9mZnNl
dCBhbmQgdGhlIHNjcm9sbCBvZmZzZXQgc2hvdWxkIHJlYWxseSBiZSBzZXBhcmF0ZSBjb25jZXB0
cy4KLSAgICAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVy
ZXIoc2Nyb2xsaW5nQ29udGVudHNPZmZzZXQpOworICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRz
TGF5ZXItPnNldE9mZnNldEZyb21SZW5kZXJlcihzY3JvbGxpbmdDb250ZW50c09mZnNldCwgR3Jh
cGhpY3NMYXllcjo6RG9udFNldE5lZWRzRGlzcGxheSk7CiAgICAgfQogCiAgICAgbV9ncmFwaGlj
c0xheWVyLT5zZXRDb250ZW50c1JlY3QoY29udGVudHNCb3goKSk7CkBAIC0xNDIxLDYgKzE0MjAs
OSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoUmVuZGVyTGF5ZXIq
IHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KgogICAgIGlmIChtX293bmluZ0xheWVyLT5jb250
YWluc0RpcnR5T3ZlcmxheVNjcm9sbGJhcnMoKSkKICAgICAgICAgbV9vd25pbmdMYXllci0+cGFp
bnRPdmVybGF5U2Nyb2xsYmFycyhjb250ZXh0LCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhhdmlv
ciwgcGFpbnRpbmdSb290KTsKIAorICAgIGlmIChtX3BhaW50RGVidWdDb2xvci5hbHBoYSgpKQor
ICAgICAgICBjb250ZXh0LT5maWxsUmVjdChwYWludERpcnR5UmVjdCwgbV9wYWludERlYnVnQ29s
b3IsIENvbG9yU3BhY2VTUkdCKTsKKwogICAgIEFTU0VSVCghbV9vd25pbmdMYXllci0+bV91c2Vk
VHJhbnNwYXJlbmN5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oCmluZGV4IDA1MDhiNTJiYjJmYjZhNzliYTM3MmU5YWE5MDRjY2IwYjUxYzU5
NDUuLmU0NDg0YTUwOGI1MzQwMTI4YTA0ODgwNWE4YTkzYzE2YTVhMzM3YjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTE2OCw2ICsxNjgs
MTAgQEAgcHVibGljOgogICAgIC8vIFJldHVybiBhbiBlc3RpbWF0ZSBvZiB0aGUgYmFja2luZyBz
dG9yZSBhcmVhIChpbiBwaXhlbHMpIGFsbG9jYXRlZCBieSB0aGlzIG9iamVjdCdzIEdyYXBoaWNz
TGF5ZXJzLgogICAgIGRvdWJsZSBiYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpIGNvbnN0Owog
CisgICAgLy8gSGlnaGxpZ2h0cyBmb2xsb3dpbmcgcGFpbnQgb3BlcmF0aW9ucyB0byB0aGlzIGxh
eWVyIHdpdGggdGhlIGdpdmVuIGNvbG9yLiBUbyBkaXNhYmxlLCBwYXNzCisgICAgLy8gYSBmdWxs
eSB0cmFuc3BhcmVudCBjb2xvci4KKyAgICB2b2lkIHNldFBhaW50RGVidWdDb2xvcihjb25zdCBD
b2xvciYgcGFpbnREZWJ1Z0NvbG9yKSB7IG1fcGFpbnREZWJ1Z0NvbG9yID0gcGFpbnREZWJ1Z0Nv
bG9yOyB9CisKICAgICBTdHJpbmcgbmFtZUZvckxheWVyKCkgY29uc3Q7CiAgICAgCiAjaWYgRU5B
QkxFKENTU19DT01QT1NJVElORykKQEAgLTI2Niw2ICsyNzAsOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9jYW5Db21wb3NpdGVGaWx0ZXJzOwogI2VuZGlmCiAKKyAgICBDb2xvciBtX3BhaW50RGVi
dWdDb2xvcjsKKwogICAgIHN0YXRpYyBib29sIG1fY3JlYXRpbmdQcmltYXJ5R3JhcGhpY3NMYXll
cjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXgg
OGJmZDlmNzRkZGRjMzM0Y2Q4NzVjOWJiZTQ2YmRkNzA1MzcxZTQ1My4uMzcyZGExNTYxMzEzN2Ni
Y2ZiOTcxMzI3NzE1YjQwNmI5YzRhYjc5YiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAKQEAgLTE1MDcsMTYgKzE1MDcsOCBAQCB2b2lkIFJlbmRlck9iamVjdDo6
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLAogICAgICAgICB9CiAKICAgICAgICAgaWYgKG8tPmhhc092ZXJmbG93Q2xpcCgpKSB7Ci0g
ICAgICAgICAgICAvLyBvLT5oZWlnaHQoKSBpcyBpbmFjY3VyYXRlIGlmIHdlJ3JlIGluIHRoZSBt
aWRkbGUgb2YgYSBsYXlvdXQgb2YgfG98LCBzbyB1c2UgdGhlCi0gICAgICAgICAgICAvLyBsYXll
cidzIHNpemUgaW5zdGVhZC4gIEV2ZW4gaWYgdGhlIGxheWVyJ3Mgc2l6ZSBpcyB3cm9uZywgdGhl
IGxheWVyIGl0c2VsZiB3aWxsIHJlcGFpbnQKLSAgICAgICAgICAgIC8vIGFueXdheSBpZiBpdHMg
c2l6ZSBkb2VzIGNoYW5nZS4KICAgICAgICAgICAgIFJlbmRlckJveCogYm94UGFyZW50ID0gdG9S
ZW5kZXJCb3gobyk7Ci0KLSAgICAgICAgICAgIExheW91dFJlY3QgcmVwYWludFJlY3QocmVjdCk7
Ci0gICAgICAgICAgICByZXBhaW50UmVjdC5tb3ZlKC1ib3hQYXJlbnQtPnNjcm9sbGVkQ29udGVu
dE9mZnNldCgpKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KLQotICAgICAg
ICAgICAgTGF5b3V0UmVjdCBib3hSZWN0KExheW91dFBvaW50KCksIGJveFBhcmVudC0+Y2FjaGVk
U2l6ZUZvck92ZXJmbG93Q2xpcCgpKTsKLSAgICAgICAgICAgIHJlY3QgPSBpbnRlcnNlY3Rpb24o
cmVwYWludFJlY3QsIGJveFJlY3QpOworICAgICAgICAgICAgYm94UGFyZW50LT5hcHBseUNhY2hl
ZENsaXBBbmRTY3JvbGxPZmZzZXRGb3JSZXBhaW50KHJlY3QpOwogICAgICAgICAgICAgaWYgKHJl
Y3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDA0Y2ZlY2QwZDFkMTJkNmFhNjZlMGQwZTQx
M2E5ODVjODdiMDQ4N2UuLmM0NzBlNWVlMjVhYzMwNGEzZmQwOWJhZGUzNTc0NmE0MDY1NGY5Zjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTYwLDYgKzYwLDcgQEAKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmFu
Z2UuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKICNpbmNsdWRlICJSZW5kZXJP
YmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oIgpAQCAtOTgsNyArOTksNiBAQAogI2luY2x1ZGUgIkZpbHRlck9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NMYXllckNocm9taXVtLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI2MCw0ICsxMjYwLDMwIEBAIFBhc3NSZWZQ
dHI8RE9NU3RyaW5nTGlzdD4gSW50ZXJuYWxzOjpnZXRSZWZlcmVuY2VkRmlsZVBhdGhzKCkgY29u
c3QKICAgICByZXR1cm4gc3RyaW5nTGlzdC5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxz
OjpzZXRMYXllclBhaW50RGVidWdDb2xvcihOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIGNvbG9y
VmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBl
YyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJl
bmRlck9iamVjdCogcmVuZGVyT2JqZWN0ID0gbm9kZS0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXJl
bmRlck9iamVjdCkgeworICAgICAgICBlYyA9IElOVkFMSURfTk9ERV9UWVBFX0VSUjsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAg
ICBSZW5kZXJMYXllciogcmVuZGVyTGF5ZXIgPSByZW5kZXJPYmplY3QtPmVuY2xvc2luZ0xheWVy
KCk7CisgICAgaWYgKCFyZW5kZXJMYXllciB8fCAhcmVuZGVyTGF5ZXItPmlzQ29tcG9zaXRlZCgp
KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICByZW5kZXJMYXllci0+YmFja2luZygpLT5zZXRQYWludERlYnVnQ29sb3IoQ29s
b3IoY29sb3JWYWx1ZSkpOworI2Vsc2UKKyAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworI2Vu
ZGlmCit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGIwZjE2MDRiOTc1
NWNhODZhZGY2ZWU2MDRjYTE2NmMzMWJkMzdhZjIuLmQ5OGExMWY1ZWE1ZTUwMjZjYjFjOTU2NjE0
NTgyYTA4MmQ2NzQ0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjE3LDYg
KzIxNyw4IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gZ2V0UmVm
ZXJlbmNlZEZpbGVQYXRocygpIGNvbnN0OwogCisgICAgdm9pZCBzZXRMYXllclBhaW50RGVidWdD
b2xvcihOb2RlKiwgY29uc3QgU3RyaW5nJiBjb2xvclZhbHVlLCBFeGNlcHRpb25Db2RlJik7CisK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1l
bnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCmluZGV4IGY2MmNlYWM4NTdmMThjY2JhZmNmYzAyZTYzN2NjZTlhN2UzMGNmNzAuLjQ5ZDY4
OGZkMDY1YTg3Yjk4Njg3OGNiYjMzMmUzZWJlMmNiMmRhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKQEAgLTE5Myw2ICsxOTMsOCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgTWFsbG9jU3RhdGlzdGljcyBtYWxsb2NTdGF0aXN0aWNzKCk7CiAKICAgICAgICAgRE9NU3Ry
aW5nW10gZ2V0UmVmZXJlbmNlZEZpbGVQYXRocygpOworCisgICAgICAgIHZvaWQgc2V0TGF5ZXJQ
YWludERlYnVnQ29sb3IoaW4gTm9kZSBub2RlLCBpbiBET01TdHJpbmcgY29sb3JWYWx1ZSkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ1OTZkOGYxOTBmMDMyMWNk
NWZkNmNmODM1ZDQyNmFmZDFhNTEzZGMuLmVhMmE0ZWVmMTczNjU5MDc5NDVhMGMwMzAyNTcxNjcz
ZmI1Zjk0ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wOS0xMCAgU2FtaSBLeW9zdGls
YSAgPHNreW9zdGlsQGdvb2dsZS5jb20+CisKKyAgICAgICAgT3B0aW1pemUgcGFpbnRpbmcgb2Yg
Y29tcG9zaXRlZCBzY3JvbGxpbmcgbGF5ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NjA4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIHR3byB0ZXN0cyBmb3IgdmVyaWZ5aW5nIG9wdGltaXph
dGlvbnMgdG8gY29tcG9zaXRlZCBzY3JvbGxpbmcuIE5vdGUgdGhhdAorICAgICAgICB0aGVzZSB0
ZXN0cyBhcmUgd3JpdHRlbiBzbyB0aGF0IHRoZXkgd2lsbCBwYXNzIGV2ZW4gaWYgT1ZFUkZMT1df
U0NST0xMSU5HIGlzCisgICAgICAgIG5vdCBlbmFibGVkLgorCisgICAgICAgICogY29tcG9zaXRp
bmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtcHJlcGFpbnRpbmctZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1w
cmVwYWludGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL292
ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXVwZGF0aW5nLWV4cGVj
dGVkLnBuZzogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5n
LWNvbnRlbnQtdXBkYXRpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3Np
dGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC11cGRhdGluZy5odG1sOiBBZGRlZC4KKwog
MjAxMi0wOS0xMSAgTWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2JlLmNvbT4KIAogICAgICAg
ICBbQ1NTIFJlZ2lvbnNdIEF1dG8gd2lkdGggaXMgbm90IHdvcmtpbmcgZm9yIFJlZ2lvbnMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250
ZW50LXByZXBhaW50aW5nLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292
ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLWV4cGVjdGVkLnBuZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZDAzNjhkMGZhM2VlMjEyMDllYzdlYjMzODgyMGE4OTU4NmRiNTRhCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAyOTIwCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAq
Wik9aF5obEElQFdzJGxIYG9rPG19P29UbjF5cQp6PFlZdEJXWG5WWTwyMGliMH1EJmojM1UxUTFM
TT5yR1pRMElxbTsocW9zdFg7VCkjWUI5NzhKUnl1R25JX3BwUEEKenRLO3AyRXRXSFBpJDNqJlQr
Q0dAeXl9cHNLdFJFZmV1SyZIKnZ4R3o/IVZxdSRIO0t1cikzb2IhLTNfMzVleTg1CnpqalJqOyFX
ZkwlK3ZNY3hgKSRoJFZ6KXAyX1VuMSZ5IStjKDgyaz5nYXgqQlhaRDMkWFZ4cFgzQ1RyVnB5NHI2
Mwp6YHVjZyNmN1dfNEpXej9EbEY4SV5BPXNTRDdueWhMTnNhOEEkSDRJWFE0YGp7IVZKRHFrPG95
e205PGRQIz5VTG8KejVDMnUpRkpgfVBkZCNBVmlENkRSdy18JGlQWFomdTVmLXUtJWh0OVY5LUMq
KXorbCUjcC1KU35LZE91RHMyZEhzCm8oVihMdz55TV9OKGV5S2QoJDU/RDIweHkhSzFANHdmSzZ1
eFBnZyZlYnhzTFEwR2JMdmtwS1Z5CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1wcmVw
YWludGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9z
Y3JvbGxpbmctY29udGVudC1wcmVwYWludGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIx
Mzc4OTE3OTFmZTk2OTI3YWQ3OGU2NGIwYWFkN2JkZWQwOGJkYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBh
aW50aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1w
cmVwYWludGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNGI1MWZkMTQ4ZGNkMTFmZTU3YzI4YzI0YmMx
MTBmZmQ3NTNhNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9v
dmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1wcmVwYWludGluZy5odG1sCkBAIC0wLDAgKzEsNzYg
QEAKKzwhRE9DVFlQRSBodG1sPgorCis8IS0tCitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYWNjZWxl
cmF0ZWQgc2Nyb2xsaW5nIGxheWVycyBjYW4gYmUgc2Nyb2xsZWQgd2l0aG91dAorcmVwYWludGlu
ZyB0aGVpciBjb250ZW50cyBhbmQgdGhhdCBhIHBhcnQgb2YgdGhlIGNvbnRlbnRzIGFyZSBhbHNv
IHByZXBhaW50ZWQKK291dHNpZGUgdGhlIG92ZXJmbG93IGNsaXAuIFNlZSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwODcuCisKK1Bhc3NpbmcgY3JpdGVyaWE6IGdy
ZWVuIHJlY3RhbmdsZSBzaG93biBpbnN0ZWFkIG9mIHJlZC4KKy0tPgorCis8aHRtbD4KKzxoZWFk
PgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICNzY3JvbGxlciB7CisgICAgICAgIG92
ZXJmbG93OiBzY3JvbGw7CisgICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3Vj
aDsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgIH0K
KworICAgICNpbmRpY2F0b3IgeworICAgICAgICBoZWlnaHQ6IDEwMDBweDsKKyAgICAgICAgLyoK
KyAgICAgICAgICogTm90ZTogaW4gb3JkZXIgdG8gbWFrZSB0aGlzIHRlc3QgYWxzbyBwYXNzIHdp
dGhvdXQgYWNjZWxlcmF0ZWQKKyAgICAgICAgICogc2Nyb2xsaW5nIHN1cHBvcnQsIHdlIHNldCBp
bmRpY2F0b3IgY29sb3IgdW5jb25kaXRpb25hbGx5IHRvIGdyZWVuCisgICAgICAgICAqIGhlcmUu
CisgICAgICAgICAqLworICAgICAgICBiYWNrZ3JvdW5kOiBncmVlbjsKKyAgICB9CisgIDwvc3R5
bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgIGZ1bmN0aW9uIHRy
eVNldExheWVyUGFpbnREZWJ1Z0NvbG9yKG5vZGUsIGNvbG9yTmFtZSkgeworICAgICAgICAgIHRy
eSB7CisgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0TGF5ZXJQYWludERlYnVnQ29s
b3Iobm9kZSwgY29sb3JOYW1lKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
ICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICAgICAgICAgIC8vIElmIHNldHRpbmcgdGhlIGRlYnVn
IGNvbG9yIGZhaWxzIHdpdGggSU5WQUxJRF9TVEFURV9FUlIsIHRoZQorICAgICAgICAgICAgICAv
LyBwbGF0Zm9ybSBkb2Vzbid0IHN1cHBvcnQgYWNjZWxlcmF0ZWQgc2Nyb2xsaW5nLiBCYWlsIG91
dCB0bworICAgICAgICAgICAgICAvLyBtYWtlIHRoZSB0ZXN0IGEgbm8tb3AgaW4gdGhhdCBjYXNl
LgorICAgICAgICAgICAgICBpZiAoZXJyLm5hbWUgPT0gJ0lOVkFMSURfU1RBVEVfRVJSJykKKyAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgdGhyb3cgZXJyOworICAgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZiAo
IXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAg
IGFsZXJ0KCdUaGlzIHRlc3QgcmVxdWlyZXMgdGVzdFJ1bm5lciB0byBydW4hJyk7CisgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICB9CisgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KHRydWUpOworCisgICAgICAgICAgLy8gRmlyc3QgcGFpbnQgdGhlIHNjcm9sbGluZyBjb250
ZW50cyBncmVlbi4KKyAgICAgICAgICB2YXIgc2Nyb2xsZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc2Nyb2xsZXInKTsKKyAgICAgICAgICB0cnlTZXRMYXllclBhaW50RGVidWdDb2xvcihz
Y3JvbGxlciwgJ2dyZWVuJyk7CisgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisKKyAg
ICAgICAgICAvLyBBbnkgcGFpbnRpbmcgZnJvbSBub3cgb24gd2lsbCBiZSByZWQuCisgICAgICAg
ICAgdHJ5U2V0TGF5ZXJQYWludERlYnVnQ29sb3Ioc2Nyb2xsZXIsICdyZWQnKTsKKworICAgICAg
ICAgIC8vIFNjcm9sbCBkb3duIGEgYml0IGFuZCB2ZXJpZnkgdGhhdCB0aGUgY29udGVudCBkaWRu
J3QgZ2V0IHJlcGFpbnRlZAorICAgICAgICAgIC8vIGFuZCB0aGF0IHRoZXJlIGFscmVhZHkgd2Fz
IHZhbGlkIChncmVlbikgY29udGVudCBvdXRzaWRlIHRoZQorICAgICAgICAgIC8vIG92ZXJmbG93
IGNsaXAuIFRoZSBhcmVhIGluc2lkZSB0aGUgc2Nyb2xsYWJsZSBlbGVtZW50IHNob3VsZCBub3cg
YmUKKyAgICAgICAgICAvLyBlbnRpcmVseSBncmVlbi4KKyAgICAgICAgICBzY3JvbGxlci5zY3Jv
bGxUb3AgPSAxMDA7CisgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB9KTsK
KyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0ic2Nyb2xsZXIiPgorICAg
IDxkaXYgaWQ9ImluZGljYXRvciI+PC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNv
bnRlbnQtdXBkYXRpbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtdXBkYXRpbmctZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjkyZWIzMGVmMGJmMTVkYmNmZWQ1YjlmNjY0ODk1MDJlZDNhYThlZDAKR0lUIGJpbmFyeSBwYXRj
aApsaXRlcmFsIDI5MDUKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpaKT1o
XmhsQSVAV3MkbEhgb2s8bX0/b1RuNigqCno2QVF+XlF7eXh2bGF4ZGdiOTBNaVEmV3BIUSk0cWo2
UWV8dnc4VWk+XjFtfU1hSn18KWFTVy1MXlkrSD4rYHxxYwp6dTh1Ym93eSt3TWApcGtfISpyRngq
VHF+TThXenZvWEx5ITNPVXZ6PFVtQmF3eikoYHhGVVA+fUEodXNyIU5EaGkKems+TG0/VzcqcEY9
ZFg3QD1VZXg+Wmc+NV4lRSlRfHFuUX1nQTJ6V3YybmFfb0ZjPnh0MEF1Nko3bVA5WVl8Z3Y7CnpH
YyooejklTiRaO004R2dtfm1pfkYmWVIlQz8pdHReWWB5UktGQGxgST5UY1pnJjd7aSNCNSstTk1o
bjxQKjVYXwp6VlV9eSNXQkJiM0JmfCQlM1FaITx7IXZ8SU44TT05alJxWWhTJHtQQmpIYUtGbHoj
RnsrQnZfKVkpZjFRWSU0USgKTXk4NX1TYjRxOWUwSiVDJmBUemdgCgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3Jv
bGxpbmctY29udGVudC11cGRhdGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC11cGRhdGluZy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3YWQ3OGU2NGIwYWFkN2JkZWQwOGJkYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1j
b250ZW50LXVwZGF0aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXVwZGF0
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29u
dGVudC11cGRhdGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MjJjNThmNWM5OGNmNDczNjVlYzA2OGU3
NDNmY2E3ZmRjYTJjMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC11cGRhdGluZy5odG1sCkBAIC0wLDAgKzEsNjQg
QEAKKzwhRE9DVFlQRSBodG1sPgorCis8IS0tCitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIGNv
bnRlbnRzIG9mIGFjY2VsZXJhdGVkIHNjcm9sbGluZyBsYXllcnMgYXJlIHByb3Blcmx5Cit1cGRh
dGVkIGFsc28gb3V0c2lkZSB0aGUgY3VycmVudCBvdmVyZmxvdyBjbGlwLiBTZWUKK2h0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA4Ny4KKworUGFzc2luZyBjcml0ZXJp
YTogZ3JlZW4gcmVjdGFuZ2xlIHNob3duIGluc3RlYWQgb2YgcmVkLgorLS0+CisKKzxodG1sPgor
PGhlYWQ+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgI3Njcm9sbGVyIHsKKyAgICAg
ICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6
IHRvdWNoOworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdodDogMjAwcHg7Cisg
ICAgfQorCisgICAgI2luZGljYXRvciB7CisgICAgICAgIGJhY2tncm91bmQ6IHJlZDsKKyAgICAg
ICAgaGVpZ2h0OiAyMDBweDsKKyAgICB9CisKKyAgICAjY29udGVudCB7CisgICAgICAgIGhlaWdo
dDogMTAwMHB4OworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgIGFs
ZXJ0KCdUaGlzIHRlc3QgcmVxdWlyZXMgdGVzdFJ1bm5lciB0byBydW4hJyk7CisgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB2YXIgc2Nyb2xsZXIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nyb2xsZXInKTsKKyAgICAgICAgICB2YXIgaW5kaWNhdG9y
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZGljYXRvcicpOworCisgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworCisgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBz
Y3JvbGxpbmcgY29udGVudCBpcyBwYWludGVkIGJlZm9yZSB3ZSBzdGFydC4KKyAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKworICAgICAgICAgIC8vIFNjcm9sbCBhbGwgdGhlIHdheSB0
byB0aGUgYm90dG9tIGFuZCBjaGFuZ2UgdGhlIGNvbG9yIG9mIHRoZQorICAgICAgICAgIC8vIGlu
ZGljYXRvciAod2hpY2ggaXMgbm93IG91dHNpZGUgdGhlIG92ZXJmbG93IGNsaXApLgorICAgICAg
ICAgIHNjcm9sbGVyLnNjcm9sbFRvcCA9IDEwMDA7CisgICAgICAgICAgaW5kaWNhdG9yLnN0eWxl
LmJhY2tncm91bmQgPSAnZ3JlZW4nOworICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
CisgICAgICAgICAgLy8gU2Nyb2xsIGJhY2sgdXAgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZSB1cGRh
dGVkIChncmVlbikgaW5kaWNhdG9yIGlzCisgICAgICAgICAgLy8gdmlzaWJsZS4KKyAgICAgICAg
ICBzY3JvbGxlci5zY3JvbGxUb3AgPSAwOworICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgfSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9InNj
cm9sbGVyIj4KKyAgICA8ZGl2IGlkPSJpbmRpY2F0b3IiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImNv
bnRlbnQiPjwvZGl2PgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163569</attachid>
            <date>2012-09-12 03:01:00 -0700</date>
            <delta_ts>2012-09-27 03:17:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96087-20120912110033.patch</filename>
            <type>text/plain</type>
            <size>31865</size>
            <attacher name="Sami Kyöstilä">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q2OWJkYTg5YThiMDNh
OGI5NTMwOWE0MGY0ODZjMWFkY2U0YThkYS4uYWJjMGMxY2NmNDZlN2RiOGUyNGRhNzg5NjMzZTUy
MmU1ZjI1YjZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTA5LTEwICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAZ29vZ2xlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBwYWlu
dGluZyBvZiBjb21wb3NpdGVkIHNjcm9sbGluZyBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBlbmFibGVzIHR3byBvcHRpbWl6
YXRpb24gZm9yIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVyczogZmlyc3QsCisgICAgICAgIHdo
ZW4gdGhlIGxheWVyIHNjcm9sbCBvZmZzZXQgY2hhbmdlcywgZG8gbm90IG1hcmsgdGhlIGVudGly
ZSBsYXllciBhcyBuZWVkaW5nCisgICAgICAgIGRpc3BsYXksIGJlY2F1c2UgdGhlIGNvbXBvc2l0
b3Igd2lsbCBhY2NvdW50IGZvciB0aGUgY29ycmVzcG9uZGluZyBsYXlvdXQKKyAgICAgICAgY2hh
bmdlIHNpbXBseSBieSB0cmFuc2xhdGluZyB0aGUgbGF5ZXIgdG8gdGhlIGNvcnJlY3QgcG9zaXRp
b24uCisKKyAgICAgICAgU2Vjb25kLCBvdmVyZmxvdyBjbGlwcGluZyBpcyBkaXNhYmxlZCB3aGVu
IHBhaW50aW5nIHRoZSBjb250ZW50cyBvZiBhCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
IGxheWVyLiBUaGlzIGlzIGRvbmUgdG8gaW5jcmVhc2UgdGhlIGNoYW5jZXMgdGhlcmUgaXMKKyAg
ICAgICAgdmFsaWQgbGF5ZXIgY29udGVudCBmb3IgdGhlIGNvbXBvc2l0b3IgdG8gZHJhdyB3aGls
ZSBzY3JvbGxpbmcgdGhlIGxheWVyIG9mZgorICAgICAgICB0aGUgbWFpbiB0aHJlYWQuCisKKyAg
ICAgICAgQSBuZXcgaW50ZXJuYWwgQVBJIGZvciBzZXR0aW5nIGEgbGF5ZXIgZGVidWcgcGFpbnQg
Y29sb3IgaXMgaW50cm9kdWNlZCB0bworICAgICAgICBhbGxvdyB0ZXN0aW5nIHRoZSBjaGFuZ2Vz
LiBBbGwgZnVydGhlciBwYWludCBvcGVyYXRpb25zIHRvIHRoZSBhc3NvY2lhdGVkCisgICAgICAg
IFJlbmRlckxheWVyQmFja2luZyBhcmUgbWFya2VkIHdpdGggdGhlIGdpdmVuIGNvbG9yLiBUaGUg
dGVzdHMgdXNlIHRoaXMgZmVhdHVyZQorICAgICAgICB0byBkZXRlY3QgcmVkdW5kYW50IGFuZCBt
aXNzaW5nIHJlcGFpbnRzLgorCisgICAgICAgIFRlc3RzOiBjb21wb3NpdGluZy9vdmVyZmxvdy9z
Y3JvbGxpbmctY29udGVudC1wcmVwYWludGluZy5odG1sCisgICAgICAgICAgICAgICBjb21wb3Np
dGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC11cGRhdGluZy5odG1sCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OnNldE9mZnNldEZyb21SZW5kZXJlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOiBBbGxvdyBjaGFuZ2luZyByZW5kZXJlciBvZmZz
ZXQKKyAgICAgICAgd2l0aG91dCBpbnZhbGlkYXRpbmcgdGhlIGxheWVyLgorICAgICAgICAoR3Jh
cGhpY3NMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmg6CisgICAgICAg
IChMYXlvdXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmFwcGx5Q2FjaGVk
Q2xpcEFuZFNjcm9sbE9mZnNldEZvclJlcGFpbnQpOgorICAgICAgICBDb25zb2xpZGF0ZSBhIG51
bWJlciBvZiBjb3BpZXMgb2YgdGhlIHNhbWUgY2xpcHBpbmcgY29kZSBhbmQKKyAgICAgICAgc2tp
cCBhcHBseWluZyB0aGUgb3ZlcmZsb3cgY2xpcCBpZiB0aGUgUmVuZGVyQm94IGlzIGEgcGFydCBv
ZiBhCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVyLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlcklubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6cmVwYWludEJsb2NrU2VsZWN0aW9uR2Fwcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRQYWludERlYnVnQ29sb3IpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
T2JqZWN0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0TGF5ZXJQYWludERlYnVn
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRs
OgorCiAyMDEyLTA5LTEyICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbXBsZW1lbnQgc2VhcmNoIGFuZCBmaWx0ZXJp
bmcgb24gVGltZWxpbmUgcGFuZWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMzk0MWFiYzNiMmNk
OGI1NGZiNDI4NmUxYTFlOGM2YjQ4MzFlNDZjMi4uMjExODM2YWVjOTAzZmVmYjRjMTkyMWRmNmI5
M2M2YzBlZmQ1MzgzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTIwNDksNiArMjA0OSw3IEBA
IF9XZWJDb3JlSGFzM0RSZW5kZXJpbmcKICNlbmRpZgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQorX19aTjdXZWJDb3JlNUNvbG9yQzFFUktOM1dURjZTdHJpbmdFCiBfX1pON1dl
YkNvcmUxM0dyYXBoaWNzTGF5ZXIxN3JlbW92ZUFsbENoaWxkcmVuRXYKIF9fWk43V2ViQ29yZTEz
R3JhcGhpY3NMYXllcjZjcmVhdGVFUE5TXzE5R3JhcGhpY3NMYXllckNsaWVudEUKIF9fWk5LN1dl
YkNvcmUxOFJlbmRlckxheWVyQmFja2luZzIwY29tcG9zaXRpbmdMYXllclR5cGVFdgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRl
eCAyYWUzZmU3ODcwYWU0NzIyZDQzMWYwMDUwOWUwNzY4OTZmYzA5YzdkLi5jMGNkZGViNTk5ZGE1
YWQ5MGZmY2NiMmIzNzIzYjMyMTA1ZGFkNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtMjg1LDcgKzI4NSw3IEBAIHZv
aWQgR3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhpY3NMYXllciogbGF5
ZXIpCiAgICAgbV9yZXBsaWNhTGF5ZXIgPSBsYXllcjsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVy
OjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQordm9pZCBHcmFw
aGljc0xheWVyOjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBT
aG91bGRTZXROZWVkc0Rpc3BsYXkgc2hvdWxkU2V0TmVlZHNEaXNwbGF5KQogewogICAgIGlmIChv
ZmZzZXQgPT0gbV9vZmZzZXRGcm9tUmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTI5Myw3
ICsyOTMsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OnNldE9mZnNldEZyb21SZW5kZXJlcihjb25z
dCBJbnRTaXplJiBvZmZzZXQpCiAgICAgbV9vZmZzZXRGcm9tUmVuZGVyZXIgPSBvZmZzZXQ7CiAK
ICAgICAvLyBJZiB0aGUgY29tcG9zaXRpbmcgbGF5ZXIgb2Zmc2V0IGNoYW5nZXMsIHdlIG5lZWQg
dG8gcmVwYWludC4KLSAgICBzZXROZWVkc0Rpc3BsYXkoKTsKKyAgICBpZiAoc2hvdWxkU2V0TmVl
ZHNEaXNwbGF5ID09IFNldE5lZWRzRGlzcGxheSkKKyAgICAgICAgc2V0TmVlZHNEaXNwbGF5KCk7
CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9y
JiBjb2xvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaAppbmRleCA0MjMzYmM3ZjczYWRjODIzMjUzOGRmYmNhMDFlMGU1YzJhNTM4NDNjLi41
ODM1MDUwMmVmMDU2NGYwOTI3ODdlMTA1YzVmOWY5NjI3MzhmZjY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0yMzMsOSArMjMz
LDE0IEBAIHB1YmxpYzoKICAgICBjb25zdCBGbG9hdFBvaW50JiByZXBsaWNhdGVkTGF5ZXJQb3Np
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGljYXRlZExheWVyUG9zaXRpb247IH0KICAgICB2
b2lkIHNldFJlcGxpY2F0ZWRMYXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHApIHsgbV9y
ZXBsaWNhdGVkTGF5ZXJQb3NpdGlvbiA9IHA7IH0KIAorICAgIGVudW0gU2hvdWxkU2V0TmVlZHNE
aXNwbGF5IHsKKyAgICAgICAgRG9udFNldE5lZWRzRGlzcGxheSwKKyAgICAgICAgU2V0TmVlZHNE
aXNwbGF5CisgICAgfTsKKwogICAgIC8vIE9mZnNldCBpcyBvcmlnaW4gb2YgdGhlIHJlbmRlcmVy
IG1pbnVzIG9yaWdpbiBvZiB0aGUgZ3JhcGhpY3MgbGF5ZXIgKHNvIGVpdGhlciB6ZXJvIG9yIG5l
Z2F0aXZlKS4KICAgICBJbnRTaXplIG9mZnNldEZyb21SZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJu
IG1fb2Zmc2V0RnJvbVJlbmRlcmVyOyB9Ci0gICAgdm9pZCBzZXRPZmZzZXRGcm9tUmVuZGVyZXIo
Y29uc3QgSW50U2l6ZSYpOworICAgIHZvaWQgc2V0T2Zmc2V0RnJvbVJlbmRlcmVyKGNvbnN0IElu
dFNpemUmLCBTaG91bGRTZXROZWVkc0Rpc3BsYXkgPSBTZXROZWVkc0Rpc3BsYXkpOwogCiAgICAg
Ly8gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXllciAodGhlIGxvY2F0aW9uIG9mIGl0cyB0b3AtbGVm
dCBjb3JuZXIgaW4gaXRzIHBhcmVudCkKICAgICBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91
dFN0YXRlLmgKaW5kZXggMTUyYzgwNDY1NDU4ZmQxNWIyOTc5YzdhY2MzYWU3ZGYyYjA5ZTA5ZS4u
Mzc5MzQ3M2I1YjVjYThmY2FkNGNlYzU0MjJiZGY5ZGEyYTczMTUxOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xheW91dFN0YXRlLmgKQEAgLTEwMCw2ICsxMDAsMTAgQEAgcHJpdmF0ZToKIHB1
YmxpYzoKICAgICBib29sIG1fY2xpcHBlZDsKICAgICBib29sIG1faXNQYWdpbmF0ZWQ7CisKKyAg
ICAvLyBMYXlvdXQgY2xpcCByZWN0LgorICAgIC8vIEZJWE1FOiBEaXN0aW5ndWlzaCBiZXR3ZWVu
IHRoZSBsYXlvdXQgY2xpcCByZWN0IGFuZCB0aGUgcGFpbnQgY2xpcCByZWN0IHdoaWNoIG1heSBi
ZSBsYXJnZXIsCisgICAgLy8gZS5nLiwgYmVjYXVzZSBvZiBjb21wb3NpdGVkIHNjcm9sbGluZy4K
ICAgICBMYXlvdXRSZWN0IG1fY2xpcFJlY3Q7CiAgICAgCiAgICAgLy8geC95IG9mZnNldCBmcm9t
IGNvbnRhaW5lci4gSW5jbHVkZXMgcmVsYXRpdmUgcG9zaXRpb25pbmcgYW5kIHNjcm9sbCBvZmZz
ZXRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggYzJhNDA2
MTU2Yjk3ZmY3YjIzNGZkMWMxZTRjYjI5ZTBkMGY1ZmIxMi4uNmZjMDA3ODk1ODExZWU1ZjY0MzY3
MGY5M2MwZjZjZWUwMmJjNzQxZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCkBAIC0yNzI3LDcgKzI3MjcsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludChQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgIC8v
IENoZWNrIGlmIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgYXQgYWxsLgogICAgIC8vIEZJWE1FOiBD
b3VsZCBlbGltaW5hdGUgdGhlIGlzUm9vdCgpIGNoZWNrIGlmIHdlIGZpeCBiYWNrZ3JvdW5kIHBh
aW50aW5nIHNvIHRoYXQgdGhlIFJlbmRlclZpZXcKICAgICAvLyBwYWludHMgdGhlIHJvb3QncyBi
YWNrZ3JvdW5kLgotICAgIGlmICghaXNSb290KCkpIHsKKyAgICBpZiAoIWlzUm9vdCgpICYmICEo
aGFzT3ZlcmZsb3dDbGlwKCkgJiYgaGFzTGF5ZXIoKSAmJiBsYXllcigpLT51c2VzQ29tcG9zaXRl
ZFNjcm9sbGluZygpKSkgewogICAgICAgICBMYXlvdXRSZWN0IG92ZXJmbG93Qm94ID0gdmlzdWFs
T3ZlcmZsb3dSZWN0KCk7CiAgICAgICAgIGZsaXBGb3JXcml0aW5nTW9kZShvdmVyZmxvd0JveCk7
CiAgICAgICAgIG92ZXJmbG93Qm94LmluZmxhdGUobWF4aW1hbE91dGxpbmVTaXplKHBhaW50SW5m
by5waGFzZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCAwZjY0
NDZjNzY0M2U0MWRjYzQyM2Q5ZjEzM2Y0MWU0MDE5YWE1Y2Y5Li5hYzQyNDIzNzcyMGRlNTI5NmE2
NzViZTZlNTJiM2RkZDAyNTU4ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcApAQCAtNjQ3LDYgKzY0NywyMSBAQCBMYXlvdXRTaXplIFJlbmRlckJveDo6Y2FjaGVkU2l6
ZUZvck92ZXJmbG93Q2xpcCgpIGNvbnN0CiAgICAgcmV0dXJuIGxheWVyKCktPnNpemUoKTsKIH0K
IAordm9pZCBSZW5kZXJCb3g6OmFwcGx5Q2FjaGVkQ2xpcEFuZFNjcm9sbE9mZnNldEZvclJlcGFp
bnQoTGF5b3V0UmVjdCYgcGFpbnRSZWN0KSBjb25zdAoreworICAgIHBhaW50UmVjdC5tb3ZlKC1z
Y3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7IC8vIEZvciBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRk
ZW4uCisKKyAgICAvLyBEbyBub3QgY2xpcCBzY3JvbGwgbGF5ZXIgY29udGVudHMgdG8gcmVkdWNl
IHRoZSBudW1iZXIgb2YgcmVwYWludHMgd2hpbGUgc2Nyb2xsaW5nLgorICAgIGlmIChoYXNPdmVy
Zmxvd0NsaXAoKSAmJiBoYXNMYXllcigpICYmIGxheWVyKCktPnVzZXNDb21wb3NpdGVkU2Nyb2xs
aW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIGhlaWdodCgpIGlzIGluYWNjdXJhdGUg
aWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxheW91dCBvZiB0aGlzIFJlbmRlckJveCwgc28g
dXNlIHRoZQorICAgIC8vIGxheWVyJ3Mgc2l6ZSBpbnN0ZWFkLiBFdmVuIGlmIHRoZSBsYXllcidz
IHNpemUgaXMgd3JvbmcsIHRoZSBsYXllciBpdHNlbGYgd2lsbCByZXBhaW50CisgICAgLy8gYW55
d2F5IGlmIGl0cyBzaXplIGRvZXMgY2hhbmdlLgorICAgIExheW91dFJlY3QgY2xpcFJlY3QoTGF5
b3V0UG9pbnQoKSwgY2FjaGVkU2l6ZUZvck92ZXJmbG93Q2xpcCgpKTsKKyAgICBwYWludFJlY3Qg
PSBpbnRlcnNlY3Rpb24ocGFpbnRSZWN0LCBjbGlwUmVjdCk7Cit9CisKIExheW91dFVuaXQgUmVu
ZGVyQm94OjptaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdAogewogICAgIGlmIChwcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoKSkKQEAgLTE1NzQsMjEgKzE1ODksMTMgQEAgdm9pZCBS
ZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgTGEKIAogICAgIC8vIEZJWE1FOiBXZSBpZ25vcmUgdGhlIGxpZ2h0d2Vp
Z2h0IGNsaXBwaW5nIHJlY3QgdGhhdCBjb250cm9scyB1c2UsIHNpbmNlIGlmIHxvfCBpcyBpbiBt
aWQtbGF5b3V0LAogICAgIC8vIGl0cyBjb250cm9sQ2xpcFJlY3Qgd2lsbCBiZSB3cm9uZy4gRm9y
IG92ZXJmbG93IGNsaXAgd2UgdXNlIHRoZSB2YWx1ZXMgY2FjaGVkIGJ5IHRoZSBsYXllci4KKyAg
ICByZWN0LnNldExvY2F0aW9uKHRvcExlZnQpOwogICAgIGlmIChvLT5oYXNPdmVyZmxvd0NsaXAo
KSkgewogICAgICAgICBSZW5kZXJCb3gqIGNvbnRhaW5lckJveCA9IHRvUmVuZGVyQm94KG8pOwot
Ci0gICAgICAgIC8vIG8tPmhlaWdodCgpIGlzIGluYWNjdXJhdGUgaWYgd2UncmUgaW4gdGhlIG1p
ZGRsZSBvZiBhIGxheW91dCBvZiB8b3wsIHNvIHVzZSB0aGUKLSAgICAgICAgLy8gbGF5ZXIncyBz
aXplIGluc3RlYWQuICBFdmVuIGlmIHRoZSBsYXllcidzIHNpemUgaXMgd3JvbmcsIHRoZSBsYXll
ciBpdHNlbGYgd2lsbCByZXBhaW50Ci0gICAgICAgIC8vIGFueXdheSBpZiBpdHMgc2l6ZSBkb2Vz
IGNoYW5nZS4KLSAgICAgICAgdG9wTGVmdCAtPSBjb250YWluZXJCb3gtPnNjcm9sbGVkQ29udGVu
dE9mZnNldCgpOyAvLyBGb3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgotCi0gICAgICAg
IExheW91dFJlY3QgcmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwotICAgICAgICBM
YXlvdXRSZWN0IGJveFJlY3QoTGF5b3V0UG9pbnQoKSwgY29udGFpbmVyQm94LT5jYWNoZWRTaXpl
Rm9yT3ZlcmZsb3dDbGlwKCkpOwotICAgICAgICByZWN0ID0gaW50ZXJzZWN0aW9uKHJlcGFpbnRS
ZWN0LCBib3hSZWN0KTsKKyAgICAgICAgY29udGFpbmVyQm94LT5hcHBseUNhY2hlZENsaXBBbmRT
Y3JvbGxPZmZzZXRGb3JSZXBhaW50KHJlY3QpOwogICAgICAgICBpZiAocmVjdC5pc0VtcHR5KCkp
CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlCi0gICAgICAgIHJlY3Quc2V0TG9jYXRp
b24odG9wTGVmdCk7CisgICAgfQogCiAgICAgaWYgKGNvbnRhaW5lclNraXBwZWQpIHsKICAgICAg
ICAgLy8gSWYgdGhlIHJlcGFpbnRDb250YWluZXIgaXMgYmVsb3cgbywgdGhlbiB3ZSBuZWVkIHRv
IG1hcCB0aGUgcmVjdCBpbnRvIHJlcGFpbnRDb250YWluZXIncyBjb29yZGluYXRlcy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBjNGJlYmI4MGE1ZDkyNThiYmM1ZmRhNDE5
YTg0ZjY4MjFhY2E0MTI4Li5jN2Q5YTc3MDYwNDZkMThlYWE3M2VlMjdjMDIxNDgxNGNjNDU5ZTY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC01MDksNiArNTA5LDcgQEAg
cHVibGljOgogCiAgICAgSW50U2l6ZSBzY3JvbGxlZENvbnRlbnRPZmZzZXQoKSBjb25zdDsKICAg
ICBMYXlvdXRTaXplIGNhY2hlZFNpemVGb3JPdmVyZmxvd0NsaXAoKSBjb25zdDsKKyAgICB2b2lk
IGFwcGx5Q2FjaGVkQ2xpcEFuZFNjcm9sbE9mZnNldEZvclJlcGFpbnQoTGF5b3V0UmVjdCYgcGFp
bnRSZWN0KSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZURpbWVuc2lvbnMo
KSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IDk0MTM3
NTUwOTk5ZjQ1ODUzMmRjZTQ1NDBhZjc2NjA3ZjVhYjI0YzMuLjIzNGNlYTI4YmI1NDQ5NzcwYWZi
ZTBiOWZiZmZhYzQxMzMwMjg2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bmxpbmUuY3BwCkBAIC05OTMsMTUgKzk5Myw4IEBAIExheW91dFJlY3QgUmVuZGVySW5saW5lOjpj
bGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwCiAg
ICAgaWYgKGNiLT5oYXNDb2x1bW5zKCkpCiAgICAgICAgIGNiLT5hZGp1c3RSZWN0Rm9yQ29sdW1u
cyhyZXBhaW50UmVjdCk7CiAKLSAgICBpZiAoY2ItPmhhc092ZXJmbG93Q2xpcCgpKSB7Ci0gICAg
ICAgIC8vIGNiLT5oZWlnaHQoKSBpcyBpbmFjY3VyYXRlIGlmIHdlJ3JlIGluIHRoZSBtaWRkbGUg
b2YgYSBsYXlvdXQgb2YgfGNifCwgc28gdXNlIHRoZQotICAgICAgICAvLyBsYXllcidzIHNpemUg
aW5zdGVhZC4gIEV2ZW4gaWYgdGhlIGxheWVyJ3Mgc2l6ZSBpcyB3cm9uZywgdGhlIGxheWVyIGl0
c2VsZiB3aWxsIHJlcGFpbnQKLSAgICAgICAgLy8gYW55d2F5IGlmIGl0cyBzaXplIGRvZXMgY2hh
bmdlLgotICAgICAgICByZXBhaW50UmVjdC5tb3ZlKC1jYi0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0
KCkpOyAvLyBGb3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgotCi0gICAgICAgIExheW91
dFJlY3QgYm94UmVjdChMYXlvdXRQb2ludCgpLCBjYi0+Y2FjaGVkU2l6ZUZvck92ZXJmbG93Q2xp
cCgpKTsKLSAgICAgICAgcmVwYWludFJlY3QuaW50ZXJzZWN0KGJveFJlY3QpOwotICAgIH0KKyAg
ICBpZiAoY2ItPmhhc092ZXJmbG93Q2xpcCgpKQorICAgICAgICBjYi0+YXBwbHlDYWNoZWRDbGlw
QW5kU2Nyb2xsT2Zmc2V0Rm9yUmVwYWludChyZXBhaW50UmVjdCk7CiAKICAgICBjYi0+Y29tcHV0
ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0KTsKIApAQCAtMTA3
MywyMSArMTA2NiwxMyBAQCB2b2lkIFJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50
KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLAogICAgIAogICAgIC8vIEZJ
WE1FOiBXZSBpZ25vcmUgdGhlIGxpZ2h0d2VpZ2h0IGNsaXBwaW5nIHJlY3QgdGhhdCBjb250cm9s
cyB1c2UsIHNpbmNlIGlmIHxvfCBpcyBpbiBtaWQtbGF5b3V0LAogICAgIC8vIGl0cyBjb250cm9s
Q2xpcFJlY3Qgd2lsbCBiZSB3cm9uZy4gRm9yIG92ZXJmbG93IGNsaXAgd2UgdXNlIHRoZSB2YWx1
ZXMgY2FjaGVkIGJ5IHRoZSBsYXllci4KKyAgICByZWN0LnNldExvY2F0aW9uKHRvcExlZnQpOwog
ICAgIGlmIChvLT5oYXNPdmVyZmxvd0NsaXAoKSkgewogICAgICAgICBSZW5kZXJCb3gqIGNvbnRh
aW5lckJveCA9IHRvUmVuZGVyQm94KG8pOwotCi0gICAgICAgIC8vIG8tPmhlaWdodCgpIGlzIGlu
YWNjdXJhdGUgaWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxheW91dCBvZiB8b3wsIHNvIHVz
ZSB0aGUKLSAgICAgICAgLy8gbGF5ZXIncyBzaXplIGluc3RlYWQuICBFdmVuIGlmIHRoZSBsYXll
cidzIHNpemUgaXMgd3JvbmcsIHRoZSBsYXllciBpdHNlbGYgd2lsbCByZXBhaW50Ci0gICAgICAg
IC8vIGFueXdheSBpZiBpdHMgc2l6ZSBkb2VzIGNoYW5nZS4KLSAgICAgICAgdG9wTGVmdCAtPSBj
b250YWluZXJCb3gtPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOyAvLyBGb3Igb3ZlcmZsb3c6YXV0
by9zY3JvbGwvaGlkZGVuLgotCi0gICAgICAgIExheW91dFJlY3QgcmVwYWludFJlY3QodG9wTGVm
dCwgcmVjdC5zaXplKCkpOwotICAgICAgICBMYXlvdXRSZWN0IGJveFJlY3QoTGF5b3V0UG9pbnQo
KSwgY29udGFpbmVyQm94LT5jYWNoZWRTaXplRm9yT3ZlcmZsb3dDbGlwKCkpOwotICAgICAgICBy
ZWN0ID0gaW50ZXJzZWN0aW9uKHJlcGFpbnRSZWN0LCBib3hSZWN0KTsKKyAgICAgICAgY29udGFp
bmVyQm94LT5hcHBseUNhY2hlZENsaXBBbmRTY3JvbGxPZmZzZXRGb3JSZXBhaW50KHJlY3QpOwog
ICAgICAgICBpZiAocmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgfSBl
bHNlCi0gICAgICAgIHJlY3Quc2V0TG9jYXRpb24odG9wTGVmdCk7CisgICAgfQogCiAgICAgaWYg
KGNvbnRhaW5lclNraXBwZWQpIHsKICAgICAgICAgLy8gSWYgdGhlIHJlcGFpbnRDb250YWluZXIg
aXMgYmVsb3cgbywgdGhlbiB3ZSBuZWVkIHRvIG1hcCB0aGUgcmVjdCBpbnRvIHJlcGFpbnRDb250
YWluZXIncyBjb29yZGluYXRlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCmluZGV4IDMwZjc1OWM1ZDVjOTgzMGFkNjQ5OTI5OGM4NmUyOWYzNGUxNmNjYWQuLmRmNjM0
YTg1OTM0MjBiYzE4MjVjNGJhY2U1Nzg3MDEzMmQyNmM4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNDE4NCw3ICs0MTg0LDcgQEAgdm9pZCBSZW5kZXJM
YXllcjo6cmVwYWludEJsb2NrU2VsZWN0aW9uR2FwcygpCiAKICAgICBMYXlvdXRSZWN0IHJlY3Qg
PSBtX2Jsb2NrU2VsZWN0aW9uR2Fwc0JvdW5kczsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGVkQ29u
dGVudE9mZnNldCgpKTsKLSAgICBpZiAocmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkpCisg
ICAgaWYgKHJlbmRlcmVyKCktPmhhc092ZXJmbG93Q2xpcCgpICYmICF1c2VzQ29tcG9zaXRlZFNj
cm9sbGluZygpKQogICAgICAgICByZWN0LmludGVyc2VjdCh0b1JlbmRlckJveChyZW5kZXJlcigp
KS0+b3ZlcmZsb3dDbGlwUmVjdChMYXlvdXRQb2ludCgpLCAwKSk7IC8vIEZJWE1FOiBSZWdpb25z
IG5vdCBhY2NvdW50ZWQgZm9yLgogICAgIGlmIChyZW5kZXJlcigpLT5oYXNDbGlwKCkpCiAgICAg
ICAgIHJlY3QuaW50ZXJzZWN0KHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5jbGlwUmVjdChMYXlv
dXRQb2ludCgpLCAwKSk7IC8vIEZJWE1FOiBSZWdpb25zIG5vdCBhY2NvdW50ZWQgZm9yLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA0
NTllOTUxNDhiYzQ4ZTFiYzg2Y2RhNTc2Mzg4MzVjMjgzNGI2NDdiLi41YzQ4NzI0YzY0OTI5ZjQ3
M2U2OGMyNWQyZTBkNWFlNTkwZjRjMjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNjc4LDkgKzY3OCw4IEBAIHZvaWQgUmVuZGVy
TGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkoKQogICAgICAgICAgICAg
Y29tcG9zaXRvcigpLT5zY3JvbGxpbmdMYXllckRpZENoYW5nZShtX293bmluZ0xheWVyKTsKIAog
ICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNldFNpemUoc2Nyb2xsU2l6ZSk7Ci0g
ICAgICAgIC8vIEZJWE1FOiBTY3JvbGxpbmcgdGhlIGNvbnRlbnQgbGF5ZXIgZG9lcyBub3QgbmVl
ZCB0byB0cmlnZ2VyIGEgcmVwYWludC4gVGhlIG9mZnNldCB3aWxsIGJlIGNvbXBlbnNhdGVkIGF3
YXkgZHVyaW5nIHBhaW50aW5nLgogICAgICAgICAvLyBGSVhNRTogVGhlIHBhaW50IG9mZnNldCBh
bmQgdGhlIHNjcm9sbCBvZmZzZXQgc2hvdWxkIHJlYWxseSBiZSBzZXBhcmF0ZSBjb25jZXB0cy4K
LSAgICAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIo
c2Nyb2xsaW5nQ29udGVudHNPZmZzZXQpOworICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5
ZXItPnNldE9mZnNldEZyb21SZW5kZXJlcihzY3JvbGxpbmdDb250ZW50c09mZnNldCwgR3JhcGhp
Y3NMYXllcjo6RG9udFNldE5lZWRzRGlzcGxheSk7CiAgICAgfQogCiAgICAgbV9ncmFwaGljc0xh
eWVyLT5zZXRDb250ZW50c1JlY3QoY29udGVudHNCb3goKSk7CkBAIC0xNDIxLDYgKzE0MjAsOSBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoUmVuZGVyTGF5ZXIqIHJv
b3RMYXllciwgR3JhcGhpY3NDb250ZXh0KgogICAgIGlmIChtX293bmluZ0xheWVyLT5jb250YWlu
c0RpcnR5T3ZlcmxheVNjcm9sbGJhcnMoKSkKICAgICAgICAgbV9vd25pbmdMYXllci0+cGFpbnRP
dmVybGF5U2Nyb2xsYmFycyhjb250ZXh0LCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhhdmlvciwg
cGFpbnRpbmdSb290KTsKIAorICAgIGlmIChtX3BhaW50RGVidWdDb2xvci5hbHBoYSgpKQorICAg
ICAgICBjb250ZXh0LT5maWxsUmVjdChwYWludERpcnR5UmVjdCwgbV9wYWludERlYnVnQ29sb3Is
IENvbG9yU3BhY2VTUkdCKTsKKwogICAgIEFTU0VSVCghbV9vd25pbmdMYXllci0+bV91c2VkVHJh
bnNwYXJlbmN5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5oCmluZGV4IDc4MjMyNzA5ZjhmM2M0NDUyNWY1NzNiZWFkOWQzMGI0MjhkYTVhYzIu
LjVkZDllM2UxYTk4NTA5ZTVhOThjY2Q3ZmZlMzY2ZDI2OGE0MjZjN2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTE2OCw2ICsxNjgsMTAg
QEAgcHVibGljOgogICAgIC8vIFJldHVybiBhbiBlc3RpbWF0ZSBvZiB0aGUgYmFja2luZyBzdG9y
ZSBhcmVhIChpbiBwaXhlbHMpIGFsbG9jYXRlZCBieSB0aGlzIG9iamVjdCdzIEdyYXBoaWNzTGF5
ZXJzLgogICAgIGRvdWJsZSBiYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpIGNvbnN0OwogCisg
ICAgLy8gSGlnaGxpZ2h0cyBmb2xsb3dpbmcgcGFpbnQgb3BlcmF0aW9ucyB0byB0aGlzIGxheWVy
IHdpdGggdGhlIGdpdmVuIGNvbG9yLiBUbyBkaXNhYmxlLCBwYXNzCisgICAgLy8gYSBmdWxseSB0
cmFuc3BhcmVudCBjb2xvci4KKyAgICB2b2lkIHNldFBhaW50RGVidWdDb2xvcihjb25zdCBDb2xv
ciYgcGFpbnREZWJ1Z0NvbG9yKSB7IG1fcGFpbnREZWJ1Z0NvbG9yID0gcGFpbnREZWJ1Z0NvbG9y
OyB9CisKICAgICBTdHJpbmcgbmFtZUZvckxheWVyKCkgY29uc3Q7CiAgICAgCiAjaWYgRU5BQkxF
KENTU19DT01QT1NJVElORykKQEAgLTI2Niw2ICsyNzAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9jYW5Db21wb3NpdGVGaWx0ZXJzOwogI2VuZGlmCiAKKyAgICBDb2xvciBtX3BhaW50RGVidWdD
b2xvcjsKKwogICAgIHN0YXRpYyBib29sIG1fY3JlYXRpbmdQcmltYXJ5R3JhcGhpY3NMYXllcjsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggOGJm
ZDlmNzRkZGRjMzM0Y2Q4NzVjOWJiZTQ2YmRkNzA1MzcxZTQ1My4uMzcyZGExNTYxMzEzN2NiY2Zi
OTcxMzI3NzE1YjQwNmI5YzRhYjc5YiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKQEAgLTE1MDcsMTYgKzE1MDcsOCBAQCB2b2lkIFJlbmRlck9iamVjdDo6Y29t
cHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LAogICAgICAgICB9CiAKICAgICAgICAgaWYgKG8tPmhhc092ZXJmbG93Q2xpcCgpKSB7Ci0gICAg
ICAgICAgICAvLyBvLT5oZWlnaHQoKSBpcyBpbmFjY3VyYXRlIGlmIHdlJ3JlIGluIHRoZSBtaWRk
bGUgb2YgYSBsYXlvdXQgb2YgfG98LCBzbyB1c2UgdGhlCi0gICAgICAgICAgICAvLyBsYXllcidz
IHNpemUgaW5zdGVhZC4gIEV2ZW4gaWYgdGhlIGxheWVyJ3Mgc2l6ZSBpcyB3cm9uZywgdGhlIGxh
eWVyIGl0c2VsZiB3aWxsIHJlcGFpbnQKLSAgICAgICAgICAgIC8vIGFueXdheSBpZiBpdHMgc2l6
ZSBkb2VzIGNoYW5nZS4KICAgICAgICAgICAgIFJlbmRlckJveCogYm94UGFyZW50ID0gdG9SZW5k
ZXJCb3gobyk7Ci0KLSAgICAgICAgICAgIExheW91dFJlY3QgcmVwYWludFJlY3QocmVjdCk7Ci0g
ICAgICAgICAgICByZXBhaW50UmVjdC5tb3ZlKC1ib3hQYXJlbnQtPnNjcm9sbGVkQ29udGVudE9m
ZnNldCgpKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KLQotICAgICAgICAg
ICAgTGF5b3V0UmVjdCBib3hSZWN0KExheW91dFBvaW50KCksIGJveFBhcmVudC0+Y2FjaGVkU2l6
ZUZvck92ZXJmbG93Q2xpcCgpKTsKLSAgICAgICAgICAgIHJlY3QgPSBpbnRlcnNlY3Rpb24ocmVw
YWludFJlY3QsIGJveFJlY3QpOworICAgICAgICAgICAgYm94UGFyZW50LT5hcHBseUNhY2hlZENs
aXBBbmRTY3JvbGxPZmZzZXRGb3JSZXBhaW50KHJlY3QpOwogICAgICAgICAgICAgaWYgKHJlY3Qu
aXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDA0Y2ZlY2QwZDFkMTJkNmFhNjZlMGQwZTQxM2E5
ODVjODdiMDQ4N2UuLmM0NzBlNWVlMjVhYzMwNGEzZmQwOWJhZGUzNTc0NmE0MDY1NGY5ZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmFuZ2Uu
aCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKICNpbmNsdWRlICJSZW5kZXJPYmpl
Y3QuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgpAQCAtOTgsNyArOTksNiBAQAogI2luY2x1ZGUgIkZpbHRlck9wZXJh
dGlvbnMuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NM
YXllckNocm9taXVtLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCiAjZW5kaWYK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI2MCw0ICsxMjYwLDMwIEBAIFBhc3NSZWZQdHI8
RE9NU3RyaW5nTGlzdD4gSW50ZXJuYWxzOjpnZXRSZWZlcmVuY2VkRmlsZVBhdGhzKCkgY29uc3QK
ICAgICByZXR1cm4gc3RyaW5nTGlzdC5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpz
ZXRMYXllclBhaW50RGVidWdDb2xvcihOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIGNvbG9yVmFs
dWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9
IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlbmRl
ck9iamVjdCogcmVuZGVyT2JqZWN0ID0gbm9kZS0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXJlbmRl
ck9iamVjdCkgeworICAgICAgICBlYyA9IElOVkFMSURfTk9ERV9UWVBFX0VSUjsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBS
ZW5kZXJMYXllciogcmVuZGVyTGF5ZXIgPSByZW5kZXJPYmplY3QtPmVuY2xvc2luZ0xheWVyKCk7
CisgICAgaWYgKCFyZW5kZXJMYXllciB8fCAhcmVuZGVyTGF5ZXItPmlzQ29tcG9zaXRlZCgpKSB7
CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICByZW5kZXJMYXllci0+YmFja2luZygpLT5zZXRQYWludERlYnVnQ29sb3IoQ29sb3Io
Y29sb3JWYWx1ZSkpOworI2Vsc2UKKyAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworI2VuZGlm
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGIwZjE2MDRiOTc1NWNh
ODZhZGY2ZWU2MDRjYTE2NmMzMWJkMzdhZjIuLmQ5OGExMWY1ZWE1ZTUwMjZjYjFjOTU2NjE0NTgy
YTA4MmQ2NzQ0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjE3LDYgKzIx
Nyw4IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gZ2V0UmVmZXJl
bmNlZEZpbGVQYXRocygpIGNvbnN0OwogCisgICAgdm9pZCBzZXRMYXllclBhaW50RGVidWdDb2xv
cihOb2RlKiwgY29uc3QgU3RyaW5nJiBjb2xvclZhbHVlLCBFeGNlcHRpb25Db2RlJik7CisKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnQq
IGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CmluZGV4IGY2MmNlYWM4NTdmMThjY2JhZmNmYzAyZTYzN2NjZTlhN2UzMGNmNzAuLjQ5ZDY4OGZk
MDY1YTg3Yjk4Njg3OGNiYjMzMmUzZWJlMmNiMmRhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKQEAgLTE5Myw2ICsxOTMsOCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAg
TWFsbG9jU3RhdGlzdGljcyBtYWxsb2NTdGF0aXN0aWNzKCk7CiAKICAgICAgICAgRE9NU3RyaW5n
W10gZ2V0UmVmZXJlbmNlZEZpbGVQYXRocygpOworCisgICAgICAgIHZvaWQgc2V0TGF5ZXJQYWlu
dERlYnVnQ29sb3IoaW4gTm9kZSBub2RlLCBpbiBET01TdHJpbmcgY29sb3JWYWx1ZSkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDkw
NzkwY2VkODcyM2U1ZDRmMjczMGY3ZDU5MjViMDA4NDc5ZjIxMzAuLjc4YWU5NDAxNTI0ODZjMDMw
ZjI5YjRkMzlkNzQyYWVkMzU1OTZkZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE0Myw2
ICsxNDMsNyBAQCBFWFBPUlRTCiAgICAgICAgID93YWl0Rm9yVGhyZWFkQ29tcGxldGlvbkBXVEZA
QFlBSElQQVBBWEBaCiAgICAgICAgID9jcmVhdGVUaHJlYWRAV1RGQEBZQUlQNkFQQVhQQVhAWjBA
WgogICAgICAgICA7IFJlLWV4cG9ydHMgZnJvbSBXZWJDb3JlIGZvciB0ZXN0IGhhcm5lc3Nlcwor
ICAgICAgICA/PzBDb2xvckBXZWJDb3JlQEBRQUVAQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAg
Pz8wTm9kZVJlbmRlcmluZ0NvbnRleHRAV2ViQ29yZUBAUUFFQFBBVk5vZGVAMUBAWgogICAgICAg
ICA/PzFOb2RlUmVuZGVyaW5nQ29udGV4dEBXZWJDb3JlQEBRQUVAWFoKICAgICAgICAgPz8xUmFu
Z2VAV2ViQ29yZUBAUUFFQFhaCkBAIC0xNjcsNiArMTY4LDcgQEAgRVhQT1JUUwogICAgICAgICA/
Y3JlYXRlQFNoYWRvd1Jvb3RAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlNoYWRvd1Jvb3RA
V2ViQ29yZUBAQFdURkBAUEFWRWxlbWVudEAyQEFBSEBaCiAgICAgICAgID9jcmVhdGVXcmFwcGVy
QFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFs
T2JqZWN0QDFAUEFWTm9kZUAxQEBaCiAgICAgICAgID9kb2N1bWVudFN0YXRlQEhpc3RvcnlJdGVt
QFdlYkNvcmVAQFFCRUFCVj8kVmVjdG9yQFZTdHJpbmdAV1RGQEAkMEFAQFdURkBAWFoKKyAgICAg
ICAgP2VuY2xvc2luZ0xheWVyQFJlbmRlck9iamVjdEBXZWJDb3JlQEBRQkVQQVZSZW5kZXJMYXll
ckAyQFhaCiAgICAgICAgID9lcXVhbEBXVEZAQFlBX05QQlZTdHJpbmdJbXBsQDFAUEJFQFoKICAg
ICAgICAgP2VxdWFsQFdURkBAWUFfTlBCVlN0cmluZ0ltcGxAMUAwQFoKICAgICAgICAgP2VxdWFs
SWdub3JpbmdDYXNlQFdURkBAWUFfTlBBVlN0cmluZ0ltcGxAMUBQQkVAWgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDcxYjZmNzFmZjkyZGU3ZTZiNmZlOGVjNmE5NDVjZWIx
OTBkOWY0ZmUuLjM2Mjk0ZjdjY2I2OTU0NTEyMjhmMzlmZjc1NTExZDAxNjk4NTA4YjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTEzNyw2ICsxMzcsNyBAQCBFWFBPUlRT
CiAgICAgICAgID93YWl0Rm9yVGhyZWFkQ29tcGxldGlvbkBXVEZAQFlBSElQQVBBWEBaCiAgICAg
ICAgID9jcmVhdGVUaHJlYWRAV1RGQEBZQUlQNkFQQVhQQVhAWjBAWgogICAgICAgICA7IFJlLWV4
cG9ydHMgZnJvbSBXZWJDb3JlIGZvciB0ZXN0IGhhcm5lc3NlcworICAgICAgICA/PzBDb2xvckBX
ZWJDb3JlQEBRQUVAQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgPz8wTm9kZVJlbmRlcmluZ0Nv
bnRleHRAV2ViQ29yZUBAUUFFQFBBVk5vZGVAMUBAWgogICAgICAgICA/PzFOb2RlUmVuZGVyaW5n
Q29udGV4dEBXZWJDb3JlQEBRQUVAWFoKICAgICAgICAgPz8xUmFuZ2VAV2ViQ29yZUBAUUFFQFha
CkBAIC0xNjQsNiArMTY1LDcgQEAgRVhQT1JUUwogICAgICAgICA/Y3JlYXRlQFNoYWRvd1Jvb3RA
V2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlNoYWRvd1Jvb3RAV2ViQ29yZUBAQFdURkBAUEFW
RWxlbWVudEAyQEFBSEBaCiAgICAgICAgID9jcmVhdGVXcmFwcGVyQFdlYkNvcmVAQFlBP0FWSlNW
YWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9kZUAx
QEBaCiAgICAgICAgID9kb2N1bWVudFN0YXRlQEhpc3RvcnlJdGVtQFdlYkNvcmVAQFFCRUFCVj8k
VmVjdG9yQFZTdHJpbmdAV1RGQEAkMEFAQFdURkBAWFoKKyAgICAgICAgP2VuY2xvc2luZ0xheWVy
QFJlbmRlck9iamVjdEBXZWJDb3JlQEBRQkVQQVZSZW5kZXJMYXllckAyQFhaCiAgICAgICAgID9l
cXVhbEBXVEZAQFlBX05QQlZTdHJpbmdJbXBsQDFAUEJFQFoKICAgICAgICAgP2VxdWFsQFdURkBA
WUFfTlBCVlN0cmluZ0ltcGxAMUAwQFoKICAgICAgICAgP2VxdWFsSWdub3JpbmdDYXNlQFdURkBA
WUFfTlBBVlN0cmluZ0ltcGxAMUBQQkVAWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9z
eW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggNzM1
ODdjMjU5MzJiYTlhYzYwZWY2Mzc4NGZhYmNiNzhkNDk2ZGEwZi4uOTBlMjVlZGRhY2VhMTdmYzc5
MzYzMzI3NGY1NDllYjYyMzljMGY3NyAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1i
b2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC0zNSw2
ICszNSw3IEBAIF9aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUds
b2JhbE9iamVjdEVQTlNfMTBDbGllbnRSZWN0RTsKIF9aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4
ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNfMTBTaGFkb3dSb290RTsKIF9aTjdX
ZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNf
MTRDbGllbnRSZWN0TGlzdEU7CiBfWk43V2ViQ29yZTR0b0pTRVBOM0pTQzlFeGVjU3RhdGVFUE5T
XzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzVSYW5nZUU7CitfWk43V2ViQ29yZTVDb2xvckMxRVJL
TjNXVEY2U3RyaW5nRTsKIF9aTjdXZWJDb3JlNVJhbmdlNmNyZWF0ZUVOM1dURjEwUGFzc1JlZlB0
cklOU184RG9jdW1lbnRFRUVOUzJfSU5TXzROb2RlRUVFaVM2X2k7CiBfWk43V2ViQ29yZTVSYW5n
ZUQxRXY7CiBfWk43V2ViQ29yZThEb2N1bWVudDM2dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzRXY7CkBAIC0xMTUsNiArMTE2LDcgQEAgX1pOSzdXZWJDb3JlNE5vZGUxMXRleHRD
b250ZW50RWI7CiBfWk5LN1dlYkNvcmU0Tm9kZTMxbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbkV2OwogX1pOSzdXZWJDb3JlNE5vZGU5dHJlZVNjb3BlRXY7CiBfWk5LN1dlYkNvcmU0UGFn
ZTE3dmlld3BvcnRBcmd1bWVudHNFdjsKK19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTRlbmNs
b3NpbmdMYXllckV2OwogX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QyM2Fic29sdXRlQm91bmRp
bmdCb3hSZWN0RWI7CiBfWk5LN1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQxNHN1Z2dlc3RlZFZh
bHVlRXY7CiBfWk5LN1dlYkNvcmUxN0pTRE9NR2xvYmFsT2JqZWN0MjJzY3JpcHRFeGVjdXRpb25D
b250ZXh0RXY7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNGY2NTE5ZmQ3MGU5NDZhNTc4MmNjZjViNTM3MTUzY2Q3YmZhZmE2
NC4uODAwYmVlMjVhN2Q4NmIxOGE1NzU4YWE4MDk1OWRiYTg5ODZlMmQzZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDEyLTA5LTEwICBTYW1pIEt5b3N0aWxhICA8c2t5b3N0aWxAZ29vZ2xlLmNv
bT4KKworICAgICAgICBPcHRpbWl6ZSBwYWludGluZyBvZiBjb21wb3NpdGVkIHNjcm9sbGluZyBs
YXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2
MDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgdHdvIHRlc3RzIGZvciB2ZXJpZnlpbmcgb3B0aW1pemF0aW9ucyB0byBjb21wb3NpdGVkIHNj
cm9sbGluZy4gTm90ZSB0aGF0CisgICAgICAgIHRoZXNlIHRlc3RzIGFyZSB3cml0dGVuIHNvIHRo
YXQgdGhleSB3aWxsIHBhc3MgZXZlbiBpZiBPVkVSRkxPV19TQ1JPTExJTkcgaXMKKyAgICAgICAg
bm90IGVuYWJsZWQuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmct
Y29udGVudC1wcmVwYWludGluZy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRl
bnQtcHJlcGFpbnRpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZs
b3cvc2Nyb2xsaW5nLWNvbnRlbnQtdXBkYXRpbmctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAg
ICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC11cGRhdGluZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGlu
Zy1jb250ZW50LXVwZGF0aW5nLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTEyICBDaHJpc3RvcGhl
IER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl1bV0tU
Ul0gVGVzdFJ1bm5lciBuZWVkcyB0byBpbXBsZW1lbnQgZHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxl
Z2F0ZUNhbGxiYWNrcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZs
b3cvc2Nyb2xsaW5nLWNvbnRlbnQtcHJlcGFpbnRpbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtcHJlcGFpbnRpbmctZXhw
ZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMDM2OGQwZmEzZWUyMTIwOWVjN2ViMzM4ODIwYTg5NTg2
ZGI1NGEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI5MjAKemNtZUFTQE4/KG9sSHlgdVZCcSFp
YTB5fnlVeyt2WVYyYT5pMCpaKT1oXmhsQSVAV3MkbEhgb2s8bX0/b1RuMXlxCno8WVl0QldYblZZ
PDIwaWIwfUQmaiMzVTFRMUxNPnJHWlEwSXFtOyhxb3N0WDtUKSNZQjk3OEpSeXVHbklfcHBQQQp6
dEs7cDJFdFdIUGkkM2omVCtDR0B5eX1wc0t0UkVmZXVLJkgqdnhHej8hVnF1JEg7S3VyKTNvYiEt
M18zNWV5ODUKempqUmo7IVdmTCUrdk1jeGApJGgkVnopcDJfVW4xJnkhK2MoODJrPmdheCpCWFpE
MyRYVnhwWDNDVHJWcHk0cjYzCnpgdWNnI2Y3V180Sld6P0RsRjhJXkE9c1NEN255aExOc2E4QSRI
NElYUTRganshVkpEcWs8b3l7bTk8ZFAjPlVMbwp6NUMydSlGSmB9UGRkI0FWaUQ2RFJ3LXwkaVBY
WiZ1NWYtdS0laHQ5VjktQyopeitsJSNwLUpTfktkT3VEczJkSHMKbyhWKEx3PnlNX04oZXlLZCgk
NT9EMjB4eSFLMUA0d2ZLNnV4UGdnJmVieHNMUTBHYkx2a3BLVnkKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9s
bGluZy1jb250ZW50LXByZXBhaW50aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44YjEzNzg5MTc5MWZlOTY5MjdhZDc4ZTY0YjBhYWQ3YmRlZDA4YmRjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xs
aW5nLWNvbnRlbnQtcHJlcGFpbnRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRl
bnQtcHJlcGFpbnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Nj
cm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGU0YjUxZmQxNDhk
Y2QxMWZlNTdjMjhjMjRiYzExMGZmZDc1M2E0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLmh0
bWwKQEAgLTAsMCArMSw3NiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzwhLS0KK1RoaXMgdGVzdCBj
aGVja3MgdGhhdCBhY2NlbGVyYXRlZCBzY3JvbGxpbmcgbGF5ZXJzIGNhbiBiZSBzY3JvbGxlZCB3
aXRob3V0CityZXBhaW50aW5nIHRoZWlyIGNvbnRlbnRzIGFuZCB0aGF0IGEgcGFydCBvZiB0aGUg
Y29udGVudHMgYXJlIGFsc28gcHJlcGFpbnRlZAorb3V0c2lkZSB0aGUgb3ZlcmZsb3cgY2xpcC4g
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA4Ny4KKworUGFz
c2luZyBjcml0ZXJpYTogZ3JlZW4gcmVjdGFuZ2xlIHNob3duIGluc3RlYWQgb2YgcmVkLgorLS0+
CisKKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgI3Njcm9s
bGVyIHsKKyAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgLXdlYmtpdC1vdmVyZmxv
dy1zY3JvbGxpbmc6IHRvdWNoOworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdo
dDogMjAwcHg7CisgICAgfQorCisgICAgI2luZGljYXRvciB7CisgICAgICAgIGhlaWdodDogMTAw
MHB4OworICAgICAgICAvKgorICAgICAgICAgKiBOb3RlOiBpbiBvcmRlciB0byBtYWtlIHRoaXMg
dGVzdCBhbHNvIHBhc3Mgd2l0aG91dCBhY2NlbGVyYXRlZAorICAgICAgICAgKiBzY3JvbGxpbmcg
c3VwcG9ydCwgd2Ugc2V0IGluZGljYXRvciBjb2xvciB1bmNvbmRpdGlvbmFsbHkgdG8gZ3JlZW4K
KyAgICAgICAgICogaGVyZS4KKyAgICAgICAgICovCisgICAgICAgIGJhY2tncm91bmQ6IGdyZWVu
OworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgor
ICAgICAgZnVuY3Rpb24gdHJ5U2V0TGF5ZXJQYWludERlYnVnQ29sb3Iobm9kZSwgY29sb3JOYW1l
KSB7CisgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRM
YXllclBhaW50RGVidWdDb2xvcihub2RlLCBjb2xvck5hbWUpOworICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgICAgICAgICAgLy8gSWYg
c2V0dGluZyB0aGUgZGVidWcgY29sb3IgZmFpbHMgd2l0aCBJTlZBTElEX1NUQVRFX0VSUiwgdGhl
CisgICAgICAgICAgICAgIC8vIHBsYXRmb3JtIGRvZXNuJ3Qgc3VwcG9ydCBhY2NlbGVyYXRlZCBz
Y3JvbGxpbmcuIEJhaWwgb3V0IHRvCisgICAgICAgICAgICAgIC8vIG1ha2UgdGhlIHRlc3QgYSBu
by1vcCBpbiB0aGF0IGNhc2UuCisgICAgICAgICAgICAgIGlmIChlcnIubmFtZSA9PSAnSU5WQUxJ
RF9TVEFURV9FUlInKQorICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7CisgICAgICAgICAgfQorICAg
ICAgfQorCisgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgICAgICAgYWxlcnQoJ1RoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyIHRv
IHJ1biEnKTsKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKyAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisKKyAgICAgICAgICAvLyBGaXJzdCBwYWludCB0
aGUgc2Nyb2xsaW5nIGNvbnRlbnRzIGdyZWVuLgorICAgICAgICAgIHZhciBzY3JvbGxlciA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxlcicpOworICAgICAgICAgIHRyeVNldExheWVy
UGFpbnREZWJ1Z0NvbG9yKHNjcm9sbGVyLCAnZ3JlZW4nKTsKKyAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKworICAgICAgICAgIC8vIEFueSBwYWludGluZyBmcm9tIG5vdyBvbiB3aWxs
IGJlIHJlZC4KKyAgICAgICAgICB0cnlTZXRMYXllclBhaW50RGVidWdDb2xvcihzY3JvbGxlciwg
J3JlZCcpOworCisgICAgICAgICAgLy8gU2Nyb2xsIGRvd24gYSBiaXQgYW5kIHZlcmlmeSB0aGF0
IHRoZSBjb250ZW50IGRpZG4ndCBnZXQgcmVwYWludGVkCisgICAgICAgICAgLy8gYW5kIHRoYXQg
dGhlcmUgYWxyZWFkeSB3YXMgdmFsaWQgKGdyZWVuKSBjb250ZW50IG91dHNpZGUgdGhlCisgICAg
ICAgICAgLy8gb3ZlcmZsb3cgY2xpcC4gVGhlIGFyZWEgaW5zaWRlIHRoZSBzY3JvbGxhYmxlIGVs
ZW1lbnQgc2hvdWxkIG5vdyBiZQorICAgICAgICAgIC8vIGVudGlyZWx5IGdyZWVuLgorICAgICAg
ICAgIHNjcm9sbGVyLnNjcm9sbFRvcCA9IDEwMDsKKyAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgIH0pOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlk
PSJzY3JvbGxlciI+CisgICAgPGRpdiBpZD0iaW5kaWNhdG9yIj48L2Rpdj4KKyAgPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVy
Zmxvdy9zY3JvbGxpbmctY29udGVudC11cGRhdGluZy1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC11cGRhdGluZy1leHBlY3Rl
ZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTJlYjMwZWYwYmYxNWRiY2ZlZDViOWY2NjQ4OTUwMmVkM2FhOGVk
MApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjkwNQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+
eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRsSGBvazxtfT9vVG42KCoKejZBUX5eUXt5eHZsYXhk
Z2I5ME1pUSZXcEhRKTRxajZRZXx2dzhVaT5eMW19TWFKfXwpYVNXLUxeWStIPitgfHFjCnp1OHVi
b3d5K3dNYClwa18hKnJGeCpUcX5NOFd6dm9YTHkhM09Vdno8VW1CYXd6KShgeEZVUD59QSh1c3Ih
TkRoaQp6az5MbT9XNypwRj1kWDdAPVVleD5aZz41XiVFKVF8cW5RfWdBMnpXdjJuYV9vRmM+eHQw
QXU2SjdtUDlZWXxndjsKekdjKih6OSVOJFo7TThHZ21+bWl+RiZZUiVDPyl0dF5ZYHlSS0ZAbGBJ
PlRjWmcmN3tpI0I1Ky1OTWhuPFAqNVhfCnpWVX15I1dCQmIzQmZ8JCUzUVohPHshdnxJTjhNPTlq
UnFZaFMke1BCakhhS0ZseiNGeytCdl8pWSlmMVFZJTRRKApNeTg1fVNiNHE5ZTBKJUMmYFR6Z2AK
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXVwZGF0aW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXVwZGF0aW5n
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjEzNzg5MTc5MWZlOTY5MjdhZDc4ZTY0YjBhYWQ3
YmRlZDA4YmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtdXBkYXRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xs
aW5nLWNvbnRlbnQtdXBkYXRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJm
bG93L3Njcm9sbGluZy1jb250ZW50LXVwZGF0aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgyMmM1OGY1
Yzk4Y2Y0NzM2NWVjMDY4ZTc0M2ZjYTdmZGNhMmMwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXVwZGF0aW5nLmh0
bWwKQEAgLTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+CisKKzwhLS0KK1RoaXMgdGVzdCBj
aGVja3MgdGhhdCB0aGUgY29udGVudHMgb2YgYWNjZWxlcmF0ZWQgc2Nyb2xsaW5nIGxheWVycyBh
cmUgcHJvcGVybHkKK3VwZGF0ZWQgYWxzbyBvdXRzaWRlIHRoZSBjdXJyZW50IG92ZXJmbG93IGNs
aXAuIFNlZQoraHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDg3Lgor
CitQYXNzaW5nIGNyaXRlcmlhOiBncmVlbiByZWN0YW5nbGUgc2hvd24gaW5zdGVhZCBvZiByZWQu
CistLT4KKworPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAj
c2Nyb2xsZXIgeworICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgICAtd2Via2l0LW92
ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAg
aGVpZ2h0OiAyMDBweDsKKyAgICB9CisKKyAgICAjaW5kaWNhdG9yIHsKKyAgICAgICAgYmFja2dy
b3VuZDogcmVkOworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgIH0KKworICAgICNjb250ZW50
IHsKKyAgICAgICAgaGVpZ2h0OiAxMDAwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgICAgICAgYWxlcnQoJ1RoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyIHRvIHJ1
biEnKTsKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKworICAgICAgICAgIHZh
ciBzY3JvbGxlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxlcicpOworICAgICAg
ICAgIHZhciBpbmRpY2F0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5kaWNhdG9yJyk7
CisKKyAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisKKyAgICAgICAgICAv
LyBNYWtlIHN1cmUgdGhlIHNjcm9sbGluZyBjb250ZW50IGlzIHBhaW50ZWQgYmVmb3JlIHdlIHN0
YXJ0LgorICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworCisgICAgICAgICAgLy8gU2Ny
b2xsIGFsbCB0aGUgd2F5IHRvIHRoZSBib3R0b20gYW5kIGNoYW5nZSB0aGUgY29sb3Igb2YgdGhl
CisgICAgICAgICAgLy8gaW5kaWNhdG9yICh3aGljaCBpcyBub3cgb3V0c2lkZSB0aGUgb3ZlcmZs
b3cgY2xpcCkuCisgICAgICAgICAgc2Nyb2xsZXIuc2Nyb2xsVG9wID0gMTAwMDsKKyAgICAgICAg
ICBpbmRpY2F0b3Iuc3R5bGUuYmFja2dyb3VuZCA9ICdncmVlbic7CisgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisKKyAgICAgICAgICAvLyBTY3JvbGwgYmFjayB1cCBhbmQgbWFrZSBz
dXJlIHRoYXQgdGhlIHVwZGF0ZWQgKGdyZWVuKSBpbmRpY2F0b3IgaXMKKyAgICAgICAgICAvLyB2
aXNpYmxlLgorICAgICAgICAgIHNjcm9sbGVyLnNjcm9sbFRvcCA9IDA7CisgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB9KTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgPGRpdiBpZD0ic2Nyb2xsZXIiPgorICAgIDxkaXYgaWQ9ImluZGljYXRvciI+PC9kaXY+
CisgICAgPGRpdiBpZD0iY29udGVudCI+PC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165964</attachid>
            <date>2012-09-27 03:17:54 -0700</date>
            <delta_ts>2012-10-26 08:57:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96087-20120927111711.patch</filename>
            <type>text/plain</type>
            <size>39396</size>
            <attacher name="Sami Kyöstilä">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE1ZWEzNGJkYzg0Mzg1
ZTRjMWRmMDIyZmIwZTBkNzkzOGRkNTYwMC4uM2U0NTc2YjUwZGRhMWVmNjY5YzVkZjc4MDM5MWJm
NTcxZTlkYWYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTA5LTI3ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE9wdGltaXplIHBh
aW50aW5nIG9mIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVycworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwODcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdHdvIG9wdGlt
aXphdGlvbiBmb3IgY29tcG9zaXRlZCBzY3JvbGxpbmcgbGF5ZXJzOiBmaXJzdCwKKyAgICAgICAg
d2hlbiB0aGUgbGF5ZXIgc2Nyb2xsIG9mZnNldCBjaGFuZ2VzLCBkbyBub3QgbWFyayB0aGUgZW50
aXJlIGxheWVyIGFzIG5lZWRpbmcKKyAgICAgICAgZGlzcGxheSwgYmVjYXVzZSB0aGUgY29tcG9z
aXRvciB3aWxsIGFjY291bnQgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGxheW91dAorICAgICAgICBj
aGFuZ2Ugc2ltcGx5IGJ5IHRyYW5zbGF0aW5nIHRoZSBsYXllciB0byB0aGUgY29ycmVjdCBwb3Np
dGlvbi4KKworICAgICAgICBTZWNvbmQsIG92ZXJmbG93IGNsaXBwaW5nIGlzIGRpc2FibGVkIHdo
ZW4gcGFpbnRpbmcgdGhlIGNvbnRlbnRzIG9mIGEKKyAgICAgICAgY29tcG9zaXRlZCBzY3JvbGxp
bmcgbGF5ZXIuIFRoaXMgaXMgZG9uZSB0byBpbmNyZWFzZSB0aGUgY2hhbmNlcyB0aGVyZSBpcwor
ICAgICAgICB2YWxpZCBsYXllciBjb250ZW50IGZvciB0aGUgY29tcG9zaXRvciB0byBkcmF3IHdo
aWxlIHNjcm9sbGluZyB0aGUgbGF5ZXIgb2ZmCisgICAgICAgIHRoZSBtYWluIHRocmVhZC4KKwor
ICAgICAgICBJbiBvcmRlciB0byB0ZXN0IHRoZXNlIGNoYW5nZXMsIHRoZSBleGlzdGluZyBUZXN0
UnVubmVyIGRpc3BsYXkoKSBtZXRob2QgaXMKKyAgICAgICAgZXh0ZW5kZWQgdG8gYWxzbyB3b3Jr
IHdpdGggY29tcG9zaXRlZCBsYXllcnMuIFRoaXMgaXMgZG9uZSBieSBwYWludGluZyBhbGwKKyAg
ICAgICAgY29tcG9zaXRlZCBsYXllcnMgd2l0aCBhIGRhcmsgdHJhbnNwYXJlbnQgbWFzay4gQW55
IGZ1cnRoZXIgcmVwYWludHMgdG8gdGhlCisgICAgICAgIGxheWVyIGNvbnRlbnRzIHdpbGwgbm90
IGhhdmUgdGhpcyBtYXNrLCBzbyB0aGV5IHdpbGwgYXBwZWFyIGhpZ2hsaWdodGVkIGNvbXBhcmVk
CisgICAgICAgIHRvIHRoZSBvbGQgY29udGVudHMuCisKKyAgICAgICAgVGVzdHM6IGNvbXBvc2l0
aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLmh0bWwKKyAgICAgICAg
ICAgICAgIGNvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXVwZGF0aW5nLmh0
bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKTogQWxs
b3cgY2hhbmdpbmcgcmVuZGVyZXIgb2Zmc2V0CisgICAgICAgIHdpdGhvdXQgaW52YWxpZGF0aW5n
IHRoZSBsYXllci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6
CisgICAgICAgIChHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3Rh
dGUuaDoKKyAgICAgICAgKExheW91dFN0YXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eDo6YXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xsT2Zmc2V0Rm9yUmVwYWludCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpyZXBhaW50QmxvY2tTZWxlY3Rpb25HYXBzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuaDoKKyAgICAgICAgKFJlbmRlckxheWVyQmFja2luZyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNldFJlcGFpbnRNYXNrQ29sb3IpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cmVjdXJzaXZlUGFpbnRSZXBhaW50TWFzayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFpbnRSZXBhaW50TWFza1RvQWxs
TGF5ZXJzKTogQWRkIGNhbGwgdG8gcGFpbnQKKyAgICAgICAgYSBtYXNrIGludG8gYWxsIGNvbXBv
c2l0aW5nIGxheWVycyBmb3IgdHJhY2tpbmcgcmVwYWludHMuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9y
KToKKwogMjAxMi0wOS0yNSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIENvbGxlY3RpbmdSdWxlcyBhbmQgUXVlcnlpbmdSdWxlcyBtb2RlcyBvZiBT
ZWxlY3RvckNoZWNrZXIgbWlzcyBzb21lIGNvbXBsZXggc2VsZWN0b3JzIHdpdGggcHNldWRvIGVs
ZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDNiZTE1NDZmMTkzMWQyMzc2OWEz
NGVjZGU2ZGU2YmI1YmZiZjJiMWIuLjcyM2NmZDFmOGYzNWE1YzFhZWExNjc3YTExMmE0ZDRkZTU3
MjQyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTIt
MDktMjcgIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
T3B0aW1pemUgcGFpbnRpbmcgb2YgY29tcG9zaXRlZCBzY3JvbGxpbmcgbGF5ZXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA4NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGNhbGwgdG8gZHJh
dyBhIHRyYW5zcGFyZW50IGJsYWNrIG1hc2sgaW50byBhbGwgY29tcG9zaXRpbmcgbGF5ZXJzIGZv
cgorICAgICAgICByZXBhaW50IHRlc3RpbmcgcHVycG9zZXMuCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6
OmRpc3BsYXlSZXBhaW50TWFza0luQ29tcG9zaXRpbmdMYXllcnMpOgorICAgICAgICAqIHNyYy9X
ZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkaXNwbGF5UmVw
YWludE1hc2tJbkNvbXBvc2l0aW5nTGF5ZXJzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJWaWV3SW1wbCk6CisKIDIwMTItMDkt
MjcgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU3VnZ2Vz
dGlvblBpY2tlciBzaG91bGQgc3VwcG9ydCBydGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggMmFlM2ZlNzg3MGFlNDcyMmQ0
MzFmMDA1MDllMDc2ODk2ZmMwOWM3ZC4uYzBjZGRlYjU5OWRhNWFkOTBmZmNjYjJiMzcyM2IzMjEw
NWRhZDc3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OnNl
dFJlcGxpY2F0ZWRCeUxheWVyKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgIG1fcmVwbGljYUxh
eWVyID0gbGF5ZXI7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllcjo6c2V0T2Zmc2V0RnJvbVJlbmRl
cmVyKGNvbnN0IEludFNpemUmIG9mZnNldCkKK3ZvaWQgR3JhcGhpY3NMYXllcjo6c2V0T2Zmc2V0
RnJvbVJlbmRlcmVyKGNvbnN0IEludFNpemUmIG9mZnNldCwgU2hvdWxkU2V0TmVlZHNEaXNwbGF5
IHNob3VsZFNldE5lZWRzRGlzcGxheSkKIHsKICAgICBpZiAob2Zmc2V0ID09IG1fb2Zmc2V0RnJv
bVJlbmRlcmVyKQogICAgICAgICByZXR1cm47CkBAIC0yOTMsNyArMjkzLDggQEAgdm9pZCBHcmFw
aGljc0xheWVyOjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQog
ICAgIG1fb2Zmc2V0RnJvbVJlbmRlcmVyID0gb2Zmc2V0OwogCiAgICAgLy8gSWYgdGhlIGNvbXBv
c2l0aW5nIGxheWVyIG9mZnNldCBjaGFuZ2VzLCB3ZSBuZWVkIHRvIHJlcGFpbnQuCi0gICAgc2V0
TmVlZHNEaXNwbGF5KCk7CisgICAgaWYgKHNob3VsZFNldE5lZWRzRGlzcGxheSA9PSBTZXROZWVk
c0Rpc3BsYXkpCisgICAgICAgIHNldE5lZWRzRGlzcGxheSgpOwogfQogCiB2b2lkIEdyYXBoaWNz
TGF5ZXI6OnNldEJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggMzdlYThk
MDUyZWE3NTA3MmYzODIyYTMzYjkyYTkzZGE1ZWJkMmNmOS4uYmM3ZDkwNDJiY2RkYjM3OGJkZDRm
YjdmNmY5NjNiOWMxNmViNWVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtMjM0LDkgKzIzNCwxNCBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgRmxvYXRQb2ludCYgcmVwbGljYXRlZExheWVyUG9zaXRpb24oKSBjb25zdCB7IHJldHVy
biBtX3JlcGxpY2F0ZWRMYXllclBvc2l0aW9uOyB9CiAgICAgdm9pZCBzZXRSZXBsaWNhdGVkTGF5
ZXJQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwKSB7IG1fcmVwbGljYXRlZExheWVyUG9zaXRp
b24gPSBwOyB9CiAKKyAgICBlbnVtIFNob3VsZFNldE5lZWRzRGlzcGxheSB7CisgICAgICAgIERv
bnRTZXROZWVkc0Rpc3BsYXksCisgICAgICAgIFNldE5lZWRzRGlzcGxheQorICAgIH07CisKICAg
ICAvLyBPZmZzZXQgaXMgb3JpZ2luIG9mIHRoZSByZW5kZXJlciBtaW51cyBvcmlnaW4gb2YgdGhl
IGdyYXBoaWNzIGxheWVyIChzbyBlaXRoZXIgemVybyBvciBuZWdhdGl2ZSkuCiAgICAgSW50U2l6
ZSBvZmZzZXRGcm9tUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBtX29mZnNldEZyb21SZW5kZXJl
cjsgfQotICAgIHZvaWQgc2V0T2Zmc2V0RnJvbVJlbmRlcmVyKGNvbnN0IEludFNpemUmKTsKKyAg
ICB2b2lkIHNldE9mZnNldEZyb21SZW5kZXJlcihjb25zdCBJbnRTaXplJiwgU2hvdWxkU2V0TmVl
ZHNEaXNwbGF5ID0gU2V0TmVlZHNEaXNwbGF5KTsKIAogICAgIC8vIFRoZSBwb3NpdGlvbiBvZiB0
aGUgbGF5ZXIgKHRoZSBsb2NhdGlvbiBvZiBpdHMgdG9wLWxlZnQgY29ybmVyIGluIGl0cyBwYXJl
bnQpCiAgICAgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bv
c2l0aW9uOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3Rh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oCmluZGV4IDU0NTBk
ZjljYjhmODU2ODYwNDQwMzdmZGQ4YjAyODAwZDlhZGJjNDQuLmE5NjI2NTdkMWY1ZTczZDkxMjkz
NTE5NDg3Y2I1N2M1ZDBlYjZjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MYXlvdXRTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0
ZS5oCkBAIC0xMDksNiArMTA5LDEwIEBAIHByaXZhdGU6CiBwdWJsaWM6CiAgICAgYm9vbCBtX2Ns
aXBwZWQ7CiAgICAgYm9vbCBtX2lzUGFnaW5hdGVkOworCisgICAgLy8gTGF5b3V0IGNsaXAgcmVj
dC4KKyAgICAvLyBGSVhNRTogRGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgbGF5b3V0IGNsaXAgcmVj
dCBhbmQgdGhlIHBhaW50IGNsaXAgcmVjdCB3aGljaCBtYXkgYmUgbGFyZ2VyLAorICAgIC8vIGUu
Zy4sIGJlY2F1c2Ugb2YgY29tcG9zaXRlZCBzY3JvbGxpbmcuCiAgICAgTGF5b3V0UmVjdCBtX2Ns
aXBSZWN0OwogICAgIAogICAgIC8vIHgveSBvZmZzZXQgZnJvbSBjb250YWluZXIuIEluY2x1ZGVz
IHJlbGF0aXZlIHBvc2l0aW9uaW5nIGFuZCBzY3JvbGwgb2Zmc2V0cy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGY3M2I3MTYzMDk0YzMxYWIwY2ZkZTkyMDVm
MGNlY2FmMmJjNTlhZGEuLjg3ZDdhYzlhNTIxNTE2MTYwODI3MmU5NWZjNGNmYTIwZjEyNjZkNDYg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMjc0Nyw3ICsy
NzQ3LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICAvLyBDaGVjayBpZiB3ZSBuZWVkIHRv
IGRvIGFueXRoaW5nIGF0IGFsbC4KICAgICAvLyBGSVhNRTogQ291bGQgZWxpbWluYXRlIHRoZSBp
c1Jvb3QoKSBjaGVjayBpZiB3ZSBmaXggYmFja2dyb3VuZCBwYWludGluZyBzbyB0aGF0IHRoZSBS
ZW5kZXJWaWV3CiAgICAgLy8gcGFpbnRzIHRoZSByb290J3MgYmFja2dyb3VuZC4KLSAgICBpZiAo
IWlzUm9vdCgpKSB7CisgICAgaWYgKCFpc1Jvb3QoKSAmJiAhKGhhc092ZXJmbG93Q2xpcCgpICYm
IGhhc0xheWVyKCkgJiYgbGF5ZXIoKS0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkpIHsKICAg
ICAgICAgTGF5b3V0UmVjdCBvdmVyZmxvd0JveCA9IHZpc3VhbE92ZXJmbG93UmVjdCgpOwogICAg
ICAgICBmbGlwRm9yV3JpdGluZ01vZGUob3ZlcmZsb3dCb3gpOwogICAgICAgICBvdmVyZmxvd0Jv
eC5pbmZsYXRlKG1heGltYWxPdXRsaW5lU2l6ZShwYWludEluZm8ucGhhc2UpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggYTFhM2M5OTIyM2Y1ZDQ3YTg5MTNhNDg4
NzU3NzIwMDMyNjlhOTE3Ni4uNzE5OTk5ZjNmNmVlZmM5ZDRmZDIxZmNhMzhmMWE3MmVmYmUzMmY2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTY1MSw2ICs2NTEs
MTAgQEAgdm9pZCBSZW5kZXJCb3g6OmFwcGx5Q2FjaGVkQ2xpcEFuZFNjcm9sbE9mZnNldEZvclJl
cGFpbnQoTGF5b3V0UmVjdCYgcGFpbnRSZWN0KQogewogICAgIHBhaW50UmVjdC5tb3ZlKC1zY3Jv
bGxlZENvbnRlbnRPZmZzZXQoKSk7IC8vIEZvciBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4u
CiAKKyAgICAvLyBEbyBub3QgY2xpcCBzY3JvbGwgbGF5ZXIgY29udGVudHMgdG8gcmVkdWNlIHRo
ZSBudW1iZXIgb2YgcmVwYWludHMgd2hpbGUgc2Nyb2xsaW5nLgorICAgIGlmIChoYXNPdmVyZmxv
d0NsaXAoKSAmJiBoYXNMYXllcigpICYmIGxheWVyKCktPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5n
KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIC8vIGhlaWdodCgpIGlzIGluYWNjdXJhdGUgaWYg
d2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxheW91dCBvZiB0aGlzIFJlbmRlckJveCwgc28gdXNl
IHRoZQogICAgIC8vIGxheWVyJ3Mgc2l6ZSBpbnN0ZWFkLiBFdmVuIGlmIHRoZSBsYXllcidzIHNp
emUgaXMgd3JvbmcsIHRoZSBsYXllciBpdHNlbGYgd2lsbCByZXBhaW50CiAgICAgLy8gYW55d2F5
IGlmIGl0cyBzaXplIGRvZXMgY2hhbmdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKaW5kZXggNzU5ODYzMzVlZWY0OGJmNDRhNDMyNzE2ZDJjNzk0MTk5YmM1YTBlNy4u
N2E1ODFmMzEyNTY0ZmVkMWYxMjIwYzQ5MmM2ZWYwZjkzNzkzYzkyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC00MjAxLDcgKzQyMDEsNyBAQCB2b2lkIFJl
bmRlckxheWVyOjpyZXBhaW50QmxvY2tTZWxlY3Rpb25HYXBzKCkKIAogICAgIExheW91dFJlY3Qg
cmVjdCA9IG1fYmxvY2tTZWxlY3Rpb25HYXBzQm91bmRzOwogICAgIHJlY3QubW92ZSgtc2Nyb2xs
ZWRDb250ZW50T2Zmc2V0KCkpOwotICAgIGlmIChyZW5kZXJlcigpLT5oYXNPdmVyZmxvd0NsaXAo
KSkKKyAgICBpZiAocmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkgJiYgIXVzZXNDb21wb3Np
dGVkU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJlY3QuaW50ZXJzZWN0KHRvUmVuZGVyQm94KHJlbmRl
cmVyKCkpLT5vdmVyZmxvd0NsaXBSZWN0KExheW91dFBvaW50KCksIDApKTsgLy8gRklYTUU6IFJl
Z2lvbnMgbm90IGFjY291bnRlZCBmb3IuCiAgICAgaWYgKHJlbmRlcmVyKCktPmhhc0NsaXAoKSkK
ICAgICAgICAgcmVjdC5pbnRlcnNlY3QodG9SZW5kZXJCb3gocmVuZGVyZXIoKSktPmNsaXBSZWN0
KExheW91dFBvaW50KCksIDApKTsgLy8gRklYTUU6IFJlZ2lvbnMgbm90IGFjY291bnRlZCBmb3Iu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmlu
ZGV4IDQ1OWU5NTE0OGJjNDhlMWJjODZjZGE1NzYzODgzNWMyODM0YjY0N2IuLjQzZGUxZmM2YjAx
NmMxNGNhNTUwZWZhOGU2NGE2ZDBlZDkzNjMwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC02NzgsOSArNjc4LDggQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiAgICAgICAg
ICAgICBjb21wb3NpdG9yKCktPnNjcm9sbGluZ0xheWVyRGlkQ2hhbmdlKG1fb3duaW5nTGF5ZXIp
OwogCiAgICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0U2l6ZShzY3JvbGxTaXpl
KTsKLSAgICAgICAgLy8gRklYTUU6IFNjcm9sbGluZyB0aGUgY29udGVudCBsYXllciBkb2VzIG5v
dCBuZWVkIHRvIHRyaWdnZXIgYSByZXBhaW50LiBUaGUgb2Zmc2V0IHdpbGwgYmUgY29tcGVuc2F0
ZWQgYXdheSBkdXJpbmcgcGFpbnRpbmcuCiAgICAgICAgIC8vIEZJWE1FOiBUaGUgcGFpbnQgb2Zm
c2V0IGFuZCB0aGUgc2Nyb2xsIG9mZnNldCBzaG91bGQgcmVhbGx5IGJlIHNlcGFyYXRlIGNvbmNl
cHRzLgotICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNldE9mZnNldEZyb21SZW5k
ZXJlcihzY3JvbGxpbmdDb250ZW50c09mZnNldCk7CisgICAgICAgIG1fc2Nyb2xsaW5nQ29udGVu
dHNMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKHNjcm9sbGluZ0NvbnRlbnRzT2Zmc2V0LCBH
cmFwaGljc0xheWVyOjpEb250U2V0TmVlZHNEaXNwbGF5KTsKICAgICB9CiAKICAgICBtX2dyYXBo
aWNzTGF5ZXItPnNldENvbnRlbnRzUmVjdChjb250ZW50c0JveCgpKTsKQEAgLTE0MjEsNiArMTQy
MCwxMSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoUmVuZGVyTGF5
ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KgogICAgIGlmIChtX293bmluZ0xheWVyLT5j
b250YWluc0RpcnR5T3ZlcmxheVNjcm9sbGJhcnMoKSkKICAgICAgICAgbV9vd25pbmdMYXllci0+
cGFpbnRPdmVybGF5U2Nyb2xsYmFycyhjb250ZXh0LCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhh
dmlvciwgcGFpbnRpbmdSb290KTsKIAorICAgIGlmIChtX3JlcGFpbnRNYXNrQ29sb3IuYWxwaGEo
KSkgeworICAgICAgICBjb250ZXh0LT5maWxsUmVjdChwYWludERpcnR5UmVjdCwgbV9yZXBhaW50
TWFza0NvbG9yLCBDb2xvclNwYWNlU1JHQik7CisgICAgICAgIG1fcmVwYWludE1hc2tDb2xvciA9
IENvbG9yKCk7CisgICAgfQorCiAgICAgQVNTRVJUKCFtX293bmluZ0xheWVyLT5tX3VzZWRUcmFu
c3BhcmVuY3kpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmgKaW5kZXggNzgyMzI3MDlmOGYzYzQ0NTI1ZjU3M2JlYWQ5ZDMwYjQyOGRhNWFjMi4u
NDczMzk5YjJiOGIwMTRmMzU0NTk1ZDk3M2UxOGM2NWM0ZjRiY2QyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMTY4LDYgKzE2OCwxMSBA
QCBwdWJsaWM6CiAgICAgLy8gUmV0dXJuIGFuIGVzdGltYXRlIG9mIHRoZSBiYWNraW5nIHN0b3Jl
IGFyZWEgKGluIHBpeGVscykgYWxsb2NhdGVkIGJ5IHRoaXMgb2JqZWN0J3MgR3JhcGhpY3NMYXll
cnMuCiAgICAgZG91YmxlIGJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCkgY29uc3Q7CiAKKyAg
ICAvLyBUaGUgbmV4dCBwYWludCBvcGVyYXRpb24gdG8gdGhpcyBsYXllciB3aXRoIHRoZSBnaXZl
biBjb2xvci4gVGhlIG1hc2sgY29sb3Igd2lsbCBiZQorICAgIC8vIGF1dG9tYXRpY2FsbHkgcmVz
ZXQgYWZ0ZXIgdGhlIHBhaW50IG9wZXJhdGlvbi4gVGhpcyBpcyB1c2VkIGZvciB0cmFja2luZyBy
ZXBhaW50cyBpbgorICAgIC8vIGxheW91dCB0ZXN0cy4KKyAgICB2b2lkIHNldFJlcGFpbnRNYXNr
Q29sb3IoY29uc3QgQ29sb3ImIHJlcGFpbnRNYXNrQ29sb3IpIHsgbV9yZXBhaW50TWFza0NvbG9y
ID0gcmVwYWludE1hc2tDb2xvcjsgfQorCiAgICAgU3RyaW5nIG5hbWVGb3JMYXllcigpIGNvbnN0
OwogICAgIAogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCkBAIC0yNjYsNiArMjcxLDggQEAg
cHJpdmF0ZToKICAgICBib29sIG1fY2FuQ29tcG9zaXRlRmlsdGVyczsKICNlbmRpZgogCisgICAg
Q29sb3IgbV9yZXBhaW50TWFza0NvbG9yOworCiAgICAgc3RhdGljIGJvb2wgbV9jcmVhdGluZ1By
aW1hcnlHcmFwaGljc0xheWVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBmOTY3MjMzZWY3ZTU1OTIwY2I0ZGU5
YmQ4MDJkNjU4ODFkMDk2N2M2Li45OTRlMjAzZGZlOTBlM2YwYTM4Y2I0YjdiM2RmYTU5YTQ4Nzc5
ZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcApAQCAtMTM0Nyw2ICsxMzQ3LDI1IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpjbGVhckJhY2tpbmdGb3JBbGxMYXllcnMoKQogICAgIGNsZWFyQmFja2luZ0ZvckxheWVy
SW5jbHVkaW5nRGVzY2VuZGFudHMobV9yZW5kZXJWaWV3LT5sYXllcigpKTsKIH0KIAorc3RhdGlj
IHZvaWQgcmVjdXJzaXZlUGFpbnRSZXBhaW50TWFzayhSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0
IENvbG9yJiBjb2xvcikKK3sKKyAgICBpZiAoIWxheWVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAobGF5ZXItPmlzQ29tcG9zaXRlZCgpKSB7CisgICAgICAgIGxheWVyLT5iYWNraW5nKCkt
PnNldFJlcGFpbnRNYXNrQ29sb3IoY29sb3IpOworICAgICAgICBsYXllci0+c2V0QmFja2luZ05l
ZWRzUmVwYWludCgpOworICAgIH0KKworICAgIGZvciAoUmVuZGVyTGF5ZXIqIGN1cnJMYXllciA9
IGxheWVyLT5maXJzdENoaWxkKCk7IGN1cnJMYXllcjsgY3VyckxheWVyID0gY3VyckxheWVyLT5u
ZXh0U2libGluZygpKQorICAgICAgICByZWN1cnNpdmVQYWludFJlcGFpbnRNYXNrKGN1cnJMYXll
ciwgY29sb3IpOworfQorCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFpbnRSZXBhaW50
TWFza1RvQWxsTGF5ZXJzKGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICByZWN1cnNpdmVQYWlu
dFJlcGFpbnRNYXNrKG1fcmVuZGVyVmlldy0+bGF5ZXIoKSwgY29sb3IpOworfQorCiB2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlUm9vdExheWVyUG9zaXRpb24oKQogewogICAgIGlm
IChtX3Jvb3RDb250ZW50TGF5ZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCAyYTdjZGQwNzFkNDllYTI0YjhkNzI1YzMxMGFi
OWI0ZDA3OWMyNmM3Li5hMzU5YWJhZDQzMDczNTUyYzU1ZjJiYThhYjQyNDBjYWE1OTBlOGEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
CkBAIC0yMjAsNiArMjIwLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkb2N1bWVudEJhY2tncm91
bmRDb2xvckRpZENoYW5nZSgpOwogCisgICAgdm9pZCBwYWludFJlcGFpbnRNYXNrVG9BbGxMYXll
cnMoY29uc3QgQ29sb3ImKTsKKwogcHJpdmF0ZToKICAgICBjbGFzcyBPdmVybGFwTWFwOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggYjc3OGYyOTZhNGUzMmIx
Y2NjY2IzMzcxNzY0MTY0ZjkyMGUzZDJmOS4uM2Y0ODExOWY4YTM5ODgwMzhiYTE5YWE5M2NkMTg5
NWU4M2E4Yzc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAt
NDU3LDYgKzQ1NywxMiBAQCBwdWJsaWM6CiAgICAgLy8gQ2FuIGJlIHVzZWQgZm9yIGFsbG9jYXRp
bmcgcmVzb3VyY2VzIHRoYXQgdGhlIGNvbXBvc2l0b3Igd2lsbCBsYXRlciBhY2Nlc3MuCiAgICAg
dmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkR3JhcGhpY3NDb250ZXh0M0QoKSA9
IDA7CiAKKyAgICAvLyBNYXJrIHRoZSBjdXJyZW50IGNvbnRlbnQgaW4gYWxsIGNvbXBvc2l0aW5n
IGxheWVycyB3aXRoIHRoZSBnaXZlbiBBUkdCIGNvbG9yLiBBbnkgZnVydGhlcgorICAgIC8vIHJl
cGFpbnRzIHRvIHRoZSBsYXllciBjb250ZW50cyB3aWxsIG5vdCBiZSBtYXJrZWQsIHNvIHRoZSBy
ZXBhaW50ZWQgcmVnaW9ucyB3aWxsIHN0YW5kIG91dC4KKyAgICAvLyBUaGlzIGlzIHVzZWQgaW4g
bGF5b3V0IHRlc3RzLiBDYWxsaW5nIHRoaXMgbWV0aG9kIG9ubHkgaGFzIGFuIGVmZmVjdCBpZiBh
Y2NlbGVyYXRlZAorICAgIC8vIGNvbXBvc2l0aW5nIGlzIGFjdGl2ZS4KKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGxheVJlcGFpbnRNYXNrSW5Db21wb3NpdGluZ0xheWVycyh1bnNpZ25lZCBtYXNrQ29s
b3IpIHsgfQorCiAgICAgLy8gQ2FsbGVkIHRvIGluZm9ybSB0aGUgV2ViVmlldyB0aGF0IGEgd2hl
ZWwgZmxpbmcgYW5pbWF0aW9uIHdhcyBzdGFydGVkIGV4dGVybmFsbHkgKGZvciBpbnN0YW5jZQog
ICAgIC8vIGJ5IHRoZSBjb21wb3NpdG9yKSBidXQgbXVzdCBiZSBjb21wbGV0ZWQgYnkgdGhlIFdl
YlZpZXcuCiAgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyQWN0aXZlV2hlZWxGbGluZ0FuaW1hdGlv
bihjb25zdCBXZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycyYpID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAyNjFmN2MzNTdlOWE3OGI5MWYy
YTdkM2FiZmQ5NGRiMmUyOGE5OGE1Li4xNDllM2FhNDEyNWQ1MWIyNDJhZjgzZDliODhmMTliMmQw
YWEwMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBA
IC0zNzM3LDYgKzM3MzcsMTggQEAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogV2ViVmlld0ltcGw6
OnJvb3RHcmFwaGljc0xheWVyKCkKICAgICByZXR1cm4gbV9yb290R3JhcGhpY3NMYXllcjsKIH0K
IAordm9pZCBXZWJWaWV3SW1wbDo6ZGlzcGxheVJlcGFpbnRNYXNrSW5Db21wb3NpdGluZ0xheWVy
cyh1bnNpZ25lZCBtYXNrQ29sb3IpCit7CisgICAgaWYgKCFpc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHBh
Z2UoKS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgUmVuZGVyVmlldyogcmVuZGVyVmll
dyA9IGRvY3VtZW50LT5yZW5kZXJWaWV3KCk7CisgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBj
b21wb3NpdG9yID0gcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpOworCisgICAgY29tcG9zaXRvci0+
cGFpbnRSZXBhaW50TWFza1RvQWxsTGF5ZXJzKG1hc2tDb2xvcik7CisgICAgY29tcG9zaXRlKGZh
bHNlKTsKK30KKwogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKIHZvaWQgV2Vi
Vmlld0ltcGw6OnNjaGVkdWxlQW5pbWF0aW9uKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5oCmluZGV4IDRjMWE5NzRhMDVkZjQyNjYwZjlkNzM5OTM3NDgyNDJmMGE2
NGIzZDYuLmI3NWYzOTdjNTNhZjE2MGFiMWEwMDczYzk4OWE5NGVhNjk5NTk1MGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtNTMzLDYgKzUzMyw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHBhaW50Um9vdExheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvbnRlbnRSZWN0KTsKICAgICBOb25Db21wb3NpdGVk
Q29udGVudEhvc3QqIG5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCgpOwogICAgIHZvaWQgc2V0QmFj
a2dyb3VuZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBkaXNwbGF5UmVw
YWludE1hc2tJbkNvbXBvc2l0aW5nTGF5ZXJzKHVuc2lnbmVkIG1hc2tDb2xvcikgT1ZFUlJJREU7
CiAjZW5kaWYKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgdm9pZCBz
Y2hlZHVsZUFuaW1hdGlvbigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDJlYzNlNDc2Njc5M2E0OWFjM2ZlMjc0ZmE4YWEzMTlkYThlNjdhM2Iu
LjRkMzQwODI0OWQ0ODNlNGY0MjJiMzc1YTkxOGY1YWU1YjNmMmZhZTUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAx
Mi0wOS0yNyAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBPcHRpbWl6ZSBwYWludGluZyBvZiBjb21wb3NpdGVkIHNjcm9sbGluZyBsYXllcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDg3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJs
ZSB0byB0cmFjayByZXBhaW50cyB0byBjb21wb3NpdGlvbiBsYXllciBjb250ZW50cy4gVGhlIG5l
dworICAgICAgICB0cmFja0NvbXBvc2l0aW5nTGF5ZXJSZXBhaW50cygpIGNhbGwgbWFrZXMgdGhl
IGV4aXN0aW5nIGRpc3BsYXkoKSBtZXRob2QgZHJhdyBhCisgICAgICAgIHRyYW5zcGFyZW50IGJs
YWNrIG1hc2sgb3ZlciB0aGUgY29udGVudHMgb2YgYWxsIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW9u
IGxheWVycy4KKyAgICAgICAgQW55IGZ1cnRoZXIgcmVwYWludHMgdG8gdGhlIGxheWVycyB3aWxs
IG5vdCBoYXZlIHRoaXMgbWFzaywgZWZmZWN0aXZlbHkKKyAgICAgICAgaGlnaGxpZ2h0aW5nIHRo
ZSBhcmVhcyB0aGF0IGFyZSByZXBhaW50ZWQuCisKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5
IGlzIGFkZGVkIGFzIGFuIG9wdC1pbiBpbiBvcmRlciB0byBhdm9pZCBicmVha2luZyBleGlzdGlu
ZworICAgICAgICB0ZXN0cyB0aGF0IHVzZSBkaXNwbGF5KCkgd2hpbGUgaW4gY29tcG9zaXRlZCBt
b2RlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5j
cHA6CisgICAgICAgIChEUlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKToKKyAgICAgICAgKERS
VFRlc3RSdW5uZXI6OnJlc2V0KToKKyAgICAgICAgKERSVFRlc3RSdW5uZXI6OnRyYWNrQ29tcG9z
aXRpbmdMYXllclJlcGFpbnRzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9E
UlRUZXN0UnVubmVyLmg6CisgICAgICAgIChEUlRUZXN0UnVubmVyKToKKyAgICAgICAgKERSVFRl
c3RSdW5uZXI6OnRyYWNrQ29tcG9zaXRpbmdMYXllclJlcGFpbnRzKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9z
dDo6ZGlzcGxheVJlcGFpbnRNYXNrKToKKwogMjAxMi0wOS0yNiAgTGFzemxvIEdvbWJvcyAgPGwu
Z29tYm9zQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBteSBlLW1h
aWwgYWRkcmVzcy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RS
VFRlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1
bm5lci5jcHAKaW5kZXggZjRmM2FlZDIyOGE3YTI5NzU3ODJiZDljMmM2NDQyZTc4ZTcxYjI4OS4u
MzNkZTBmZWNkN2ZkMzM5ZGE4YzNlZmVlODYwYmMyOGRkM2MwMzA0YSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAKQEAgLTI0MCw2ICsyNDAs
NyBAQCBEUlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKFRlc3RTaGVsbCogc2hlbGwpCiAjZW5k
aWYKICAgICBiaW5kTWV0aG9kKCJzdGFydFNwZWVjaElucHV0IiwgJkRSVFRlc3RSdW5uZXI6OnN0
YXJ0U3BlZWNoSW5wdXQpOwogICAgIGJpbmRNZXRob2QoInRlc3RSZXBhaW50IiwgJkRSVFRlc3RS
dW5uZXI6OnRlc3RSZXBhaW50KTsKKyAgICBiaW5kTWV0aG9kKCJ0cmFja0NvbXBvc2l0aW5nTGF5
ZXJSZXBhaW50cyIsICZEUlRUZXN0UnVubmVyOjp0cmFja0NvbXBvc2l0aW5nTGF5ZXJSZXBhaW50
cyk7CiAgICAgYmluZE1ldGhvZCgid2FpdEZvclBvbGljeURlbGVnYXRlIiwgJkRSVFRlc3RSdW5u
ZXI6OndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSk7CiAgICAgYmluZE1ldGhvZCgid2FpdFVudGlsRG9u
ZSIsICZEUlRUZXN0UnVubmVyOjp3YWl0VW50aWxEb25lKTsKICAgICBiaW5kTWV0aG9kKCJ3aW5k
b3dDb3VudCIsICZEUlRUZXN0UnVubmVyOjp3aW5kb3dDb3VudCk7CkBAIC02NzgsNiArNjc5LDcg
QEAgdm9pZCBEUlRUZXN0UnVubmVyOjpyZXNldCgpCiAgICAgbV9jYW5PcGVuV2luZG93cyA9IGZh
bHNlOwogICAgIG1fdGVzdFJlcGFpbnQgPSBmYWxzZTsKICAgICBtX3N3ZWVwSG9yaXpvbnRhbGx5
ID0gZmFsc2U7CisgICAgbV90cmFja0NvbXBvc2l0aW5nTGF5ZXJSZXBhaW50cyA9IGZhbHNlOwog
ICAgIG1fc2hvdWxkQWRkRmlsZVRvUGFzdGVib2FyZCA9IGZhbHNlOwogICAgIG1fc3RvcFByb3Zp
c2lvbmFsRnJhbWVMb2FkcyA9IGZhbHNlOwogICAgIG1fZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9h
ZCA9IHRydWU7CkBAIC0xMjkwLDYgKzEyOTIsMTIgQEAgdm9pZCBEUlRUZXN0UnVubmVyOjpyZXBh
aW50U3dlZXBIb3Jpem9udGFsbHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCoK
ICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAordm9pZCBEUlRUZXN0UnVubmVyOjp0cmFja0Nv
bXBvc2l0aW5nTGF5ZXJSZXBhaW50cyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
KiByZXN1bHQpCit7CisgICAgbV90cmFja0NvbXBvc2l0aW5nTGF5ZXJSZXBhaW50cyA9IHRydWU7
CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKIHZvaWQgRFJUVGVzdFJ1bm5lcjo6Y2xlYXJC
YWNrRm9yd2FyZExpc3QoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaAppbmRleCA1NTk0MGFjZDFmNDdiYjI2YWYy
OWRkNWJiNmQ1MzBkMmFlZTA2NmQyLi5iNjdhNDFhMWNhNmY4ZjdmNzI3NDFmN2Y0ZWFkNmM2ZmFh
ZDE2YTUxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5l
ci5oCkBAIC0yMzIsNiArMjMyLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzYWJsZUltYWdlTG9h
ZGluZyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBzZXRJ
Y29uRGF0YWJhc2VFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
ICAgICB2b2lkIGR1bXBTZWxlY3Rpb25SZWN0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKKyAgICB2b2lkIHRyYWNrQ29tcG9zaXRpbmdMYXllclJlcGFpbnRzKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQogICAgIC8vIEdyYW50cyBwZXJtaXNzaW9uIGZvciBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgdG8g
YW4gb3JpZ2luCkBAIC00ODksNiArNDkwLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCB0ZXN0UmVw
YWludCgpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdFJlcGFpbnQ7IH0KICAgICBib29sIHN3ZWVwSG9y
aXpvbnRhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9zd2VlcEhvcml6b250YWxseTsgfQorICAgIGJv
b2wgdHJhY2tDb21wb3NpdGluZ0xheWVyUmVwYWludHMoKSBjb25zdCB7IHJldHVybiBtX3RyYWNr
Q29tcG9zaXRpbmdMYXllclJlcGFpbnRzOyB9CiAKICAgICB2b2lkIHNldEhhc0N1c3RvbUZ1bGxT
Y3JlZW5CZWhhdmlvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAg
Ym9vbCBoYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBtX2hhc0N1
c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsgfQpAQCAtNjYwLDEwICs2NjIsMTUgQEAgcHJpdmF0ZToK
ICAgICAvLyBJZiB0cnVlLCBwaXhlbCBkdW1wIHdpbGwgYmUgcHJvZHVjZWQgYXMgYSBzZXJpZXMg
b2YgMXB4LXRhbGwsIHZpZXctd2lkZQogICAgIC8vIGluZGl2aWR1YWwgcGFpbnRzIG92ZXIgdGhl
IGhlaWdodCBvZiB0aGUgdmlldy4KICAgICBib29sIG1fdGVzdFJlcGFpbnQ7CisKICAgICAvLyBJ
ZiB0cnVlIGFuZCB0ZXN0X3JlcGFpbnRfIGlzIHRydWUgYXMgd2VsbCwgcGl4ZWwgZHVtcCB3aWxs
IGJlIHByb2R1Y2VkIGFzCiAgICAgLy8gYSBzZXJpZXMgb2YgMXB4LXdpZGUsIHZpZXctdGFsbCBw
YWludHMgYWNyb3NzIHRoZSB3aWR0aCBvZiB0aGUgdmlldy4KICAgICBib29sIG1fc3dlZXBIb3Jp
em9udGFsbHk7CiAKKyAgICAvLyBJZiB0cnVlIGFuZCBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBp
cyBhY3RpdmUsIGRpc3BsYXkoKSB3aWxsIGhpZ2hsaWdodAorICAgIC8vIHJlcGFpbnRzIHRvIHRo
ZSBjb250ZW50cyBvZiBjb21wb3NpdGluZyBsYXllcnMuCisgICAgYm9vbCBtX3RyYWNrQ29tcG9z
aXRpbmdMYXllclJlcGFpbnRzOworCiAgICAgLy8gSWYgdHJ1ZSBhbmQgYSBkcmFnIHN0YXJ0cywg
YWRkcyBhIGZpbGUgdG8gdGhlIGRyYWcmZHJvcCBjbGlwYm9hcmQuCiAgICAgYm9vbCBtX3Nob3Vs
ZEFkZEZpbGVUb1Bhc3RlYm9hcmQ7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0LmNwcAppbmRleCBmOGQ4MDRlOTY0ODQ0NzAyYjcxMzE5ZjM0N2IxOWRmYmIz
YzI4MGZhLi41NjI3NzU0NzNhOWEyOGNiYmU3YTVkNGY3NjcwZDVmZTYyNTVhMjdkIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0xOTQzLDEw
ICsxOTQzLDE4IEBAIHZvaWQgV2ViVmlld0hvc3Q6OmRpc2NhcmRCYWNraW5nU3RvcmUoKQogfQog
CiAvLyBQYWludHMgdGhlIGVudGlyZSBjYW52YXMgYSBzZW1pLXRyYW5zcGFyZW50IGJsYWNrIChn
cmF5aXNoKS4gVGhpcyBpcyB1c2VkCi0vLyBieSB0aGUgbGF5b3V0IHRlc3RzIGluIGZhc3QvcmVw
YWludC4gVGhlIGFscGhhIHZhbHVlIG1hdGNoZXMgdXBzdHJlYW0uCisvLyBieSB0aGUgbGF5b3V0
IHRlc3RzIGluIGZhc3QvcmVwYWludCBhbmQgY29tcG9zaXRpbmcvLiBUaGUgYWxwaGEgdmFsdWUK
Ky8vIG1hdGNoZXMgdXBzdHJlYW0uCiB2b2lkIFdlYlZpZXdIb3N0OjpkaXNwbGF5UmVwYWludE1h
c2soKQogewotICAgIGNhbnZhcygpLT5kcmF3QVJHQigxNjcsIDAsIDAsIDApOworICAgIGludCBt
YXNrQWxwaGEgPSAxNjc7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlm
ICh0ZXN0UnVubmVyKCktPnRyYWNrQ29tcG9zaXRpbmdMYXllclJlcGFpbnRzKCkgJiYgd2ViVmll
dygpLT5pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSkgeworICAgICAgICB3ZWJWaWV3
KCktPmRpc3BsYXlSZXBhaW50TWFza0luQ29tcG9zaXRpbmdMYXllcnMobWFza0FscGhhIDw8IDI0
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorICAgIGNhbnZhcygpLT5kcmF3QVJH
QihtYXNrQWxwaGEsIDAsIDAsIDApOwogfQogCiAvLyBTaW11bGF0ZSBhIHByaW50IGJ5IGdvaW5n
IGludG8gcHJpbnQgbW9kZSBhbmQgdGhlbiBleGl0IHN0cmFpZ2h0IGF3YXkuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmY3
ZTg0M2RjYTFlZjZkY2EzMzgxNTVjNWNkNmQ3YjFkNDkyZmM3My4uMWI2YmE2NmFhNWRhMDEyZjQ1
M2I4MTZlZGQyZGVmMmE3M2RlNGNkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA5LTI3
ICBTYW1pIEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE9wdGlt
aXplIHBhaW50aW5nIG9mIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0d28gdGVzdHMgZm9yIHZl
cmlmeWluZyBvcHRpbWl6YXRpb25zIHRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nLiBOb3RlIHRoYXQK
KyAgICAgICAgdGhlc2UgdGVzdHMgd2lsbCBub3QgcGFzcyB1bmxlc3MgRU5BQkxFX0FDQ0VMRVJB
VEVEX09WRVJGTE9XX1NDUk9MTElORyBpcyBlbmFibGVkLgorICAgICAgICBUaGV5IGFsc28gcmVx
dWlyZSB0aGUgbmV3IHRyYWNrQ29tcG9zaXRpbmdMYXllclJlcGFpbnRzKCkgVGVzdFJ1bm5lciBt
ZXRob2Qgd2hpY2gKKyAgICAgICAgaXMgc28gZmFyIG9ubHkgaW1wbGVtZW50ZWQgb24gQ2hyb21p
dW0uCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1w
cmVwYWludGluZy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL292
ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtcHJlcGFp
bnRpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xs
aW5nLWNvbnRlbnQtdXBkYXRpbmctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjb21w
b3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC11cGRhdGluZy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50
LXVwZGF0aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnM6CisKIDIwMTItMDktMjUgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBDb2xsZWN0aW5nUnVsZXMgYW5kIFF1ZXJ5aW5nUnVsZXMg
bW9kZXMgb2YgU2VsZWN0b3JDaGVja2VyIG1pc3Mgc29tZSBjb21wbGV4IHNlbGVjdG9ycyB3aXRo
IHBzZXVkbyBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtcHJlcGFpbnRpbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtcHJlcGFpbnRpbmct
ZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MzlmOGJkNGUzYjgwZDY4ZTQ3NGU0NzBiYmI2Mzc5
Mjg3OWIwM2EKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEwMTE0CnpjbWVITmNUYGgoelEyfGs5
MnNPP1FBUitSVF9aUm1xViUzfEVLSDxYWG8/Yik9RmxTMiFIYGlgVD9eb1pDTisqVQp6RE4rPiNR
Y3k9Mm5ofXJeTjxle3g1RmtLOE9HeHMqYWQrcUs/I3o0Vm8lODtBPWJpQiEjZXtvdkA5K0VqZW4w
S3oKel9IbGJfZ15lbTM1ZD19ZGUwJXNMZn5ALXpMRHNyJVNQU29MUm9iY3JLZlZlKjt1YDlDKGM5
Qk1CckZneUhvQm08Cnp8QTRwTjBkRjVlPE5hUEhvPDB9T1UrXnxFKDlgb1ZeZktNUVV4fEElMXdw
PDxGb3pGMU1yS1lBdCg8YS0kZXh7Qgp6eDhZI1FlZjYkdSpFREF1cEJ6eWd7Yk9wbnF1JTYkcjE4
RVpMaUVwc0lSVCY0UiN4Mj1vYk9xdVNMaXlffDNYM08Kel9+NGBVJCpBNn4+eT1VR3FoZHx5Z1NH
OEolUmx2VGRieDZ3bXU1X2RgSWhXNjxNbEpPZ0JpdmE3TVRlMDJRNnRxCnpIaTkoSjt+TGY/OCNL
IWk8bDFMQGs/JWQkJHxHTXNffm90a0ZMK25VV1ZXZS1xKylzMjVRJHxyRHdMb3dSPzh6Ygp6Xmcj
OTFiRTRULWlVcmlVXyNGY1RhdklXYnc/WEhkZkJ1TFJWYGkhKWR3Zj9eKUZgWEJJJmRJOEJPYCp4
dzdla3gKelZXJX1TUnk2KGRYSUF5TG4pPEI0ZUR1bykreWNVTDRiUjh5ZlIqfDJRXlUmPEchZEZQ
d3lBK1dhMlIqbGYjQH5mCnpsQzE0cUAtdi18ekJLWVI5eHMwVF9QQ3FkSyVQeWlpbUl3ZUNfSVhq
Q2lYZkpRS1JqRiFrdzhgY3A7fiY7UWNNcAp6ZnR6Y1EqbClIQntraTF2Vl5ge3hzOTE/S0QzTF54
SG1jJHI5VVozX1JsYTd7bVh9NXY1XjghNCpoVmlsQEYre24KemdrWlJqLU49WlIhM21HKSFQPTA8
ZHEzeX5aezQ8U1gwVFNqcmNRSWVpSFMrSEh4OT5wJDJNTXxSNXFvNTd9VlUpCnorfjhTQ2xEdUUq
eTlwdDAoNXlYVFFlbUItb0BFbUpzSFVjLXg7cCYqJU53PTBLaD1kI3BSdXZBMkA2fGomb0poNAp6
eGdrcV83Y1lLRzlCYTZgJmR8YCV0dlg9NGlpJSVBenxfPiNVUn5ZY05eaElmciV4ez83dTdKTXhw
I0dgLT08PD8KelNIPWVebSp2Iz50fiomTnJFcmBAJTtNREJ3e08hOHtrUTN5Tm1ge0JVKk5kY3ck
QFR0U1EjUGdIPG5USnh1dkIrCnpXU2lpbm5XNm1yZEA3YU5VRkBRSngpT0VIUlFUQGIpV1VVTiR3
V3R2Z1ZoUU9MLWNNPChRemopQ3B1VSl4Mys1VQp6LXQ5X0A2O29vQ2BVZUlRUUg7N1VlfTh7JiZs
NUw/WXpzekxTNV4zUXphWXVfMyVzM1BueXJtWllwKGZQV0hoYkUKek1sO1JVcnp3NjF0aStUY3hr
NXgwSUZNcU9YVV99WSlgcWEqNmhuZSF3SWdQX3xDdSgxQz0/MnhDY1l0fHY4UFloCno7KWJiKXt5
bXdkQSh8Sz5VYkx1bHR9WVl+YSZtSXd2KWJMQlV3ViY9PCE1WTs4Q1V0WlkhdEBEI1UmPDJSQz0h
Nwp6MiooYGs/fmk3YCRyezcpVEg7bl88X0J0VSp4Sms5MUoheyVubHlIQz5MXnE+V0AjdjU3ezRe
Nlk4KF9BOS1nbWwKek8qLT9ndCtsMHZOc3gqXmVFNDlAakxhITFEU19ITmU7IUhDd2spR2JnaGZ1
cEs1c0gqX3RuX2ckWWU1WUhMQyYjCnpzJHRXN3R5PkxRaE5nSS1LKF4jOTUxYyk4UEZMb1ptelAm
b1I/PXdibTRUWXc/VXw7MEM9YEBgaHhwcHQ0YVB4KAp6Q1NqQkJVUjsrOyprSytIYCsmbDFsJFZF
VSo0TmpZbzAlUTZ2RWZjbVlFbVBOU1FTVXhiVEM4fmkmYS13X3ZxMjEKem1YPzxPe3tBWG94K2Rv
Mm5LUzdfZDFVZXghQU18V1V8M2pLVVM4Z2Y4I2lvSF93QiVLOzxNP3h5TGEhXyl7Znp+Cno4fCQ4
e0doaH5lXjV6UHdFaUh1QXd6ND5ZT0dJJklXQGZsdGsmcyl+Yik2fl5hXlh9P1NBfHpJNXcyMkhS
NVckNQp6d294cj0mJlQhaj0pODF2WEcqMGR3KzI3JnJ7WkheKTVsdj1Xb3oqN0RmdWolJEt6P316
YnE7KWJ8Nl88Q05KUn4KekV8cDlUNT5jR1YkdnlrXyp7OERVcX5VaygzXitleWhAbFk/elBNPV44
djhvRHRjI35GakFsWEV7ciZ1NC0+Ti1jCnpUK15ra1VTP0UhVityRGdNQFIwT25WRz82WDBBP217
YjJtWSNVfGMjLVo2WVZxQi1rSERYej1TXzNGeUVnSDw7cgp6WHBrYVhANyVkRkg2TiNIVC1vWVVk
aUZGV2RjamZlOys+fFYkQiUjWigmTmxHRyZCXktRTyNJQmhZbFU4clMtZ2YKejdhQTdreWAoflV2
QkE+UGxBKjd7ZC11cjQtTmA5VERpT25nNCQlbU5fSDt1PGImS2JDUVRWfXcyWmdjRTNMa3RoCnpU
IVVtY0MjQH1wOVRNcDtqNVF+c0ZyQTd3al5YfmF1JnxJdmRZPmUqMDB7RStefkdRP0QhWD0kamdK
cjJOQVM4Rgp6KDAwViFxTX1MUjB7OG0kPiY3Xnl0QGhhNVhwQDQxMCZFbnRHPjA2O1BmdCYkaWV+
QyUlXlh+RWZTclBCaE5Jb2kKem9Qak1EaWJOUzE4Tkg/RkdHXlF6OVliTipwb0p4cS1OaEs5biQ7
RFByTmUmeXslJnE9eWtRI0ojSDZwTTJoTUhNCnpBWHI+anRNQWhgRil7SWxuJVdoPyMwZ0smUUUx
LUlnJllUK2FNc0dvTl4pe0NsbndqKigpcmp9Mn4zemgkJStFaQp6N2ooZTh6U2NIYGMqKkBJMmR1
TU87Km9+K251O2FzPFRoUGRXY1hyO3ZWUiNncDNUbHRudUpSdXFFX2hBUlhQZUkKelMjQ20wPGBN
fEQlQUo4IXNZRkQjNShPK3djSVB4QHE2cmVMUk07RUY/YihIP3l6dSZ0WT5hWGV0bT58O1QmYG95
Cnp6SkRkIz0tWFNnaCR6JEc0fkpvVmU+YDtTPSM9MyVHWmxAUVpiVmQtUHh+M19sQCtYSEtHZ3Ym
ZWhTcjRyWSM/LQp6O3tvUVlzO0VkLSo9VHkyZWdUPEdFLWxAK2JsNSRibGVmVV9DN0ZkeTAkZGRx
NzQ2YTE5dzxObT5hUkk4QCF8aiQKenp0QzsxZnEoYipaTWsxfWshYzdrbWtUMzUpc34xVkVHKjxx
UHVvZlIlSGFhUTR+JntONEpmVm84S0opRG9tYnI3Cnpue0khSCVsTVZxN2RSMz5WQSpgVV8laVpr
c3pkZXF8QyVDeVZOS1ZEUjc+ZD5mUVRVPntGJE04IXBxSFQ/YWIxcQp6dGo3fDdgbF4tTGhtcjNL
Qk0rYEN1QlpyM0EwYC0hSD9QZ0kha2RYdChtcEZXVFlMSFNvdnBCNmErfW0xbXo4TSUKejQqKWBo
YXlzUzF7KXt2QGt7e009U2Vqeis2QkdWMDBSKXYxY14jJHoyOXdRfV4xNlFiaDBlJnd3Ym1sR3Vq
UGRzCnpvckM7VjllMXV6NTdqZXxte0ZydG1YfXtAVFI8QSpnTk9+MjZCN1diRkI3I0s/JWNpV1Fz
UDw+SXJtfCtzJGcrMwp6K1hgTz9wcD44UUd1anZ6NiYwMGNvMWQ1Ry1BdnBDbTstPnJCbEYoPz1Y
IWQyTGd6PEN0KSVGPExEJC02bio0eGoKemV0QVA0UHo7KjtCVWBOMDVKV1pHXig4KTVLPXkldGV2
QDNUOF9YJGpteUtyak5rRzFzbjMjaEhVcUdBNklMckt2CnpZfHthXndKO35LU29DWENFbGVrYTV3
JHFRYDA+WGRmZmFKczxAMXRgJHU7alE1Q3NqQCQlWVhJKn11MjZVMHN9awp6cW5idns0OGxxI0Nu
dktQWmZ9M3prej1pOHBFKXIte3A4NyRiSXxpZClYcX1CKTJBNSppZmZSPVh7ZDRsUkdJOFoKeilB
d2M0MnZWVEZvT1JydlpnMFZuPVoqcD9McVEycihYZ19UUXJtK0FJVyFzI2tjWT5sYUV0KWclNzd3
QGl8Y2AlCno7Til1RHU9fC1he2U2QVEjYVF0azN7bHFqejxlO1dKMTV+S1B6ZXhETzw1VGE/KUxU
VCpUNzxgeE1Sdz8/dEF5Xwp6PT9BMCRAWTs5d2BGJk1hSlJaTW0qRGhFTFVjQXMtVjh0I2lFblFx
KEpYYXFjNzc8fT1WMzNyVzNWYWo7ZXtVJmoKeipjPGwmODxRbDBmLXdSVW84MFVMSnJ4Y3BjQjtU
VyZ6YzdKbTh8VW9aI2c/VTNkVTJoUi09NXFsYlZUKTNRdWRaCnpTUVhjdHZkTXB4ZkVtTjFLeE8w
TzxLZW1ycE1RUmpJcjlHMUVzITczZTY2WHZ5czBUckpaI1Z1eipzPTY4QUdoYgp6STkwZ08we2c2
RSNOM0F1enIrd3YhP2IzWkY5RldWVztWK187QEdpYz9vczIoOW9PazNHI1d6JEU7SnMjIWlVMHMK
ej1NaVVgMlRPdXVTWnViZ1lkSnZBQ3lkUU4wWDxBNl81Nz13KndxaXBiT1NiITl1I0hVKX4heT8m
T0pSbnU7XzVPCnpIWiZiV3B7MkY4RHNeSnkjZFZIKzA0TV5uU2otVnRTNjNeajhzKm1TSnktWWkk
JjxoakhrSzhrdEg3NjIlUTxDeAp6a2xBWXdRMDN8dGsjR0NAT3JTbU5HS30oY2B8ZyFQJiVecTMt
S3dWc2E1T3ZWQGdSWEg0bHVXQ3peQGtpRmpPJG4KejBzRGBvTD50RDRhMkRSKS1WX1JEaSl+PzlT
c0JjWkFwWF4+U0czaH0tNEwkZG9zZ00tcjkwLX08KSF4NCo0Qkx5CnpHUl8tX0dwKjcxUWRidWo4
RUpBKG9uTiNUKFk9T1lVS3MqMzNMYjVRT2AtfXFaOUlkQEZMcGUjKWVNPDxgeT1vLQp6WnQhXzxU
aX44T2RuI0xqWVFJJG1RMl9kKzZpYlZSNFRoPEBVQ2AwaG1BSiNKP1c/VUB3fGNraz8xZlErVzEh
bTcKemIqIyowdWc+d1NTRmdIWUBuTFE0SCplbC0lbX1md3ZqZFM3eytIWHZrfk5Md0Fgcz50RiE7
ZFUpNipiYklEbm59CnpgVDAtZjxnNWNPdHVEYGp0XnJtZGZIcnt3Vn5Edkx7WWsxQDtKPnxQU1Bl
QmJVQGYxWmplRmg2JmpDRmJkYSlZKAp6Z2VqbDQyT1MrOTJUVitzVlRNMj1JVGJ0Rz9hdT0oMGNa
blVJV1FuPCkqXylXXkI8e0doQVJQIyU5ayUrLWN7RE0Kej5kSihWOXEjUHg/QyRPITl2JlZYQiFl
JnYjaCpDUUB4LWwwTWsmUUVXdHkxRiVkX3UrcCRnPCRCKH5QWXUqWlJjCno2b09QVEdVNT9VbT5v
PyhYRHxCIVA3RG9ZaVBLdUx6bTErQCVyKGArRzlDOGUrTFU5N3NPREIxbk1IOWFiQjdiMwp6SmJ2
Nik7bn5DezV2LXNjMVgtTloqNzBoITVqXilnMyh2LVQwMTI9RjZiNT5AUWJTXn1mQnotOFlnXjR6
Q3Ioc0UKekBtVylHUnF4LXdOM1h0RGd0XmBLKW1QZ3N1Z1dRXjFDUW54N2p0M0crK2hecFJwKX1J
ZUlibnxoNGxqRDthQTJ9CnpRKzM9SGB+QXpqKFcoP0dSUldefHgqaX5lNDhOOSRNRm8wbjZiN2Fz
OTR5N1BZdUE3QF5LakIqI0lhVWduZ3N9Rgp6S3YhMEsySXhnK0hAQkZuektXQDxtbGV9ZDd6WVEz
THgqMDAhbnZ1U2BYPHd+M2gpcnZQMGpUMyptVFhYSXpLJk8Keio8eHVCP1ZASFdpRjhAZXM8XlQ7
VXgtXys5flA1PkJeXyVUPXMlJlo4cVUxfF5uQDcjUyFxeDdpaX5fLVB7OEtYCnooWGpoY3IzNV5I
OVl+Y3hmWX4lMzMlam1OZWF9Qy1CS1E1emtRJD80Sk9HNFpLfXV0WXBNVTsyVjEoOV47KyY9dAp6
U1Y/TnY2fCpoTll4NERkZiFga1ZYd3thdil5Jkx+eDM7JnAhXyl4NCFBX3JBSj1gdnBAVDQ8NS1m
O1EoTCY5VTcKemU4RntnK3hxYVN6UFZFbFlZX0pAeUVjfFVyKD5rWkMwcHNkdTJlNTspVkBoRVRP
Vm1xcUlgfCpsUzV8dFU7ZiZuCnpFPFRjVCk9Yj5heDUrMD07a0RHeWxOYUVNZmM+e04/SnhfU0k0
K0V7V2F3eVJ3RiFKaHcoKUFGXk1tbzlBa3ZIWgp6M2tNWUYyWjZfZy03KW0yO29IX0djd3drO3tR
STN4cEZMe189bURkZFgzSyZWKjZ5QDVPWEpXTik5eCpXU3QxUHIKenYxXiR9LTB+VFVNZ1R4RXh8
ekJxO2wzI09NbEgtS0Ngdj08QzFAQmltblFMXyopWGIqT2dZe35uJENUY3QlUGA3CnpLcCpwMVNY
P30ra1c3LWM+OHEpIXQtY1cxJnJPVXo7Yz5ZRDlJN0YkMk9ecTM5ezx4P2xJKGMhdDhIRi1JeXlR
dwp6RFNOOzNfdCkwWiFMemQ+Vjc5XlFud3kpJElXKy17bGdgZDVLQDF0Q0cyTT9KbXVhME5jZWZj
RDdAI25oTTtmanwKekY/SE9rTHFrSykwXjJ0eVk1QDt7ZVJkXkIyQWo/UWk7c2hvY0Y5SUkyN20j
SzAtT2c+OVJKdGt4JWxpYmFBN0dhCnpEWnM4NyM8LXJ8LVU0azYlam5QI0tpdmpQMWxQU0d1Ymko
OXcqJUVNSCF5aFcpMUVHUCVQQlZoSHdXc35oVT4qRgp6OVV9d3tSNm5WJGpSS1V9ZikjSThfR0BG
PE5CODZ5ZjVEJDtzciFSSjxfUGo3TzYhblEjdlIzKUtzSi1wKD5oOyQKeiNlbEloPWFDYXAlYDFH
aXd6bEB0XmdzPDxOOGs1TlpwSnhzV1gwcGg3b2xtdm83OUdLUDcrYnw7blA0O1JIe3xuCnpQMmRR
RWdpVm1OPDZeNXxVd35DbTchYmNoMHxPWiF4dzlKSDFuNGF8MVNiNmdyISFCcUkyezlYRC0hX0hD
Yz4pcQp6JSN9dXE9dSZXVFB5PkktPlBvRyllcCp9bjQpZnsmMkdSMV5GQllfT01LJWc2MUxtUWdI
I158dyVGZm5TZzRrT2MKekNQO3grYkJ3PmVFXzBSdTBSbTIhWE9SQk96c2VpMzA8PGktOWpmPURx
Q3lncXZ6U1Z4MyY9PkN0emN1MWgoe3lMCnpqPVRXK18yfnNoJE4+VEl1SjlDd3NIQ0tudDM1Qzww
Typ4UUJHRl9WRCE9V1hJdmJRQWgrfjxhMHw7JHNfX35lLQp6R3psRjg1RHJpYmM2NGF8KlZPSmlX
OCRmOSsxcis7an5sOWMyQmJLc096TztXYmF3Vmg9bWFuWmp7MFpzM0hWZz8Kel5yPUM7NE01Vndp
LUc9cnFrejhxTERlOGtwfXdFKEl+UlJ6T1RobEBqO2Jze2k4WEZOYjl7Iy08dHdZI05QflhiCno/
KChCRj9aLTQ0S0BlOTM+aig3enRUQWVLMW08b09Eck93bXBBYEdZZ0VLJFpGMEUxQ2NRejZ0QUlL
bEBxVW85KAp6c1YlTjhoeTUkX0llMlMrZSpXZ0lUVjNPemxFQWl5TSF9ezQmdXpKdikodCNCITVZ
bzJYbS1VT2ErPipqY19YNlcKemokUmpoZmtiTjNkKTVHUEdSN2VSJGR4fkc8T29DTWkmS0U0QVop
LXd1NXtZeStGM316Z3pCWldmaCZQYmYoQko2CnpSSV94IVY0Q3lvR05BcUFIUEJYYnJAaSNqTFpk
dTlNIUg/RkozXntKTD05clcmdz5jOWpFUTU4U25GfDRKSmNQVgp6ZFhJZE11flR5OEgwaDF8OUNt
VyoyQ3xpdGxmeUJ8WTJ4Nzt1cXRAZlEjYyQ+JFZ0WiN8SFYwaS1tSXh2MCNeZTMKek5DIXs9S2V4
SVo0Q2RQM2t3WGBfMHZpcWs2JDV6eWdgOUo4TjxLJURzUFFMaUg+c0p0V2lVPmtKVzJmWUVoeXAy
CnooU24taCZmdVFrO01nVkRTaHQhV3lpfmpkI0FydHgxNk5qU1VHezVvUm1helllN2JLdy02Nmt8
bH1SfjErOCo5bgp6ckF+UGZuUTl6VXZiaWM8QFlTYkNIaWo5Z1ljKCM1X0VzPiZxQCpNLV54fTY9
OCg9ezI0VVptTzBNWDBRc2dnKH0KemE4cGNCdH0/UU8rM18hPHFAWFokM34mIVZebFV0TU4wPn03
R213cDNrKnUmYC1ZRFEwJXspTUhGMXxfdz1hMnlXCnoxfHUlJC1MQ0tSdUJYU3kkakM9eSRLVGR7
K3tMQjB2JEdRTDtQcVcpYzY/QGlDYVU/RmZBNTx0YX5IcnZVYEg3Nwp6SlZoQkJnTWluQ0w9RVoo
TEk5aTxQLXt4UCVXdzFQbV55eHMlYXh4TG89QEVuQDx+I1FlfmZGeWhuJDNEU2JPJW4KelROPCRA
JD9ZZjIhdmpkT1RPRSspZGdCdXdjJHJ+ako0USFHZ1FvUFFYSj9fQlhKOz10SU02fE1QKGl0e1Az
MjwwCnp4Y1VpRj47OTFVWE56ZFQjSChBMUcpTXdhbWBefGI2czlhdSlFa0goMVlPeSQmKDtKRGZm
amB7O01UMk1IcGgtWgp6LXFOJmM7ZWRSdkpTZVpeM1FgXlpwY25RY05JdihJeCs1RVluO01OeWN6
RWxqM0ZefWRwMnl6RnVOQUVhOEl+QGQKelQyUkk9biUjNVhGIXgjK25+U1lvaGdrUy1gTlNFOTY3
SHZmYHRpc31JOHhZNGxaMWl3ZCVzaXFaRHNGeSE4ZDtlCnokV2dQNUhWfV9FQk9fN2l5VVczI0Bv
bCpVN3RgdyMzTXdpcFdXS3owNGZZYSl5RmRDKmhydnVpdTJGPyRaOXB1SAp6O3F6bDllRl5iM3V8
PkJzbktQYnNBI0Q1TDs1cUZ3R09fO2hyQXhETmlZOVpedUk7QVVGKn1heCtGSCpIIWlHQXoKeng8
LVFiPHRXTXt3bkptMnV+P3Z1VWpvZDg9VzhOPjtaUFc4NTlfXigzSlFpc00mYVMlRFhGUEFNckI/
fU54PFlRCnpjcXVheDdjWDlmYzwxZ21vdEFqJDRMMk5STEFMQngmZWNpP29MRj1jTnhUNSk0bT1B
SU1IYmw5TyNPeUF3JDwhewp6RSg0N1FveENVemx0QXVpSVhIbjJpQ2VrJj9gQWZoNDU9QypCZ29x
Yld8VkltS1JSRkRpbiR0K3B2TX03VD83cEcKemg1TEUyZENtOChpRV8/Wj5+S0FnST8mcjIwZ0A5
UzRjZ1VQTHplZ2ZZSW4mcENFd3dQY3RBT0RIVUtoVWt4OFpACnpLRVA5XylUKWIlaXp5VTVnaGZM
YExsN3tIa0JgRz9PYjk8QUElYXYyVTxZfn5hej8tc15vNkd9T0VjbjA3Z34hWAp6OGFmU0JyKUF7
cTJuYkEwSV4xZl9hQkt7T2ctZzYpRzw0O00qTE5ZPjY5WlpPRSVGcENAZ1Fae0dvOVRiVnlURUgK
elY5eEh8eHdBTWs2YXhgfnl6OylpWFAhO35NUy05TW5GbSp+dEolJmNYTEdKNFdKQFA8P3dSc2sr
QHJ3NmQ2UFpZCnpBbjJSVEpXTS1hPiUpZitPRz44TmpmY3JWKil4WV5DVHw+fHtiUXpRcEpmJlg0
Q3ZWdUtTWVUlbjAjZXFZfjApMwp6NGNQc1FGRXFqc2ZsNUdwZksma3czeCRUI2JrdVphVFNVelJr
YjR1ZEtvV3pLVjFhZVR8NEJ4WCtXWXArT2lZK1MKelAlZmlMTlNKcm9xJHQ1Qkl5cmV1TX1oPkAr
TXtTdFAqZ31rUiMjVnslWDR2JHE1JmNrUUVCRThMRSZXdz0+OFUtCno/cjl4LTRTZG84VS16P1RS
e2BRYSthIW5sQ0ZaOEZJNEw8OWdxXioyRComQlBTXjxNenM1c0V3P1I1NVI9MDJHagp6VVVIYShl
VFBqKyl4fXlkTytjTTgjejc/djFJSWZNZ3JecCN0cyMzZnhqZ25RXmE0OyNyKHRhfXc2WER2azlY
REUKej4qREpBcHVULVZrfSpRb3lkVUdPbkpyemZQcSNFZ01waHprSGNXQ2pnXndSVWh8QjtjMD9s
ViE1M0tkPjdQeV4lCnozUFJJfHJYV0hDT0JMa2pyeEozWE5GK2llJnl2KUEqT2Q9LTgqTkdgQEs7
ZSRGJHgtZGV0RW9RUGBSI0EpJGI/agp6N1c1Zk0kRTFPOSYtQX10SGVYTUF6KmhueGRVOF5kP2Y1
MCs+bTx4dHxIZ2FVY2tJeyFMMSUpeEMzdV4mJi1+IXcKejMhcFpHMU95OEpDWHxTSFckcU5QRXk5
ISVrUiNtUUdRfn1zbkI9SUN3ZyMxdUp7MENSQzw9djlONT45PVF3RHRqCno0fGQqVTc/JXxtZWti
clhyd0F2RHEwPD55I2I0TnRYPWcqc3tqV0lseU9jYjFtJWEpR1NLNSlfP0JwfkE1KURISAp6KEpG
aD1WUSR9X3o5ckxUUUlGK0xwRFMmZlNWXiNJZDcjZ21uYVJGRFV4Uz8zN2BzJEk5SmtVUzcxTnJG
b0NwdVYKeihMJmVEYXVgUz87T1IqTE5wR1JVVDROVW0zWUhBTWNkTD87ZnVXJkh4cSFUVzRrIVZA
MmxeYzVKWiRkNllwfDlPCnpHWTlzU3t8SEw7cnhETGg4N0xTfTN9bXJ8cndYWEJEb3tQcCtoQk1o
MzRqfWYpSEolZyRjWXB5ezRPRzUyfXEhNwp6ezBFNUVzbz1wTzBFZyZhVUt3ZiRUaD4hQG4oclZM
SUFEbWZ0T31nQDtgRzM/WFVgeVp2QlA0cUxPcUEqWkdgMWwKejhrTWElT1lNZmo0cTMocUZiOEBg
clhESVR5cTJNX0l8KClnMCtFMWd7MSoye1pJQEU3MVNAOXBjMXROM2ptXzVFCnpMcy16WHY1LXU0
TVlRZlB6M2NAVntnZzBiP3B+fnppKj4rezV+TkdMTylKKU4yenBEQD1uJTh6WjxkPUxXel5MSAp6
SXx3OUJ2Y0F1aWctR3lGcGV+Rz9mUGJpblVjRUdfJUltQVpTSD1ffXZyRSUjekJlNn4xI35IOVcj
RDJiWjxCWEoKemRNZX5CcThBUCRCTn1oJFRJQz1PQWwyJlc9bTQ4SWJ8ZV98MHR+bTBHPHFgPDhL
ZnpGKmdATj1PQSZPK2tvXj8+CnohO3VQKi1sWFZfJGdKV2RvNDtgejFmSmhgdFU9YXFhWWN8OT4k
ZjNhPyp8NntnWUVCY3tsQmg2dEUjJVh5NjdyLQp6T3RfIzU/WU5wMUpeaWRWcEJuNyR1SjtDUWhB
Z01lTFRDSWhUVlhINmR5IUxlXlZ4amNXeDJuOT8xS1okYnJTalkKeiRueUVZS21TaTI3eVJjI19Q
Oyt0U2VyUmlnQ0tHbldad24mPVYkUTBKWWV8TThOVk8oVGk7cHV5PFkjIzdkbjB+CnQmaE4kZl9i
PlZVLVY/dn4jUShMUFNkPTF5VTdMMW9KTmp9R3pFcD1gakBUYkF7bD8/a2UqbGNfJXJwUTEKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXByZXBhaW50
aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOWMyODc3MDM5Zjg3ZWE5MWY1YWU1ZjFmY2Jm
N2JkNjk2MTA3M2YzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
b3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtcHJlcGFpbnRpbmctZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEgQEAKK1RoaXMgdGV4dCBzaG91bGQgYmUgc2hvd24gb24gYSBncmV5IGJhY2tncm91bmQu
IFRoZSByZWN0YW5nbGUgc2hvdWxkIGZpbGwgdGhlIGVudGlyZSBibHVlIGJveCAoc2FucyBzY3Jv
bGxiYXJzKS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Nj
cm9sbGluZy1jb250ZW50LXByZXBhaW50aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1wcmVwYWludGluZy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmIyZmJkMmJkNjU2NTg0YWI0N2M1MjQyNWY3N2IwM2I2YzkwM2I5NzQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1w
cmVwYWludGluZy5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8IS0t
CitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYWNjZWxlcmF0ZWQgc2Nyb2xsaW5nIGxheWVycyBjYW4g
YmUgc2Nyb2xsZWQgd2l0aG91dAorcmVwYWludGluZyB0aGVpciBjb250ZW50cyBhbmQgdGhhdCBh
IHBhcnQgb2YgdGhlIGNvbnRlbnRzIGFyZSBhbHNvIHByZXBhaW50ZWQKK291dHNpZGUgdGhlIG92
ZXJmbG93IGNsaXAuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTYwODcuCisKK1Bhc3NpbmcgY3JpdGVyaWE6IHRleHQgc2hvd24gb24gYSBncmV5IChpbnN0ZWFk
IG9mIHdoaXRlKSByZWN0YW5nbGUgaW4gYSBibHVlCityZWN0YW5nbGUuCistLT4KKworPGh0bWw+
Cis8aGVhZD4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAjc2Nyb2xsZXIgeworICAg
ICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGlu
ZzogdG91Y2g7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsK
KyAgICAgICAgYm9yZGVyOiBzb2xpZCB0aGluIGJsdWU7CisgICAgfQorCisgICAgI2NvbnRlbnQg
eworICAgICAgICBoZWlnaHQ6IDEwMDBweDsKKyAgICAgICAgbWFyZ2luLXRvcDogMjVweDsKKyAg
ICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
aWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICBhbGVydCgnVGhpcyB0ZXN0
IHJlcXVpcmVzIHRlc3RSdW5uZXIgdG8gcnVuIScpOworICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgfQorICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAg
ICAgICB0ZXN0UnVubmVyLnRyYWNrQ29tcG9zaXRpbmdMYXllclJlcGFpbnRzKCk7CisKKyAgICAg
ICAgICAvLyBGaXJzdCBwYWludCB0aGUgZW50aXJlIHZpZXcgaW5jbHVkaW5nIHRoZSBzY3JvbGxp
bmcgZWxlbWVudC4KKyAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKworICAgICAgICAg
IC8vIFNjcm9sbCBkb3duLiBUaGlzIHNob3VsZCBub3QgY2F1c2UgYW55IG1vcmUgcmVwYWludHMg
dG8gdGhlCisgICAgICAgICAgLy8gc2Nyb2xsaW5nIGNvbnRlbnRzLgorICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxlcicpLnNjcm9sbFRvcCA9IDI1OworICAgICAgfSk7
CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9InNjcm9sbGVyIj4KKyAg
ICA8ZGl2IGlkPSJjb250ZW50Ij4KKyAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgc2hvd24gb24g
YSBncmV5IGJhY2tncm91bmQuIFRoZSByZWN0YW5nbGUgc2hvdWxkIGZpbGwKKyAgICAgIHRoZSBl
bnRpcmUgYmx1ZSBib3ggKHNhbnMgc2Nyb2xsYmFycykuCisgICAgPC9kaXY+CisgIDwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtdXBkYXRpbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtdXBkYXRpbmctZXhwZWN0
ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIzYWQzYjI1NDUxOWVhZWRkMGRjMTFkN2VlZTg0NDg2Y2ZhM2Uy
YjcKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI5MDQKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5
fnlVeyt2WVYyYT5pMCpaKT1oXmhsQSVAV3MkbEhgb2s8bX0/b1QheGdDCnp3NnRWSCVSfnpjYkpJ
aktsaGl+QDNybUFVdm1fSFV2KCk0P2dWZkJsaG91WSpUKDNNYDk3OEpSeXVHbjhfcHBOcQp6dEs7
UFdgODV1PDgjdWxAWiQwSlokOXRvcFg9fFRJK05JcU9URCRsNjgxNz9XY3V7aitqKUNEckNXe3pA
Z0hIa0AKeiF4Mm5JVWNJZihfb3M4TWNkUj5we18pckl6eFZ5V0V4PSZHRXcwMVJGeWpDZExrSChU
RnolLURLbHJwUWNlWDdmCnohP35sWit6Yms4OHlGYXBtX2B8K2ZpUSRwIW5QajZ4Pn0zQSQ3aDNn
dFNGNjVfaClEKkU8OHc0bWJ6aGRZe3Aoagp6aDZqc3hWOSg1JCo/VXczWXBGTEhFVGg0S3Q0MTc2
OD40QXNHO0l1UUV8QG8mVW5GeFAmKChmbFE8PWZqKXo0Kn0KSFEkaUJ9TE5zMiYKCmxpdGVyYWwg
MApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJm
bG93L3Njcm9sbGluZy1jb250ZW50LXVwZGF0aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXVwZGF0aW5nLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44YjEzNzg5MTc5MWZlOTY5MjdhZDc4ZTY0YjBhYWQ3YmRlZDA4YmRj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Ny
b2xsaW5nLWNvbnRlbnQtdXBkYXRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLWNvbnRl
bnQtdXBkYXRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9s
bGluZy1jb250ZW50LXVwZGF0aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY4YzdjZmI0NGIwYmQ4OTM5
MWE1NWJjZTNkNWRhMTE4NDExYWRkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LXVwZGF0aW5nLmh0bWwKQEAgLTAs
MCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+CisKKzwhLS0KK1RoaXMgdGVzdCBjaGVja3MgdGhh
dCB0aGUgY29udGVudHMgb2YgYWNjZWxlcmF0ZWQgc2Nyb2xsaW5nIGxheWVycyBhcmUgcHJvcGVy
bHkKK3VwZGF0ZWQgYWxzbyBvdXRzaWRlIHRoZSBjdXJyZW50IG92ZXJmbG93IGNsaXAuIFNlZQor
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDg3LgorCitQYXNzaW5n
IGNyaXRlcmlhOiBncmVlbiByZWN0YW5nbGUgc2hvd24gaW5zdGVhZCBvZiByZWQuCistLT4KKwor
PGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAjc2Nyb2xsZXIg
eworICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNj
cm9sbGluZzogdG91Y2g7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAy
MDBweDsKKyAgICB9CisKKyAgICAjaW5kaWNhdG9yIHsKKyAgICAgICAgYmFja2dyb3VuZDogcmVk
OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgIH0KKworICAgICNjb250ZW50IHsKKyAgICAg
ICAgaGVpZ2h0OiAxMDAwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CisgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
ICAgICAgYWxlcnQoJ1RoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyIHRvIHJ1biEnKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKworICAgICAgICAgIHZhciBzY3JvbGxl
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxlcicpOworICAgICAgICAgIHZhciBp
bmRpY2F0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5kaWNhdG9yJyk7CisKKyAgICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgICAgdGVzdFJ1bm5lci50
cmFja0NvbXBvc2l0aW5nTGF5ZXJSZXBhaW50cygpOworCisgICAgICAgICAgLy8gTWFrZSBzdXJl
IHRoZSBzY3JvbGxpbmcgY29udGVudCBpcyBwYWludGVkIGJlZm9yZSB3ZSBzdGFydC4KKyAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKworICAgICAgICAgIC8vIFNjcm9sbCBhbGwgdGhl
IHdheSB0byB0aGUgYm90dG9tIGFuZCBjaGFuZ2UgdGhlIGNvbG9yIG9mIHRoZQorICAgICAgICAg
IC8vIGluZGljYXRvciAod2hpY2ggaXMgbm93IG91dHNpZGUgdGhlIG92ZXJmbG93IGNsaXApLgor
ICAgICAgICAgIHNjcm9sbGVyLnNjcm9sbFRvcCA9IDEwMDA7CisgICAgICAgICAgaW5kaWNhdG9y
LnN0eWxlLmJhY2tncm91bmQgPSAnZ3JlZW4nOworICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworCisgICAgICAgICAgLy8gU2Nyb2xsIGJhY2sgdXAgYW5kIG1ha2Ugc3VyZSB0aGF0IHRo
ZSB1cGRhdGVkIChncmVlbikgaW5kaWNhdG9yIGlzCisgICAgICAgICAgLy8gdmlzaWJsZS4KKyAg
ICAgICAgICBzY3JvbGxlci5zY3JvbGxUb3AgPSAwOworICAgICAgfSk7CisgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9InNjcm9sbGVyIj4KKyAgICA8ZGl2IGlkPSJpbmRp
Y2F0b3IiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnRlbnQiPjwvZGl2PgorICA8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDIyNWVkMTEzY2ExN2FkYmM0NGE5MTkwY2EyMjMzYWNlNDliMTkxODUu
LjRlZTk3ZDBiM2YzMGQxZjcyNzc0NWY4MTVjZjEyYjU0MWJhMWZmNWIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzM5MCw2ICszMzkw
LDggQEAgd2Via2l0Lm9yZy9iLzk0MjYxIFsgRGVidWcgXSBodHRwL3Rlc3RzL2luc3BlY3Rvci9p
bmRleGVkZGIvcmVzb3VyY2VzLXBhbmVsLmh0bWwKIAogIyBFTkFCTEVfQUNDRUxFUkFURURfT1ZF
UkZMT1dfU0NST0xMSU5HIGlzIG5vdCBjdXJyZW50bHkgZW5hYmxlZCBpbiBDaHJvbWl1bS4KIHdl
YmtpdC5vcmcvYi85NDM1MyBjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1j
bGlwLXRvLXZpZXdwb3J0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85NDM1MyBjb21w
b3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1wcmVwYWludGluZy5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTQzNTMgY29tcG9zaXRpbmcvb3ZlcmZsb3cv
c2Nyb2xsaW5nLWNvbnRlbnQtdXBkYXRpbmcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Vi
a2l0Lm9yZy9iLzk0MzUzIGNvbXBvc2l0aW5nL292ZXJmbG93L3RleHRhcmVhLXNjcm9sbC10b3Vj
aC5odG1sIFsgRmFpbHVyZSBdCiAKICMgRmFpbGluZyBvbiBMaW51eCAoQ29udGVudCBTaGVsbCkg
b25seSBub3cK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170940</attachid>
            <date>2012-10-26 08:57:32 -0700</date>
            <delta_ts>2012-11-06 03:08:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96087-20121026165604.patch</filename>
            <type>text/plain</type>
            <size>10692</size>
            <attacher name="Sami Kyöstilä">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZlMWIyYTA0OGIxNmI0
NzAwZjI5NjM2YTUwNGNiYjlmZmVkNjZiZS4uNzI2MTY0YzQwY2M2OGEwNjk4ZWQ5OGU5OGNlMGFh
N2E2ODNhMWYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDEyLTEwLTI2ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgogCisgICAgICAgIE9wdGltaXplIHBh
aW50aW5nIG9mIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVycworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwODcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb24ndCBjb21wbGV0ZWx5IHJlcGFpbnQgYWNj
ZWxlcmF0ZWQgc2Nyb2xsaW5nIGxheWVycyB3aGVuIHRoZSBzY3JvbGwgb2Zmc2V0CisgICAgICAg
IGNoYW5nZXMuCisKKyAgICAgICAgVGVzdDogY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5n
LXdpdGhvdXQtcGFpbnRpbmcuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRPZmZz
ZXRGcm9tUmVuZGVyZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkpOgorCisyMDEyLTEwLTI2ICBTYW1pIEt5b3N0
aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIEFsbG93IHBhaW50aW5nIG91
dHNpZGUgb3ZlcmZsb3cgY2xpcCBpbiBhY2NlbGVyYXRlZCBzY3JvbGxpbmcgbGF5ZXJzCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA1MjQKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApp
bmRleCAxMDMzM2QzM2JkNDAwNzRmZGQyYzkyY2IyNWJiOGFiNWJkNzY5YWY2Li45ODRiNGZiYzk4
NjU3ZTJlMjlkZmJhNzkwMDI1NmZmMTFmZTJlZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtMjg0LDcgKzI4NCw3IEBA
IHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhpY3NMYXllciog
bGF5ZXIpCiAgICAgbV9yZXBsaWNhTGF5ZXIgPSBsYXllcjsKIH0KIAotdm9pZCBHcmFwaGljc0xh
eWVyOjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQordm9pZCBH
cmFwaGljc0xheWVyOjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0
LCBTaG91bGRTZXROZWVkc0Rpc3BsYXkgc2hvdWxkU2V0TmVlZHNEaXNwbGF5KQogewogICAgIGlm
IChvZmZzZXQgPT0gbV9vZmZzZXRGcm9tUmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTI5
Miw3ICsyOTIsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OnNldE9mZnNldEZyb21SZW5kZXJlcihj
b25zdCBJbnRTaXplJiBvZmZzZXQpCiAgICAgbV9vZmZzZXRGcm9tUmVuZGVyZXIgPSBvZmZzZXQ7
CiAKICAgICAvLyBJZiB0aGUgY29tcG9zaXRpbmcgbGF5ZXIgb2Zmc2V0IGNoYW5nZXMsIHdlIG5l
ZWQgdG8gcmVwYWludC4KLSAgICBzZXROZWVkc0Rpc3BsYXkoKTsKKyAgICBpZiAoc2hvdWxkU2V0
TmVlZHNEaXNwbGF5ID09IFNldE5lZWRzRGlzcGxheSkKKyAgICAgICAgc2V0TmVlZHNEaXNwbGF5
KCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENv
bG9yJiBjb2xvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaAppbmRleCA2NDY1MjBmYjc1MWJmNDQ3YjliYThmYjIwZjFhYTVmYzYzNTM3ZGMy
Li4xMjU2MGI0ZWYzNWExNzM4NjQ3ZTZkY2ZmY2E5OGRhMjIwNzQxODJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0yNDIsOSAr
MjQyLDE0IEBAIHB1YmxpYzoKICAgICBjb25zdCBGbG9hdFBvaW50JiByZXBsaWNhdGVkTGF5ZXJQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGljYXRlZExheWVyUG9zaXRpb247IH0KICAg
ICB2b2lkIHNldFJlcGxpY2F0ZWRMYXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHApIHsg
bV9yZXBsaWNhdGVkTGF5ZXJQb3NpdGlvbiA9IHA7IH0KIAorICAgIGVudW0gU2hvdWxkU2V0TmVl
ZHNEaXNwbGF5IHsKKyAgICAgICAgRG9udFNldE5lZWRzRGlzcGxheSwKKyAgICAgICAgU2V0TmVl
ZHNEaXNwbGF5CisgICAgfTsKKwogICAgIC8vIE9mZnNldCBpcyBvcmlnaW4gb2YgdGhlIHJlbmRl
cmVyIG1pbnVzIG9yaWdpbiBvZiB0aGUgZ3JhcGhpY3MgbGF5ZXIgKHNvIGVpdGhlciB6ZXJvIG9y
IG5lZ2F0aXZlKS4KICAgICBJbnRTaXplIG9mZnNldEZyb21SZW5kZXJlcigpIGNvbnN0IHsgcmV0
dXJuIG1fb2Zmc2V0RnJvbVJlbmRlcmVyOyB9Ci0gICAgdm9pZCBzZXRPZmZzZXRGcm9tUmVuZGVy
ZXIoY29uc3QgSW50U2l6ZSYpOworICAgIHZvaWQgc2V0T2Zmc2V0RnJvbVJlbmRlcmVyKGNvbnN0
IEludFNpemUmLCBTaG91bGRTZXROZWVkc0Rpc3BsYXkgPSBTZXROZWVkc0Rpc3BsYXkpOwogCiAg
ICAgLy8gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXllciAodGhlIGxvY2F0aW9uIG9mIGl0cyB0b3At
bGVmdCBjb3JuZXIgaW4gaXRzIHBhcmVudCkKICAgICBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMjNhYzIxZmQxNzlmYjQ0ZjYyNDQw
MWUwODY4NGU4NjlkZmU4MmQwZC4uOTgzNTI0ZDQ1ZTc3ZmVhZWVkMjY2YWExZGQ4OWQ4NjA2M2Jk
ZjE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKQEAgLTcyOSw5ICs3MjksOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
R3JhcGhpY3NMYXllckdlb21ldHJ5KCkKICAgICAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2Nyb2xs
aW5nTGF5ZXJEaWRDaGFuZ2UobV9vd25pbmdMYXllcik7CiAKICAgICAgICAgbV9zY3JvbGxpbmdD
b250ZW50c0xheWVyLT5zZXRTaXplKHNjcm9sbFNpemUpOwotICAgICAgICAvLyBGSVhNRTogU2Ny
b2xsaW5nIHRoZSBjb250ZW50IGxheWVyIGRvZXMgbm90IG5lZWQgdG8gdHJpZ2dlciBhIHJlcGFp
bnQuIFRoZSBvZmZzZXQgd2lsbCBiZSBjb21wZW5zYXRlZCBhd2F5IGR1cmluZyBwYWludGluZy4K
ICAgICAgICAgLy8gRklYTUU6IFRoZSBwYWludCBvZmZzZXQgYW5kIHRoZSBzY3JvbGwgb2Zmc2V0
IHNob3VsZCByZWFsbHkgYmUgc2VwYXJhdGUgY29uY2VwdHMuCi0gICAgICAgIG1fc2Nyb2xsaW5n
Q29udGVudHNMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKHNjcm9sbGluZ0NvbnRlbnRzT2Zm
c2V0KTsKKyAgICAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5zZXRPZmZzZXRGcm9tUmVu
ZGVyZXIoc2Nyb2xsaW5nQ29udGVudHNPZmZzZXQsIEdyYXBoaWNzTGF5ZXI6OkRvbnRTZXROZWVk
c0Rpc3BsYXkpOwogICAgIH0KIAogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNSZWN0
KGNvbnRlbnRzQm94KCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZjODYxNzFhZDQ2NWRmOGYwMWNjYTAzYTE2YWZhYWNk
MjY0NzNiOWIuLmRiOTdlY2Y1NjFhNmM0NzM1M2Q3NWYxOGM0YTdmY2IzN2M2YWE0N2EgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwyMCBAQAogMjAxMi0xMC0yNiAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNo
cm9taXVtLm9yZz4KIAorICAgICAgICBPcHRpbWl6ZSBwYWludGluZyBvZiBjb21wb3NpdGVkIHNj
cm9sbGluZyBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk2MDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdCB0aGF0IGFjY2VsZXJhdGVkIHNjcm9sbGluZyBsYXllcnMgY2FuIGJlIHNjcm9s
bGVkIHdpdGhvdXQgcmVwYWludGluZworICAgICAgICB0aGVpciBjb250ZW50cy4gTm90ZSB0aGF0
IHRoaXMgdGVzdCB3aWxsIG5vdCBwYXNzIHVubGVzcworICAgICAgICBFTkFCTEVfQUNDRUxFUkFU
RURfT1ZFUkZMT1dfU0NST0xMSU5HIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9vdmVyZmxvdy9zY3JvbGxpbmctd2l0aG91dC1wYWludGluZy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy13aXRob3V0LXBhaW50
aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3Rh
dGlvbnM6CisKKzIwMTItMTAtMjYgIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBjaHJvbWl1bS5v
cmc+CisKICAgICAgICAgQWxsb3cgcGFpbnRpbmcgb3V0c2lkZSBvdmVyZmxvdyBjbGlwIGluIGFj
Y2VsZXJhdGVkIHNjcm9sbGluZyBsYXllcnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMDUyNAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctd2l0aG91dC1wYWludGluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctd2l0aG91dC1wYWlu
dGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc2Y2ExNmRkMTQ3YThjYTM5ZmQ0ZmEzZmRk
ZmM0NTYyNWQxZDQwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L292ZXJmbG93L3Njcm9sbGluZy13aXRob3V0LXBhaW50aW5nLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQ5IEBACisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgIChj
aGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgODAwLjAwIDYwMC4w
MCkKKyAgICAgIChjaGlsZHJlbiAxCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDguMDAgOC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAg
IChwb3NpdGlvbiAwLjAwIC0yNS4wMCkKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAw
IDEwMjUuMDApCisgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAg
ICAgICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAg
MTg1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAgIChy
ZXBhaW50IHJlY3RzCisgICAgICAgICAgICAgICAgKHJlY3QgMTg2LjAwIDEuMDAgMTUuMDAgMTg1
LjAwKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkK
KyAgKQorKQorKHJlcGFpbnQgcmVjdHMKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRtbCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy13aXRob3V0LXBhaW50aW5nLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODEyNDUwMmQ2YjM4MjUwZjFlZTFmMGU4MTNhYzQ0NDI1Y2RmNmFlZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9s
bGluZy13aXRob3V0LXBhaW50aW5nLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0
bWw+CisKKzwhLS0KK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBhY2NlbGVyYXRlZCBzY3JvbGxpbmcg
bGF5ZXJzIGNhbiBiZSBzY3JvbGxlZCB3aXRob3V0CityZXBhaW50aW5nIHRoZWlyIGNvbnRlbnRz
LiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDg3LgorLS0+
CisKKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgI3Njcm9s
bGVyIHsKKyAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgLXdlYmtpdC1vdmVyZmxv
dy1zY3JvbGxpbmc6IHRvdWNoOworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdo
dDogMjAwcHg7CisgICAgICAgIGJvcmRlcjogc29saWQgdGhpbiBibHVlOworICAgIH0KKworICAg
ICNjb250ZW50IHsKKyAgICAgICAgaGVpZ2h0OiAxMDAwcHg7CisgICAgICAgIG1hcmdpbi10b3A6
IDI1cHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CisgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgICAgICAgYWxlcnQoJ1RoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyIHRvIHJ1
biEnKTsKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKyAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworCisgICAgICAgICAgLy8gRmlyc3QgcGFpbnQgdGhl
IGVudGlyZSB2aWV3IGluY2x1ZGluZyB0aGUgc2Nyb2xsaW5nIGVsZW1lbnQuCisgICAgICAgICAg
dmFyIHNjcm9sbGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njcm9sbGVyJyk7CisgICAg
ICAgICAgdmFyIGR1bW15ID0gc2Nyb2xsZXIub2Zmc2V0VG9wOworCisgICAgICAgICAgLy8gU2Ny
b2xsIGRvd24uIFRoaXMgc2hvdWxkIG5vdCBjYXVzZSBhbnkgbW9yZSByZXBhaW50cyB0byB0aGUK
KyAgICAgICAgICAvLyBzY3JvbGxpbmcgY29udGVudHMuCisgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoZG9jdW1lbnQpOworICAgICAgICAgIHNjcm9sbGVy
LnNjcm9sbFRvcCA9IDI1OworCisgICAgICAgICAgdmFyIGxheWVyVHJlZSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsYXllclRyZWUnKTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0
b3BUcmFja2luZ1JlcGFpbnRzKGRvY3VtZW50KTsKKyAgICAgICAgICBsYXllclRyZWUuaW5uZXJU
ZXh0ID0KKyAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JFUEFJTlRfUkVDVFMpOworICAg
ICAgfSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9InNjcm9sbGVy
Ij4KKyAgICA8ZGl2IGlkPSJjb250ZW50Ij48L2Rpdj4KKyAgPC9kaXY+CisgIDxwcmUgaWQ9Imxh
eWVyVHJlZSI+VGhpcyB0ZXh0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgbGF5ZXIgdHJlZS48
L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL292ZXJmbG93L3VwZGF0aW5nLXNjcm9sbGluZy1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3VwZGF0aW5nLXNjcm9sbGluZy1jb250ZW50
LWV4cGVjdGVkLnR4dAppbmRleCA5NTIxNmQ1NGEzMzQ2NzgwYjdiOWUzYzNkYTIwZDJhMDk5MmE1
NDM2Li41NDA5YzJiYTM4ODhlM2ZkNjM5NGFkYzMxZTJiMjYzNzFjOWFhMGQxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy91cGRhdGluZy1zY3JvbGxpbmctY29u
dGVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cv
dXBkYXRpbmctc2Nyb2xsaW5nLWNvbnRlbnQtZXhwZWN0ZWQudHh0CkBAIC0xOCw3ICsxOCw2IEBA
CiAgICAgICAgICAgICAgICAgICAgIChyZWN0IDAuMDAgMC4wMCAxODUuMDAgMjAwLjAwKQogICAg
ICAgICAgICAgICAgICAgICAocmVjdCAwLjAwIDAuMDAgMTg1LjAwIDIwMC4wMCkKICAgICAgICAg
ICAgICAgICAgICAgKHJlY3QgMC4wMCAwLjAwIDE4NS4wMCAyMDAuMDApCi0gICAgICAgICAgICAg
ICAgICAgIChyZWN0IDAuMDAgMC4wMCAxODUuMDAgMTIwMC4wMCkKICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQzZDgzMDNjMjVkYjJmZmY1
ZDkwZTUzMzI3MjZmZmYxNWVjZDA5ZDIuLmQzMzcwNDYxY2YyNDAyZmU5M2ZiOWQzNGY1ZWYxNzc5
MzliMGExOTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMzcxOSw2ICszNzE5LDcgQEAgd2Via2l0Lm9yZy9iLzk5NzM0IFsgTWFjIF0g
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXF1ZXN0LWVuY29kaW5nMi5odG1sIFsgUGEKICMg
RU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyBpcyBub3QgY3VycmVudGx5IGVu
YWJsZWQgaW4gQ2hyb21pdW0uCiB3ZWJraXQub3JnL2IvOTQzNTMgY29tcG9zaXRpbmcvb3ZlcmZs
b3cvc2Nyb2xsaW5nLWNvbnRlbnQtY2xpcC10by12aWV3cG9ydC5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvOTQzNTMgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9zb2Z0d2FyZWNvbXBv
c2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy1jb250ZW50LWNsaXAtdG8tdmlld3BvcnQuaHRtbCBb
IEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk0MzUzIGNvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9s
bGluZy13aXRob3V0LXBhaW50aW5nLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85NDM1
MyBjb21wb3NpdGluZy9vdmVyZmxvdy91cGRhdGluZy1zY3JvbGxpbmctY29udGVudC5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTQzNTMgY29tcG9zaXRpbmcvb3ZlcmZsb3cvdGV4dGFy
ZWEtc2Nyb2xsLXRvdWNoLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85NDM1MyBwbGF0
Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL3NvZnR3YXJlY29tcG9zaXRpbmcvb3ZlcmZsb3cvdGV4dGFy
ZWEtc2Nyb2xsLXRvdWNoLmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172537</attachid>
            <date>2012-11-06 03:08:53 -0800</date>
            <delta_ts>2012-11-14 08:39:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96087-20121106110706.patch</filename>
            <type>text/plain</type>
            <size>11567</size>
            <attacher name="Sami Kyöstilä">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGYxMjkwMDNiZmI2MDU4
YThkZDExOGQxNGNlMDVhNDUyY2UyMDRlYS4uZGFiNmFlNzg0MDgzNDYwOGQ0NzczYjM1MGVjYzJi
MzE4YjBlNWQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDEyLTEwLTI2ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgogCisgICAgICAgIE9wdGltaXplIHBh
aW50aW5nIG9mIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVycworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwODcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb24ndCBjb21wbGV0ZWx5IHJlcGFpbnQgYWNj
ZWxlcmF0ZWQgc2Nyb2xsaW5nIGxheWVycyB3aGVuIHRoZSBzY3JvbGwgb2Zmc2V0CisgICAgICAg
IGNoYW5nZXMuCisKKyAgICAgICAgVGVzdDogY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5n
LXdpdGhvdXQtcGFpbnRpbmcuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRPZmZz
ZXRGcm9tUmVuZGVyZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkpOgorCisyMDEyLTEwLTI2ICBTYW1pIEt5b3N0
aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIEFsbG93IHBhaW50aW5nIG91
dHNpZGUgb3ZlcmZsb3cgY2xpcCBpbiBhY2NlbGVyYXRlZCBzY3JvbGxpbmcgbGF5ZXJzCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA1MjQKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApp
bmRleCBkZDNiN2E5ZGYyZjA0NGRmNjVjNGE0MWIwNjc2ODQ5ODk4ZTNiNTIzLi5kMGVjNTcxZWM3
M2ZkMGZjNDEwMmQyOWI5MzVkNDI1N2QwMzIyMTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtMjk2LDcgKzI5Niw3IEBA
IHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhpY3NMYXllciog
bGF5ZXIpCiAgICAgbV9yZXBsaWNhTGF5ZXIgPSBsYXllcjsKIH0KIAotdm9pZCBHcmFwaGljc0xh
eWVyOjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQordm9pZCBH
cmFwaGljc0xheWVyOjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0
LCBTaG91bGRTZXROZWVkc0Rpc3BsYXkgc2hvdWxkU2V0TmVlZHNEaXNwbGF5KQogewogICAgIGlm
IChvZmZzZXQgPT0gbV9vZmZzZXRGcm9tUmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTMw
NCw3ICszMDQsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OnNldE9mZnNldEZyb21SZW5kZXJlcihj
b25zdCBJbnRTaXplJiBvZmZzZXQpCiAgICAgbV9vZmZzZXRGcm9tUmVuZGVyZXIgPSBvZmZzZXQ7
CiAKICAgICAvLyBJZiB0aGUgY29tcG9zaXRpbmcgbGF5ZXIgb2Zmc2V0IGNoYW5nZXMsIHdlIG5l
ZWQgdG8gcmVwYWludC4KLSAgICBzZXROZWVkc0Rpc3BsYXkoKTsKKyAgICBpZiAoc2hvdWxkU2V0
TmVlZHNEaXNwbGF5ID09IFNldE5lZWRzRGlzcGxheSkKKyAgICAgICAgc2V0TmVlZHNEaXNwbGF5
KCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENv
bG9yJiBjb2xvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaAppbmRleCBlMmM4MmJhMWJiODAzZjU2ZDUxYWM2Zjk5ZjUxZTBjNTAyNjcxYmE2
Li5kNzY5M2JlMGJhMjE2YjFkY2Y4NGNjNDZlYmM0ZDZmYWI4NjRlZWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0yNDIsOSAr
MjQyLDE0IEBAIHB1YmxpYzoKICAgICBjb25zdCBGbG9hdFBvaW50JiByZXBsaWNhdGVkTGF5ZXJQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGljYXRlZExheWVyUG9zaXRpb247IH0KICAg
ICB2b2lkIHNldFJlcGxpY2F0ZWRMYXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHApIHsg
bV9yZXBsaWNhdGVkTGF5ZXJQb3NpdGlvbiA9IHA7IH0KIAorICAgIGVudW0gU2hvdWxkU2V0TmVl
ZHNEaXNwbGF5IHsKKyAgICAgICAgRG9udFNldE5lZWRzRGlzcGxheSwKKyAgICAgICAgU2V0TmVl
ZHNEaXNwbGF5CisgICAgfTsKKwogICAgIC8vIE9mZnNldCBpcyBvcmlnaW4gb2YgdGhlIHJlbmRl
cmVyIG1pbnVzIG9yaWdpbiBvZiB0aGUgZ3JhcGhpY3MgbGF5ZXIgKHNvIGVpdGhlciB6ZXJvIG9y
IG5lZ2F0aXZlKS4KICAgICBJbnRTaXplIG9mZnNldEZyb21SZW5kZXJlcigpIGNvbnN0IHsgcmV0
dXJuIG1fb2Zmc2V0RnJvbVJlbmRlcmVyOyB9Ci0gICAgdm9pZCBzZXRPZmZzZXRGcm9tUmVuZGVy
ZXIoY29uc3QgSW50U2l6ZSYpOworICAgIHZvaWQgc2V0T2Zmc2V0RnJvbVJlbmRlcmVyKGNvbnN0
IEludFNpemUmLCBTaG91bGRTZXROZWVkc0Rpc3BsYXkgPSBTZXROZWVkc0Rpc3BsYXkpOwogCiAg
ICAgLy8gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXllciAodGhlIGxvY2F0aW9uIG9mIGl0cyB0b3At
bGVmdCBjb3JuZXIgaW4gaXRzIHBhcmVudCkKICAgICBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMWYyYTY0N2Y1OTg1NTE1YmY0OTgx
ZjdiYTQ0MGVlMWNiNzc4NTI0Yi4uNjliNWFlMGMwMzdkMGVlNWIzYWJkM2QwZGE3MWU3N2MwYjJj
Y2ZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKQEAgLTc0Miw5ICs3NDIsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
R3JhcGhpY3NMYXllckdlb21ldHJ5KCkKICAgICAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2Nyb2xs
aW5nTGF5ZXJEaWRDaGFuZ2UobV9vd25pbmdMYXllcik7CiAKICAgICAgICAgbV9zY3JvbGxpbmdD
b250ZW50c0xheWVyLT5zZXRTaXplKHNjcm9sbFNpemUpOwotICAgICAgICAvLyBGSVhNRTogU2Ny
b2xsaW5nIHRoZSBjb250ZW50IGxheWVyIGRvZXMgbm90IG5lZWQgdG8gdHJpZ2dlciBhIHJlcGFp
bnQuIFRoZSBvZmZzZXQgd2lsbCBiZSBjb21wZW5zYXRlZCBhd2F5IGR1cmluZyBwYWludGluZy4K
ICAgICAgICAgLy8gRklYTUU6IFRoZSBwYWludCBvZmZzZXQgYW5kIHRoZSBzY3JvbGwgb2Zmc2V0
IHNob3VsZCByZWFsbHkgYmUgc2VwYXJhdGUgY29uY2VwdHMuCi0gICAgICAgIG1fc2Nyb2xsaW5n
Q29udGVudHNMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKHNjcm9sbGluZ0NvbnRlbnRzT2Zm
c2V0KTsKKyAgICAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5zZXRPZmZzZXRGcm9tUmVu
ZGVyZXIoc2Nyb2xsaW5nQ29udGVudHNPZmZzZXQsIEdyYXBoaWNzTGF5ZXI6OkRvbnRTZXROZWVk
c0Rpc3BsYXkpOwogICAgIH0KIAogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNSZWN0
KGNvbnRlbnRzQm94KCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFkMjc3ZmZhNGNkMzMyYzAxZTg5ZGMwYTEzN2UzMDQ3
OTI4MzcyMzkuLjJmOGU4NDhhNGQ2ODA1ZDhkY2VjNDZkOGI1ZmY4NWM3MjhiZjI5OTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwyMiBAQAogMjAxMi0xMC0yNiAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNo
cm9taXVtLm9yZz4KIAorICAgICAgICBPcHRpbWl6ZSBwYWludGluZyBvZiBjb21wb3NpdGVkIHNj
cm9sbGluZyBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk2MDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdCB0aGF0IGFjY2VsZXJhdGVkIHNjcm9sbGluZyBsYXllcnMgY2FuIGJlIHNjcm9s
bGVkIHdpdGhvdXQgcmVwYWludGluZworICAgICAgICB0aGVpciBjb250ZW50cy4gTm90ZSB0aGF0
IHRoaXMgdGVzdCB3aWxsIG5vdCBwYXNzIHVubGVzcworICAgICAgICBFTkFCTEVfQUNDRUxFUkFU
RURfT1ZFUkZMT1dfU0NST0xMSU5HIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9vdmVyZmxvdy9zY3JvbGxpbmctd2l0aG91dC1wYWludGluZy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy13aXRob3V0LXBhaW50
aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3Rh
dGlvbnM6IE1hcmsgdGVzdCBhcyBleHBlY3RlZCB0byBmYWlsCisgICAgICAgICAgYnkgZGVmYXVs
dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczogU2tpcCB0aGUgdGVz
dC4KKworMjAxMi0xMC0yNiAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNocm9taXVtLm9yZz4K
KwogICAgICAgICBBbGxvdyBwYWludGluZyBvdXRzaWRlIG92ZXJmbG93IGNsaXAgaW4gYWNjZWxl
cmF0ZWQgc2Nyb2xsaW5nIGxheWVycwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAwNTI0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL292ZXJmbG93L3Njcm9sbGluZy13aXRob3V0LXBhaW50aW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy13aXRob3V0LXBhaW50aW5n
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzI2MDZjODdkYTUyMDBiOTE4MDZlNzE0ZWMwYTdi
ZDllNzY0Mjc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NDcgQEAKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxk
cmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQor
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9z
aXRpb24gOC4wMCA4LjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAg
ICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAg
ICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVu
IDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKHBv
c2l0aW9uIDAuMDAgLTI1LjAwKQorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTAy
NS4wMCkKKyAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUu
MDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICAgKHJlcGFp
bnQgcmVjdHMKKyAgICAgICAgICAgICAgICAocmVjdCAwLjAwIDAuMDAgMTUuMDAgMTg1LjAwKQor
ICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQor
KQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxp
bmctd2l0aG91dC1wYWludGluZy5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZs
b3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmIwNzcyNWU4
NjBkOWFhODNiYThiMDEyMTYxOWJmYmFiYWY0NjU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRt
bApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKworPCEtLQorVGhpcyB0ZXN0IGNo
ZWNrcyB0aGF0IGFjY2VsZXJhdGVkIHNjcm9sbGluZyBsYXllcnMgY2FuIGJlIHNjcm9sbGVkIHdp
dGhvdXQKK3JlcGFpbnRpbmcgdGhlaXIgY29udGVudHMuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwODcuCistLT4KKworPGh0bWw+Cis8aGVhZD4KKyAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAjc2Nyb2xsZXIgeworICAgICAgICBvdmVyZmxvdzog
c2Nyb2xsOworICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7CisgICAg
ICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgYm9yZGVy
OiBzb2xpZCB0aGluIGJsdWU7CisgICAgfQorCisgICAgI2NvbnRlbnQgeworICAgICAgICBoZWln
aHQ6IDEwMDBweDsKKyAgICAgICAgbWFyZ2luLXRvcDogMjVweDsKKyAgICB9CisgIDwvc3R5bGU+
CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKCF3aW5kb3cudGVz
dFJ1bm5lciB8fCAhd2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICBhbGVydCgnVGhp
cyB0ZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXIgdG8gcnVuIScpOworICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgfQorICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7
CisKKyAgICAgICAgICAvLyBGaXJzdCBwYWludCB0aGUgZW50aXJlIHZpZXcgaW5jbHVkaW5nIHRo
ZSBzY3JvbGxpbmcgZWxlbWVudC4KKyAgICAgICAgICB2YXIgc2Nyb2xsZXIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnc2Nyb2xsZXInKTsKKyAgICAgICAgICB2YXIgZHVtbXkgPSBzY3JvbGxl
ci5vZmZzZXRUb3A7CisKKyAgICAgICAgICAvLyBTY3JvbGwgZG93bi4gVGhpcyBzaG91bGQgbm90
IGNhdXNlIGFueSBtb3JlIHJlcGFpbnRzIHRvIHRoZQorICAgICAgICAgIC8vIHNjcm9sbGluZyBj
b250ZW50cy4KKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50
cyhkb2N1bWVudCk7CisgICAgICAgICAgc2Nyb2xsZXIuc2Nyb2xsVG9wID0gMjU7CisKKyAgICAg
ICAgICB2YXIgbGF5ZXJUcmVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVyVHJlZScp
OworICAgICAgICAgIGxheWVyVHJlZS5pbm5lclRleHQgPQorICAgICAgICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVf
SU5DTFVERVNfUkVQQUlOVF9SRUNUUyk7CisgICAgICAgICAgd2luZG93LmludGVybmFscy5zdG9w
VHJhY2tpbmdSZXBhaW50cyhkb2N1bWVudCk7CisgICAgICB9KTsKKyAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0ic2Nyb2xsZXIiPgorICAgIDxkaXYgaWQ9ImNvbnRlbnQi
PjwvZGl2PgorICA8L2Rpdj4KKyAgPHByZSBpZD0ibGF5ZXJUcmVlIj5UaGlzIHRleHQgd2lsbCBi
ZSByZXBsYWNlZCB3aXRoIHRoZSBsYXllciB0cmVlLjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvdXBkYXRpbmctc2Ny
b2xsaW5nLWNvbnRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvdXBkYXRpbmctc2Nyb2xsaW5nLWNvbnRlbnQtZXhwZWN0ZWQudHh0CmluZGV4IGFiN2I4
NzQyZDhjODI2NDdiYTJmZmYwYjAwNTA3Y2ZjNjdkYzNjYTQuLmZlMjMzM2U1NTNkYjE3NzVmYWVm
N2RhMzFlZWFiNzJiYWM0MzZjOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L292ZXJmbG93L3VwZGF0aW5nLXNjcm9sbGluZy1jb250ZW50LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy91cGRhdGluZy1zY3JvbGxpbmctY29udGVu
dC1leHBlY3RlZC50eHQKQEAgLTE4LDcgKzE4LDYgQEAKICAgICAgICAgICAgICAgICAgICAgKHJl
Y3QgMC4wMCAwLjAwIDE4NS4wMCAyMDAuMDApCiAgICAgICAgICAgICAgICAgICAgIChyZWN0IDAu
MDAgMC4wMCAxODUuMDAgMjAwLjAwKQogICAgICAgICAgICAgICAgICAgICAocmVjdCAwLjAwIDAu
MDAgMTg1LjAwIDIwMC4wMCkKLSAgICAgICAgICAgICAgICAgICAgKHJlY3QgMC4wMCAwLjAwIDE4
NS4wMCAxMjAwLjAwKQogICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNGFkNzU1NGE0Zjk3YWZmMzQ0MzVlMTMzYjk5OTMzMTc4ZDYyYjk0OC4u
ODE2NDJhMGIzNDlkMDVhMjc0NDI3MTY5MjE0NjZkMjFhN2ViMTNjOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNzEyLDYgKzM3MTIs
OCBAQCB3ZWJraXQub3JnL2IvOTk3MzQgWyBNYWMgXSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3JlcXVlc3QtZW5jb2RpbmcyLmh0bWwgWyBQYQogIyBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZM
T1dfU0NST0xMSU5HIGlzIG5vdCBjdXJyZW50bHkgZW5hYmxlZCBpbiBDaHJvbWl1bS4KIHdlYmtp
dC5vcmcvYi85NDM1MyBjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1jbGlw
LXRvLXZpZXdwb3J0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85NDM1MyBwbGF0Zm9y
bS9jaHJvbWl1bS92aXJ0dWFsL3NvZnR3YXJlY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5n
LWNvbnRlbnQtY2xpcC10by12aWV3cG9ydC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2Iv
OTQzNTMgY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRt
bCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk0MzUzIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1
YWwvc29mdHdhcmVjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctd2l0aG91dC1wYWludGlu
Zy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTQzNTMgY29tcG9zaXRpbmcvb3ZlcmZs
b3cvdXBkYXRpbmctc2Nyb2xsaW5nLWNvbnRlbnQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzk0MzUzIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvc29mdHdhcmVjb21wb3NpdGluZy9v
dmVyZmxvdy91cGRhdGluZy1zY3JvbGxpbmctY29udGVudC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvOTQzNTMgY29tcG9zaXRpbmcvb3ZlcmZsb3cvdGV4dGFyZWEtc2Nyb2xsLXRvdWNo
Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggZDI4ZTQyZGQ1ZTEzMjRlYmQyYTZlYTY0YjU3ZDQ0ZDViYjFiYjIzNi4uNTMwM2M1
NWQ1MjJmMDA0NDE1ZjBhMzgyMzIwMjBkZDdhMDNlYTY5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTg0OSw2ICs4NDksNyBAQCBjb21wb3NpdGluZy9v
dmVyZmxvdy9vdmVyZmxvdy1vdmVybGF5LXdpdGgtdG91Y2guaHRtbAogY29tcG9zaXRpbmcvb3Zl
cmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtY2xpcC10by12aWV3cG9ydC5odG1sCiBjb21wb3NpdGlu
Zy9vdmVyZmxvdy90ZXh0YXJlYS1zY3JvbGwtdG91Y2guaHRtbAogY29tcG9zaXRpbmcvb3ZlcmZs
b3cvdXBkYXRpbmctc2Nyb2xsaW5nLWNvbnRlbnQuaHRtbAorY29tcG9zaXRpbmcvb3ZlcmZsb3cv
c2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRtbAogCiAjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NTAyNwogZmFzdC9ibG9jay9mbG9hdC8wMTYuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174170</attachid>
            <date>2012-11-14 08:40:02 -0800</date>
            <delta_ts>2012-11-14 10:52:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96087-20121114163800.patch</filename>
            <type>text/plain</type>
            <size>11453</size>
            <attacher name="Sami Kyöstilä">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFmZDJkMDViNDI4MDFj
MzQxM2JkZDAyNDg2MmUxMmFiNjE4ZDczNC4uZDEyNzdmOThjMmZhMGY4YWJkOGM1ZjI5YzIzZGI1
ZjdkYjk4ZThiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTI2ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE9wdGltaXplIHBh
aW50aW5nIG9mIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGxheWVycworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwODcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb24ndCBjb21wbGV0ZWx5IHJlcGFpbnQgYWNj
ZWxlcmF0ZWQgc2Nyb2xsaW5nIGxheWVycyB3aGVuIHRoZSBzY3JvbGwgb2Zmc2V0CisgICAgICAg
IGNoYW5nZXMuCisKKyAgICAgICAgVGVzdDogY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5n
LXdpdGhvdXQtcGFpbnRpbmcuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRPZmZz
ZXRGcm9tUmVuZGVyZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkpOgorCiAyMDEyLTExLTE0ICBQYXZlbCBGZWxk
bWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6ICJS
ZXZlYWwgaW4gRWxlbWVudCBQYW5lbCIgZG9lc24ndCB3b3JrIGlmIEVsZW1lbnRzIHBhbmVsIGhh
c24ndCBiZWVuIG9wZW5lZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmNwcAppbmRleCBiNWY4YzZmZWEwZTEwYmI4MTgxYjc5M2NhYjE3NDIz
MzM0ZmQ3NmRjLi42ZDFhMjQ3OWE3MmNlNjM1MWI4ODQ4NmVlODFlMDZlOWIzMjkwMGI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cApAQCAtMjk2LDcgKzI5Niw3IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0UmVwbGljYXRlZEJ5
TGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgbV9yZXBsaWNhTGF5ZXIgPSBsYXllcjsK
IH0KIAotdm9pZCBHcmFwaGljc0xheWVyOjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50
U2l6ZSYgb2Zmc2V0KQordm9pZCBHcmFwaGljc0xheWVyOjpzZXRPZmZzZXRGcm9tUmVuZGVyZXIo
Y29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBTaG91bGRTZXROZWVkc0Rpc3BsYXkgc2hvdWxkU2V0TmVl
ZHNEaXNwbGF5KQogewogICAgIGlmIChvZmZzZXQgPT0gbV9vZmZzZXRGcm9tUmVuZGVyZXIpCiAg
ICAgICAgIHJldHVybjsKQEAgLTMwNCw3ICszMDQsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OnNl
dE9mZnNldEZyb21SZW5kZXJlcihjb25zdCBJbnRTaXplJiBvZmZzZXQpCiAgICAgbV9vZmZzZXRG
cm9tUmVuZGVyZXIgPSBvZmZzZXQ7CiAKICAgICAvLyBJZiB0aGUgY29tcG9zaXRpbmcgbGF5ZXIg
b2Zmc2V0IGNoYW5nZXMsIHdlIG5lZWQgdG8gcmVwYWludC4KLSAgICBzZXROZWVkc0Rpc3BsYXko
KTsKKyAgICBpZiAoc2hvdWxkU2V0TmVlZHNEaXNwbGF5ID09IFNldE5lZWRzRGlzcGxheSkKKyAg
ICAgICAgc2V0TmVlZHNEaXNwbGF5KCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0QmFj
a2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCAzOTg5ZTZlZjg3MGVmODdhMWUx
YjZmZDZlMzA2MTgzZDcwZWE5YjhjLi40ZjM5NTQ0ODYwYjJhZWZjZmU3ZTFiOTZjM2U1YmZmYTBl
ZjhlMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5oCkBAIC0yNDIsOSArMjQyLDE0IEBAIHB1YmxpYzoKICAgICBjb25zdCBGbG9hdFBv
aW50JiByZXBsaWNhdGVkTGF5ZXJQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGljYXRl
ZExheWVyUG9zaXRpb247IH0KICAgICB2b2lkIHNldFJlcGxpY2F0ZWRMYXllclBvc2l0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmIHApIHsgbV9yZXBsaWNhdGVkTGF5ZXJQb3NpdGlvbiA9IHA7IH0KIAor
ICAgIGVudW0gU2hvdWxkU2V0TmVlZHNEaXNwbGF5IHsKKyAgICAgICAgRG9udFNldE5lZWRzRGlz
cGxheSwKKyAgICAgICAgU2V0TmVlZHNEaXNwbGF5CisgICAgfTsKKwogICAgIC8vIE9mZnNldCBp
cyBvcmlnaW4gb2YgdGhlIHJlbmRlcmVyIG1pbnVzIG9yaWdpbiBvZiB0aGUgZ3JhcGhpY3MgbGF5
ZXIgKHNvIGVpdGhlciB6ZXJvIG9yIG5lZ2F0aXZlKS4KICAgICBJbnRTaXplIG9mZnNldEZyb21S
ZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0RnJvbVJlbmRlcmVyOyB9Ci0gICAgdm9p
ZCBzZXRPZmZzZXRGcm9tUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYpOworICAgIHZvaWQgc2V0T2Zm
c2V0RnJvbVJlbmRlcmVyKGNvbnN0IEludFNpemUmLCBTaG91bGRTZXROZWVkc0Rpc3BsYXkgPSBT
ZXROZWVkc0Rpc3BsYXkpOwogCiAgICAgLy8gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXllciAodGhl
IGxvY2F0aW9uIG9mIGl0cyB0b3AtbGVmdCBjb3JuZXIgaW4gaXRzIHBhcmVudCkKICAgICBjb25z
dCBGbG9hdFBvaW50JiBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXgg
N2E2ZGIzZjczZWNhMGUzMTU2YzRkZjM1YWFlMjJkZDUzOTkyYzNhZi4uOWU5Y2Y5M2M1NWIwM2Fk
NTk1OWI4OWYyZmQxNDhhNjRiOGEwOWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTc0Miw5ICs3NDIsOCBAQCB2b2lkIFJlbmRl
ckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KCkKICAgICAgICAgICAg
IGNvbXBvc2l0b3IoKS0+c2Nyb2xsaW5nTGF5ZXJEaWRDaGFuZ2UobV9vd25pbmdMYXllcik7CiAK
ICAgICAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5zZXRTaXplKHNjcm9sbFNpemUpOwot
ICAgICAgICAvLyBGSVhNRTogU2Nyb2xsaW5nIHRoZSBjb250ZW50IGxheWVyIGRvZXMgbm90IG5l
ZWQgdG8gdHJpZ2dlciBhIHJlcGFpbnQuIFRoZSBvZmZzZXQgd2lsbCBiZSBjb21wZW5zYXRlZCBh
d2F5IGR1cmluZyBwYWludGluZy4KICAgICAgICAgLy8gRklYTUU6IFRoZSBwYWludCBvZmZzZXQg
YW5kIHRoZSBzY3JvbGwgb2Zmc2V0IHNob3VsZCByZWFsbHkgYmUgc2VwYXJhdGUgY29uY2VwdHMu
Ci0gICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVy
KHNjcm9sbGluZ0NvbnRlbnRzT2Zmc2V0KTsKKyAgICAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xh
eWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIoc2Nyb2xsaW5nQ29udGVudHNPZmZzZXQsIEdyYXBo
aWNzTGF5ZXI6OkRvbnRTZXROZWVkc0Rpc3BsYXkpOwogICAgIH0KIAogICAgIG1fZ3JhcGhpY3NM
YXllci0+c2V0Q29udGVudHNSZWN0KGNvbnRlbnRzQm94KCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGEwOWQ5NjI0N2I1
MzFjNGQxNGJjZTA0MjRmZTFhOTRjZGRiNjc3M2IuLmU2YTkyMzJhZTJmODRjM2QxODMwMzBmMTBj
M2MzNjU2YzBiMTA2NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMC0yNiAgU2FtaSBL
eW9zdGlsYSAgPHNreW9zdGlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBPcHRpbWl6ZSBwYWlu
dGluZyBvZiBjb21wb3NpdGVkIHNjcm9sbGluZyBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IGFjY2VsZXJhdGVkIHNjcm9sbGlu
ZyBsYXllcnMgY2FuIGJlIHNjcm9sbGVkIHdpdGhvdXQgcmVwYWludGluZworICAgICAgICB0aGVp
ciBjb250ZW50cy4gTm90ZSB0aGF0IHRoaXMgdGVzdCB3aWxsIG5vdCBwYXNzIHVubGVzcworICAg
ICAgICBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HIGlzIGVuYWJsZWQuCisK
KyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctd2l0aG91dC1wYWludGlu
Zy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L3Nj
cm9sbGluZy13aXRob3V0LXBhaW50aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6IE1hcmsgdGVzdCBhcyBleHBlY3RlZCB0byBmYWls
CisgICAgICAgICAgYnkgZGVmYXVsdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9uczogU2tpcCB0aGUgdGVzdC4KKwogMjAxMi0xMS0xNCAgUmFwaGFlbCBLdWJvIGRhIENv
c3RhICA8cmFwaGFlbC5rdWJvLmRhLmNvc3RhQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBB
ZGQgc29tZSBtaXNzaW5nIHBpeGVsIGV4cGVjdGF0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy13aXRob3V0LXBhaW50aW5nLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy13aXRo
b3V0LXBhaW50aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzI2MDZjODdkYTUyMDBiOTE4
MDZlNzE0ZWMwYTdiZDllNzY0Mjc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNDcgQEAKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4w
MCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAu
MDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAocG9zaXRpb24gOC4wMCA4LjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIw
Mi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAw
IDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDAuMDAgLTI1LjAwKQorICAgICAgICAgICAgICAgICAgKGJvdW5k
cyAxODUuMDAgMTAyNS4wMCkKKyAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5k
cyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAg
ICAgICAgKHJlcGFpbnQgcmVjdHMKKyAgICAgICAgICAgICAgICAocmVjdCAwLjAwIDAuMDAgMTUu
MDAgMTg1LjAwKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQor
ICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVy
Zmxvdy9zY3JvbGxpbmctd2l0aG91dC1wYWludGluZy5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lMDU4NDcyZDBiMzNmMjk4NTAzZjZmNGYyZTZkZDU1ZWZmYTZlZWNhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLXdpdGhvdXQt
cGFpbnRpbmcuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKworPCEtLQor
VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGFjY2VsZXJhdGVkIHNjcm9sbGluZyBsYXllcnMgY2FuIGJl
IHNjcm9sbGVkIHdpdGhvdXQKK3JlcGFpbnRpbmcgdGhlaXIgY29udGVudHMuIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwODcuCistLT4KKworPGh0bWw+Cis8
aGVhZD4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAjc2Nyb2xsZXIgeworICAgICAg
ICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzog
dG91Y2g7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAg
ICAgICAgYm9yZGVyOiBzb2xpZCB0aGluIGJsdWU7CisgICAgfQorCisgICAgI2NvbnRlbnQgewor
ICAgICAgICBoZWlnaHQ6IDEwMDBweDsKKyAgICAgICAgbWFyZ2luLXRvcDogMjVweDsKKyAgICB9
CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYg
KCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhd2luZG93LmludGVybmFscykgeworICAgICAgICAgICAg
ICBhbGVydCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXIgdG8gcnVuIScpOworICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dChmYWxzZSk7CisKKyAgICAgICAgICAvLyBGaXJzdCBwYWludCB0aGUgZW50aXJlIHZpZXcg
aW5jbHVkaW5nIHRoZSBzY3JvbGxpbmcgZWxlbWVudC4KKyAgICAgICAgICB2YXIgc2Nyb2xsZXIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nyb2xsZXInKTsKKyAgICAgICAgICBzY3JvbGxl
ci5vZmZzZXRUb3A7CisKKyAgICAgICAgICAvLyBTY3JvbGwgZG93bi4gVGhpcyBzaG91bGQgbm90
IGNhdXNlIGFueSBtb3JlIHJlcGFpbnRzIHRvIHRoZQorICAgICAgICAgIC8vIHNjcm9sbGluZyBj
b250ZW50cy4KKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50
cyhkb2N1bWVudCk7CisgICAgICAgICAgc2Nyb2xsZXIuc2Nyb2xsVG9wID0gMjU7CisKKyAgICAg
ICAgICB2YXIgbGF5ZXJUcmVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVyVHJlZScp
OworICAgICAgICAgIGxheWVyVHJlZS5pbm5lclRleHQgPQorICAgICAgICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVf
SU5DTFVERVNfUkVQQUlOVF9SRUNUUyk7CisgICAgICAgICAgd2luZG93LmludGVybmFscy5zdG9w
VHJhY2tpbmdSZXBhaW50cyhkb2N1bWVudCk7CisgICAgICB9KTsKKyAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0ic2Nyb2xsZXIiPgorICAgIDxkaXYgaWQ9ImNvbnRlbnQi
PjwvZGl2PgorICA8L2Rpdj4KKyAgPHByZSBpZD0ibGF5ZXJUcmVlIj5UaGlzIHRleHQgd2lsbCBi
ZSByZXBsYWNlZCB3aXRoIHRoZSBsYXllciB0cmVlLjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvdXBkYXRpbmctc2Ny
b2xsaW5nLWNvbnRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvdXBkYXRpbmctc2Nyb2xsaW5nLWNvbnRlbnQtZXhwZWN0ZWQudHh0CmluZGV4IGFiN2I4
NzQyZDhjODI2NDdiYTJmZmYwYjAwNTA3Y2ZjNjdkYzNjYTQuLmZlMjMzM2U1NTNkYjE3NzVmYWVm
N2RhMzFlZWFiNzJiYWM0MzZjOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L292ZXJmbG93L3VwZGF0aW5nLXNjcm9sbGluZy1jb250ZW50LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy91cGRhdGluZy1zY3JvbGxpbmctY29udGVu
dC1leHBlY3RlZC50eHQKQEAgLTE4LDcgKzE4LDYgQEAKICAgICAgICAgICAgICAgICAgICAgKHJl
Y3QgMC4wMCAwLjAwIDE4NS4wMCAyMDAuMDApCiAgICAgICAgICAgICAgICAgICAgIChyZWN0IDAu
MDAgMC4wMCAxODUuMDAgMjAwLjAwKQogICAgICAgICAgICAgICAgICAgICAocmVjdCAwLjAwIDAu
MDAgMTg1LjAwIDIwMC4wMCkKLSAgICAgICAgICAgICAgICAgICAgKHJlY3QgMC4wMCAwLjAwIDE4
NS4wMCAxMjAwLjAwKQogICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggMmRhMzZjOTdiNGI1YzMzY2M1M2Q1ZGRhYmFkNTZhNmMxZmQ1MzVlYi4u
ZmFiNTYzNTk5OTRhYzM4MTNjMjIwOWU2MWUxMjE0YjFiNjQyMGUwMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNzY4LDYgKzM3Njgs
OCBAQCB3ZWJraXQub3JnL2IvOTk3MzQgWyBNYWMgXSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3JlcXVlc3QtZW5jb2RpbmcyLmh0bWwgWyBQYQogIyBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZM
T1dfU0NST0xMSU5HIGlzIG5vdCBjdXJyZW50bHkgZW5hYmxlZCBpbiBDaHJvbWl1bS4KIHdlYmtp
dC5vcmcvYi85NDM1MyBjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctY29udGVudC1jbGlw
LXRvLXZpZXdwb3J0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85NDM1MyBwbGF0Zm9y
bS9jaHJvbWl1bS92aXJ0dWFsL3NvZnR3YXJlY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5n
LWNvbnRlbnQtY2xpcC10by12aWV3cG9ydC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2Iv
OTQzNTMgY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRt
bCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk0MzUzIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1
YWwvc29mdHdhcmVjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctd2l0aG91dC1wYWludGlu
Zy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTQzNTMgY29tcG9zaXRpbmcvb3ZlcmZs
b3cvdXBkYXRpbmctc2Nyb2xsaW5nLWNvbnRlbnQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzk0MzUzIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvc29mdHdhcmVjb21wb3NpdGluZy9v
dmVyZmxvdy91cGRhdGluZy1zY3JvbGxpbmctY29udGVudC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvOTQzNTMgY29tcG9zaXRpbmcvb3ZlcmZsb3cvdGV4dGFyZWEtc2Nyb2xsLXRvdWNo
Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMDYzZGY5OTNkOGViOWQxODg0N2UwYjNmYmZhNGVlMGJkZWM0MDI0Mi4uYWE2MDgx
MTU5NTBjODZjNmU2OWM3MzdkNDc1Mjk3YzBjMjMwNzc2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTg1Niw2ICs4NTYsNyBAQCBjb21wb3NpdGluZy9v
dmVyZmxvdy9vdmVyZmxvdy1vdmVybGF5LXdpdGgtdG91Y2guaHRtbAogY29tcG9zaXRpbmcvb3Zl
cmZsb3cvc2Nyb2xsaW5nLWNvbnRlbnQtY2xpcC10by12aWV3cG9ydC5odG1sCiBjb21wb3NpdGlu
Zy9vdmVyZmxvdy90ZXh0YXJlYS1zY3JvbGwtdG91Y2guaHRtbAogY29tcG9zaXRpbmcvb3ZlcmZs
b3cvdXBkYXRpbmctc2Nyb2xsaW5nLWNvbnRlbnQuaHRtbAorY29tcG9zaXRpbmcvb3ZlcmZsb3cv
c2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRtbAogCiAjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NTAyNwogZmFzdC9ibG9jay9mbG9hdC8wMTYuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>