<?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>89514</bug_id>
          
          <creation_ts>2012-06-19 14:24:17 -0700</creation_ts>
          <short_desc>Add url to supportsType</short_desc>
          <delta_ts>2012-06-22 13:28:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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>
          
          <blocked>87514</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Danilo de Paula">danilo.eu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andrunko</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gustavo</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>652811</commentid>
    <comment_count>0</comment_count>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-19 14:24:17 -0700</bug_when>
    <thetext>Add url to supportsType</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652813</commentid>
    <comment_count>1</comment_count>
      <attachid>148423</attachid>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-19 14:25:48 -0700</bug_when>
    <thetext>Created attachment 148423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652815</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-19 14:28:48 -0700</bug_when>
    <thetext>Attachment 148423 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/graphics/MediaPlayer.h:206:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/html/HTMLMediaElement.h:131:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652822</commentid>
    <comment_count>3</comment_count>
      <attachid>148427</attachid>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-19 14:32:29 -0700</bug_when>
    <thetext>Created attachment 148427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652834</commentid>
    <comment_count>4</comment_count>
      <attachid>148427</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-06-19 14:41:05 -0700</bug_when>
    <thetext>Comment on attachment 148427
Patch

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        In the case of two media players where one is used for MediaStream, it needs to know the URL to check if it&apos;s
&gt; +        a MediaStream generated blob, to return if it&apos;s supported or not.

I don&apos;t understand this. Please elaborate.

&gt; Source/WebCore/ChangeLog:13
&gt; +        No new tests since there&apos;s no change on code behavior.

If there is no change in behavior, why is the code change necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652914</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-19 15:59:41 -0700</bug_when>
    <thetext>This is related with bug 87514 [GStreamer] Adding Farstream backend to WebRTC implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652920</commentid>
    <comment_count>6</comment_count>
      <attachid>148427</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-19 16:11:20 -0700</bug_when>
    <thetext>Comment on attachment 148427
Patch

Attachment 148427 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13002018</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653376</commentid>
    <comment_count>7</comment_count>
      <attachid>148543</attachid>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-20 05:53:47 -0700</bug_when>
    <thetext>Created attachment 148543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653387</commentid>
    <comment_count>8</comment_count>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-20 06:13:08 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 148427 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=148427&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:6
&gt; &gt; +        In the case of two media players where one is used for MediaStream, it needs to know the URL to check if it&apos;s
&gt; &gt; +        a MediaStream generated blob, to return if it&apos;s supported or not.
&gt; 
&gt; I don&apos;t understand this. Please elaborate.

When the user calls webkitGetUserMedia it will create a blob specific for that stream.

On GTK we&apos;ve created an StreamMediaPlayer to be used for the propose of playing rtp streams created by the mediastream call, however we&apos;re having issues on how to identify if we should use this player or the gstreamer one, since the MediaPlayerPrivateInterface::supportsType(type,codec) doesn&apos;t have access to the media&apos;s url.

With this patch the new player will be able to identify if the media is a mediastream blob created by us (using MediaStreamRegistry::registry().lookupMediaStreamDescriptor(url)), and then return MediaPlayer::IsSupported;

While the players that don&apos;t implement MediaStream or those using the same player could just ignore that.

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; +        No new tests since there&apos;s no change on code behavior.
&gt; 
&gt; If there is no change in behavior, why is the code change necessary?

Since basically the current ports will just ignore the parameter, I initially thought that no tests would be necessary. But since it modifies the MediaPlayer API I&apos;ll check which tests need to be changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653791</commentid>
    <comment_count>9</comment_count>
      <attachid>148543</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-20 12:52:24 -0700</bug_when>
    <thetext>Comment on attachment 148543
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        adding url to MediaPlayer::supportsType
&gt; +
&gt; +        In the case of two media players where one is used for MediaStream, it needs to know the URL to check if it&apos;s
&gt; +        a MediaStream generated blob, to return if it&apos;s supported or not.
&gt; +
&gt; +        Add url to supportsType
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=89514
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).

The format is wrong. Usually it&apos;s

Bug title
link

Reviewed by ...

Explanation of the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654437</commentid>
    <comment_count>10</comment_count>
      <attachid>148780</attachid>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-21 06:25:42 -0700</bug_when>
    <thetext>Created attachment 148780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654559</commentid>
    <comment_count>11</comment_count>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-21 08:34:56 -0700</bug_when>
    <thetext>Eric: if I&apos;ve changed only the privateinterfaces API and its usage, I believe the current media tests will cover the modification, since the current players won&apos;t use the new parameter.

The new parameter will be use when [1] is accepted

Source/WebCore/platform/graphics/gstreamer/StreamMediaPlayerPrivateGStreamer.cpp
[1] http://pastebin.com/vHZA2K9g</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654641</commentid>
    <comment_count>12</comment_count>
      <attachid>148780</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-06-21 10:07:56 -0700</bug_when>
    <thetext>Comment on attachment 148780
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        When a blob is created as the address for a Media Stream, the MediaEngine
&gt; +        will ask it&apos;s players if they support that media. However, a player built
&gt; +        for MediaStream needs to know to URL to decide if it&apos;s or it&apos;s not supported.

Nit: &quot;if it&apos;s or it&apos;s not supported&quot; is slightly awkward, I suggest something like &quot;if it is supported or not&quot;

&gt; Source/WebCore/platform/graphics/MediaPlayer.h:426
&gt; +typedef MediaPlayer::SupportsType (*MediaEngineSupportsType)(const String&amp; type, const String&amp; codecs, const String&amp; keySystem, const String&amp; url);

Why not pass the url as a KURL rather than as a string?

&gt; Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:731
&gt; +MediaPlayer::SupportsType MediaPlayerPrivateAVFoundationCF::supportsType(const String&amp; type, const String&amp; codecs, const String&amp; url)
&gt;  {
&gt; +    UNUSED_PARAM(url);
&gt; +

The &quot;UNUSED_PARAM()&quot; will be unnecessary if you leave out the parameter name, e.g.. const String&amp; codecs, const String&amp;)

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:678
&gt; +MediaPlayer::SupportsType MediaPlayerPrivateAVFoundationObjC::supportsType(const String&amp; type, const String&amp; codecs, const String&amp; url)
&gt;  {
&gt; +    UNUSED_PARAM(url);
&gt; +

Ditto here and throughout the rest of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655384</commentid>
    <comment_count>13</comment_count>
      <attachid>149005</attachid>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-22 05:43:54 -0700</bug_when>
    <thetext>Created attachment 149005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655385</commentid>
    <comment_count>14</comment_count>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-22 05:47:43 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 148780 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=148780&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        When a blob is created as the address for a Media Stream, the MediaEngine
&gt; &gt; +        will ask it&apos;s players if they support that media. However, a player built
&gt; &gt; +        for MediaStream needs to know to URL to decide if it&apos;s or it&apos;s not supported.
&gt; 
&gt; Nit: &quot;if it&apos;s or it&apos;s not supported&quot; is slightly awkward, I suggest something like &quot;if it is supported or not&quot;

Agreed 

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.h:426
&gt; &gt; +typedef MediaPlayer::SupportsType (*MediaEngineSupportsType)(const String&amp; type, const String&amp; codecs, const String&amp; keySystem, const String&amp; url);
&gt; 
&gt; Why not pass the url as a KURL rather than as a string?

I was using String because it was enough and all the other parameters were Strings. But I agree what a KURL is semantic better and might be needed/wanted in the future. Fixed

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:731
&gt; &gt; +MediaPlayer::SupportsType MediaPlayerPrivateAVFoundationCF::supportsType(const String&amp; type, const String&amp; codecs, const String&amp; url)
&gt; &gt;  {
&gt; &gt; +    UNUSED_PARAM(url);
&gt; &gt; +
&gt; 
&gt; The &quot;UNUSED_PARAM()&quot; will be unnecessary if you leave out the parameter name, e.g.. const String&amp; codecs, const String&amp;)

Right. Fixed for all code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655394</commentid>
    <comment_count>15</comment_count>
      <attachid>149008</attachid>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-22 06:02:25 -0700</bug_when>
    <thetext>Created attachment 149008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655396</commentid>
    <comment_count>16</comment_count>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-22 06:04:36 -0700</bug_when>
    <thetext>In that case I had to change m_url to be a KURL.
I could construct a KURL for the supportsType calls, but changing m_url to KURL make more sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655417</commentid>
    <comment_count>17</comment_count>
      <attachid>149008</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-22 06:50:05 -0700</bug_when>
    <thetext>Comment on attachment 149008
Patch

Attachment 149008 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13072037</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655495</commentid>
    <comment_count>18</comment_count>
      <attachid>149037</attachid>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-22 09:12:08 -0700</bug_when>
    <thetext>Created attachment 149037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655509</commentid>
    <comment_count>19</comment_count>
      <attachid>149037</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-22 09:34:10 -0700</bug_when>
    <thetext>Comment on attachment 149037
Patch

Attachment 149037 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13038418</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655516</commentid>
    <comment_count>20</comment_count>
      <attachid>149044</attachid>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-22 09:46:07 -0700</bug_when>
    <thetext>Created attachment 149044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655543</commentid>
    <comment_count>21</comment_count>
      <attachid>149044</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-06-22 10:10:55 -0700</bug_when>
    <thetext>Comment on attachment 149044
Patch

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

This looks great modulo the two minor issues noted. Thanks!

&gt; Source/WebCore/ChangeLog:15
&gt; +        for MediaStream needs to know to URL to decide if it&apos;s supported or not.
&gt; +
&gt; +
&gt; +        * dom/DOMImplementation.cpp:

Minor nit: extra blank line here.

&gt; Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:731
&gt; +    UNUSED_PARAM(url);
&gt; +

Oops, it looks like you forgot to change this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655554</commentid>
    <comment_count>22</comment_count>
      <attachid>149051</attachid>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-22 10:24:04 -0700</bug_when>
    <thetext>Created attachment 149051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655556</commentid>
    <comment_count>23</comment_count>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-22 10:25:50 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 149044 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149044&amp;action=review
&gt; 
&gt; This looks great modulo the two minor issues noted. Thanks!
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:15
&gt; &gt; +        for MediaStream needs to know to URL to decide if it&apos;s supported or not.
&gt; &gt; +
&gt; &gt; +
&gt; &gt; +        * dom/DOMImplementation.cpp:
&gt; 
&gt; Minor nit: extra blank line here.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:731
&gt; &gt; +    UNUSED_PARAM(url);
&gt; &gt; +
&gt; 
&gt; Oops, it looks like you forgot to change this one.

Thanks for the review! Can you add it to the queue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655561</commentid>
    <comment_count>24</comment_count>
      <attachid>149051</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-06-22 10:32:17 -0700</bug_when>
    <thetext>Comment on attachment 149051
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:730
&gt; +MediaPlayer::SupportsType MediaPlayerPrivateAVFoundationCF::supportsType(const String&amp; type, const String&amp; codecs, const KURL&amp; url)
&gt;  {
&gt;      // Only return &quot;IsSupported&quot; if there is no codecs parameter for now as there is no way to ask if it supports an

This will fail to compile: &quot;const KURL&amp; url&quot; -&gt; &quot;const KURL&amp;&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655579</commentid>
    <comment_count>25</comment_count>
      <attachid>149056</attachid>
    <who name="Danilo de Paula">danilo.eu</who>
    <bug_when>2012-06-22 10:43:17 -0700</bug_when>
    <thetext>Created attachment 149056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655705</commentid>
    <comment_count>26</comment_count>
      <attachid>149056</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-06-22 13:03:28 -0700</bug_when>
    <thetext>Comment on attachment 149056
Patch

@Danilo, I am adding this to the commit queue because you asked in a comment, but in the future you can just set the cq? flag to signal to the reviewer that you would like the patch to be added to the commit queue when it gets an r+.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655721</commentid>
    <comment_count>27</comment_count>
      <attachid>149056</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-22 13:28:43 -0700</bug_when>
    <thetext>Comment on attachment 149056
Patch

Clearing flags on attachment: 149056

Committed r121053: &lt;http://trac.webkit.org/changeset/121053&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655722</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-22 13:28:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148423</attachid>
            <date>2012-06-19 14:25:48 -0700</date>
            <delta_ts>2012-06-19 14:32:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89514-20120619182547.patch</filename>
            <type>text/plain</type>
            <size>29441</size>
            <attacher name="Danilo de Paula">danilo.eu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlNWZkZWE5MDA4Mzkx
YWFjYzBhOTViOTY1OGQwZGIyMzk2OWI1NC4uMDZkNzcyM2QwMDExNGE3NmIwYzYwZWQxNjQ5OTIz
ODg0YjA5YWNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA2LTE5ICBEYW5p
bG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgIDxkYW5pbG8uY2VzYXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIGFkZGluZyB1cmwgdG8gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZQorCisgICAg
ICAgIEluIHRoZSBjYXNlIG9mIHR3byBtZWRpYSBwbGF5ZXJzIHdoZXJlIG9uZSBpcyB1c2VkIGZv
ciBNZWRpYVN0cmVhbSwgaXQgbmVlZHMgdG8ga25vdyB0aGUgVVJMIHRvIGNoZWNrIGlmIGl0J3MK
KyAgICAgICAgYSBNZWRpYVN0cmVhbSBnZW5lcmF0ZWQgYmxvYiwgdG8gcmV0dXJuIGlmIGl0J3Mg
c3VwcG9ydGVkIG9yIG5vdC4KKworICAgICAgICBBZGQgdXJsIHRvIHN1cHBvcnRzVHlwZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk1MTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
c2luY2UgdGhlcmUncyBubyBjaGFuZ2Ugb24gY29kZSBiZWhhdmlvci4KKworICAgICAgICAqIGRv
bS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRh
dGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQp
OgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKE1lZGlhUGxheWVyRmFjdG9yeSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckZhY3Rvcnk6Ok1lZGlhUGxheWVyRmFjdG9y
eSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRQbGFpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnN1cHBvcnRz
VHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgIChNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9y
dHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxh
eWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlOjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oOgorICAgICAgICAoTWVkaWFQbGF5
ZXJQcml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzdXBw
b3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJp
dmF0ZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF0OjpzdXBw
b3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJp
dmF0ZVF0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVRdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dDo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oOgorICAgICAgICAo
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaDoKKyAgICAgICAg
KE1lZGlhUGxheWVyUHJpdmF0ZSk6CisKIDIwMTItMDYtMDggIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IHNldmVyYWwg
Y29tcGlsZXIgd2FybmluZ3MgYW5kIGVycm9ycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVt
ZW50YXRpb24uY3BwCmluZGV4IDRkM2Q4NTMzYWQwYTJkM2Q5NzRjZWM2OTY0ZjIyNzI4OGI2ZTYx
YzcuLjBjN2EwYmJhYmM4MTBjODAwNTU2M2QwODc5Njk3ZmE3ZTI1ZmEwYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtNDA3LDcgKzQwNyw3IEBAIFBhc3NS
ZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBT
dHJpbmcmIHR5cGUsIEZyYW1lCiAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgdHlwZSBjYW4g
YmUgcGxheWVkIGJ5IG91ciBNZWRpYVBsYXllciwgaWYgc28gY3JlYXRlIGEgTWVkaWFEb2N1bWVu
dAogICAgIC8vIEtleSBzeXN0ZW0gaXMgbm90IGFwcGxpY2FibGUgaGVyZS4KICAgICBET01JbXBs
ZW1lbnRhdGlvblN1cHBvcnRzVHlwZUNsaWVudCBjbGllbnQoZnJhbWUgJiYgZnJhbWUtPnNldHRp
bmdzKCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCksIHVy
bC5ob3N0KCkpOwotICAgIGlmIChNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKENvbnRlbnRUeXBl
KHR5cGUpLCBTdHJpbmcoKSwgJmNsaWVudCkpCisgICAgaWYgKE1lZGlhUGxheWVyOjpzdXBwb3J0
c1R5cGUoQ29udGVudFR5cGUodHlwZSksIFN0cmluZygpLCB1cmwsICZjbGllbnQpKQogICAgICAg
ICAgcmV0dXJuIE1lZGlhRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgdXJsKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA0ODljNTEyMmQ0NGU0
OGVmZGQ0YmQyMDkzZjE3M2JmZjA3YjliOWQ2Li42MWUwNmVmNjhhOGQwYTQ2ZjUzOTdhYjc5NzFl
Njg1YWU3MmJlMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTYxOCw5ICs2MTgsOSBAQCBIVE1MTWVkaWFFbGVtZW50OjpOZXR3b3JrU3RhdGUgSFRNTE1l
ZGlhRWxlbWVudDo6bmV0d29ya1N0YXRlKCkgY29uc3QKICAgICByZXR1cm4gbV9uZXR3b3JrU3Rh
dGU7CiB9CiAKLVN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkgY29uc3QKK1N0cmluZyBIVE1M
TWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSwgY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewotICAgIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29u
dGVudFR5cGUobWltZVR5cGUpLCBrZXlTeXN0ZW0sIHRoaXMpOworICAgIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5
cGUobWltZVR5cGUpLCBrZXlTeXN0ZW0sIHVybCwgdGhpcyk7CiAgICAgU3RyaW5nIGNhblBsYXk7
CiAKICAgICAvLyA0LjguMTAuMwpAQCAtNjM3LDcgKzYzNyw3IEBAIFN0cmluZyBIVE1MTWVkaWFF
bGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcm
IGtleVN5CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgCi0gICAgTE9HKE1lZGlhLCAi
SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoJXMsICVzKSAtPiAlcyIsIG1pbWVUeXBlLnV0
ZjgoKS5kYXRhKCksIGtleVN5c3RlbS51dGY4KCkuZGF0YSgpLCBjYW5QbGF5LnV0ZjgoKS5kYXRh
KCkpOworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCVzLCAl
cywgJXMpIC0+ICVzIiwgbWltZVR5cGUudXRmOCgpLmRhdGEoKSwga2V5U3lzdGVtLnV0ZjgoKS5k
YXRhKCksIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBjYW5QbGF5LnV0ZjgoKS5kYXRhKCkp
OwogCiAgICAgcmV0dXJuIGNhblBsYXk7CiB9CkBAIC0zMTc1LDcgKzMxNzUsNyBAQCBLVVJMIEhU
TUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZChDb250ZW50VHlwZSogY29udGVu
dFR5cGUsIFN0cmluZyogawogICAgICAgICAgICAgaWYgKHNob3VsZExvZykKICAgICAgICAgICAg
ICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQg
LSAndHlwZScgaXMgJyVzJyAtIGtleSBzeXN0ZW0gaXMgJyVzJyIsIHR5cGUudXRmOCgpLmRhdGEo
KSwgc3lzdGVtLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCi0gICAgICAgICAgICBpZiAoIU1lZGlh
UGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5cGUodHlwZSksIHN5c3RlbSwgdGhpcykpCisg
ICAgICAgICAgICBpZiAoIU1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5cGUodHlw
ZSksIHN5c3RlbSwgbWVkaWFVUkwsIHRoaXMpKQogICAgICAgICAgICAgICAgIGdvdG8gY2hlY2tf
YWdhaW47CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApp
bmRleCAxNjczZTE1MzUyNDkxOGQ1Mjk1NzFlOGI5NWVkMmVhNTRkZjkzNTgwLi40ZDFkZWEwMjcx
YWRjN2ExNmVjZjQ3ZGFjOTllYjU4MjA1MjhmNGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQ
dHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICB2b2lkIGxvYWQoRXhjZXB0aW9u
Q29kZSYpOwotICAgIFN0cmluZyBjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSA9IFN0cmluZygpKSBjb25zdDsKKyAgICBTdHJpbmcgY2Fu
UGxheVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0g
PSBTdHJpbmcoKSwgY29uc3QgS1VSTCYgdXJsID0gS1VSTCgpKSBjb25zdDsKIAogLy8gcmVhZHkg
c3RhdGUKICAgICBSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA3ZDg0NWFjY2M4
Y2IzZGQwNjFmYzdlNTYxZDcxNTA4ODYyZTcxMTE0Li4xYjJkYThiMTY5MTFhN2JlOTNlYjI2NzFi
Yzg1Y2ExM2QwNzYzYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xNzYsMTUgKzE3NiwxNCBAQCBzdHJ1Y3QgTWVkaWFQbGF5
ZXJGYWN0b3J5IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVBsYXllckZhY3Rvcnkp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBNZWRpYVBsYXllckZhY3Rv
cnkoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIgY29uc3RydWN0b3IsIE1lZGlhRW5naW5lU3VwcG9y
dGVkVHlwZXMgZ2V0U3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBv
cnRzVHlwZUFuZENvZGVjcywKLSAgICAgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNo
ZSBnZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUgY2xlYXJN
ZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUgY2xlYXJNZWRpYUNh
Y2hlRm9yU2l0ZSkgCisgICAgICAgIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUgZ2V0
U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlIGNsZWFyTWVkaWFD
YWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlIGNsZWFyTWVkaWFDYWNoZUZv
clNpdGUpCiAgICAgICAgIDogY29uc3RydWN0b3IoY29uc3RydWN0b3IpCiAgICAgICAgICwgZ2V0
U3VwcG9ydGVkVHlwZXMoZ2V0U3VwcG9ydGVkVHlwZXMpCiAgICAgICAgICwgc3VwcG9ydHNUeXBl
QW5kQ29kZWNzKHN1cHBvcnRzVHlwZUFuZENvZGVjcykKICAgICAgICAgLCBnZXRTaXRlc0luTWVk
aWFDYWNoZShnZXRTaXRlc0luTWVkaWFDYWNoZSkKICAgICAgICAgLCBjbGVhck1lZGlhQ2FjaGUo
Y2xlYXJNZWRpYUNhY2hlKQogICAgICAgICAsIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUoY2xlYXJN
ZWRpYUNhY2hlRm9yU2l0ZSkKLQotICAgIHsgCisgICAgewogICAgIH0KIAogICAgIENyZWF0ZU1l
ZGlhRW5naW5lUGxheWVyIGNvbnN0cnVjdG9yOwpAQCAtMTk2LDcgKzE5NSw4IEBAIHB1YmxpYzoK
IH07CiAKIHN0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0ZU1lZGlhRW5naW5lUGxheWVy
LCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgTWVk
aWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUs
IE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSk7Ci1zdGF0aWMgTWVkaWFQbGF5ZXJG
YWN0b3J5KiBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBNZWRpYVBs
YXllckZhY3RvcnkqIGN1cnJlbnQgPSAwKTsKKworc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSog
YmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nICZ1
cmwsIE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCA9IDApOwogc3RhdGljIE1lZGlhUGxheWVy
RmFjdG9yeSogbmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCk7CiAK
IHN0YXRpYyBWZWN0b3I8TWVkaWFQbGF5ZXJGYWN0b3J5Kj4mIGluc3RhbGxlZE1lZGlhRW5naW5l
cygpIApAQCAtMjUzLDcgKzI1Myw3IEBAIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGNvZGVj
cygpCiAgICAgcmV0dXJuIGNvZGVjczsKIH0KIAotc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSog
YmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgTWVkaWFQbGF5ZXJGYWN0
b3J5KiBjdXJyZW50KQorc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogYmVzdE1lZGlhRW5naW5l
Rm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNz
LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiB1cmwsIE1lZGlhUGxheWVy
RmFjdG9yeSogY3VycmVudCkKIHsKICAgICBpZiAodHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiAwOwpAQCAtMjgwLDExICsyODAsMTEgQEAgc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSog
YmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUsIGMKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKLSAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBlbmdpbmVTdXBwb3J0ID0gZW5n
aW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgY29kZWNzLCBrZXlTeXN0ZW0p
OworICAgICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIGVuZ2luZVN1cHBvcnQgPSBlbmdp
bmVzW25keF0tPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCBjb2RlY3MsIGtleVN5c3RlbSwg
dXJsKTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOwogICAgICAgICBB
U1NFUlQoa2V5U3lzdGVtLmlzRW1wdHkoKSk7Ci0gICAgICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgZW5naW5lU3VwcG9ydCA9IGVuZ2luZXNbbmR4XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNz
KHR5cGUsIGNvZGVjcyk7CisgICAgICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgZW5naW5l
U3VwcG9ydCA9IGVuZ2luZXNbbmR4XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIGNvZGVj
cywgdXJsKTsKICNlbmRpZgogICAgICAgICBpZiAoZW5naW5lU3VwcG9ydCA+IHN1cHBvcnRlZCkg
ewogICAgICAgICAgICAgc3VwcG9ydGVkID0gZW5naW5lU3VwcG9ydDsKQEAgLTM4Myw3ICszODMs
NyBAQCB2b2lkIE1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXll
ckZhY3RvcnkqIGN1cnJlbnQpCiAgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBlbmdpbmUgPSAwOwog
CiAgICAgaWYgKCFtX2NvbnRlbnRNSU1FVHlwZS5pc0VtcHR5KCkpCi0gICAgICAgIGVuZ2luZSA9
IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MobV9jb250ZW50TUlNRVR5cGUsIG1fY29u
dGVudFR5cGVDb2RlY3MsIG1fa2V5U3lzdGVtLCBjdXJyZW50KTsKKyAgICAgICAgZW5naW5lID0g
YmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhtX2NvbnRlbnRNSU1FVHlwZSwgbV9jb250
ZW50VHlwZUNvZGVjcywgbV9rZXlTeXN0ZW0sIG1fdXJsLCBjdXJyZW50KTsKIAogICAgIC8vIElm
IG5vIE1JTUUgdHlwZSBpcyBzcGVjaWZpZWQgb3IgdGhlIHR5cGUgd2FzIGluZmVycmVkIGZyb20g
dGhlIGZpbGUgZXh0ZW5zaW9uLCBqdXN0IHVzZSB0aGUgbmV4dCBlbmdpbmUuCiAgICAgaWYgKCFl
bmdpbmUgJiYgKG1fY29udGVudE1JTUVUeXBlLmlzRW1wdHkoKSB8fCBtX2NvbnRlbnRNSU1FVHlw
ZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbikpCkBAIC00MTgsNyArNDE4LDcgQEAgdm9pZCBNZWRp
YVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJy
ZW50KQogICAgICAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5ZXJSZXNvdXJj
ZU5vdFN1cHBvcnRlZCh0aGlzKTsKICAgICAgICAgfQogICAgIH0KLX0gICAgCit9CiAKIGJvb2wg
TWVkaWFQbGF5ZXI6Omhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25zdAogewpAQCAtNzI0LDcg
KzcyNCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdy
YXBoaWNzQ29udGV4dCogcCwgY29uc3QgSW50UmVjdCYKICAgICBtX3ByaXZhdGUtPnBhaW50Q3Vy
cmVudEZyYW1lSW5Db250ZXh0KHAsIHIpOwogfQogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBl
LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVD
bGllbnQqIGNsaWVudCkKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXI6OnN1
cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IE1lZGlhUGxheWVyU3VwcG9ydHNUeXBl
Q2xpZW50KiBjbGllbnQpCiB7CiAgICAgU3RyaW5nIHR5cGUgPSBjb250ZW50VHlwZS50eXBlKCku
bG93ZXIoKTsKICAgICAvLyBUaGUgY29kZWNzIHN0cmluZyBpcyBub3QgbG93ZXItY2FzZWQgYmVj
YXVzZSBNUDQgdmFsdWVzIGFyZSBjYXNlIHNlbnNpdGl2ZQpAQCAtNzM3LDcgKzczNyw3IEBAIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBD
b250ZW50VHlwZSYgY29udGVudFR5CiAgICAgaWYgKHR5cGUgPT0gYXBwbGljYXRpb25PY3RldFN0
cmVhbSgpKQogICAgICAgICByZXR1cm4gSXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBNZWRpYVBsYXll
ckZhY3RvcnkqIGVuZ2luZSA9IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3ModHlwZSwg
dHlwZUNvZGVjcywgc3lzdGVtKTsKKyAgICBNZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IGJl
c3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtLCB1
cmwuc3RyaW5nKCkpOwogICAgIGlmICghZW5naW5lKQogICAgICAgICByZXR1cm4gSXNOb3RTdXBw
b3J0ZWQ7CiAKQEAgLTc1NywxMCArNzU3LDEwIEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
TWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0gICAgcmV0dXJuIGVuZ2luZS0+
c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2RlY3MsIHN5c3RlbSk7CisgICAgcmV0
dXJuIGVuZ2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2RlY3MsIHN5c3Rl
bSwgdXJsLnN0cmluZygpKTsKICNlbHNlCiAgICAgQVNTRVJUKHN5c3RlbS5pc0VtcHR5KCkpOwot
ICAgIHJldHVybiBlbmdpbmUtPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBlQ29kZWNz
KTsKKyAgICByZXR1cm4gZW5naW5lLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNv
ZGVjcywgdXJsLnN0cmluZygpKTsKICNlbmRpZgogfQogCkBAIC05NDIsNyArOTQyLDcgQEAgdm9p
ZCBNZWRpYVBsYXllcjo6bmV0d29ya1N0YXRlQ2hhbmdlZCgpCiAgICAgaWYgKG1fcHJpdmF0ZS0+
bmV0d29ya1N0YXRlKCkgPj0gRm9ybWF0RXJyb3IKICAgICAgICAgJiYgbV9wcml2YXRlLT5yZWFk
eVN0YXRlKCkgPCBIYXZlTWV0YWRhdGEKICAgICAgICAgJiYgaW5zdGFsbGVkTWVkaWFFbmdpbmVz
KCkuc2l6ZSgpID4gMSkgewotICAgICAgICBpZiAobV9jb250ZW50TUlNRVR5cGUuaXNFbXB0eSgp
IHx8IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MobV9jb250ZW50TUlNRVR5cGUsIG1f
Y29udGVudFR5cGVDb2RlY3MsIG1fa2V5U3lzdGVtLCBtX2N1cnJlbnRNZWRpYUVuZ2luZSkpIHsK
KyAgICAgICAgaWYgKG1fY29udGVudE1JTUVUeXBlLmlzRW1wdHkoKSB8fCBiZXN0TWVkaWFFbmdp
bmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBlQ29kZWNz
LCBtX2tleVN5c3RlbSwgbV91cmwsIG1fY3VycmVudE1lZGlhRW5naW5lKSkgewogICAgICAgICAg
ICAgbV9yZWxvYWRUaW1lci5zdGFydE9uZVNob3QoMCk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCmluZGV4IDZjNzIyYTA4MDdhNDVmMDNjNTkzOTY1MTJmMmQ5OGIyNTFlMDUzM2IuLjA4Njdk
NjViOGZlNGYxMjk3YTA2MDcyY2NmNzc1N2QwOGNhYzFjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjAzLDcgKzIwMyw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgogICAgIGVudW0gU3VwcG9ydHNU
eXBlIHsgSXNOb3RTdXBwb3J0ZWQsIElzU3VwcG9ydGVkLCBNYXlCZVN1cHBvcnRlZCB9OwotICAg
IHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBDb250
ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBNZWRpYVBsYXllclN1cHBv
cnRzVHlwZUNsaWVudCopOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBj
b25zdCBLVVJMJiB1cmwsIGNvbnN0IE1lZGlhUGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50Kik7CiAg
ICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7CiAgICAg
c3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTaXRlc0luTWVk
aWFDYWNoZShWZWN0b3I8U3RyaW5nPiYpOwpAQCAtNDIzLDE3ICs0MjMsMTYgQEAgcHJpdmF0ZToK
IHR5cGVkZWYgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+ICgqQ3JlYXRl
TWVkaWFFbmdpbmVQbGF5ZXIpKE1lZGlhUGxheWVyKik7CiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVu
Z2luZVN1cHBvcnRlZFR5cGVzKShIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQotdHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlICgqTWVk
aWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBj
b2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKK3R5cGVkZWYgTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSAoKk1lZGlhRW5naW5lU3VwcG9ydHNUeXBlKShjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3Ry
aW5nJiB1cmwpOwogI2Vsc2UKLXR5cGVkZWYgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSAoKk1l
ZGlhRW5naW5lU3VwcG9ydHNUeXBlKShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
Y29kZWNzKTsKK3R5cGVkZWYgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSAoKk1lZGlhRW5naW5l
U3VwcG9ydHNUeXBlKShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBj
b25zdCBTdHJpbmcmIHVybCk7CiAjZW5kaWYKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lR2V0
U2l0ZXNJbk1lZGlhQ2FjaGUpKFZlY3RvcjxTdHJpbmc+Jik7CiB0eXBlZGVmIHZvaWQgKCpNZWRp
YUVuZ2luZUNsZWFyTWVkaWFDYWNoZSkoKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lQ2xl
YXJNZWRpYUNhY2hlRm9yU2l0ZSkoY29uc3QgU3RyaW5nJik7CiAKLXR5cGVkZWYgdm9pZCAoKk1l
ZGlhRW5naW5lUmVnaXN0cmFyKShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciwgTWVkaWFFbmdpbmVT
dXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUsIAotICAgIE1lZGlhRW5naW5l
R2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVu
Z2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUpOyAKLQordHlwZWRlZiB2b2lkICgqTWVkaWFFbmdp
bmVSZWdpc3RyYXIpKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2luZVN1cHBvcnRl
ZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwKKyAgICBNZWRpYUVuZ2luZUdldFNpdGVz
SW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVh
ck1lZGlhQ2FjaGVGb3JTaXRlKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCA4NzVkMTJk
ZmJlN2JiNDIyMWJlNzU1MjRmODFhY2QyMDdjYTNhNzgwLi4xMTgwYTQ3ZDU1MzY5NmQzZDRlZDk1
N2E0N2UyYmE4YjZhYTAyZGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTcyNSw4ICs3MjUsMTAg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6Z2V0U3VwcG9ydGVkVHlw
ZXMoSGFzaFNldDxTdHJpbmc+JiBzdXBwb3IKICAgICBzdXBwb3J0ZWRUeXBlcyA9IG1pbWVUeXBl
Q2FjaGUoKTsKIH0gCiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uQ0Y6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJsKQogeworICAgIFVOVVNFRF9QQVJB
TSh1cmwpOworCiAgICAgLy8gT25seSByZXR1cm4gIklzU3VwcG9ydGVkIiBpZiB0aGVyZSBpcyBu
byBjb2RlY3MgcGFyYW1ldGVyIGZvciBub3cgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIGFzayBpZiBp
dCBzdXBwb3J0cyBhbgogICAgIC8vIGV4dGVuZGVkIE1JTUUgdHlwZSB1bnRpbCByZGFyOi8vODcy
MTcxNSBpcyBmaXhlZC4KICAgICBpZiAobWltZVR5cGVDYWNoZSgpLmNvbnRhaW5zKHR5cGUpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YuaAppbmRleCBmNWRkMDAxNTBkNDQwNTE3MGNhZmM4YTI0N2RkZDhhNDkyNzM4YTc2
Li45N2NjNWRkOTM0ZjdlMzE4Y2RiZThiYzNmNTAzMTY1YzE5M2Y5YTk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
aApAQCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogICAgIC8vIEVuZ2luZSBzdXBwb3J0CiAgICAg
c3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVk
aWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0
cmluZz4mIHR5cGVzKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBw
b3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAg
c3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmlu
ZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICBz
dGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbExvYWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBkY2MwNDZkMDc3YjVmZjczZmNlYmU3YTM1Yzdl
MzVlNWIzMDE5NTYxLi44Y2ExZTEzYWQzMDdkZjQ2MTZhNjFjNjVhMzY2ODA2YjZjNzZjOTVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgLy8g
ZW5naW5lIHN1cHBvcnQKICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBv
cnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRpYyBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgY29kZWNzKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBw
b3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3Qg
U3RyaW5nJiB1cmwpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICAgICB2aXJ0
dWFsIHZvaWQgY2FuY2VsTG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOWU4NjUz
NDk3ZWY1YWVlY2ZhMGY3ZDA5OGZjMGQzYmU2NGU2ZDU0Yi4uZWRkMGU3YjVmNzcxZmE5ZTJiY2Yz
NTBkOWM3Y2E3ZDJkZWE4MDJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC02NzIsOCAr
NjcyLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3Vw
cG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiBzdXBwCiAgICAgc3VwcG9ydGVkVHlwZXMgPSBt
aW1lVHlwZUNhY2hlKCk7CiB9IAogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5n
JiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiB1cmwpCiB7CisgICAg
VU5VU0VEX1BBUkFNKHVybCk7CisKICAgICBpZiAoIW1pbWVUeXBlQ2FjaGUoKS5jb250YWlucyh0
eXBlKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRlZDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRp
YVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKaW5kZXgg
M2FjOTNlOGI0YzY3ZWQyZjE0ZmUzNjZhZjY1MTI2Mjg0MGExMTA5Ny4uYTRhYzA5NjU3ZGY2NzM0
YjI1MzE4MTcyMzQyYmY1YjkwNzJmYThhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlh
UGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCkBAIC03Miw4ICs3MiwxMCBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZTo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcykK
ICAgICAgICAgdHlwZXMuYWRkKGktPmNfc3RyKCkpOwogfQogCi1NZWRpYVBsYXllcjo6U3VwcG9y
dHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlh
UGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJsKQogeworICAgIFVOVVNFRF9QQVJBTSh1cmwp
OworCiAgICAgaWYgKHR5cGUuaXNOdWxsKCkgfHwgdHlwZS5pc0VtcHR5KCkpIHsKICAgICAgICAg
TE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXIgZG9lcyBub3Qgc3VwcG9ydCB0eXBlOyB0eXBlIGlzIG51
bGwgb3IgZW1wdHkuIik7CiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0
ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2Jl
cnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCmlu
ZGV4IDBhYzQ2NmJlYzhlZTg4ODExYTFiMTY0MGI3MzUyYTkwOWM4NTM2NWUuLmUwN2MxZmU5MzM5
MzhkZDYyMjlhNDNmYmVlODY1YmI0ZmUxNTEyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJy
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShN
ZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFF
bmdpbmVSZWdpc3RyYXIpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hT
ZXQ8U3RyaW5nPiYpOwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBv
cnRzVHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIHZvaWQgbm90aWZ5QXBwQWN0aXZhdGVk
RXZlbnQoYm9vbCk7CiAgICAgc3RhdGljIHZvaWQgc2V0Q2VydGlmaWNhdGVQYXRoKGNvbnN0IFN0
cmluZyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IDgzOTcwOGVlOTc3NjAxNDgwYzI4ZDMwNjk5NjgxMWI4Y2EzOTE2MGMuLjY1Yjkw
N2Y2NzFiNjE4MmMyMWVhYjUxNjEzNTM4MTBkNjI3MTI1OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xNTk2LDggKzE1OTYsMTAgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hT
ZXQ8U3RyaW5nPiYgdHlwZXMpCiAgICAgdHlwZXMgPSBtaW1lVHlwZUNhY2hlKCk7CiB9CiAKLU1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBw
b3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcykKK01lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0
c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3Ry
aW5nJiB1cmwpCiB7CisgICAgVU5VU0VEX1BBUkFNKHVybCk7CisKICAgICBpZiAodHlwZS5pc051
bGwoKSB8fCB0eXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05v
dFN1cHBvcnRlZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oCmluZGV4IDM5ZWU5Y2U0YmZiY2I4MTIzYTAyM2M0MTU3MmMzMGE2M2VjMWQzMGQuLmY0M2Fh
YmMwYjIwMmNkYWUzYWQ1NTZjMTk1ZTkxNzcwN2E1ZDc3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTEzMCw3ICsxMzAsOCBAQCBjbGFzcyBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlIHsKICAgICAgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAKICAgICAgICAgICAgIHN0YXRpYyB2
b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwotICAgICAgICAgICAgc3Rh
dGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpOworICAgICAgICAgICAgc3RhdGljIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJsKTsKKwogICAgICAgICAgICAgc3RhdGlj
IGJvb2wgaXNBdmFpbGFibGUoKTsKIAogICAgICAgICAgICAgdm9pZCB1cGRhdGVBdWRpb1Npbmso
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRp
YVBsYXllclByaXZhdGVRVEtpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKaW5kZXggMDExZWMzNmEyNWQxOWRlNjExMWVk
NTgzY2QyYjZhMTQ0ZTFjNDBhNC4uYjI0YzUzMjBlN2Y0OGQ5MTQ0N2VhMmI5NmUxNWIzNzdkOTNm
Y2E2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJp
dmF0ZToKICAgICAvLyBlbmdpbmUgc3VwcG9ydAogICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGlj
IHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7Ci0gICAgc3Rh
dGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
Y29kZWNzLCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgc3RhdGljIHZvaWQgZ2V0U2l0ZXNJbk1l
ZGlhQ2FjaGUoVmVjdG9yPFN0cmluZz4mKTsKICAgICBzdGF0aWMgdm9pZCBjbGVhck1lZGlhQ2Fj
aGUoKTsKICAgICBzdGF0aWMgdm9pZCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKGNvbnN0IFN0cmlu
ZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCmluZGV4IDI5MjQ5YWE3ODg3YjhmMjNk
M2E4ZDU4MWVjNTdjODc2OTFmNzgzMGYuLmMwODU4MWQxNTQ4OWVjZGI5NWVlYmU0ZDhiNTQ4NGVl
MDI5YWY5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KQEAgLTE0NjAsOCArMTQ2
MCw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmdldFN1cHBvcnRlZFR5cGVzKEhh
c2hTZXQ8U3RyaW5nPiYgc3VwcG9ydGVkVHlwZXMpCiAgICAgICAgIHN1cHBvcnRlZFR5cGVzLmFk
ZCgqaXQpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBj
b2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywg
Y29uc3QgU3RyaW5nJiB1cmwpCiB7CisgICAgVU5VU0VEX1BBUkFNKHVybCk7CiAgICAgLy8gT25s
eSByZXR1cm4gIklzU3VwcG9ydGVkIiBpZiB0aGVyZSBpcyBubyBjb2RlY3MgcGFyYW1ldGVyIGZv
ciBub3cgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIGFzayBRVCBpZiBpdCBzdXBwb3J0cyBhbgogICAg
IC8vIGV4dGVuZGVkIE1JTUUgdHlwZSB5ZXQuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcAppbmRl
eCAzYTMwN2NiMjc0OWNlNDMzMGU5OGNlNWUxMzUzZTU4NDE0OWI4ODViLi5kZWUxNTg0YzI5Yzg5
M2MyMzQ2NGQyZjA0MTgwOWU4YzVmOTVkMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwCkBA
IC04MSw4ICs4MSwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF0OjpnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4gJnN1cHBvcnRlZCkKICAgICB9CiB9CiAKLU1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUXQ6OnN1cHBvcnRzVHlwZShjb25zdCBT
dHJpbmcmIG1pbWUsIGNvbnN0IFN0cmluZyYgY29kZWMpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlIE1lZGlhUGxheWVyUHJpdmF0ZVF0OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiBtaW1l
LCBjb25zdCBTdHJpbmcmIGNvZGVjLCBjb25zdCBTdHJpbmcmIHVybCkKIHsKKyAgICBVTlVTRURf
UEFSQU0odXJsKTsKKwogICAgIGlmICghbWltZS5zdGFydHNXaXRoKCJhdWRpby8iKSAmJiAhbWlt
ZS5zdGFydHNXaXRoKCJ2aWRlby8iKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05v
dFN1cHBvcnRlZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmgKaW5kZXggYzZmY2JkODM4ZDExZDgzZTQ3
NTc1MDlmN2EyMTY5N2YzMzQ3ZGEwZS4uMmFiN2I5NTNlMjYzNTkyNjAwNGIyZjQ0ZGY2MTc1Y2Nl
NTQzMGE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
TWVkaWFQbGF5ZXJQcml2YXRlUXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3Ry
YXIpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYp
OwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKSB7IHJldHVybiB0cnVlOyB9
CiAKICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKaW5kZXggN2Q5ZGNhZmU2Njdm
NTczMzc0Y2JlYWE1YTYzZWNkN2RiMDIyODMyMi4uYmY5MzEyYWViOGY1YWEwMTA4Y2U3Yjg0M2Uw
YWFiMjNkNjZhMmJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcApAQCAtMTAxMSw4ICsxMDExLDEwIEBAIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6aXNBdmFpbGFibGUoKQogICAg
IHJldHVybiBRVE1vdmllOjppbml0aWFsaXplUXVpY2tUaW1lKCk7CiB9CiAKLU1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6
c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpCitN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3Vh
bENvbnRleHQ6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
Y29kZWNzLCBjb25zdCBTdHJpbmcmIHVybCkKIHsKKyAgICBVTlVTRURfUEFSQU0odXJsKTsKKwog
ICAgIC8vIG9ubHkgcmV0dXJuICJJc1N1cHBvcnRlZCIgaWYgdGhlcmUgaXMgbm8gY29kZWNzIHBh
cmFtZXRlciBmb3Igbm93IGFzIHRoZXJlIGlzIG5vIHdheSB0byBhc2sgUVQgaWYgaXQgc3VwcG9y
dHMgYW4KICAgICAvLyAgZXh0ZW5kZWQgTUlNRSB0eXBlCiAgICAgcmV0dXJuIG1pbWVUeXBlQ2Fj
aGUoKS5jb250YWlucyh0eXBlKSA/IChjb2RlY3MuaXNFbXB0eSgpID8gTWVkaWFQbGF5ZXI6Ok1h
eUJlU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkKSA6IE1lZGlhUGxheWVyOjpJ
c05vdFN1cHBvcnRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tU
aW1lVmlzdWFsQ29udGV4dC5oCmluZGV4IDRjNDRhZjQwMWViYjAzZmRiMmYzZmYxNDI0Mjg1Nzk1
MWY5MTExMzUuLjQzYTcyZDUwY2IwODhjM2Q5MDJjZjNhNTZhOTM4ZjlmNGQ3NGFjNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQu
aApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgLy8gZW5naW5lIHN1cHBvcnQKICAg
ICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShN
ZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8
U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKTsKKyAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiB1cmwpOwogICAg
IHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5j
ZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaAppbmRleCAwZmFhMDQ1Nzg0ZDcx
YmZhODcwNjhkZWZkYjA2MDY2NzRjOWViNzJjLi4yZjdhMDNkMmJlZjFlNmViZTI3YjM1MDc0ZjVh
ZWY5ZjE0ODZlOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbkNFLmgKQEAgLTEwMCw3
ICsxMDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIGVuZ2luZSBzdXBwb3J0
CiAgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4g
Y3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5
cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAgICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIGNvZGVjcyk7CisgICAgICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25z
dCBTdHJpbmcmIHVybCk7CiAgICAgICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICAg
ICAgICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148427</attachid>
            <date>2012-06-19 14:32:29 -0700</date>
            <delta_ts>2012-06-20 05:53:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89514-20120619183227.patch</filename>
            <type>text/plain</type>
            <size>29433</size>
            <attacher name="Danilo de Paula">danilo.eu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlNWZkZWE5MDA4Mzkx
YWFjYzBhOTViOTY1OGQwZGIyMzk2OWI1NC4uMDZkNzcyM2QwMDExNGE3NmIwYzYwZWQxNjQ5OTIz
ODg0YjA5YWNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA2LTE5ICBEYW5p
bG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgIDxkYW5pbG8uY2VzYXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIGFkZGluZyB1cmwgdG8gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZQorCisgICAg
ICAgIEluIHRoZSBjYXNlIG9mIHR3byBtZWRpYSBwbGF5ZXJzIHdoZXJlIG9uZSBpcyB1c2VkIGZv
ciBNZWRpYVN0cmVhbSwgaXQgbmVlZHMgdG8ga25vdyB0aGUgVVJMIHRvIGNoZWNrIGlmIGl0J3MK
KyAgICAgICAgYSBNZWRpYVN0cmVhbSBnZW5lcmF0ZWQgYmxvYiwgdG8gcmV0dXJuIGlmIGl0J3Mg
c3VwcG9ydGVkIG9yIG5vdC4KKworICAgICAgICBBZGQgdXJsIHRvIHN1cHBvcnRzVHlwZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk1MTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
c2luY2UgdGhlcmUncyBubyBjaGFuZ2Ugb24gY29kZSBiZWhhdmlvci4KKworICAgICAgICAqIGRv
bS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRh
dGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQp
OgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKE1lZGlhUGxheWVyRmFjdG9yeSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckZhY3Rvcnk6Ok1lZGlhUGxheWVyRmFjdG9y
eSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRQbGFpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnN1cHBvcnRz
VHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgIChNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9y
dHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxh
eWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlOjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oOgorICAgICAgICAoTWVkaWFQbGF5
ZXJQcml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzdXBw
b3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJp
dmF0ZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF0OjpzdXBw
b3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJp
dmF0ZVF0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVRdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dDo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oOgorICAgICAgICAo
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaDoKKyAgICAgICAg
KE1lZGlhUGxheWVyUHJpdmF0ZSk6CisKIDIwMTItMDYtMDggIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IHNldmVyYWwg
Y29tcGlsZXIgd2FybmluZ3MgYW5kIGVycm9ycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVt
ZW50YXRpb24uY3BwCmluZGV4IDRkM2Q4NTMzYWQwYTJkM2Q5NzRjZWM2OTY0ZjIyNzI4OGI2ZTYx
YzcuLjBjN2EwYmJhYmM4MTBjODAwNTU2M2QwODc5Njk3ZmE3ZTI1ZmEwYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtNDA3LDcgKzQwNyw3IEBAIFBhc3NS
ZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBT
dHJpbmcmIHR5cGUsIEZyYW1lCiAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgdHlwZSBjYW4g
YmUgcGxheWVkIGJ5IG91ciBNZWRpYVBsYXllciwgaWYgc28gY3JlYXRlIGEgTWVkaWFEb2N1bWVu
dAogICAgIC8vIEtleSBzeXN0ZW0gaXMgbm90IGFwcGxpY2FibGUgaGVyZS4KICAgICBET01JbXBs
ZW1lbnRhdGlvblN1cHBvcnRzVHlwZUNsaWVudCBjbGllbnQoZnJhbWUgJiYgZnJhbWUtPnNldHRp
bmdzKCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCksIHVy
bC5ob3N0KCkpOwotICAgIGlmIChNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKENvbnRlbnRUeXBl
KHR5cGUpLCBTdHJpbmcoKSwgJmNsaWVudCkpCisgICAgaWYgKE1lZGlhUGxheWVyOjpzdXBwb3J0
c1R5cGUoQ29udGVudFR5cGUodHlwZSksIFN0cmluZygpLCB1cmwsICZjbGllbnQpKQogICAgICAg
ICAgcmV0dXJuIE1lZGlhRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgdXJsKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA0ODljNTEyMmQ0NGU0
OGVmZGQ0YmQyMDkzZjE3M2JmZjA3YjliOWQ2Li42MWUwNmVmNjhhOGQwYTQ2ZjUzOTdhYjc5NzFl
Njg1YWU3MmJlMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTYxOCw5ICs2MTgsOSBAQCBIVE1MTWVkaWFFbGVtZW50OjpOZXR3b3JrU3RhdGUgSFRNTE1l
ZGlhRWxlbWVudDo6bmV0d29ya1N0YXRlKCkgY29uc3QKICAgICByZXR1cm4gbV9uZXR3b3JrU3Rh
dGU7CiB9CiAKLVN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkgY29uc3QKK1N0cmluZyBIVE1M
TWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSwgY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewotICAgIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29u
dGVudFR5cGUobWltZVR5cGUpLCBrZXlTeXN0ZW0sIHRoaXMpOworICAgIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5
cGUobWltZVR5cGUpLCBrZXlTeXN0ZW0sIHVybCwgdGhpcyk7CiAgICAgU3RyaW5nIGNhblBsYXk7
CiAKICAgICAvLyA0LjguMTAuMwpAQCAtNjM3LDcgKzYzNyw3IEBAIFN0cmluZyBIVE1MTWVkaWFF
bGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcm
IGtleVN5CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgCi0gICAgTE9HKE1lZGlhLCAi
SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoJXMsICVzKSAtPiAlcyIsIG1pbWVUeXBlLnV0
ZjgoKS5kYXRhKCksIGtleVN5c3RlbS51dGY4KCkuZGF0YSgpLCBjYW5QbGF5LnV0ZjgoKS5kYXRh
KCkpOworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCVzLCAl
cywgJXMpIC0+ICVzIiwgbWltZVR5cGUudXRmOCgpLmRhdGEoKSwga2V5U3lzdGVtLnV0ZjgoKS5k
YXRhKCksIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBjYW5QbGF5LnV0ZjgoKS5kYXRhKCkp
OwogCiAgICAgcmV0dXJuIGNhblBsYXk7CiB9CkBAIC0zMTc1LDcgKzMxNzUsNyBAQCBLVVJMIEhU
TUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZChDb250ZW50VHlwZSogY29udGVu
dFR5cGUsIFN0cmluZyogawogICAgICAgICAgICAgaWYgKHNob3VsZExvZykKICAgICAgICAgICAg
ICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQg
LSAndHlwZScgaXMgJyVzJyAtIGtleSBzeXN0ZW0gaXMgJyVzJyIsIHR5cGUudXRmOCgpLmRhdGEo
KSwgc3lzdGVtLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCi0gICAgICAgICAgICBpZiAoIU1lZGlh
UGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5cGUodHlwZSksIHN5c3RlbSwgdGhpcykpCisg
ICAgICAgICAgICBpZiAoIU1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5cGUodHlw
ZSksIHN5c3RlbSwgbWVkaWFVUkwsIHRoaXMpKQogICAgICAgICAgICAgICAgIGdvdG8gY2hlY2tf
YWdhaW47CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApp
bmRleCAxNjczZTE1MzUyNDkxOGQ1Mjk1NzFlOGI5NWVkMmVhNTRkZjkzNTgwLi40MDE1YTJmODZm
MDU5NTZlNmU2MzZkMWE4NjY5YTJiOGI4ODE4MjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQ
dHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICB2b2lkIGxvYWQoRXhjZXB0aW9u
Q29kZSYpOwotICAgIFN0cmluZyBjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSA9IFN0cmluZygpKSBjb25zdDsKKyAgICBTdHJpbmcgY2Fu
UGxheVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0g
PSBTdHJpbmcoKSwgY29uc3QgS1VSTCYgPSBLVVJMKCkpIGNvbnN0OwogCiAvLyByZWFkeSBzdGF0
ZQogICAgIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDdkODQ1YWNjYzhjYjNk
ZDA2MWZjN2U1NjFkNzE1MDg4NjJlNzExMTQuLjFiMmRhOGIxNjkxMWE3YmU5M2ViMjY3MWJjODVj
YTEzZDA3NjNjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKQEAgLTE3NiwxNSArMTc2LDE0IEBAIHN0cnVjdCBNZWRpYVBsYXllckZh
Y3RvcnkgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUGxheWVyRmFjdG9yeSk7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE1lZGlhUGxheWVyRmFjdG9yeShD
cmVhdGVNZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRU
eXBlcyBnZXRTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUgc3VwcG9ydHNU
eXBlQW5kQ29kZWNzLAotICAgICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdl
dFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlh
Q2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBjbGVhck1lZGlhQ2FjaGVG
b3JTaXRlKSAKKyAgICAgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSBnZXRTaXRl
c0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUgY2xlYXJNZWRpYUNhY2hl
LCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUgY2xlYXJNZWRpYUNhY2hlRm9yU2l0
ZSkKICAgICAgICAgOiBjb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcikKICAgICAgICAgLCBnZXRTdXBw
b3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBlcykKICAgICAgICAgLCBzdXBwb3J0c1R5cGVBbmRD
b2RlY3Moc3VwcG9ydHNUeXBlQW5kQ29kZWNzKQogICAgICAgICAsIGdldFNpdGVzSW5NZWRpYUNh
Y2hlKGdldFNpdGVzSW5NZWRpYUNhY2hlKQogICAgICAgICAsIGNsZWFyTWVkaWFDYWNoZShjbGVh
ck1lZGlhQ2FjaGUpCiAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjbGVhck1lZGlh
Q2FjaGVGb3JTaXRlKQotCi0gICAgeyAKKyAgICB7CiAgICAgfQogCiAgICAgQ3JlYXRlTWVkaWFF
bmdpbmVQbGF5ZXIgY29uc3RydWN0b3I7CkBAIC0xOTYsNyArMTk1LDggQEAgcHVibGljOgogfTsK
IAogc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIsIE1l
ZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLCBNZWRpYUVu
Z2luZUdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVk
aWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlKTsKLXN0YXRpYyBNZWRpYVBsYXllckZhY3Rv
cnkqIGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIE1lZGlhUGxheWVy
RmFjdG9yeSogY3VycmVudCA9IDApOworCitzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0
TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcgJnVybCwg
TWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50ID0gMCk7CiBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0
b3J5KiBuZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KTsKIAogc3Rh
dGljIFZlY3RvcjxNZWRpYVBsYXllckZhY3RvcnkqPiYgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCkg
CkBAIC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29kZWNzKCkK
ICAgICByZXR1cm4gY29kZWNzOwogfQogCi1zdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0
TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBNZWRpYVBsYXllckZhY3Rvcnkq
IGN1cnJlbnQpCitzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0TWVkaWFFbmdpbmVGb3JU
eXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIHVybCwgTWVkaWFQbGF5ZXJGYWN0
b3J5KiBjdXJyZW50KQogewogICAgIGlmICh0eXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IDA7CkBAIC0yODAsMTEgKzI4MCwxMSBAQCBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0
TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgYwogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQot
ICAgICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIGVuZ2luZVN1cHBvcnQgPSBlbmdpbmVz
W25keF0tPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCBjb2RlY3MsIGtleVN5c3RlbSk7Cisg
ICAgICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgZW5naW5lU3VwcG9ydCA9IGVuZ2luZXNb
bmR4XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIGNvZGVjcywga2V5U3lzdGVtLCB1cmwp
OwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKGtleVN5c3RlbSk7CiAgICAgICAgIEFTU0VS
VChrZXlTeXN0ZW0uaXNFbXB0eSgpKTsKLSAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBlbmdpbmVTdXBwb3J0ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlw
ZSwgY29kZWNzKTsKKyAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBlbmdpbmVTdXBw
b3J0ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgY29kZWNzLCB1
cmwpOwogI2VuZGlmCiAgICAgICAgIGlmIChlbmdpbmVTdXBwb3J0ID4gc3VwcG9ydGVkKSB7CiAg
ICAgICAgICAgICBzdXBwb3J0ZWQgPSBlbmdpbmVTdXBwb3J0OwpAQCAtMzgzLDcgKzM4Myw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFj
dG9yeSogY3VycmVudCkKICAgICBNZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IDA7CiAKICAg
ICBpZiAoIW1fY29udGVudE1JTUVUeXBlLmlzRW1wdHkoKSkKLSAgICAgICAgZW5naW5lID0gYmVz
dE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhtX2NvbnRlbnRNSU1FVHlwZSwgbV9jb250ZW50
VHlwZUNvZGVjcywgbV9rZXlTeXN0ZW0sIGN1cnJlbnQpOworICAgICAgICBlbmdpbmUgPSBiZXN0
TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRU
eXBlQ29kZWNzLCBtX2tleVN5c3RlbSwgbV91cmwsIGN1cnJlbnQpOwogCiAgICAgLy8gSWYgbm8g
TUlNRSB0eXBlIGlzIHNwZWNpZmllZCBvciB0aGUgdHlwZSB3YXMgaW5mZXJyZWQgZnJvbSB0aGUg
ZmlsZSBleHRlbnNpb24sIGp1c3QgdXNlIHRoZSBuZXh0IGVuZ2luZS4KICAgICBpZiAoIWVuZ2lu
ZSAmJiAobV9jb250ZW50TUlNRVR5cGUuaXNFbXB0eSgpIHx8IG1fY29udGVudE1JTUVUeXBlV2Fz
SW5mZXJyZWRGcm9tRXh0ZW5zaW9uKSkKQEAgLTQxOCw3ICs0MTgsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQp
CiAgICAgICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclJlc291cmNlTm90
U3VwcG9ydGVkKHRoaXMpOwogICAgICAgICB9CiAgICAgfQotfSAgICAKK30KIAogYm9vbCBNZWRp
YVBsYXllcjo6aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0CiB7CkBAIC03MjQsNyArNzI0
LDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhp
Y3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JgogICAgIG1fcHJpdmF0ZS0+cGFpbnRDdXJyZW50
RnJhbWVJbkNvbnRleHQocCwgcik7CiB9CiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVk
aWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNsaWVu
dCogY2xpZW50KQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3VwcG9y
dHNUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0sIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVDbGll
bnQqIGNsaWVudCkKIHsKICAgICBTdHJpbmcgdHlwZSA9IGNvbnRlbnRUeXBlLnR5cGUoKS5sb3dl
cigpOwogICAgIC8vIFRoZSBjb2RlY3Mgc3RyaW5nIGlzIG5vdCBsb3dlci1jYXNlZCBiZWNhdXNl
IE1QNCB2YWx1ZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlCkBAIC03MzcsNyArNzM3LDcgQEAgTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKGNvbnN0IENvbnRl
bnRUeXBlJiBjb250ZW50VHkKICAgICBpZiAodHlwZSA9PSBhcHBsaWNhdGlvbk9jdGV0U3RyZWFt
KCkpCiAgICAgICAgIHJldHVybiBJc05vdFN1cHBvcnRlZDsKIAotICAgIE1lZGlhUGxheWVyRmFj
dG9yeSogZW5naW5lID0gYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBl
Q29kZWNzLCBzeXN0ZW0pOworICAgIE1lZGlhUGxheWVyRmFjdG9yeSogZW5naW5lID0gYmVzdE1l
ZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBlQ29kZWNzLCBzeXN0ZW0sIHVybC5z
dHJpbmcoKSk7CiAgICAgaWYgKCFlbmdpbmUpCiAgICAgICAgIHJldHVybiBJc05vdFN1cHBvcnRl
ZDsKIApAQCAtNzU3LDEwICs3NTcsMTAgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRp
YVBsYXllcjo6c3VwcG9ydHNUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHkKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICByZXR1cm4gZW5naW5lLT5zdXBw
b3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtKTsKKyAgICByZXR1cm4g
ZW5naW5lLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtLCB1
cmwuc3RyaW5nKCkpOwogI2Vsc2UKICAgICBBU1NFUlQoc3lzdGVtLmlzRW1wdHkoKSk7Ci0gICAg
cmV0dXJuIGVuZ2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2RlY3MpOwor
ICAgIHJldHVybiBlbmdpbmUtPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBlQ29kZWNz
LCB1cmwuc3RyaW5nKCkpOwogI2VuZGlmCiB9CiAKQEAgLTk0Miw3ICs5NDIsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKCkKICAgICBpZiAobV9wcml2YXRlLT5uZXR3
b3JrU3RhdGUoKSA+PSBGb3JtYXRFcnJvcgogICAgICAgICAmJiBtX3ByaXZhdGUtPnJlYWR5U3Rh
dGUoKSA8IEhhdmVNZXRhZGF0YQogICAgICAgICAmJiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKS5z
aXplKCkgPiAxKSB7Ci0gICAgICAgIGlmIChtX2NvbnRlbnRNSU1FVHlwZS5pc0VtcHR5KCkgfHwg
YmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhtX2NvbnRlbnRNSU1FVHlwZSwgbV9jb250
ZW50VHlwZUNvZGVjcywgbV9rZXlTeXN0ZW0sIG1fY3VycmVudE1lZGlhRW5naW5lKSkgeworICAg
ICAgICBpZiAobV9jb250ZW50TUlNRVR5cGUuaXNFbXB0eSgpIHx8IGJlc3RNZWRpYUVuZ2luZUZv
clR5cGVBbmRDb2RlY3MobV9jb250ZW50TUlNRVR5cGUsIG1fY29udGVudFR5cGVDb2RlY3MsIG1f
a2V5U3lzdGVtLCBtX3VybCwgbV9jdXJyZW50TWVkaWFFbmdpbmUpKSB7CiAgICAgICAgICAgICBt
X3JlbG9hZFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
aW5kZXggNmM3MjJhMDgwN2E0NWYwM2M1OTM5NjUxMmYyZDk4YjI1MWUwNTMzYi4uYzQ4YTJjNWNm
N2Q5YWUwMDc5ZmE5MmYzZWE1YmZjNTQxMzM1MDZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0yMDMsNyArMjAzLDcgQEAgcHVibGlj
OgogCiAgICAgLy8gTWVkaWEgZW5naW5lIHN1cHBvcnQuCiAgICAgZW51bSBTdXBwb3J0c1R5cGUg
eyBJc05vdFN1cHBvcnRlZCwgSXNTdXBwb3J0ZWQsIE1heUJlU3VwcG9ydGVkIH07Ci0gICAgc3Rh
dGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IENvbnRlbnRU
eXBlJiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IE1lZGlhUGxheWVyU3VwcG9ydHNU
eXBlQ2xpZW50Kik7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0
IEtVUkwmLCBjb25zdCBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNsaWVudCopOwogICAgIHN0YXRp
YyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwogICAgIHN0YXRpYyBi
b29sIGlzQXZhaWxhYmxlKCk7CiAgICAgc3RhdGljIHZvaWQgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUo
VmVjdG9yPFN0cmluZz4mKTsKQEAgLTQyMywxNyArNDIzLDE2IEBAIHByaXZhdGU6CiB0eXBlZGVm
IFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiAoKkNyZWF0ZU1lZGlhRW5n
aW5lUGxheWVyKShNZWRpYVBsYXllciopOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVTdXBw
b3J0ZWRUeXBlcykoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKLXR5cGVkZWYgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSAoKk1lZGlhRW5naW5l
U3VwcG9ydHNUeXBlKShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSk7Cit0eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5
cGUgKCpNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgdXJs
KTsKICNlbHNlCi10eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVuZ2lu
ZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7
Cit0eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVuZ2luZVN1cHBvcnRz
VHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3Ry
aW5nJiB1cmwpOwogI2VuZGlmCiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUdldFNpdGVzSW5N
ZWRpYUNhY2hlKShWZWN0b3I8U3RyaW5nPiYpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVD
bGVhck1lZGlhQ2FjaGUpKCk7CiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUNsZWFyTWVkaWFD
YWNoZUZvclNpdGUpKGNvbnN0IFN0cmluZyYpOwogCi10eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2lu
ZVJlZ2lzdHJhcikoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIsIE1lZGlhRW5naW5lU3VwcG9ydGVk
VHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLCAKLSAgICBNZWRpYUVuZ2luZUdldFNpdGVz
SW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVh
ck1lZGlhQ2FjaGVGb3JTaXRlKTsgCi0KK3R5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lUmVnaXN0
cmFyKShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywg
TWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUsCisgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFD
YWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNh
Y2hlRm9yU2l0ZSk7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNG
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggODc1ZDEyZGZiZTdiYjQy
MjFiZTc1NTI0ZjgxYWNkMjA3Y2EzYTc4MC4uMTE4MGE0N2Q1NTM2OTZkM2Q0ZWQ5NTdhNDdlMmJh
OGI2YWEwMmRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC03MjUsOCArNzI1LDEwIEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hT
ZXQ8U3RyaW5nPiYgc3VwcG9yCiAgICAgc3VwcG9ydGVkVHlwZXMgPSBtaW1lVHlwZUNhY2hlKCk7
CiB9IAogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0Y6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIHVybCkKIHsKKyAgICBVTlVTRURfUEFSQU0odXJsKTsK
KwogICAgIC8vIE9ubHkgcmV0dXJuICJJc1N1cHBvcnRlZCIgaWYgdGhlcmUgaXMgbm8gY29kZWNz
IHBhcmFtZXRlciBmb3Igbm93IGFzIHRoZXJlIGlzIG5vIHdheSB0byBhc2sgaWYgaXQgc3VwcG9y
dHMgYW4KICAgICAvLyBleHRlbmRlZCBNSU1FIHR5cGUgdW50aWwgcmRhcjovLzg3MjE3MTUgaXMg
Zml4ZWQuCiAgICAgaWYgKG1pbWVUeXBlQ2FjaGUoKS5jb250YWlucyh0eXBlKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNG
LmgKaW5kZXggZjVkZDAwMTUwZDQ0MDUxNzBjYWZjOGEyNDdkZGQ4YTQ5MjczOGE3Ni4uOTdjYzVk
ZDkzNGY3ZTMxOGNkYmU4YmMzZjUwMzE2NWMxOTNmOWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKQEAgLTQ2
LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBFbmdpbmUgc3VwcG9ydAogICAgIHN0YXRpYyBQ
YXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVy
Kik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0
eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBl
KGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpOworICAgIHN0YXRpYyBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgc3RhdGljIGJv
b2wgaXNBdmFpbGFibGUoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxMb2FkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKaW5kZXggZGNjMDQ2ZDA3N2I1ZmY3M2ZjZWJlN2EzNWM3ZTM1ZTViMzAx
OTU2MS4uOGNhMWUxM2FkMzA3ZGY0NjE2YTYxYzY1YTM2NjgwNmI2Yzc2Yzk1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBz
dXBwb3J0CiAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
PiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBl
cyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNv
ZGVjcyk7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBl
KGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYg
dXJsKTsKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgdmlydHVhbCB2b2lk
IGNhbmNlbExvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDllODY1MzQ5N2VmNWFl
ZWNmYTBmN2QwOThmYzBkM2JlNjRlNmQ1NGIuLmVkZDBlN2I1Zjc3MWZhOWUyYmNmMzUwZDljN2Nh
N2QyZGVhODAyYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNjcyLDggKzY3MiwxMCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN1cHBvcnRlZFR5
cGVzKEhhc2hTZXQ8U3RyaW5nPiYgc3VwcAogICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZVR5cGVD
YWNoZSgpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwg
Y29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJsKQogeworICAgIFVOVVNFRF9Q
QVJBTSh1cmwpOworCiAgICAgaWYgKCFtaW1lVHlwZUNhY2hlKCkuY29udGFpbnModHlwZSkpCiAg
ICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQ
cml2YXRlQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9i
bGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCmluZGV4IDNhYzkzZThi
NGM2N2VkMmYxNGZlMzY2YWY2NTEyNjI4NDBhMTEwOTcuLmE0YWMwOTY1N2RmNjczNGIyNTMxODE3
MjM0MmJmNWI5MDcyZmE4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclBy
aXZhdGVCbGFja0JlcnJ5LmNwcApAQCAtNzIsOCArNzIsMTAgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGU6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpCiAgICAgICAg
IHR5cGVzLmFkZChpLT5jX3N0cigpKTsKIH0KIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBN
ZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclBy
aXZhdGU6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29k
ZWNzLCBjb25zdCBTdHJpbmcmIHVybCkKIHsKKyAgICBVTlVTRURfUEFSQU0odXJsKTsKKwogICAg
IGlmICh0eXBlLmlzTnVsbCgpIHx8IHR5cGUuaXNFbXB0eSgpKSB7CiAgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhUGxheWVyIGRvZXMgbm90IHN1cHBvcnQgdHlwZTsgdHlwZSBpcyBudWxsIG9yIGVt
cHR5LiIpOwogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRp
YVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAppbmRleCAwYWM0
NjZiZWM4ZWU4ODgxMWExYjE2NDBiNzM1MmE5MDljODUzNjVlLi5lMDdjMWZlOTMzOTM4ZGQ2MjI5
YTQzZmJlZTg2NWJiNGZlMTUxMmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVy
UHJpdmF0ZUJsYWNrQmVycnkuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5
ZXIqKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVn
aXN0cmFyKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUo
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyB2b2lkIG5vdGlmeUFwcEFjdGl2YXRlZEV2ZW50KGJv
b2wpOwogICAgIHN0YXRpYyB2b2lkIHNldENlcnRpZmljYXRlUGF0aChjb25zdCBTdHJpbmcmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRl
eCA4Mzk3MDhlZTk3NzYwMTQ4MGMyOGQzMDY5OTY4MTFiOGNhMzkxNjBjLi42NWI5MDdmNjcxYjYx
ODJjMjFlYWI1MTYxMzUzODEwZDYyNzEyNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTU5Niw4ICsxNTk2LDEwIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mIHR5cGVzKQogICAgIHR5cGVzID0gbWltZVR5cGVDYWNoZSgpOwogfQogCi1NZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9ydHNUeXBl
KGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9ydHNUeXBlKGNv
bnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJs
KQogeworICAgIFVOVVNFRF9QQVJBTSh1cmwpOworCiAgICAgaWYgKHR5cGUuaXNOdWxsKCkgfHwg
dHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0
ZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRl
eCAzOWVlOWNlNGJmYmNiODEyM2EwMjNjNDE1NzJjMzBhNjNlYzFkMzBkLi5mNDNhYWJjMGIyMDJj
ZGFlM2FkNTU2YzE5NWU5MTc3MDdhNWQ3NzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0xMzAsNyArMTMwLDggQEAgY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CiAgICAgICAgICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogCiAgICAgICAgICAgICBzdGF0aWMgdm9pZCBnZXRT
dXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKLSAgICAgICAgICAgIHN0YXRpYyBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgY29kZWNzKTsKKyAgICAgICAgICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
Y29kZWNzLCBjb25zdCBTdHJpbmcmIHVybCk7CisKICAgICAgICAgICAgIHN0YXRpYyBib29sIGlz
QXZhaWxhYmxlKCk7CiAKICAgICAgICAgICAgIHZvaWQgdXBkYXRlQXVkaW9TaW5rKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRp
YVBsYXllclByaXZhdGVRVEtpdC5oCmluZGV4IDAxMWVjMzZhMjVkMTlkZTYxMTFlZDU4M2NkMmI2
YTE0NGUxYzQwYTQuLmIyNGM1MzIwZTdmNDhkOTE0NDdlYTJiOTZlMTViMzc3ZDkzZmNhNmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gZW5naW5lIHN1cHBvcnQKICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdl
dFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRpYyBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgY29kZWNzKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywg
Y29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHN0YXRpYyB2b2lkIGdldFNpdGVzSW5NZWRpYUNhY2hl
KFZlY3RvcjxTdHJpbmc+Jik7CiAgICAgc3RhdGljIHZvaWQgY2xlYXJNZWRpYUNhY2hlKCk7CiAg
ICAgc3RhdGljIHZvaWQgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjb25zdCBTdHJpbmcmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCAyOTI0OWFhNzg4N2I4ZjIzZDNhOGQ1ODFl
YzU3Yzg3NjkxZjc4MzBmLi5jMDg1ODFkMTU0ODllY2RiOTVlZWJlNGQ4YjU0ODRlZTAyOWFmOTUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0xNDYwLDggKzE0NjAsOSBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0
cmluZz4mIHN1cHBvcnRlZFR5cGVzKQogICAgICAgICBzdXBwb3J0ZWRUeXBlcy5hZGQoKml0KTsK
IH0gCiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQor
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c3VwcG9y
dHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0
cmluZyYgdXJsKQogeworICAgIFVOVVNFRF9QQVJBTSh1cmwpOwogICAgIC8vIE9ubHkgcmV0dXJu
ICJJc1N1cHBvcnRlZCIgaWYgdGhlcmUgaXMgbm8gY29kZWNzIHBhcmFtZXRlciBmb3Igbm93IGFz
IHRoZXJlIGlzIG5vIHdheSB0byBhc2sgUVQgaWYgaXQgc3VwcG9ydHMgYW4KICAgICAvLyBleHRl
bmRlZCBNSU1FIHR5cGUgeWV0LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5jcHAKaW5kZXggM2EzMDdj
YjI3NDljZTQzMzBlOThjZTVlMTM1M2U1ODQxNDliODg1Yi4uZGVlMTU4NGMyOWM4OTNjMjM0NjRk
MmYwNDE4MDllOGM1Zjk1ZDA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcApAQCAtODEsOCAr
ODEsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdDo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFz
aFNldDxTdHJpbmc+ICZzdXBwb3J0ZWQpCiAgICAgfQogfQogCi1NZWRpYVBsYXllcjo6U3VwcG9y
dHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZVF0OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiBt
aW1lLCBjb25zdCBTdHJpbmcmIGNvZGVjKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRp
YVBsYXllclByaXZhdGVRdDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgbWltZSwgY29uc3Qg
U3RyaW5nJiBjb2RlYywgY29uc3QgU3RyaW5nJiB1cmwpCiB7CisgICAgVU5VU0VEX1BBUkFNKHVy
bCk7CisKICAgICBpZiAoIW1pbWUuc3RhcnRzV2l0aCgiYXVkaW8vIikgJiYgIW1pbWUuc3RhcnRz
V2l0aCgidmlkZW8vIikpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0
ZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01l
ZGlhUGxheWVyUHJpdmF0ZVF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9NZWRpYVBsYXllclByaXZhdGVRdC5oCmluZGV4IGM2ZmNiZDgzOGQxMWQ4M2U0NzU3NTA5Zjdh
MjE2OTdmMzM0N2RhMGUuLjJhYjdiOTUzZTI2MzU5MjYwMDRiMmY0NGRmNjE3NWNjZTU0MzBhN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxh
eWVyUHJpdmF0ZVF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
TWVkaWFQbGF5ZXJQcml2YXRlUXQuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAg
ICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKLSAgICBz
dGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAg
Ym9vbCBoYXNWaWRlbygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwCmluZGV4IDdkOWRjYWZlNjY3ZjU3MzM3NGNi
ZWFhNWE2M2VjZDdkYjAyMjgzMjIuLmJmOTMxMmFlYjhmNWFhMDEwOGNlN2I4NDNlMGFhYjIzZDY2
YTJiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dC5jcHAKQEAgLTEwMTEsOCArMTAxMSwxMCBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OmlzQXZhaWxhYmxlKCkKICAgICByZXR1cm4g
UVRNb3ZpZTo6aW5pdGlhbGl6ZVF1aWNrVGltZSgpOwogfQogCi1NZWRpYVBsYXllcjo6U3VwcG9y
dHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnN1cHBvcnRz
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0
OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywg
Y29uc3QgU3RyaW5nJiB1cmwpCiB7CisgICAgVU5VU0VEX1BBUkFNKHVybCk7CisKICAgICAvLyBv
bmx5IHJldHVybiAiSXNTdXBwb3J0ZWQiIGlmIHRoZXJlIGlzIG5vIGNvZGVjcyBwYXJhbWV0ZXIg
Zm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3YXkgdG8gYXNrIFFUIGlmIGl0IHN1cHBvcnRzIGFuCiAg
ICAgLy8gIGV4dGVuZGVkIE1JTUUgdHlwZQogICAgIHJldHVybiBtaW1lVHlwZUNhY2hlKCkuY29u
dGFpbnModHlwZSkgPyAoY29kZWNzLmlzRW1wdHkoKSA/IE1lZGlhUGxheWVyOjpNYXlCZVN1cHBv
cnRlZCA6IE1lZGlhUGxheWVyOjpJc1N1cHBvcnRlZCkgOiBNZWRpYVBsYXllcjo6SXNOb3RTdXBw
b3J0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3Vh
bENvbnRleHQuaAppbmRleCA0YzQ0YWY0MDFlYmIwM2ZkYjJmM2ZmMTQyNDI4NTc5NTFmOTExMTM1
Li40M2E3MmQ1MGNiMDg4YzNkOTAyY2YzYTU2YTkzOGY5ZjRkNzRhYzQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgKQEAgLTEy
OCw3ICsxMjgsNyBAQCBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBzdXBwb3J0CiAgICAgc3RhdGlj
IFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5
ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4m
IHR5cGVzKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5
cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgc3RhdGlj
IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICBzdGF0aWMg
Ym9vbCBpc0F2YWlsYWJsZSgpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQ
bGF5ZXJQcml2YXRlV2luQ0UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbkNFLmgKaW5kZXggMGZhYTA0NTc4NGQ3MWJmYTg3MDY4
ZGVmZGIwNjA2Njc0YzllYjcyYy4uMmY3YTAzZDJiZWYxZTZlYmUyN2IzNTA3NGY1YWVmOWYxNDg2
ZTlhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
TWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oCkBAIC0xMDAsNyArMTAwLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBlbmdpbmUgc3VwcG9ydAogICAgICAg
ICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShN
ZWRpYVBsYXllciopOwogICAgICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNo
U2V0PFN0cmluZz4mIHR5cGVzKTsKLSAgICAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2Rl
Y3MpOworICAgICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5
cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5n
JiB1cmwpOwogICAgICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgICAgIE1l
ZGlhUGxheWVyKiBtX3BsYXllcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148543</attachid>
            <date>2012-06-20 05:53:47 -0700</date>
            <delta_ts>2012-06-21 06:25:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89514-20120620095346.patch</filename>
            <type>text/plain</type>
            <size>31953</size>
            <attacher name="Danilo de Paula">danilo.eu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlNWZkZWE5MDA4Mzkx
YWFjYzBhOTViOTY1OGQwZGIyMzk2OWI1NC4uMDZkNzcyM2QwMDExNGE3NmIwYzYwZWQxNjQ5OTIz
ODg0YjA5YWNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA2LTE5ICBEYW5p
bG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgIDxkYW5pbG8uY2VzYXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIGFkZGluZyB1cmwgdG8gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZQorCisgICAg
ICAgIEluIHRoZSBjYXNlIG9mIHR3byBtZWRpYSBwbGF5ZXJzIHdoZXJlIG9uZSBpcyB1c2VkIGZv
ciBNZWRpYVN0cmVhbSwgaXQgbmVlZHMgdG8ga25vdyB0aGUgVVJMIHRvIGNoZWNrIGlmIGl0J3MK
KyAgICAgICAgYSBNZWRpYVN0cmVhbSBnZW5lcmF0ZWQgYmxvYiwgdG8gcmV0dXJuIGlmIGl0J3Mg
c3VwcG9ydGVkIG9yIG5vdC4KKworICAgICAgICBBZGQgdXJsIHRvIHN1cHBvcnRzVHlwZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk1MTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
c2luY2UgdGhlcmUncyBubyBjaGFuZ2Ugb24gY29kZSBiZWhhdmlvci4KKworICAgICAgICAqIGRv
bS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRh
dGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQp
OgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKE1lZGlhUGxheWVyRmFjdG9yeSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckZhY3Rvcnk6Ok1lZGlhUGxheWVyRmFjdG9y
eSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRQbGFpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnN1cHBvcnRz
VHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgIChNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9y
dHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxh
eWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlOjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oOgorICAgICAgICAoTWVkaWFQbGF5
ZXJQcml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzdXBw
b3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJp
dmF0ZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF0OjpzdXBw
b3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJp
dmF0ZVF0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVRdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dDo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oOgorICAgICAgICAo
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaDoKKyAgICAgICAg
KE1lZGlhUGxheWVyUHJpdmF0ZSk6CisKIDIwMTItMDYtMDggIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IHNldmVyYWwg
Y29tcGlsZXIgd2FybmluZ3MgYW5kIGVycm9ycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVt
ZW50YXRpb24uY3BwCmluZGV4IDRkM2Q4NTMzYWQwYTJkM2Q5NzRjZWM2OTY0ZjIyNzI4OGI2ZTYx
YzcuLjBjN2EwYmJhYmM4MTBjODAwNTU2M2QwODc5Njk3ZmE3ZTI1ZmEwYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtNDA3LDcgKzQwNyw3IEBAIFBhc3NS
ZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBT
dHJpbmcmIHR5cGUsIEZyYW1lCiAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgdHlwZSBjYW4g
YmUgcGxheWVkIGJ5IG91ciBNZWRpYVBsYXllciwgaWYgc28gY3JlYXRlIGEgTWVkaWFEb2N1bWVu
dAogICAgIC8vIEtleSBzeXN0ZW0gaXMgbm90IGFwcGxpY2FibGUgaGVyZS4KICAgICBET01JbXBs
ZW1lbnRhdGlvblN1cHBvcnRzVHlwZUNsaWVudCBjbGllbnQoZnJhbWUgJiYgZnJhbWUtPnNldHRp
bmdzKCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCksIHVy
bC5ob3N0KCkpOwotICAgIGlmIChNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKENvbnRlbnRUeXBl
KHR5cGUpLCBTdHJpbmcoKSwgJmNsaWVudCkpCisgICAgaWYgKE1lZGlhUGxheWVyOjpzdXBwb3J0
c1R5cGUoQ29udGVudFR5cGUodHlwZSksIFN0cmluZygpLCB1cmwsICZjbGllbnQpKQogICAgICAg
ICAgcmV0dXJuIE1lZGlhRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgdXJsKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA0ODljNTEyMmQ0NGU0
OGVmZGQ0YmQyMDkzZjE3M2JmZjA3YjliOWQ2Li42MWUwNmVmNjhhOGQwYTQ2ZjUzOTdhYjc5NzFl
Njg1YWU3MmJlMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTYxOCw5ICs2MTgsOSBAQCBIVE1MTWVkaWFFbGVtZW50OjpOZXR3b3JrU3RhdGUgSFRNTE1l
ZGlhRWxlbWVudDo6bmV0d29ya1N0YXRlKCkgY29uc3QKICAgICByZXR1cm4gbV9uZXR3b3JrU3Rh
dGU7CiB9CiAKLVN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkgY29uc3QKK1N0cmluZyBIVE1M
TWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSwgY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewotICAgIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29u
dGVudFR5cGUobWltZVR5cGUpLCBrZXlTeXN0ZW0sIHRoaXMpOworICAgIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5
cGUobWltZVR5cGUpLCBrZXlTeXN0ZW0sIHVybCwgdGhpcyk7CiAgICAgU3RyaW5nIGNhblBsYXk7
CiAKICAgICAvLyA0LjguMTAuMwpAQCAtNjM3LDcgKzYzNyw3IEBAIFN0cmluZyBIVE1MTWVkaWFF
bGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcm
IGtleVN5CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgCi0gICAgTE9HKE1lZGlhLCAi
SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoJXMsICVzKSAtPiAlcyIsIG1pbWVUeXBlLnV0
ZjgoKS5kYXRhKCksIGtleVN5c3RlbS51dGY4KCkuZGF0YSgpLCBjYW5QbGF5LnV0ZjgoKS5kYXRh
KCkpOworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCVzLCAl
cywgJXMpIC0+ICVzIiwgbWltZVR5cGUudXRmOCgpLmRhdGEoKSwga2V5U3lzdGVtLnV0ZjgoKS5k
YXRhKCksIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBjYW5QbGF5LnV0ZjgoKS5kYXRhKCkp
OwogCiAgICAgcmV0dXJuIGNhblBsYXk7CiB9CkBAIC0zMTc1LDcgKzMxNzUsNyBAQCBLVVJMIEhU
TUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZChDb250ZW50VHlwZSogY29udGVu
dFR5cGUsIFN0cmluZyogawogICAgICAgICAgICAgaWYgKHNob3VsZExvZykKICAgICAgICAgICAg
ICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQg
LSAndHlwZScgaXMgJyVzJyAtIGtleSBzeXN0ZW0gaXMgJyVzJyIsIHR5cGUudXRmOCgpLmRhdGEo
KSwgc3lzdGVtLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCi0gICAgICAgICAgICBpZiAoIU1lZGlh
UGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5cGUodHlwZSksIHN5c3RlbSwgdGhpcykpCisg
ICAgICAgICAgICBpZiAoIU1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5cGUodHlw
ZSksIHN5c3RlbSwgbWVkaWFVUkwsIHRoaXMpKQogICAgICAgICAgICAgICAgIGdvdG8gY2hlY2tf
YWdhaW47CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApp
bmRleCAxNjczZTE1MzUyNDkxOGQ1Mjk1NzFlOGI5NWVkMmVhNTRkZjkzNTgwLi40MDE1YTJmODZm
MDU5NTZlNmU2MzZkMWE4NjY5YTJiOGI4ODE4MjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQ
dHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICB2b2lkIGxvYWQoRXhjZXB0aW9u
Q29kZSYpOwotICAgIFN0cmluZyBjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSA9IFN0cmluZygpKSBjb25zdDsKKyAgICBTdHJpbmcgY2Fu
UGxheVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0g
PSBTdHJpbmcoKSwgY29uc3QgS1VSTCYgPSBLVVJMKCkpIGNvbnN0OwogCiAvLyByZWFkeSBzdGF0
ZQogICAgIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDdkODQ1YWNjYzhjYjNk
ZDA2MWZjN2U1NjFkNzE1MDg4NjJlNzExMTQuLjFiMmRhOGIxNjkxMWE3YmU5M2ViMjY3MWJjODVj
YTEzZDA3NjNjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKQEAgLTE3NiwxNSArMTc2LDE0IEBAIHN0cnVjdCBNZWRpYVBsYXllckZh
Y3RvcnkgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUGxheWVyRmFjdG9yeSk7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE1lZGlhUGxheWVyRmFjdG9yeShD
cmVhdGVNZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRU
eXBlcyBnZXRTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUgc3VwcG9ydHNU
eXBlQW5kQ29kZWNzLAotICAgICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdl
dFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlh
Q2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBjbGVhck1lZGlhQ2FjaGVG
b3JTaXRlKSAKKyAgICAgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSBnZXRTaXRl
c0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUgY2xlYXJNZWRpYUNhY2hl
LCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUgY2xlYXJNZWRpYUNhY2hlRm9yU2l0
ZSkKICAgICAgICAgOiBjb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcikKICAgICAgICAgLCBnZXRTdXBw
b3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBlcykKICAgICAgICAgLCBzdXBwb3J0c1R5cGVBbmRD
b2RlY3Moc3VwcG9ydHNUeXBlQW5kQ29kZWNzKQogICAgICAgICAsIGdldFNpdGVzSW5NZWRpYUNh
Y2hlKGdldFNpdGVzSW5NZWRpYUNhY2hlKQogICAgICAgICAsIGNsZWFyTWVkaWFDYWNoZShjbGVh
ck1lZGlhQ2FjaGUpCiAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjbGVhck1lZGlh
Q2FjaGVGb3JTaXRlKQotCi0gICAgeyAKKyAgICB7CiAgICAgfQogCiAgICAgQ3JlYXRlTWVkaWFF
bmdpbmVQbGF5ZXIgY29uc3RydWN0b3I7CkBAIC0xOTYsNyArMTk1LDggQEAgcHVibGljOgogfTsK
IAogc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIsIE1l
ZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLCBNZWRpYUVu
Z2luZUdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVk
aWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlKTsKLXN0YXRpYyBNZWRpYVBsYXllckZhY3Rv
cnkqIGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIE1lZGlhUGxheWVy
RmFjdG9yeSogY3VycmVudCA9IDApOworCitzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0
TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcgJnVybCwg
TWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50ID0gMCk7CiBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0
b3J5KiBuZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KTsKIAogc3Rh
dGljIFZlY3RvcjxNZWRpYVBsYXllckZhY3RvcnkqPiYgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCkg
CkBAIC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29kZWNzKCkK
ICAgICByZXR1cm4gY29kZWNzOwogfQogCi1zdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0
TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBNZWRpYVBsYXllckZhY3Rvcnkq
IGN1cnJlbnQpCitzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0TWVkaWFFbmdpbmVGb3JU
eXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIHVybCwgTWVkaWFQbGF5ZXJGYWN0
b3J5KiBjdXJyZW50KQogewogICAgIGlmICh0eXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IDA7CkBAIC0yODAsMTEgKzI4MCwxMSBAQCBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0
TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgYwogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQot
ICAgICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIGVuZ2luZVN1cHBvcnQgPSBlbmdpbmVz
W25keF0tPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCBjb2RlY3MsIGtleVN5c3RlbSk7Cisg
ICAgICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgZW5naW5lU3VwcG9ydCA9IGVuZ2luZXNb
bmR4XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIGNvZGVjcywga2V5U3lzdGVtLCB1cmwp
OwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKGtleVN5c3RlbSk7CiAgICAgICAgIEFTU0VS
VChrZXlTeXN0ZW0uaXNFbXB0eSgpKTsKLSAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBlbmdpbmVTdXBwb3J0ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlw
ZSwgY29kZWNzKTsKKyAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBlbmdpbmVTdXBw
b3J0ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgY29kZWNzLCB1
cmwpOwogI2VuZGlmCiAgICAgICAgIGlmIChlbmdpbmVTdXBwb3J0ID4gc3VwcG9ydGVkKSB7CiAg
ICAgICAgICAgICBzdXBwb3J0ZWQgPSBlbmdpbmVTdXBwb3J0OwpAQCAtMzgzLDcgKzM4Myw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFj
dG9yeSogY3VycmVudCkKICAgICBNZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IDA7CiAKICAg
ICBpZiAoIW1fY29udGVudE1JTUVUeXBlLmlzRW1wdHkoKSkKLSAgICAgICAgZW5naW5lID0gYmVz
dE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhtX2NvbnRlbnRNSU1FVHlwZSwgbV9jb250ZW50
VHlwZUNvZGVjcywgbV9rZXlTeXN0ZW0sIGN1cnJlbnQpOworICAgICAgICBlbmdpbmUgPSBiZXN0
TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRU
eXBlQ29kZWNzLCBtX2tleVN5c3RlbSwgbV91cmwsIGN1cnJlbnQpOwogCiAgICAgLy8gSWYgbm8g
TUlNRSB0eXBlIGlzIHNwZWNpZmllZCBvciB0aGUgdHlwZSB3YXMgaW5mZXJyZWQgZnJvbSB0aGUg
ZmlsZSBleHRlbnNpb24sIGp1c3QgdXNlIHRoZSBuZXh0IGVuZ2luZS4KICAgICBpZiAoIWVuZ2lu
ZSAmJiAobV9jb250ZW50TUlNRVR5cGUuaXNFbXB0eSgpIHx8IG1fY29udGVudE1JTUVUeXBlV2Fz
SW5mZXJyZWRGcm9tRXh0ZW5zaW9uKSkKQEAgLTQxOCw3ICs0MTgsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQp
CiAgICAgICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclJlc291cmNlTm90
U3VwcG9ydGVkKHRoaXMpOwogICAgICAgICB9CiAgICAgfQotfSAgICAKK30KIAogYm9vbCBNZWRp
YVBsYXllcjo6aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0CiB7CkBAIC03MjQsNyArNzI0
LDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhp
Y3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JgogICAgIG1fcHJpdmF0ZS0+cGFpbnRDdXJyZW50
RnJhbWVJbkNvbnRleHQocCwgcik7CiB9CiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVk
aWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNsaWVu
dCogY2xpZW50KQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3VwcG9y
dHNUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0sIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVDbGll
bnQqIGNsaWVudCkKIHsKICAgICBTdHJpbmcgdHlwZSA9IGNvbnRlbnRUeXBlLnR5cGUoKS5sb3dl
cigpOwogICAgIC8vIFRoZSBjb2RlY3Mgc3RyaW5nIGlzIG5vdCBsb3dlci1jYXNlZCBiZWNhdXNl
IE1QNCB2YWx1ZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlCkBAIC03MzcsNyArNzM3LDcgQEAgTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKGNvbnN0IENvbnRl
bnRUeXBlJiBjb250ZW50VHkKICAgICBpZiAodHlwZSA9PSBhcHBsaWNhdGlvbk9jdGV0U3RyZWFt
KCkpCiAgICAgICAgIHJldHVybiBJc05vdFN1cHBvcnRlZDsKIAotICAgIE1lZGlhUGxheWVyRmFj
dG9yeSogZW5naW5lID0gYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBl
Q29kZWNzLCBzeXN0ZW0pOworICAgIE1lZGlhUGxheWVyRmFjdG9yeSogZW5naW5lID0gYmVzdE1l
ZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBlQ29kZWNzLCBzeXN0ZW0sIHVybC5z
dHJpbmcoKSk7CiAgICAgaWYgKCFlbmdpbmUpCiAgICAgICAgIHJldHVybiBJc05vdFN1cHBvcnRl
ZDsKIApAQCAtNzU3LDEwICs3NTcsMTAgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRp
YVBsYXllcjo6c3VwcG9ydHNUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHkKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICByZXR1cm4gZW5naW5lLT5zdXBw
b3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtKTsKKyAgICByZXR1cm4g
ZW5naW5lLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtLCB1
cmwuc3RyaW5nKCkpOwogI2Vsc2UKICAgICBBU1NFUlQoc3lzdGVtLmlzRW1wdHkoKSk7Ci0gICAg
cmV0dXJuIGVuZ2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2RlY3MpOwor
ICAgIHJldHVybiBlbmdpbmUtPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBlQ29kZWNz
LCB1cmwuc3RyaW5nKCkpOwogI2VuZGlmCiB9CiAKQEAgLTk0Miw3ICs5NDIsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKCkKICAgICBpZiAobV9wcml2YXRlLT5uZXR3
b3JrU3RhdGUoKSA+PSBGb3JtYXRFcnJvcgogICAgICAgICAmJiBtX3ByaXZhdGUtPnJlYWR5U3Rh
dGUoKSA8IEhhdmVNZXRhZGF0YQogICAgICAgICAmJiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKS5z
aXplKCkgPiAxKSB7Ci0gICAgICAgIGlmIChtX2NvbnRlbnRNSU1FVHlwZS5pc0VtcHR5KCkgfHwg
YmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhtX2NvbnRlbnRNSU1FVHlwZSwgbV9jb250
ZW50VHlwZUNvZGVjcywgbV9rZXlTeXN0ZW0sIG1fY3VycmVudE1lZGlhRW5naW5lKSkgeworICAg
ICAgICBpZiAobV9jb250ZW50TUlNRVR5cGUuaXNFbXB0eSgpIHx8IGJlc3RNZWRpYUVuZ2luZUZv
clR5cGVBbmRDb2RlY3MobV9jb250ZW50TUlNRVR5cGUsIG1fY29udGVudFR5cGVDb2RlY3MsIG1f
a2V5U3lzdGVtLCBtX3VybCwgbV9jdXJyZW50TWVkaWFFbmdpbmUpKSB7CiAgICAgICAgICAgICBt
X3JlbG9hZFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
aW5kZXggNmM3MjJhMDgwN2E0NWYwM2M1OTM5NjUxMmYyZDk4YjI1MWUwNTMzYi4uYzQ4YTJjNWNm
N2Q5YWUwMDc5ZmE5MmYzZWE1YmZjNTQxMzM1MDZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0yMDMsNyArMjAzLDcgQEAgcHVibGlj
OgogCiAgICAgLy8gTWVkaWEgZW5naW5lIHN1cHBvcnQuCiAgICAgZW51bSBTdXBwb3J0c1R5cGUg
eyBJc05vdFN1cHBvcnRlZCwgSXNTdXBwb3J0ZWQsIE1heUJlU3VwcG9ydGVkIH07Ci0gICAgc3Rh
dGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IENvbnRlbnRU
eXBlJiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IE1lZGlhUGxheWVyU3VwcG9ydHNU
eXBlQ2xpZW50Kik7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0
IEtVUkwmLCBjb25zdCBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNsaWVudCopOwogICAgIHN0YXRp
YyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwogICAgIHN0YXRpYyBi
b29sIGlzQXZhaWxhYmxlKCk7CiAgICAgc3RhdGljIHZvaWQgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUo
VmVjdG9yPFN0cmluZz4mKTsKQEAgLTQyMywxNyArNDIzLDE2IEBAIHByaXZhdGU6CiB0eXBlZGVm
IFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiAoKkNyZWF0ZU1lZGlhRW5n
aW5lUGxheWVyKShNZWRpYVBsYXllciopOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVTdXBw
b3J0ZWRUeXBlcykoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKLXR5cGVkZWYgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSAoKk1lZGlhRW5naW5l
U3VwcG9ydHNUeXBlKShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSk7Cit0eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5
cGUgKCpNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgdXJs
KTsKICNlbHNlCi10eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVuZ2lu
ZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7
Cit0eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVuZ2luZVN1cHBvcnRz
VHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3Ry
aW5nJiB1cmwpOwogI2VuZGlmCiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUdldFNpdGVzSW5N
ZWRpYUNhY2hlKShWZWN0b3I8U3RyaW5nPiYpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVD
bGVhck1lZGlhQ2FjaGUpKCk7CiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUNsZWFyTWVkaWFD
YWNoZUZvclNpdGUpKGNvbnN0IFN0cmluZyYpOwogCi10eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2lu
ZVJlZ2lzdHJhcikoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIsIE1lZGlhRW5naW5lU3VwcG9ydGVk
VHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLCAKLSAgICBNZWRpYUVuZ2luZUdldFNpdGVz
SW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVh
ck1lZGlhQ2FjaGVGb3JTaXRlKTsgCi0KK3R5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lUmVnaXN0
cmFyKShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywg
TWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUsCisgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFD
YWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNh
Y2hlRm9yU2l0ZSk7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNG
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggODc1ZDEyZGZiZTdiYjQy
MjFiZTc1NTI0ZjgxYWNkMjA3Y2EzYTc4MC4uMTE4MGE0N2Q1NTM2OTZkM2Q0ZWQ5NTdhNDdlMmJh
OGI2YWEwMmRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC03MjUsOCArNzI1LDEwIEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hT
ZXQ8U3RyaW5nPiYgc3VwcG9yCiAgICAgc3VwcG9ydGVkVHlwZXMgPSBtaW1lVHlwZUNhY2hlKCk7
CiB9IAogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0Y6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIHVybCkKIHsKKyAgICBVTlVTRURfUEFSQU0odXJsKTsK
KwogICAgIC8vIE9ubHkgcmV0dXJuICJJc1N1cHBvcnRlZCIgaWYgdGhlcmUgaXMgbm8gY29kZWNz
IHBhcmFtZXRlciBmb3Igbm93IGFzIHRoZXJlIGlzIG5vIHdheSB0byBhc2sgaWYgaXQgc3VwcG9y
dHMgYW4KICAgICAvLyBleHRlbmRlZCBNSU1FIHR5cGUgdW50aWwgcmRhcjovLzg3MjE3MTUgaXMg
Zml4ZWQuCiAgICAgaWYgKG1pbWVUeXBlQ2FjaGUoKS5jb250YWlucyh0eXBlKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNG
LmgKaW5kZXggZjVkZDAwMTUwZDQ0MDUxNzBjYWZjOGEyNDdkZGQ4YTQ5MjczOGE3Ni4uOTdjYzVk
ZDkzNGY3ZTMxOGNkYmU4YmMzZjUwMzE2NWMxOTNmOWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKQEAgLTQ2
LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBFbmdpbmUgc3VwcG9ydAogICAgIHN0YXRpYyBQ
YXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVy
Kik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0
eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBl
KGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpOworICAgIHN0YXRpYyBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgc3RhdGljIGJv
b2wgaXNBdmFpbGFibGUoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxMb2FkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKaW5kZXggZGNjMDQ2ZDA3N2I1ZmY3M2ZjZWJlN2EzNWM3ZTM1ZTViMzAx
OTU2MS4uOGNhMWUxM2FkMzA3ZGY0NjE2YTYxYzY1YTM2NjgwNmI2Yzc2Yzk1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBz
dXBwb3J0CiAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
PiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBl
cyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNv
ZGVjcyk7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBl
KGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYg
dXJsKTsKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgdmlydHVhbCB2b2lk
IGNhbmNlbExvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDllODY1MzQ5N2VmNWFl
ZWNmYTBmN2QwOThmYzBkM2JlNjRlNmQ1NGIuLmVkZDBlN2I1Zjc3MWZhOWUyYmNmMzUwZDljN2Nh
N2QyZGVhODAyYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNjcyLDggKzY3MiwxMCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN1cHBvcnRlZFR5
cGVzKEhhc2hTZXQ8U3RyaW5nPiYgc3VwcAogICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZVR5cGVD
YWNoZSgpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwg
Y29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJsKQogeworICAgIFVOVVNFRF9Q
QVJBTSh1cmwpOworCiAgICAgaWYgKCFtaW1lVHlwZUNhY2hlKCkuY29udGFpbnModHlwZSkpCiAg
ICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQ
cml2YXRlQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9i
bGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCmluZGV4IDNhYzkzZThi
NGM2N2VkMmYxNGZlMzY2YWY2NTEyNjI4NDBhMTEwOTcuLmE0YWMwOTY1N2RmNjczNGIyNTMxODE3
MjM0MmJmNWI5MDcyZmE4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclBy
aXZhdGVCbGFja0JlcnJ5LmNwcApAQCAtNzIsOCArNzIsMTAgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGU6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpCiAgICAgICAg
IHR5cGVzLmFkZChpLT5jX3N0cigpKTsKIH0KIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBN
ZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclBy
aXZhdGU6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29k
ZWNzLCBjb25zdCBTdHJpbmcmIHVybCkKIHsKKyAgICBVTlVTRURfUEFSQU0odXJsKTsKKwogICAg
IGlmICh0eXBlLmlzTnVsbCgpIHx8IHR5cGUuaXNFbXB0eSgpKSB7CiAgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhUGxheWVyIGRvZXMgbm90IHN1cHBvcnQgdHlwZTsgdHlwZSBpcyBudWxsIG9yIGVt
cHR5LiIpOwogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRp
YVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAppbmRleCAwYWM0
NjZiZWM4ZWU4ODgxMWExYjE2NDBiNzM1MmE5MDljODUzNjVlLi5lMDdjMWZlOTMzOTM4ZGQ2MjI5
YTQzZmJlZTg2NWJiNGZlMTUxMmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVy
UHJpdmF0ZUJsYWNrQmVycnkuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5
ZXIqKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVn
aXN0cmFyKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUo
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyB2b2lkIG5vdGlmeUFwcEFjdGl2YXRlZEV2ZW50KGJv
b2wpOwogICAgIHN0YXRpYyB2b2lkIHNldENlcnRpZmljYXRlUGF0aChjb25zdCBTdHJpbmcmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRl
eCA4Mzk3MDhlZTk3NzYwMTQ4MGMyOGQzMDY5OTY4MTFiOGNhMzkxNjBjLi42NWI5MDdmNjcxYjYx
ODJjMjFlYWI1MTYxMzUzODEwZDYyNzEyNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTU5Niw4ICsxNTk2LDEwIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mIHR5cGVzKQogICAgIHR5cGVzID0gbWltZVR5cGVDYWNoZSgpOwogfQogCi1NZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9ydHNUeXBl
KGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9ydHNUeXBlKGNv
bnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJs
KQogeworICAgIFVOVVNFRF9QQVJBTSh1cmwpOworCiAgICAgaWYgKHR5cGUuaXNOdWxsKCkgfHwg
dHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0
ZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRl
eCAzOWVlOWNlNGJmYmNiODEyM2EwMjNjNDE1NzJjMzBhNjNlYzFkMzBkLi5mNDNhYWJjMGIyMDJj
ZGFlM2FkNTU2YzE5NWU5MTc3MDdhNWQ3NzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0xMzAsNyArMTMwLDggQEAgY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CiAgICAgICAgICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogCiAgICAgICAgICAgICBzdGF0aWMgdm9pZCBnZXRT
dXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKLSAgICAgICAgICAgIHN0YXRpYyBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgY29kZWNzKTsKKyAgICAgICAgICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
Y29kZWNzLCBjb25zdCBTdHJpbmcmIHVybCk7CisKICAgICAgICAgICAgIHN0YXRpYyBib29sIGlz
QXZhaWxhYmxlKCk7CiAKICAgICAgICAgICAgIHZvaWQgdXBkYXRlQXVkaW9TaW5rKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRp
YVBsYXllclByaXZhdGVRVEtpdC5oCmluZGV4IDAxMWVjMzZhMjVkMTlkZTYxMTFlZDU4M2NkMmI2
YTE0NGUxYzQwYTQuLmIyNGM1MzIwZTdmNDhkOTE0NDdlYTJiOTZlMTViMzc3ZDkzZmNhNmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gZW5naW5lIHN1cHBvcnQKICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdl
dFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRpYyBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgY29kZWNzKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywg
Y29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHN0YXRpYyB2b2lkIGdldFNpdGVzSW5NZWRpYUNhY2hl
KFZlY3RvcjxTdHJpbmc+Jik7CiAgICAgc3RhdGljIHZvaWQgY2xlYXJNZWRpYUNhY2hlKCk7CiAg
ICAgc3RhdGljIHZvaWQgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjb25zdCBTdHJpbmcmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCAyOTI0OWFhNzg4N2I4ZjIzZDNhOGQ1ODFl
YzU3Yzg3NjkxZjc4MzBmLi5jMDg1ODFkMTU0ODllY2RiOTVlZWJlNGQ4YjU0ODRlZTAyOWFmOTUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0xNDYwLDggKzE0NjAsOSBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0
cmluZz4mIHN1cHBvcnRlZFR5cGVzKQogICAgICAgICBzdXBwb3J0ZWRUeXBlcy5hZGQoKml0KTsK
IH0gCiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQor
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c3VwcG9y
dHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0
cmluZyYgdXJsKQogeworICAgIFVOVVNFRF9QQVJBTSh1cmwpOwogICAgIC8vIE9ubHkgcmV0dXJu
ICJJc1N1cHBvcnRlZCIgaWYgdGhlcmUgaXMgbm8gY29kZWNzIHBhcmFtZXRlciBmb3Igbm93IGFz
IHRoZXJlIGlzIG5vIHdheSB0byBhc2sgUVQgaWYgaXQgc3VwcG9ydHMgYW4KICAgICAvLyBleHRl
bmRlZCBNSU1FIHR5cGUgeWV0LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5jcHAKaW5kZXggM2EzMDdj
YjI3NDljZTQzMzBlOThjZTVlMTM1M2U1ODQxNDliODg1Yi4uZGVlMTU4NGMyOWM4OTNjMjM0NjRk
MmYwNDE4MDllOGM1Zjk1ZDA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcApAQCAtODEsOCAr
ODEsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdDo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFz
aFNldDxTdHJpbmc+ICZzdXBwb3J0ZWQpCiAgICAgfQogfQogCi1NZWRpYVBsYXllcjo6U3VwcG9y
dHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZVF0OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiBt
aW1lLCBjb25zdCBTdHJpbmcmIGNvZGVjKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRp
YVBsYXllclByaXZhdGVRdDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgbWltZSwgY29uc3Qg
U3RyaW5nJiBjb2RlYywgY29uc3QgU3RyaW5nJiB1cmwpCiB7CisgICAgVU5VU0VEX1BBUkFNKHVy
bCk7CisKICAgICBpZiAoIW1pbWUuc3RhcnRzV2l0aCgiYXVkaW8vIikgJiYgIW1pbWUuc3RhcnRz
V2l0aCgidmlkZW8vIikpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0
ZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01l
ZGlhUGxheWVyUHJpdmF0ZVF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9NZWRpYVBsYXllclByaXZhdGVRdC5oCmluZGV4IGM2ZmNiZDgzOGQxMWQ4M2U0NzU3NTA5Zjdh
MjE2OTdmMzM0N2RhMGUuLjJhYjdiOTUzZTI2MzU5MjYwMDRiMmY0NGRmNjE3NWNjZTU0MzBhN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxh
eWVyUHJpdmF0ZVF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
TWVkaWFQbGF5ZXJQcml2YXRlUXQuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAg
ICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKLSAgICBz
dGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAg
Ym9vbCBoYXNWaWRlbygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwCmluZGV4IDdkOWRjYWZlNjY3ZjU3MzM3NGNi
ZWFhNWE2M2VjZDdkYjAyMjgzMjIuLmJmOTMxMmFlYjhmNWFhMDEwOGNlN2I4NDNlMGFhYjIzZDY2
YTJiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dC5jcHAKQEAgLTEwMTEsOCArMTAxMSwxMCBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OmlzQXZhaWxhYmxlKCkKICAgICByZXR1cm4g
UVRNb3ZpZTo6aW5pdGlhbGl6ZVF1aWNrVGltZSgpOwogfQogCi1NZWRpYVBsYXllcjo6U3VwcG9y
dHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnN1cHBvcnRz
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0
OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywg
Y29uc3QgU3RyaW5nJiB1cmwpCiB7CisgICAgVU5VU0VEX1BBUkFNKHVybCk7CisKICAgICAvLyBv
bmx5IHJldHVybiAiSXNTdXBwb3J0ZWQiIGlmIHRoZXJlIGlzIG5vIGNvZGVjcyBwYXJhbWV0ZXIg
Zm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3YXkgdG8gYXNrIFFUIGlmIGl0IHN1cHBvcnRzIGFuCiAg
ICAgLy8gIGV4dGVuZGVkIE1JTUUgdHlwZQogICAgIHJldHVybiBtaW1lVHlwZUNhY2hlKCkuY29u
dGFpbnModHlwZSkgPyAoY29kZWNzLmlzRW1wdHkoKSA/IE1lZGlhUGxheWVyOjpNYXlCZVN1cHBv
cnRlZCA6IE1lZGlhUGxheWVyOjpJc1N1cHBvcnRlZCkgOiBNZWRpYVBsYXllcjo6SXNOb3RTdXBw
b3J0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3Vh
bENvbnRleHQuaAppbmRleCA0YzQ0YWY0MDFlYmIwM2ZkYjJmM2ZmMTQyNDI4NTc5NTFmOTExMTM1
Li40M2E3MmQ1MGNiMDg4YzNkOTAyY2YzYTU2YTkzOGY5ZjRkNzRhYzQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgKQEAgLTEy
OCw3ICsxMjgsNyBAQCBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBzdXBwb3J0CiAgICAgc3RhdGlj
IFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5
ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4m
IHR5cGVzKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5
cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgc3RhdGlj
IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICBzdGF0aWMg
Ym9vbCBpc0F2YWlsYWJsZSgpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQ
bGF5ZXJQcml2YXRlV2luQ0UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbkNFLmgKaW5kZXggMGZhYTA0NTc4NGQ3MWJmYTg3MDY4
ZGVmZGIwNjA2Njc0YzllYjcyYy4uMmY3YTAzZDJiZWYxZTZlYmUyN2IzNTA3NGY1YWVmOWYxNDg2
ZTlhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
TWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oCkBAIC0xMDAsNyArMTAwLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBlbmdpbmUgc3VwcG9ydAogICAgICAg
ICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShN
ZWRpYVBsYXllciopOwogICAgICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNo
U2V0PFN0cmluZz4mIHR5cGVzKTsKLSAgICAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2Rl
Y3MpOworICAgICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5
cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5n
JiB1cmwpOwogICAgICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgICAgIE1l
ZGlhUGxheWVyKiBtX3BsYXllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IGEyOWE0Yzc5MjhiNjQ0ZmQ2
ZGM1OGVmNDlmYTFkNTQxMDkxOTNhM2MuLmM2NzgxYmVmMDJjYmY2YzYyM2Y4ZmRmZDAzMzIyMTc3
NzY0MjNlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcApAQCAtNzkyLDE0ICs3OTIsMTggQEAgdm9pZCBXZWJN
ZWRpYVBsYXllckNsaWVudEltcGw6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYg
c3VwcG9ydGVkVHlwZXMKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1cHBvcnRzVHlwZShjb25z
dCBTdHJpbmcmIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgY29kZWNzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFN0cmluZyYgdXJsKQogewogI2Vsc2UKIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0c1R5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGNvZGVjcykKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
U3RyaW5nJiBjb2RlY3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIFN0cmlu
ZyBrZXlTeXN0ZW07CiAjZW5kaWYKKyAgICBVTlVTRURfUEFSQU0odXJsKTsKKwogICAgIFdlYk1p
bWVSZWdpc3RyeTo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZSA9IFdlYktpdDo6UGxhdGZvcm06
OmN1cnJlbnQoKS0+bWltZVJlZ2lzdHJ5KCktPnN1cHBvcnRzTWVkaWFNSU1FVHlwZSh0eXBlLCBj
b2RlY3MsIGtleVN5c3RlbSk7CiAKICAgICBzd2l0Y2ggKHN1cHBvcnRzVHlwZSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwu
aAppbmRleCA2ZjE1MGRkYTcyZmJkZjQ5YzU3MWQxNGNiODk4NWVlMGMxNDE4ZGJjLi5iZDBlMWQ2
ZjY3NTdkNTBkMGJkOTk2NThjZWI5MDk1MzlhNGI1NjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtMTg2LDEw
ICsxODYsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhX
VEY6Okhhc2hTZXQ8V1RGOjpTdHJpbmc+Jik7CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkK
ICAgICBzdGF0aWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5
cGUoCi0gICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiB0eXBlLCBjb25zdCBXVEY6OlN0cmluZyYg
Y29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSk7CisgICAgICAgIGNvbnN0IFdURjo6U3Ry
aW5nJiB0eXBlLCBjb25zdCBXVEY6OlN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSwgY29uc3QgU3RyaW5nJiB1cmwpOwogI2Vsc2UKICAgICBzdGF0aWMgV2ViQ29yZTo6TWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoCi0gICAgICAgIGNvbnN0IFdURjo6
U3RyaW5nJiB0eXBlLCBjb25zdCBXVEY6OlN0cmluZyYgY29kZWNzKTsKKyAgICAgICAgY29uc3Qg
V1RGOjpTdHJpbmcmIHR5cGUsIGNvbnN0IFdURjo6U3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmlu
ZyYgdXJsKTsKICNlbmRpZgogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBi
b29sIGFjY2VsZXJhdGVkUmVuZGVyaW5nSW5Vc2UoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148780</attachid>
            <date>2012-06-21 06:25:42 -0700</date>
            <delta_ts>2012-06-22 05:43:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89514-20120621102542.patch</filename>
            <type>text/plain</type>
            <size>31963</size>
            <attacher name="Danilo de Paula">danilo.eu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlNWZkZWE5MDA4Mzkx
YWFjYzBhOTViOTY1OGQwZGIyMzk2OWI1NC4uODgzNWZlOTgzNWU5MzQ3MmRiMmFmZjM1N2IyZThm
MWE2ZDc5MDM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA2LTE5ICBEYW5p
bG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgIDxkYW5pbG8uY2VzYXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIEFkZCB1cmwgdG8gc3VwcG9ydHNUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTUxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGVyZSdzIG5vIGNo
YW5nZSBvbiBjb2RlIGJlaGF2aW9yLgorCisgICAgICAgIFdoZW4gYSBibG9iIGlzIGNyZWF0ZWQg
YXMgdGhlIGFkZHJlc3MgZm9yIGEgTWVkaWEgU3RyZWFtLCB0aGUgTWVkaWFFbmdpbmUKKyAgICAg
ICAgd2lsbCBhc2sgaXQncyBwbGF5ZXJzIGlmIHRoZXkgc3VwcG9ydCB0aGF0IG1lZGlhLiBIb3dl
dmVyLCBhIHBsYXllciBidWlsdAorICAgICAgICBmb3IgTWVkaWFTdHJlYW0gbmVlZHMgdG8ga25v
dyB0byBVUkwgdG8gZGVjaWRlIGlmIGl0J3Mgb3IgaXQncyBub3Qgc3VwcG9ydGVkLgorCisKKyAg
ICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
SW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxh
eVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNv
dXJjZUNoaWxkKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChNZWRpYVBsYXll
ckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJGYWN0b3J5OjpNZWRpYVBs
YXllckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0
UGxhaW4pOgorICAgICAgICAoV2ViQ29yZTo6YmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVj
cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6bG9hZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
OjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnN1cHBvcnRzVHlw
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25DRik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAoTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJy
eS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaDoKKyAgICAgICAg
KE1lZGlhUGxheWVyUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAg
ICAoTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgKE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRp
YVBsYXllclByaXZhdGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVRdDo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRp
YVBsYXllclByaXZhdGVRdC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlUXQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVW
aXN1YWxDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1
aWNrVGltZVZpc3VhbENvbnRleHQ6OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuaDoK
KyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbkNFLmg6
CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGUpOgorCiAyMDEyLTA2LTA4ICBWc2V2b2xvZCBW
bGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZp
eCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFuZCBlcnJvcnMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCA0ZDNkODUzM2FkMGEyZDNkOTc0Y2VjNjk2NGYy
MjcyODhiNmU2MWM3Li4wYzdhMGJiYWJjODEwYzgwMDU1NjNkMDg3OTY5N2ZhN2UyNWZhMGEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTQwNyw3ICs0MDcs
NyBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1l
bnQoY29uc3QgU3RyaW5nJiB0eXBlLCBGcmFtZQogICAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhl
IHR5cGUgY2FuIGJlIHBsYXllZCBieSBvdXIgTWVkaWFQbGF5ZXIsIGlmIHNvIGNyZWF0ZSBhIE1l
ZGlhRG9jdW1lbnQKICAgICAvLyBLZXkgc3lzdGVtIGlzIG5vdCBhcHBsaWNhYmxlIGhlcmUuCiAg
ICAgRE9NSW1wbGVtZW50YXRpb25TdXBwb3J0c1R5cGVDbGllbnQgY2xpZW50KGZyYW1lICYmIGZy
YW1lLT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0aW5ncygpLT5uZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcygpLCB1cmwuaG9zdCgpKTsKLSAgICBpZiAoTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShD
b250ZW50VHlwZSh0eXBlKSwgU3RyaW5nKCksICZjbGllbnQpKQorICAgIGlmIChNZWRpYVBsYXll
cjo6c3VwcG9ydHNUeXBlKENvbnRlbnRUeXBlKHR5cGUpLCBTdHJpbmcoKSwgdXJsLCAmY2xpZW50
KSkKICAgICAgICAgIHJldHVybiBNZWRpYURvY3VtZW50OjpjcmVhdGUoZnJhbWUsIHVybCk7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNDg5
YzUxMjJkNDRlNDhlZmRkNGJkMjA5M2YxNzNiZmYwN2I5YjlkNi4uNjFlMDZlZjY4YThkMGE0NmY1
Mzk3YWI3OTcxZTY4NWFlNzJiZTMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC02MTgsOSArNjE4LDkgQEAgSFRNTE1lZGlhRWxlbWVudDo6TmV0d29ya1N0
YXRlIEhUTUxNZWRpYUVsZW1lbnQ6Om5ldHdvcmtTdGF0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
bmV0d29ya1N0YXRlOwogfQogCi1TdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUo
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pIGNvbnN0CitT
dHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKLSAg
ICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnQgPSBNZWRpYVBsYXllcjo6c3VwcG9y
dHNUeXBlKENvbnRlbnRUeXBlKG1pbWVUeXBlKSwga2V5U3lzdGVtLCB0aGlzKTsKKyAgICBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnQgPSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBl
KENvbnRlbnRUeXBlKG1pbWVUeXBlKSwga2V5U3lzdGVtLCB1cmwsIHRoaXMpOwogICAgIFN0cmlu
ZyBjYW5QbGF5OwogCiAgICAgLy8gNC44LjEwLjMKQEAgLTYzNyw3ICs2MzcsNyBAQCBTdHJpbmcg
SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29u
c3QgU3RyaW5nJiBrZXlTeQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIAotICAgIExP
RyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCVzLCAlcykgLT4gJXMiLCBt
aW1lVHlwZS51dGY4KCkuZGF0YSgpLCBrZXlTeXN0ZW0udXRmOCgpLmRhdGEoKSwgY2FuUGxheS51
dGY4KCkuZGF0YSgpKTsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5
VHlwZSglcywgJXMsICVzKSAtPiAlcyIsIG1pbWVUeXBlLnV0ZjgoKS5kYXRhKCksIGtleVN5c3Rl
bS51dGY4KCkuZGF0YSgpLCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgY2FuUGxheS51dGY4
KCkuZGF0YSgpKTsKIAogICAgIHJldHVybiBjYW5QbGF5OwogfQpAQCAtMzE3NSw3ICszMTc1LDcg
QEAgS1VSTCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQoQ29udGVudFR5
cGUqIGNvbnRlbnRUeXBlLCBTdHJpbmcqIGsKICAgICAgICAgICAgIGlmIChzaG91bGRMb2cpCiAg
ICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNv
dXJjZUNoaWxkIC0gJ3R5cGUnIGlzICclcycgLSBrZXkgc3lzdGVtIGlzICclcyciLCB0eXBlLnV0
ZjgoKS5kYXRhKCksIHN5c3RlbS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgotICAgICAgICAgICAg
aWYgKCFNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKENvbnRlbnRUeXBlKHR5cGUpLCBzeXN0ZW0s
IHRoaXMpKQorICAgICAgICAgICAgaWYgKCFNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKENvbnRl
bnRUeXBlKHR5cGUpLCBzeXN0ZW0sIG1lZGlhVVJMLCB0aGlzKSkKICAgICAgICAgICAgICAgICBn
b3RvIGNoZWNrX2FnYWluOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmgKaW5kZXggMTY3M2UxNTM1MjQ5MThkNTI5NTcxZThiOTVlZDJlYTU0ZGY5MzU4MC4u
NDAxNWEyZjg2ZjA1OTU2ZTZlNjM2ZDFhODY2OWEyYjhiODgxODIyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTEyOCw3ICsxMjgsNyBAQCBwdWJsaWM6CiAKICAg
ICBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgdm9pZCBsb2Fk
KEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBTdHJpbmcgY2FuUGxheVR5cGUoY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0gPSBTdHJpbmcoKSkgY29uc3Q7CisgICAg
U3RyaW5nIGNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtID0gU3RyaW5nKCksIGNvbnN0IEtVUkwmID0gS1VSTCgpKSBjb25zdDsKIAogLy8g
cmVhZHkgc3RhdGUKICAgICBSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA3ZDg0
NWFjY2M4Y2IzZGQwNjFmYzdlNTYxZDcxNTA4ODYyZTcxMTE0Li4xYjJkYThiMTY5MTFhN2JlOTNl
YjI2NzFiYzg1Y2ExM2QwNzYzYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xNzYsMTUgKzE3NiwxNCBAQCBzdHJ1Y3QgTWVk
aWFQbGF5ZXJGYWN0b3J5IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVBsYXllckZh
Y3RvcnkpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBNZWRpYVBsYXll
ckZhY3RvcnkoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIgY29uc3RydWN0b3IsIE1lZGlhRW5naW5l
U3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBl
IHN1cHBvcnRzVHlwZUFuZENvZGVjcywKLSAgICAgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVk
aWFDYWNoZSBnZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUg
Y2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUgY2xlYXJN
ZWRpYUNhY2hlRm9yU2l0ZSkgCisgICAgICAgIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2Fj
aGUgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlIGNsZWFy
TWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlIGNsZWFyTWVkaWFD
YWNoZUZvclNpdGUpCiAgICAgICAgIDogY29uc3RydWN0b3IoY29uc3RydWN0b3IpCiAgICAgICAg
ICwgZ2V0U3VwcG9ydGVkVHlwZXMoZ2V0U3VwcG9ydGVkVHlwZXMpCiAgICAgICAgICwgc3VwcG9y
dHNUeXBlQW5kQ29kZWNzKHN1cHBvcnRzVHlwZUFuZENvZGVjcykKICAgICAgICAgLCBnZXRTaXRl
c0luTWVkaWFDYWNoZShnZXRTaXRlc0luTWVkaWFDYWNoZSkKICAgICAgICAgLCBjbGVhck1lZGlh
Q2FjaGUoY2xlYXJNZWRpYUNhY2hlKQogICAgICAgICAsIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUo
Y2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSkKLQotICAgIHsgCisgICAgewogICAgIH0KIAogICAgIENy
ZWF0ZU1lZGlhRW5naW5lUGxheWVyIGNvbnN0cnVjdG9yOwpAQCAtMTk2LDcgKzE5NSw4IEBAIHB1
YmxpYzoKIH07CiAKIHN0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0ZU1lZGlhRW5naW5l
UGxheWVyLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlw
ZSwgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlh
Q2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSk7Ci1zdGF0aWMgTWVkaWFQ
bGF5ZXJGYWN0b3J5KiBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmlu
ZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBN
ZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQgPSAwKTsKKworc3RhdGljIE1lZGlhUGxheWVyRmFj
dG9yeSogYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3Ry
aW5nICZ1cmwsIE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCA9IDApOwogc3RhdGljIE1lZGlh
UGxheWVyRmFjdG9yeSogbmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVu
dCk7CiAKIHN0YXRpYyBWZWN0b3I8TWVkaWFQbGF5ZXJGYWN0b3J5Kj4mIGluc3RhbGxlZE1lZGlh
RW5naW5lcygpIApAQCAtMjUzLDcgKzI1Myw3IEBAIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IGNvZGVjcygpCiAgICAgcmV0dXJuIGNvZGVjczsKIH0KIAotc3RhdGljIE1lZGlhUGxheWVyRmFj
dG9yeSogYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgTWVkaWFQbGF5
ZXJGYWN0b3J5KiBjdXJyZW50KQorc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogYmVzdE1lZGlh
RW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
Y29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiB1cmwsIE1lZGlh
UGxheWVyRmFjdG9yeSogY3VycmVudCkKIHsKICAgICBpZiAodHlwZS5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiAwOwpAQCAtMjgwLDExICsyODAsMTEgQEAgc3RhdGljIE1lZGlhUGxheWVyRmFj
dG9yeSogYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUs
IGMKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKLSAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBlbmdpbmVTdXBwb3J0
ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgY29kZWNzLCBrZXlT
eXN0ZW0pOworICAgICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIGVuZ2luZVN1cHBvcnQg
PSBlbmdpbmVzW25keF0tPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCBjb2RlY3MsIGtleVN5
c3RlbSwgdXJsKTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOwogICAg
ICAgICBBU1NFUlQoa2V5U3lzdGVtLmlzRW1wdHkoKSk7Ci0gICAgICAgIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgZW5naW5lU3VwcG9ydCA9IGVuZ2luZXNbbmR4XS0+c3VwcG9ydHNUeXBlQW5k
Q29kZWNzKHR5cGUsIGNvZGVjcyk7CisgICAgICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
ZW5naW5lU3VwcG9ydCA9IGVuZ2luZXNbbmR4XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUs
IGNvZGVjcywgdXJsKTsKICNlbmRpZgogICAgICAgICBpZiAoZW5naW5lU3VwcG9ydCA+IHN1cHBv
cnRlZCkgewogICAgICAgICAgICAgc3VwcG9ydGVkID0gZW5naW5lU3VwcG9ydDsKQEAgLTM4Myw3
ICszODMsNyBAQCB2b2lkIE1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRp
YVBsYXllckZhY3RvcnkqIGN1cnJlbnQpCiAgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBlbmdpbmUg
PSAwOwogCiAgICAgaWYgKCFtX2NvbnRlbnRNSU1FVHlwZS5pc0VtcHR5KCkpCi0gICAgICAgIGVu
Z2luZSA9IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MobV9jb250ZW50TUlNRVR5cGUs
IG1fY29udGVudFR5cGVDb2RlY3MsIG1fa2V5U3lzdGVtLCBjdXJyZW50KTsKKyAgICAgICAgZW5n
aW5lID0gYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhtX2NvbnRlbnRNSU1FVHlwZSwg
bV9jb250ZW50VHlwZUNvZGVjcywgbV9rZXlTeXN0ZW0sIG1fdXJsLCBjdXJyZW50KTsKIAogICAg
IC8vIElmIG5vIE1JTUUgdHlwZSBpcyBzcGVjaWZpZWQgb3IgdGhlIHR5cGUgd2FzIGluZmVycmVk
IGZyb20gdGhlIGZpbGUgZXh0ZW5zaW9uLCBqdXN0IHVzZSB0aGUgbmV4dCBlbmdpbmUuCiAgICAg
aWYgKCFlbmdpbmUgJiYgKG1fY29udGVudE1JTUVUeXBlLmlzRW1wdHkoKSB8fCBtX2NvbnRlbnRN
SU1FVHlwZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbikpCkBAIC00MTgsNyArNDE4LDcgQEAgdm9p
ZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5
KiBjdXJyZW50KQogICAgICAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5ZXJS
ZXNvdXJjZU5vdFN1cHBvcnRlZCh0aGlzKTsKICAgICAgICAgfQogICAgIH0KLX0gICAgCit9CiAK
IGJvb2wgTWVkaWFQbGF5ZXI6Omhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25zdAogewpAQCAt
NzI0LDcgKzcyNCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udGV4dCogcCwgY29uc3QgSW50UmVjdCYKICAgICBtX3ByaXZhdGUtPnBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KHAsIHIpOwogfQogCi1NZWRpYVBsYXllcjo6U3VwcG9y
dHNUeXBlIE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgQ29udGVudFR5cGUmIGNvbnRl
bnRUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgTWVkaWFQbGF5ZXJTdXBwb3J0
c1R5cGVDbGllbnQqIGNsaWVudCkKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5
ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNvbnN0IFN0
cmluZyYga2V5U3lzdGVtLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IE1lZGlhUGxheWVyU3VwcG9y
dHNUeXBlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgU3RyaW5nIHR5cGUgPSBjb250ZW50VHlwZS50
eXBlKCkubG93ZXIoKTsKICAgICAvLyBUaGUgY29kZWNzIHN0cmluZyBpcyBub3QgbG93ZXItY2Fz
ZWQgYmVjYXVzZSBNUDQgdmFsdWVzIGFyZSBjYXNlIHNlbnNpdGl2ZQpAQCAtNzM3LDcgKzczNyw3
IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShj
b25zdCBDb250ZW50VHlwZSYgY29udGVudFR5CiAgICAgaWYgKHR5cGUgPT0gYXBwbGljYXRpb25P
Y3RldFN0cmVhbSgpKQogICAgICAgICByZXR1cm4gSXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBNZWRp
YVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3Mo
dHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtKTsKKyAgICBNZWRpYVBsYXllckZhY3RvcnkqIGVuZ2lu
ZSA9IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcywgc3lz
dGVtLCB1cmwuc3RyaW5nKCkpOwogICAgIGlmICghZW5naW5lKQogICAgICAgICByZXR1cm4gSXNO
b3RTdXBwb3J0ZWQ7CiAKQEAgLTc1NywxMCArNzU3LDEwIEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYgY29udGVu
dFR5CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0gICAgcmV0dXJuIGVu
Z2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2RlY3MsIHN5c3RlbSk7Cisg
ICAgcmV0dXJuIGVuZ2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2RlY3Ms
IHN5c3RlbSwgdXJsLnN0cmluZygpKTsKICNlbHNlCiAgICAgQVNTRVJUKHN5c3RlbS5pc0VtcHR5
KCkpOwotICAgIHJldHVybiBlbmdpbmUtPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBl
Q29kZWNzKTsKKyAgICByZXR1cm4gZW5naW5lLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwg
dHlwZUNvZGVjcywgdXJsLnN0cmluZygpKTsKICNlbmRpZgogfQogCkBAIC05NDIsNyArOTQyLDcg
QEAgdm9pZCBNZWRpYVBsYXllcjo6bmV0d29ya1N0YXRlQ2hhbmdlZCgpCiAgICAgaWYgKG1fcHJp
dmF0ZS0+bmV0d29ya1N0YXRlKCkgPj0gRm9ybWF0RXJyb3IKICAgICAgICAgJiYgbV9wcml2YXRl
LT5yZWFkeVN0YXRlKCkgPCBIYXZlTWV0YWRhdGEKICAgICAgICAgJiYgaW5zdGFsbGVkTWVkaWFF
bmdpbmVzKCkuc2l6ZSgpID4gMSkgewotICAgICAgICBpZiAobV9jb250ZW50TUlNRVR5cGUuaXNF
bXB0eSgpIHx8IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MobV9jb250ZW50TUlNRVR5
cGUsIG1fY29udGVudFR5cGVDb2RlY3MsIG1fa2V5U3lzdGVtLCBtX2N1cnJlbnRNZWRpYUVuZ2lu
ZSkpIHsKKyAgICAgICAgaWYgKG1fY29udGVudE1JTUVUeXBlLmlzRW1wdHkoKSB8fCBiZXN0TWVk
aWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBl
Q29kZWNzLCBtX2tleVN5c3RlbSwgbV91cmwsIG1fY3VycmVudE1lZGlhRW5naW5lKSkgewogICAg
ICAgICAgICAgbV9yZWxvYWRUaW1lci5zdGFydE9uZVNob3QoMCk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5oCmluZGV4IDZjNzIyYTA4MDdhNDVmMDNjNTkzOTY1MTJmMmQ5OGIyNTFlMDUzM2Iu
LmM0OGEyYzVjZjdkOWFlMDA3OWZhOTJmM2VhNWJmYzU0MTMzNTA2ZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjAzLDcgKzIwMyw3
IEBAIHB1YmxpYzoKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgogICAgIGVudW0gU3Vw
cG9ydHNUeXBlIHsgSXNOb3RTdXBwb3J0ZWQsIElzU3VwcG9ydGVkLCBNYXlCZVN1cHBvcnRlZCB9
OwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25z
dCBDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBNZWRpYVBsYXll
clN1cHBvcnRzVHlwZUNsaWVudCopOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlIHN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYga2V5U3lz
dGVtLCBjb25zdCBLVVJMJiwgY29uc3QgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVDbGllbnQqKTsK
ICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKICAg
ICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogICAgIHN0YXRpYyB2b2lkIGdldFNpdGVzSW5N
ZWRpYUNhY2hlKFZlY3RvcjxTdHJpbmc+Jik7CkBAIC00MjMsMTcgKzQyMywxNiBAQCBwcml2YXRl
OgogdHlwZWRlZiBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gKCpDcmVh
dGVNZWRpYUVuZ2luZVBsYXllcikoTWVkaWFQbGF5ZXIqKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlh
RW5naW5lU3VwcG9ydGVkVHlwZXMpKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUEpCi10eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpN
ZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOwordHlwZWRlZiBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBT
dHJpbmcmIHVybCk7CiAjZWxzZQotdHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlICgq
TWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBjb2RlY3MpOwordHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdp
bmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3Ms
IGNvbnN0IFN0cmluZyYgdXJsKTsKICNlbmRpZgogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVH
ZXRTaXRlc0luTWVkaWFDYWNoZSkoVmVjdG9yPFN0cmluZz4mKTsKIHR5cGVkZWYgdm9pZCAoKk1l
ZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlKSgpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVD
bGVhck1lZGlhQ2FjaGVGb3JTaXRlKShjb25zdCBTdHJpbmcmKTsKIAotdHlwZWRlZiB2b2lkICgq
TWVkaWFFbmdpbmVSZWdpc3RyYXIpKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2lu
ZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgCi0gICAgTWVkaWFFbmdp
bmVHZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUsIE1lZGlh
RW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSk7IAotCit0eXBlZGVmIHZvaWQgKCpNZWRpYUVu
Z2luZVJlZ2lzdHJhcikoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIsIE1lZGlhRW5naW5lU3VwcG9y
dGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLAorICAgIE1lZGlhRW5naW5lR2V0U2l0
ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNs
ZWFyTWVkaWFDYWNoZUZvclNpdGUpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCmluZGV4IDg3NWQx
MmRmYmU3YmI0MjIxYmU3NTUyNGY4MWFjZDIwN2NhM2E3ODAuLjExODBhNDdkNTUzNjk2ZDNkNGVk
OTU3YTQ3ZTJiYThiNmFhMDJkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApAQCAtNzI1LDggKzcyNSwx
MCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4mIHN1cHBvcgogICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZVR5
cGVDYWNoZSgpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiB1cmwpCiB7CisgICAgVU5VU0VEX1BB
UkFNKHVybCk7CisKICAgICAvLyBPbmx5IHJldHVybiAiSXNTdXBwb3J0ZWQiIGlmIHRoZXJlIGlz
IG5vIGNvZGVjcyBwYXJhbWV0ZXIgZm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3YXkgdG8gYXNrIGlm
IGl0IHN1cHBvcnRzIGFuCiAgICAgLy8gZXh0ZW5kZWQgTUlNRSB0eXBlIHVudGlsIHJkYXI6Ly84
NzIxNzE1IGlzIGZpeGVkLgogICAgIGlmIChtaW1lVHlwZUNhY2hlKCkuY29udGFpbnModHlwZSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5oCmluZGV4IGY1ZGQwMDE1MGQ0NDA1MTcwY2FmYzhhMjQ3ZGRkOGE0OTI3Mzhh
NzYuLjk3Y2M1ZGQ5MzRmN2UzMThjZGJlOGJjM2Y1MDMxNjVjMTkzZjlhOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gRW5naW5lIHN1cHBvcnQKICAg
ICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShN
ZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8
U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKTsKKyAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiB1cmwpOwogICAg
IHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9h
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGRjYzA0NmQwNzdiNWZmNzNmY2ViZTdhMzVj
N2UzNWU1YjMwMTk1NjEuLjhjYTFlMTNhZDMwN2RmNDYxNmE2MWM2NWEzNjY4MDZiNmM3NmM5NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICAv
LyBlbmdpbmUgc3VwcG9ydAogICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3Vw
cG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBjb2RlY3MpOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25z
dCBTdHJpbmcmIHVybCk7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBjYW5jZWxMb2FkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA5ZTg2
NTM0OTdlZjVhZWVjZmEwZjdkMDk4ZmMwZDNiZTY0ZTZkNTRiLi5lZGQwZTdiNWY3NzFmYTllMmJj
ZjM1MGQ5YzdjYTdkMmRlYTgwMmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTY3Miw4
ICs2NzIsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpnZXRT
dXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHN1cHAKICAgICBzdXBwb3J0ZWRUeXBlcyA9
IG1pbWVUeXBlQ2FjaGUoKTsKIH0gCiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIHVybCkKIHsKKyAg
ICBVTlVTRURfUEFSQU0odXJsKTsKKwogICAgIGlmICghbWltZVR5cGVDYWNoZSgpLmNvbnRhaW5z
KHR5cGUpKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01l
ZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcAppbmRl
eCAzYWM5M2U4YjRjNjdlZDJmMTRmZTM2NmFmNjUxMjYyODQwYTExMDk3Li5hNGFjMDk2NTdkZjY3
MzRiMjUzMTgxNzIzNDJiZjViOTA3MmZhOGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKQEAgLTcyLDggKzcyLDEwIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVz
KQogICAgICAgICB0eXBlcy5hZGQoaS0+Y19zdHIoKSk7CiB9CiAKLU1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0
eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVk
aWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiB1cmwpCiB7CisgICAgVU5VU0VEX1BBUkFNKHVy
bCk7CisKICAgICBpZiAodHlwZS5pc051bGwoKSB8fCB0eXBlLmlzRW1wdHkoKSkgewogICAgICAg
ICBMT0coTWVkaWEsICJNZWRpYVBsYXllciBkb2VzIG5vdCBzdXBwb3J0IHR5cGU7IHR5cGUgaXMg
bnVsbCBvciBlbXB0eS4iKTsKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBv
cnRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgK
aW5kZXggMGFjNDY2YmVjOGVlODg4MTFhMWIxNjQwYjczNTJhOTA5Yzg1MzY1ZS4uZTA3YzFmZTkz
MzkzOGRkNjIyOWE0M2ZiZWU4NjViYjRmZTE1MTJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0Jl
cnJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9N
ZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRl
KE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdHJhcik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFz
aFNldDxTdHJpbmc+Jik7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3Vw
cG9ydHNUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgdm9pZCBub3RpZnlBcHBBY3RpdmF0
ZWRFdmVudChib29sKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDZXJ0aWZpY2F0ZVBhdGgoY29uc3Qg
U3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKaW5kZXggODM5NzA4ZWU5Nzc2MDE0ODBjMjhkMzA2OTk2ODExYjhjYTM5MTYwYy4uNjVi
OTA3ZjY3MWI2MTgyYzIxZWFiNTE2MTM1MzgxMGQ2MjcxMjU5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTE1OTYsOCArMTU5NiwxMCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFz
aFNldDxTdHJpbmc+JiB0eXBlcykKICAgICB0eXBlcyA9IG1pbWVUeXBlQ2FjaGUoKTsKIH0KIAot
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnN1
cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnN1cHBv
cnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBT
dHJpbmcmIHVybCkKIHsKKyAgICBVTlVTRURfUEFSQU0odXJsKTsKKwogICAgIGlmICh0eXBlLmlz
TnVsbCgpIHx8IHR5cGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6Oklz
Tm90U3VwcG9ydGVkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmgKaW5kZXggMzllZTljZTRiZmJjYjgxMjNhMDIzYzQxNTcyYzMwYTYzZWMxZDMwZC4uZjQz
YWFiYzBiMjAyY2RhZTNhZDU1NmMxOTVlOTE3NzA3YTVkNzc4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTMwLDcgKzEzMCw4IEBAIGNsYXNz
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2UgewogICAgICAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAogICAgICAgICAgICAgc3RhdGlj
IHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7Ci0gICAgICAgICAgICBz
dGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5n
JiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgICAgICAgICBzdGF0aWMgTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiB1cmwpOworCiAgICAgICAgICAgICBzdGF0
aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgICAgICAgICB2b2lkIHVwZGF0ZUF1ZGlvU2lu
aygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCAwMTFlYzM2YTI1ZDE5ZGU2MTEx
ZWQ1ODNjZDJiNmExNDRlMWM0MGE0Li5iMjRjNTMyMGU3ZjQ4ZDkxNDQ3ZWEyYjk2ZTE1YjM3N2Q5
M2ZjYTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtNzQsNyArNzQsNyBAQCBw
cml2YXRlOgogICAgIC8vIGVuZ2luZSBzdXBwb3J0CiAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0
aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKLSAgICBz
dGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5n
JiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTaXRlc0lu
TWVkaWFDYWNoZShWZWN0b3I8U3RyaW5nPiYpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyTWVkaWFD
YWNoZSgpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUoY29uc3QgU3Ry
aW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggMjkyNDlhYTc4ODdiOGYy
M2QzYThkNTgxZWM1N2M4NzY5MWY3ODMwZi4uYzA4NTgxZDE1NDg5ZWNkYjk1ZWViZTRkOGI1NDg0
ZWUwMjlhZjk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMTQ2MCw4ICsx
NDYwLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Z2V0U3VwcG9ydGVkVHlwZXMo
SGFzaFNldDxTdHJpbmc+JiBzdXBwb3J0ZWRUeXBlcykKICAgICAgICAgc3VwcG9ydGVkVHlwZXMu
YWRkKCppdCk7CiB9IAogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQ6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNz
LCBjb25zdCBTdHJpbmcmIHVybCkKIHsKKyAgICBVTlVTRURfUEFSQU0odXJsKTsKICAgICAvLyBP
bmx5IHJldHVybiAiSXNTdXBwb3J0ZWQiIGlmIHRoZXJlIGlzIG5vIGNvZGVjcyBwYXJhbWV0ZXIg
Zm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3YXkgdG8gYXNrIFFUIGlmIGl0IHN1cHBvcnRzIGFuCiAg
ICAgLy8gZXh0ZW5kZWQgTUlNRSB0eXBlIHlldC4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwCmlu
ZGV4IDNhMzA3Y2IyNzQ5Y2U0MzMwZTk4Y2U1ZTEzNTNlNTg0MTQ5Yjg4NWIuLmRlZTE1ODRjMjlj
ODkzYzIzNDY0ZDJmMDQxODA5ZThjNWY5NWQwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5jcHAK
QEAgLTgxLDggKzgxLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXQ6OmdldFN1cHBvcnRl
ZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiAmc3VwcG9ydGVkKQogICAgIH0KIH0KIAotTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRdDo6c3VwcG9ydHNUeXBlKGNvbnN0
IFN0cmluZyYgbWltZSwgY29uc3QgU3RyaW5nJiBjb2RlYykKK01lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUXQ6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIG1p
bWUsIGNvbnN0IFN0cmluZyYgY29kZWMsIGNvbnN0IFN0cmluZyYgdXJsKQogeworICAgIFVOVVNF
RF9QQVJBTSh1cmwpOworCiAgICAgaWYgKCFtaW1lLnN0YXJ0c1dpdGgoImF1ZGlvLyIpICYmICFt
aW1lLnN0YXJ0c1dpdGgoInZpZGVvLyIpKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6Oklz
Tm90U3VwcG9ydGVkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuaAppbmRleCBjNmZjYmQ4MzhkMTFkODNl
NDc1NzUwOWY3YTIxNjk3ZjMzNDdkYTBlLi4yYWI3Yjk1M2UyNjM1OTI2MDA0YjJmNDRkZjYxNzVj
Y2U1NDMwYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9NZWRpYVBsYXllclByaXZhdGVRdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lz
dHJhcik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+
Jik7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmKTsKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1
YWxDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRp
YVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAppbmRleCA3ZDlkY2FmZTY2
N2Y1NzMzNzRjYmVhYTVhNjNlY2Q3ZGIwMjI4MzIyLi5iZjkzMTJhZWI4ZjVhYTAxMDhjZTdiODQz
ZTBhYWIyM2Q2NmEyYmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwCkBAIC0xMDExLDggKzEwMTEsMTAgQEAgYm9vbCBN
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Ojppc0F2YWlsYWJsZSgpCiAg
ICAgcmV0dXJuIFFUTW92aWU6OmluaXRpYWxpemVRdWlja1RpbWUoKTsKIH0KIAotTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0
OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcykK
K01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJsKQogeworICAgIFVOVVNFRF9QQVJBTSh1cmwpOwor
CiAgICAgLy8gb25seSByZXR1cm4gIklzU3VwcG9ydGVkIiBpZiB0aGVyZSBpcyBubyBjb2RlY3Mg
cGFyYW1ldGVyIGZvciBub3cgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIGFzayBRVCBpZiBpdCBzdXBw
b3J0cyBhbgogICAgIC8vICBleHRlbmRlZCBNSU1FIHR5cGUKICAgICByZXR1cm4gbWltZVR5cGVD
YWNoZSgpLmNvbnRhaW5zKHR5cGUpID8gKGNvZGVjcy5pc0VtcHR5KCkgPyBNZWRpYVBsYXllcjo6
TWF5QmVTdXBwb3J0ZWQgOiBNZWRpYVBsYXllcjo6SXNTdXBwb3J0ZWQpIDogTWVkaWFQbGF5ZXI6
OklzTm90U3VwcG9ydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlj
a1RpbWVWaXN1YWxDb250ZXh0LmgKaW5kZXggNGM0NGFmNDAxZWJiMDNmZGIyZjNmZjE0MjQyODU3
OTUxZjkxMTEzNS4uNDNhNzJkNTBjYjA4OGMzZDkwMmNmM2E1NmE5MzhmOWY0ZDc0YWM0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4
dC5oCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBlbmdpbmUgc3VwcG9ydAog
ICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRl
KE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNl
dDxTdHJpbmc+JiB0eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpOwor
ICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBT
dHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIHVybCk7CiAg
ICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbkNFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oCmluZGV4IDBmYWEwNDU3ODRk
NzFiZmE4NzA2OGRlZmRiMDYwNjY3NGM5ZWI3MmMuLjJmN2EwM2QyYmVmMWU2ZWJlMjdiMzUwNzRm
NWFlZjlmMTQ4NmU5YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbkNFLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaApAQCAtMTAw
LDcgKzEwMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gZW5naW5lIHN1cHBv
cnQKICAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
PiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVk
VHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7Ci0gICAgICAgIHN0YXRpYyBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgY29kZWNzKTsKKyAgICAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNv
bnN0IFN0cmluZyYgdXJsKTsKICAgICAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAog
ICAgICAgICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCBhMjlhNGM3
OTI4YjY0NGZkNmRjNThlZjQ5ZmExZDU0MTA5MTkzYTNjLi5jNjc4MWJlZjAyY2JmNmM2MjNmOGZk
ZmQwMzMyMjE3Nzc2NDIzZTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTc5MiwxNCArNzkyLDE4IEBA
IHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0
PFN0cmluZz4mIHN1cHBvcnRlZFR5cGVzCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0
c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGNvZGVjcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHVybCkKIHsKICNlbHNlCiBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNUeXBl
KGNvbnN0IFN0cmluZyYgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBjb2RlY3MpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFN0cmluZyYgY29kZWNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHVybCkKIHsK
ICAgICBTdHJpbmcga2V5U3lzdGVtOwogI2VuZGlmCisgICAgVU5VU0VEX1BBUkFNKHVybCk7CisK
ICAgICBXZWJNaW1lUmVnaXN0cnk6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUgPSBXZWJLaXQ6
OlBsYXRmb3JtOjpjdXJyZW50KCktPm1pbWVSZWdpc3RyeSgpLT5zdXBwb3J0c01lZGlhTUlNRVR5
cGUodHlwZSwgY29kZWNzLCBrZXlTeXN0ZW0pOwogCiAgICAgc3dpdGNoIChzdXBwb3J0c1R5cGUp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsLmgKaW5kZXggNmYxNTBkZGE3MmZiZGY0OWM1NzFkMTRjYjg5ODVlZTBjMTQxOGRi
Yy4uYmQwZTFkNmY2NzU3ZDUwZDBiZDk5NjU4Y2ViOTA5NTM5YTRiNTYzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgK
QEAgLTE4NiwxMCArMTg2LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9y
dGVkVHlwZXMoV1RGOjpIYXNoU2V0PFdURjo6U3RyaW5nPiYpOwogI2lmIEVOQUJMRShFTkNSWVBU
RURfTUVESUEpCiAgICAgc3RhdGljIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKAotICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgdHlwZSwgY29uc3QgV1RG
OjpTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOworICAgICAgICBjb25z
dCBXVEY6OlN0cmluZyYgdHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmIGNvZGVjcywgY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgdXJsKTsKICNlbHNlCiAgICAgc3RhdGljIFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKAotICAgICAgICBj
b25zdCBXVEY6OlN0cmluZyYgdHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmIGNvZGVjcyk7CisgICAg
ICAgIGNvbnN0IFdURjo6U3RyaW5nJiB0eXBlLCBjb25zdCBXVEY6OlN0cmluZyYgY29kZWNzLCBj
b25zdCBTdHJpbmcmIHVybCk7CiAjZW5kaWYKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgYm9vbCBhY2NlbGVyYXRlZFJlbmRlcmluZ0luVXNlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149005</attachid>
            <date>2012-06-22 05:43:54 -0700</date>
            <delta_ts>2012-06-22 06:02:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89514-20120622094353.patch</filename>
            <type>text/plain</type>
            <size>31255</size>
            <attacher name="Danilo de Paula">danilo.eu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlNWZkZWE5MDA4Mzkx
YWFjYzBhOTViOTY1OGQwZGIyMzk2OWI1NC4uZmQ5YWNmZmExMWUxNGRiM2Y2ODVmZjRjMWIzNGFk
ZTQ4YWFhODQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA2LTE5ICBEYW5p
bG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgIDxkYW5pbG8uY2VzYXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIEFkZCB1cmwgdG8gc3VwcG9ydHNUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTUxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGVyZSdzIG5vIGNo
YW5nZSBvbiBjb2RlIGJlaGF2aW9yLgorCisgICAgICAgIFdoZW4gYSBibG9iIGlzIGNyZWF0ZWQg
YXMgdGhlIGFkZHJlc3MgZm9yIGEgTWVkaWEgU3RyZWFtLCB0aGUgTWVkaWFFbmdpbmUKKyAgICAg
ICAgd2lsbCBhc2sgaXQncyBwbGF5ZXJzIGlmIHRoZXkgc3VwcG9ydCB0aGF0IG1lZGlhLiBIb3dl
dmVyLCBhIHBsYXllciBidWlsdAorICAgICAgICBmb3IgTWVkaWFTdHJlYW0gbmVlZHMgdG8ga25v
dyB0byBVUkwgdG8gZGVjaWRlIGlmIGl0J3Mgc3VwcG9ydGVkIG9yIG5vdC4KKworCisgICAgICAg
ICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VD
aGlsZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoTWVkaWFQbGF5ZXJGYWN0
b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6TWVkaWFQbGF5ZXJG
YWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFBsYWlu
KToKKyAgICAgICAgKFdlYkNvcmU6OmJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c3Vw
cG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzdXBwb3J0c1R5cGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRi5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpz
dXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5Lmg6CisgICAgICAgIChNZWRp
YVBsYXllclByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZh
dGVRVEtpdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5
ZXJQcml2YXRlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXQ6
OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5
ZXJQcml2YXRlUXQuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZVF0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRdWlja1Rp
bWVWaXN1YWxDb250ZXh0OjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Lmg6CisgICAg
ICAgIChNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oOgorICAg
ICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlKToKKwogMjAxMi0wNi0wOCAgVnNldm9sb2QgVmxhc292
ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBGaXggc2V2
ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhbmQgZXJyb3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01J
bXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggNGQzZDg1MzNhZDBhMmQzZDk3NGNlYzY5NjRmMjI3Mjg4
YjZlNjFjNy4uMGM3YTBiYmFiYzgxMGM4MDA1NTYzZDA4Nzk2OTdmYTdlMjVmYTBhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC00MDcsNyArNDA3LDcgQEAg
UGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNv
bnN0IFN0cmluZyYgdHlwZSwgRnJhbWUKICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB0eXBl
IGNhbiBiZSBwbGF5ZWQgYnkgb3VyIE1lZGlhUGxheWVyLCBpZiBzbyBjcmVhdGUgYSBNZWRpYURv
Y3VtZW50CiAgICAgLy8gS2V5IHN5c3RlbSBpcyBub3QgYXBwbGljYWJsZSBoZXJlLgogICAgIERP
TUltcGxlbWVudGF0aW9uU3VwcG9ydHNUeXBlQ2xpZW50IGNsaWVudChmcmFtZSAmJiBmcmFtZS0+
c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KSwgdXJsLmhvc3QoKSk7Ci0gICAgaWYgKE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVu
dFR5cGUodHlwZSksIFN0cmluZygpLCAmY2xpZW50KSkKKyAgICBpZiAoTWVkaWFQbGF5ZXI6OnN1
cHBvcnRzVHlwZShDb250ZW50VHlwZSh0eXBlKSwgU3RyaW5nKCksIHVybCwgJmNsaWVudCkpCiAg
ICAgICAgICByZXR1cm4gTWVkaWFEb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCB1cmwpOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDQ4OWM1MTIy
ZDQ0ZTQ4ZWZkZDRiZDIwOTNmMTczYmZmMDdiOWI5ZDYuLjYxZTA2ZWY2OGE4ZDBhNDZmNTM5N2Fi
Nzk3MWU2ODVhZTcyYmUzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtNjE4LDkgKzYxOCw5IEBAIEhUTUxNZWRpYUVsZW1lbnQ6Ok5ldHdvcmtTdGF0ZSBI
VE1MTWVkaWFFbGVtZW50OjpuZXR3b3JrU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBtX25ldHdv
cmtTdGF0ZTsKIH0KIAotU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKSBjb25zdAorU3RyaW5n
IEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ID0gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlw
ZShDb250ZW50VHlwZShtaW1lVHlwZSksIGtleVN5c3RlbSwgdGhpcyk7CisgICAgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ID0gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250
ZW50VHlwZShtaW1lVHlwZSksIGtleVN5c3RlbSwgdXJsLCB0aGlzKTsKICAgICBTdHJpbmcgY2Fu
UGxheTsKIAogICAgIC8vIDQuOC4xMC4zCkBAIC02MzcsNyArNjM3LDcgQEAgU3RyaW5nIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0
cmluZyYga2V5U3kKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAKLSAgICBMT0coTWVk
aWEsICJIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZSglcywgJXMpIC0+ICVzIiwgbWltZVR5
cGUudXRmOCgpLmRhdGEoKSwga2V5U3lzdGVtLnV0ZjgoKS5kYXRhKCksIGNhblBsYXkudXRmOCgp
LmRhdGEoKSk7CisgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUo
JXMsICVzLCAlcykgLT4gJXMiLCBtaW1lVHlwZS51dGY4KCkuZGF0YSgpLCBrZXlTeXN0ZW0udXRm
OCgpLmRhdGEoKSwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGNhblBsYXkudXRmOCgpLmRh
dGEoKSk7CiAKICAgICByZXR1cm4gY2FuUGxheTsKIH0KQEAgLTMxNzUsNyArMzE3NSw3IEBAIEtV
UkwgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKENvbnRlbnRUeXBlKiBj
b250ZW50VHlwZSwgU3RyaW5nKiBrCiAgICAgICAgICAgICBpZiAoc2hvdWxkTG9nKQogICAgICAg
ICAgICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VD
aGlsZCAtICd0eXBlJyBpcyAnJXMnIC0ga2V5IHN5c3RlbSBpcyAnJXMnIiwgdHlwZS51dGY4KCku
ZGF0YSgpLCBzeXN0ZW0udXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKLSAgICAgICAgICAgIGlmICgh
TWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250ZW50VHlwZSh0eXBlKSwgc3lzdGVtLCB0aGlz
KSkKKyAgICAgICAgICAgIGlmICghTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250ZW50VHlw
ZSh0eXBlKSwgc3lzdGVtLCBtZWRpYVVSTCwgdGhpcykpCiAgICAgICAgICAgICAgICAgZ290byBj
aGVja19hZ2FpbjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCmluZGV4IDE2NzNlMTUzNTI0OTE4ZDUyOTU3MWU4Yjk1ZWQyZWE1NGRmOTM1ODAuLjQwMTVh
MmY4NmYwNTk1NmU2ZTYzNmQxYTg2NjlhMmI4Yjg4MTgyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMjgsNyArMTI4LDcgQEAgcHVibGljOgogCiAgICAgUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgIHZvaWQgbG9hZChFeGNl
cHRpb25Db2RlJik7Ci0gICAgU3RyaW5nIGNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtID0gU3RyaW5nKCkpIGNvbnN0OworICAgIFN0cmlu
ZyBjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSA9IFN0cmluZygpLCBjb25zdCBLVVJMJiA9IEtVUkwoKSkgY29uc3Q7CiAKIC8vIHJlYWR5
IHN0YXRlCiAgICAgUmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggN2Q4NDVhY2Nj
OGNiM2RkMDYxZmM3ZTU2MWQ3MTUwODg2MmU3MTExNC4uY2RhMDM2NWZiMmQ3MjlkZTBmNzYxNWU1
NmViNDJjMGExMWRmOGQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTc2LDE1ICsxNzYsMTQgQEAgc3RydWN0IE1lZGlhUGxh
eWVyRmFjdG9yeSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFQbGF5ZXJGYWN0b3J5
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTWVkaWFQbGF5ZXJGYWN0
b3J5KENyZWF0ZU1lZGlhRW5naW5lUGxheWVyIGNvbnN0cnVjdG9yLCBNZWRpYUVuZ2luZVN1cHBv
cnRlZFR5cGVzIGdldFN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSBzdXBw
b3J0c1R5cGVBbmRDb2RlY3MsCi0gICAgICAgIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2Fj
aGUgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlIGNsZWFy
TWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlIGNsZWFyTWVkaWFD
YWNoZUZvclNpdGUpIAorICAgICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdl
dFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlh
Q2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBjbGVhck1lZGlhQ2FjaGVG
b3JTaXRlKQogICAgICAgICA6IGNvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKQogICAgICAgICAsIGdl
dFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzKQogICAgICAgICAsIHN1cHBvcnRzVHlw
ZUFuZENvZGVjcyhzdXBwb3J0c1R5cGVBbmRDb2RlY3MpCiAgICAgICAgICwgZ2V0U2l0ZXNJbk1l
ZGlhQ2FjaGUoZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUpCiAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hl
KGNsZWFyTWVkaWFDYWNoZSkKICAgICAgICAgLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKGNsZWFy
TWVkaWFDYWNoZUZvclNpdGUpCi0KLSAgICB7IAorICAgIHsKICAgICB9CiAKICAgICBDcmVhdGVN
ZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvcjsKQEAgLTE5Niw3ICsxOTUsOCBAQCBwdWJsaWM6
CiB9OwogCiBzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRpYUVuZ2luZVBsYXll
ciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUsIE1l
ZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hl
LCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUpOwotc3RhdGljIE1lZGlhUGxheWVy
RmFjdG9yeSogYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgTWVkaWFQ
bGF5ZXJGYWN0b3J5KiBjdXJyZW50ID0gMCk7CisKK3N0YXRpYyBNZWRpYVBsYXllckZhY3Rvcnkq
IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IEtVUkwmLCBN
ZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQgPSAwKTsKIHN0YXRpYyBNZWRpYVBsYXllckZhY3Rv
cnkqIG5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpOwogCiBzdGF0
aWMgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9yeSo+JiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKSAK
QEAgLTI1Myw3ICsyNTMsNyBAQCBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb2RlY3MoKQog
ICAgIHJldHVybiBjb2RlY3M7CiB9CiAKLXN0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIGJlc3RN
ZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIE1lZGlhUGxheWVyRmFjdG9yeSog
Y3VycmVudCkKK3N0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIGJlc3RNZWRpYUVuZ2luZUZvclR5
cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IEtVUkwmIHVybCwgTWVkaWFQbGF5ZXJGYWN0b3J5
KiBjdXJyZW50KQogewogICAgIGlmICh0eXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7
CkBAIC0yODAsMTEgKzI4MCwxMSBAQCBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0TWVk
aWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgYwogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAg
ICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIGVuZ2luZVN1cHBvcnQgPSBlbmdpbmVzW25k
eF0tPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCBjb2RlY3MsIGtleVN5c3RlbSk7CisgICAg
ICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgZW5naW5lU3VwcG9ydCA9IGVuZ2luZXNbbmR4
XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIGNvZGVjcywga2V5U3lzdGVtLCB1cmwpOwog
I2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKGtleVN5c3RlbSk7CiAgICAgICAgIEFTU0VSVChr
ZXlTeXN0ZW0uaXNFbXB0eSgpKTsKLSAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBl
bmdpbmVTdXBwb3J0ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwg
Y29kZWNzKTsKKyAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBlbmdpbmVTdXBwb3J0
ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgY29kZWNzLCB1cmwp
OwogI2VuZGlmCiAgICAgICAgIGlmIChlbmdpbmVTdXBwb3J0ID4gc3VwcG9ydGVkKSB7CiAgICAg
ICAgICAgICBzdXBwb3J0ZWQgPSBlbmdpbmVTdXBwb3J0OwpAQCAtMzgzLDcgKzM4Myw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9y
eSogY3VycmVudCkKICAgICBNZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IDA7CiAKICAgICBp
ZiAoIW1fY29udGVudE1JTUVUeXBlLmlzRW1wdHkoKSkKLSAgICAgICAgZW5naW5lID0gYmVzdE1l
ZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhtX2NvbnRlbnRNSU1FVHlwZSwgbV9jb250ZW50VHlw
ZUNvZGVjcywgbV9rZXlTeXN0ZW0sIGN1cnJlbnQpOworICAgICAgICBlbmdpbmUgPSBiZXN0TWVk
aWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBl
Q29kZWNzLCBtX2tleVN5c3RlbSwgbV91cmwsIGN1cnJlbnQpOwogCiAgICAgLy8gSWYgbm8gTUlN
RSB0eXBlIGlzIHNwZWNpZmllZCBvciB0aGUgdHlwZSB3YXMgaW5mZXJyZWQgZnJvbSB0aGUgZmls
ZSBleHRlbnNpb24sIGp1c3QgdXNlIHRoZSBuZXh0IGVuZ2luZS4KICAgICBpZiAoIWVuZ2luZSAm
JiAobV9jb250ZW50TUlNRVR5cGUuaXNFbXB0eSgpIHx8IG1fY29udGVudE1JTUVUeXBlV2FzSW5m
ZXJyZWRGcm9tRXh0ZW5zaW9uKSkKQEAgLTQxOCw3ICs0MTgsNyBAQCB2b2lkIE1lZGlhUGxheWVy
Ojpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpCiAg
ICAgICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclJlc291cmNlTm90U3Vw
cG9ydGVkKHRoaXMpOwogICAgICAgICB9CiAgICAgfQotfSAgICAKK30KIAogYm9vbCBNZWRpYVBs
YXllcjo6aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0CiB7CkBAIC03MjQsNyArNzI0LDcg
QEAgdm9pZCBNZWRpYVBsYXllcjo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3ND
b250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JgogICAgIG1fcHJpdmF0ZS0+cGFpbnRDdXJyZW50RnJh
bWVJbkNvbnRleHQocCwgcik7CiB9CiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQ
bGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNsaWVudCog
Y2xpZW50KQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3VwcG9ydHNU
eXBlKGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0
ZW0sIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVDbGllbnQq
IGNsaWVudCkKIHsKICAgICBTdHJpbmcgdHlwZSA9IGNvbnRlbnRUeXBlLnR5cGUoKS5sb3dlcigp
OwogICAgIC8vIFRoZSBjb2RlY3Mgc3RyaW5nIGlzIG5vdCBsb3dlci1jYXNlZCBiZWNhdXNlIE1Q
NCB2YWx1ZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlCkBAIC03MzcsNyArNzM3LDcgQEAgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKGNvbnN0IENvbnRlbnRU
eXBlJiBjb250ZW50VHkKICAgICBpZiAodHlwZSA9PSBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtKCkp
CiAgICAgICAgIHJldHVybiBJc05vdFN1cHBvcnRlZDsKIAotICAgIE1lZGlhUGxheWVyRmFjdG9y
eSogZW5naW5lID0gYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBlQ29k
ZWNzLCBzeXN0ZW0pOworICAgIE1lZGlhUGxheWVyRmFjdG9yeSogZW5naW5lID0gYmVzdE1lZGlh
RW5naW5lRm9yVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBlQ29kZWNzLCBzeXN0ZW0sIHVybCk7CiAg
ICAgaWYgKCFlbmdpbmUpCiAgICAgICAgIHJldHVybiBJc05vdFN1cHBvcnRlZDsKIApAQCAtNzU3
LDEwICs3NTcsMTAgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3Vw
cG9ydHNUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHkKICNlbmRpZgogCiAjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICByZXR1cm4gZW5naW5lLT5zdXBwb3J0c1R5cGVBbmRD
b2RlY3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtKTsKKyAgICByZXR1cm4gZW5naW5lLT5zdXBw
b3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtLCB1cmwpOwogI2Vsc2UK
ICAgICBBU1NFUlQoc3lzdGVtLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIGVuZ2luZS0+c3VwcG9y
dHNUeXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2RlY3MpOworICAgIHJldHVybiBlbmdpbmUtPnN1
cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBlQ29kZWNzLCB1cmwpOwogI2VuZGlmCiB9CiAK
QEAgLTk0Miw3ICs5NDIsNyBAQCB2b2lkIE1lZGlhUGxheWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2Vk
KCkKICAgICBpZiAobV9wcml2YXRlLT5uZXR3b3JrU3RhdGUoKSA+PSBGb3JtYXRFcnJvcgogICAg
ICAgICAmJiBtX3ByaXZhdGUtPnJlYWR5U3RhdGUoKSA8IEhhdmVNZXRhZGF0YQogICAgICAgICAm
JiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKS5zaXplKCkgPiAxKSB7Ci0gICAgICAgIGlmIChtX2Nv
bnRlbnRNSU1FVHlwZS5pc0VtcHR5KCkgfHwgYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVj
cyhtX2NvbnRlbnRNSU1FVHlwZSwgbV9jb250ZW50VHlwZUNvZGVjcywgbV9rZXlTeXN0ZW0sIG1f
Y3VycmVudE1lZGlhRW5naW5lKSkgeworICAgICAgICBpZiAobV9jb250ZW50TUlNRVR5cGUuaXNF
bXB0eSgpIHx8IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MobV9jb250ZW50TUlNRVR5
cGUsIG1fY29udGVudFR5cGVDb2RlY3MsIG1fa2V5U3lzdGVtLCBtX3VybCwgbV9jdXJyZW50TWVk
aWFFbmdpbmUpKSB7CiAgICAgICAgICAgICBtX3JlbG9hZFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggNmM3MjJhMDgwN2E0NWYwM2M1OTM5NjUx
MmYyZDk4YjI1MWUwNTMzYi4uMmQwMTJlY2FiOWU3NmRkMWE4MGMwMDBmM2JiM2M0MzU1ZWJlMDIw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
CkBAIC0yMDMsNyArMjAzLDcgQEAgcHVibGljOgogCiAgICAgLy8gTWVkaWEgZW5naW5lIHN1cHBv
cnQuCiAgICAgZW51bSBTdXBwb3J0c1R5cGUgeyBJc05vdFN1cHBvcnRlZCwgSXNTdXBwb3J0ZWQs
IE1heUJlU3VwcG9ydGVkIH07Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0s
IGNvbnN0IE1lZGlhUGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50Kik7CisgICAgc3RhdGljIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiwgY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IEtVUkwmLCBjb25zdCBNZWRpYVBsYXllclN1cHBv
cnRzVHlwZUNsaWVudCopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hT
ZXQ8U3RyaW5nPiYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAgICAgc3RhdGlj
IHZvaWQgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUoVmVjdG9yPFN0cmluZz4mKTsKQEAgLTQyMywxNyAr
NDIzLDE2IEBAIHByaXZhdGU6CiB0eXBlZGVmIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlPiAoKkNyZWF0ZU1lZGlhRW5naW5lUGxheWVyKShNZWRpYVBsYXllciopOwogdHlw
ZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcykoSGFzaFNldDxTdHJpbmc+JiB0
eXBlcyk7CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLXR5cGVkZWYgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSAoKk1lZGlhRW5naW5lU3VwcG9ydHNUeXBlKShjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSk7Cit0eXBl
ZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSko
Y29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0sIGNvbnN0IEtVUkwmIHVybCk7CiAjZWxzZQotdHlwZWRlZiBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpOwordHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlICgqTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmIHVybCk7CiAjZW5kaWYKIHR5cGVkZWYgdm9pZCAo
Kk1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUpKFZlY3RvcjxTdHJpbmc+Jik7CiB0eXBl
ZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSkoKTsKIHR5cGVkZWYgdm9pZCAo
Kk1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSkoY29uc3QgU3RyaW5nJik7CiAKLXR5
cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lUmVnaXN0cmFyKShDcmVhdGVNZWRpYUVuZ2luZVBsYXll
ciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUsIAot
ICAgIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRp
YUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUpOyAKLQordHlwZWRlZiB2
b2lkICgqTWVkaWFFbmdpbmVSZWdpc3RyYXIpKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRp
YUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwKKyAgICBNZWRp
YUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwg
TWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlKTsKIAogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cAppbmRleCA4NzVkMTJkZmJlN2JiNDIyMWJlNzU1MjRmODFhY2QyMDdjYTNhNzgwLi4xMTgwYTQ3
ZDU1MzY5NmQzZDRlZDk1N2E0N2UyYmE4YjZhYTAyZGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAg
LTcyNSw4ICs3MjUsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6
Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiBzdXBwb3IKICAgICBzdXBwb3J0ZWRU
eXBlcyA9IG1pbWVUeXBlQ2FjaGUoKTsKIH0gCiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYgdXJsKQogewor
ICAgIFVOVVNFRF9QQVJBTSh1cmwpOworCiAgICAgLy8gT25seSByZXR1cm4gIklzU3VwcG9ydGVk
IiBpZiB0aGVyZSBpcyBubyBjb2RlY3MgcGFyYW1ldGVyIGZvciBub3cgYXMgdGhlcmUgaXMgbm8g
d2F5IHRvIGFzayBpZiBpdCBzdXBwb3J0cyBhbgogICAgIC8vIGV4dGVuZGVkIE1JTUUgdHlwZSB1
bnRpbCByZGFyOi8vODcyMTcxNSBpcyBmaXhlZC4KICAgICBpZiAobWltZVR5cGVDYWNoZSgpLmNv
bnRhaW5zKHR5cGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAppbmRleCBmNWRkMDAxNTBkNDQwNTE3MGNhZmM4YTI0
N2RkZDhhNDkyNzM4YTc2Li44MWE5YmM2ZTRmZjEyNTQ5NTNlYmQzYWMyYzFiMmMzZWJkOTIxZmZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YuaApAQCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogICAgIC8vIEVuZ2lu
ZSBzdXBwb3J0CiAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IGNvZGVjcyk7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNU
eXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwm
KTsKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGNh
bmNlbExvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBkY2MwNDZkMDc3YjVmZjczZmNl
YmU3YTM1YzdlMzVlNWIzMDE5NTYxLi5lNWNmY2I0NDVmZmE0YTkxNGM4ODJkZmYyN2I1NGY0ZTZl
NDc1NzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6
CiAgICAgLy8gZW5naW5lIHN1cHBvcnQKICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lk
IGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRpYyBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgY29kZWNzKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVj
cywgY29uc3QgS1VSTCYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOWU4
NjUzNDk3ZWY1YWVlY2ZhMGY3ZDA5OGZjMGQzYmU2NGU2ZDU0Yi4uZWU0Njc2ZWZjYmU1OTU0ODI5
YTAwNWEzYmVjOWQ5MGIzYjE2NWJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC02NzIs
NyArNjcyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpnZXRT
dXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHN1cHAKICAgICBzdXBwb3J0ZWRUeXBlcyA9
IG1pbWVUeXBlQ2FjaGUoKTsKIH0gCiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJMJikKIHsKICAgICBpZiAo
IW1pbWVUeXBlQ2FjaGUoKS5jb250YWlucyh0eXBlKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxh
eWVyOjpJc05vdFN1cHBvcnRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJp
dmF0ZUJsYWNrQmVycnkuY3BwCmluZGV4IDNhYzkzZThiNGM2N2VkMmYxNGZlMzY2YWY2NTEyNjI4
NDBhMTEwOTcuLjRlZGZjZWJjNDg5NTk4MTlkNjgxMDI3Y2E4MzFjZDQ2Zjc1N2M3OTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQ
bGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcApAQCAt
NzIsNyArNzIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6Z2V0U3VwcG9ydGVkVHlwZXMo
SGFzaFNldDxTdHJpbmc+JiB0eXBlcykKICAgICAgICAgdHlwZXMuYWRkKGktPmNfc3RyKCkpOwog
fQogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9y
dHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNUeXBlKGNvbnN0
IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKQogewogICAg
IGlmICh0eXBlLmlzTnVsbCgpIHx8IHR5cGUuaXNFbXB0eSgpKSB7CiAgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhUGxheWVyIGRvZXMgbm90IHN1cHBvcnQgdHlwZTsgdHlwZSBpcyBudWxsIG9yIGVt
cHR5LiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnku
aAppbmRleCAwYWM0NjZiZWM4ZWU4ODgxMWExYjE2NDBiNzM1MmE5MDljODUzNjVlLi41Zjg3ODRl
NmIzZWU2ZTE0YjEwMmVlMWQzZTZiM2IwOThlNWNjMTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNr
QmVycnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5
L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVh
dGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1l
ZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhI
YXNoU2V0PFN0cmluZz4mKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBz
dXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgdm9pZCBub3RpZnlBcHBBY3RpdmF0
ZWRFdmVudChib29sKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDZXJ0aWZpY2F0ZVBhdGgoY29uc3Qg
U3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKaW5kZXggODM5NzA4ZWU5Nzc2MDE0ODBjMjhkMzA2OTk2ODExYjhjYTM5MTYwYy4uNmJj
MTEyZjg1ZTA5YTJjYTE3OGVhZDFmNjljODcwNzJjMjUxY2Q4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTE1OTYsNyArMTU5Niw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNo
U2V0PFN0cmluZz4mIHR5cGVzKQogICAgIHR5cGVzID0gbWltZVR5cGVDYWNoZSgpOwogfQogCi1N
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3Vw
cG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpCitNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9y
dHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtV
UkwmKQogewogICAgIGlmICh0eXBlLmlzTnVsbCgpIHx8IHR5cGUuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDM5ZWU5Y2U0YmZiY2I4MTIzYTAyM2M0
MTU3MmMzMGE2M2VjMWQzMGQuLjNjZDRhODdhMTc2MjQ4N2I3ZTA3N2FlOTlhNjAwY2YzMDZlNmQy
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAg
LTEzMCw3ICsxMzAsOCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJs
aWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIHN0YXRpYyBQYXNz
T3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7
CiAKICAgICAgICAgICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3Ry
aW5nPiYpOwotICAgICAgICAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3Vw
cG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpOworICAg
ICAgICAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNv
bnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKTsKKwog
ICAgICAgICAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAogICAgICAgICAgICAgdm9p
ZCB1cGRhdGVBdWRpb1NpbmsoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKaW5kZXggMDEx
ZWMzNmEyNWQxOWRlNjExMWVkNTgzY2QyYjZhMTQ0ZTFjNDBhNC4uM2U4OWJjN2QzNGRiZGVmMTU5
MDFlYzA2N2I4NGYxY2E4ZDViOGE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKQEAg
LTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBlbmdpbmUgc3VwcG9ydAogICAgIHN0YXRp
YyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxh
eWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+
JiB0eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNU
eXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpOworICAgIHN0YXRp
YyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJMJik7CiAgICAgc3RhdGljIHZvaWQg
Z2V0U2l0ZXNJbk1lZGlhQ2FjaGUoVmVjdG9yPFN0cmluZz4mKTsKICAgICBzdGF0aWMgdm9pZCBj
bGVhck1lZGlhQ2FjaGUoKTsKICAgICBzdGF0aWMgdm9pZCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRl
KGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCmluZGV4IDI5MjQ5
YWE3ODg3YjhmMjNkM2E4ZDU4MWVjNTdjODc2OTFmNzgzMGYuLjAyMzU2N2E0ZjEzMTU4ZTEwMWE0
ZGNjZTJmOTQ2YWEyMWE3NzdhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KQEAg
LTE0NjAsNyArMTQ2MCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmdldFN1cHBv
cnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgc3VwcG9ydGVkVHlwZXMpCiAgICAgICAgIHN1cHBv
cnRlZFR5cGVzLmFkZCgqaXQpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIGNvZGVjcywgY29uc3QgS1VSTCYpCiB7CiAgICAgLy8gT25seSByZXR1cm4gIklzU3VwcG9y
dGVkIiBpZiB0aGVyZSBpcyBubyBjb2RlY3MgcGFyYW1ldGVyIGZvciBub3cgYXMgdGhlcmUgaXMg
bm8gd2F5IHRvIGFzayBRVCBpZiBpdCBzdXBwb3J0cyBhbgogICAgIC8vIGV4dGVuZGVkIE1JTUUg
dHlwZSB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9NZWRpYVBsYXllclByaXZhdGVRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5jcHAKaW5kZXggM2EzMDdjYjI3NDljZTQzMzBl
OThjZTVlMTM1M2U1ODQxNDliODg1Yi4uNzk0YmMxMDM2M2M5N2EzMzM5MmQ3YmU1YWM3N2U2ODNk
ZDgwZTdhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
TWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVF0OjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4g
JnN1cHBvcnRlZCkKICAgICB9CiB9CiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQ
bGF5ZXJQcml2YXRlUXQ6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIG1pbWUsIGNvbnN0IFN0
cmluZyYgY29kZWMpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0
ZVF0OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiBtaW1lLCBjb25zdCBTdHJpbmcmIGNvZGVj
LCBjb25zdCBLVVJMJikKIHsKICAgICBpZiAoIW1pbWUuc3RhcnRzV2l0aCgiYXVkaW8vIikgJiYg
IW1pbWUuc3RhcnRzV2l0aCgidmlkZW8vIikpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6
SXNOb3RTdXBwb3J0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuaAppbmRleCBjNmZjYmQ4MzhkMTFkODNl
NDc1NzUwOWY3YTIxNjk3ZjMzNDdkYTBlLi5hMTI5ZTVkZTUxOTY2M2IwNWViNGVhY2VjMjBmZTcy
ZDE2MjhjNmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9NZWRpYVBsYXllclByaXZhdGVRdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lz
dHJhcik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+
Jik7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBLVVJMJik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKSB7IHJldHVybiB0cnVlOyB9
CiAKICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKaW5kZXggN2Q5ZGNhZmU2Njdm
NTczMzc0Y2JlYWE1YTYzZWNkN2RiMDIyODMyMi4uZmQ3OTdlY2FjODZkMTIwMTYyZWJhNjU5MDQy
YTY0M2QzMzYzZTZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcApAQCAtMTAxMSw3ICsxMDExLDcgQEAgYm9vbCBNZWRp
YVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Ojppc0F2YWlsYWJsZSgpCiAgICAg
cmV0dXJuIFFUTW92aWU6OmluaXRpYWxpemVRdWlja1RpbWUoKTsKIH0KIAotTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Ojpz
dXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcykKK01l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBj
b2RlY3MsIGNvbnN0IEtVUkwmKQogewogICAgIC8vIG9ubHkgcmV0dXJuICJJc1N1cHBvcnRlZCIg
aWYgdGhlcmUgaXMgbm8gY29kZWNzIHBhcmFtZXRlciBmb3Igbm93IGFzIHRoZXJlIGlzIG5vIHdh
eSB0byBhc2sgUVQgaWYgaXQgc3VwcG9ydHMgYW4KICAgICAvLyAgZXh0ZW5kZWQgTUlNRSB0eXBl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRl
eHQuaAppbmRleCA0YzQ0YWY0MDFlYmIwM2ZkYjJmM2ZmMTQyNDI4NTc5NTFmOTExMTM1Li5lYjUy
ZWY2NGQ5MTgxYTY5MTI4NGJmNGY0ZWRjZTM4MDIyMzcyODMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgKQEAgLTEyOCw3ICsx
MjgsNyBAQCBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBzdXBwb3J0CiAgICAgc3RhdGljIFBhc3NP
d25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsK
ICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVz
KTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgc3RhdGljIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgYm9vbCBpc0F2YWls
YWJsZSgpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRl
V2luQ0UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxh
eWVyUHJpdmF0ZVdpbkNFLmgKaW5kZXggMGZhYTA0NTc4NGQ3MWJmYTg3MDY4ZGVmZGIwNjA2Njc0
YzllYjcyYy4uYWI0ZWM0ZDA1MGZkZDcyYjQ3ZDliMGIyZjk4ZWExZjYzZWVlMDk3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQ
cml2YXRlV2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5j
ZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oCkBAIC0xMDAsNyArMTAwLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICAvLyBlbmdpbmUgc3VwcG9ydAogICAgICAgICBzdGF0aWMgUGFz
c093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciop
OwogICAgICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4m
IHR5cGVzKTsKLSAgICAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpOworICAgICAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpOwogICAgICAgICBz
dGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgICAgIE1lZGlhUGxheWVyKiBtX3BsYXll
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXll
ckNsaWVudEltcGwuY3BwCmluZGV4IGEyOWE0Yzc5MjhiNjQ0ZmQ2ZGM1OGVmNDlmYTFkNTQxMDkx
OTNhM2MuLmM4MjZkOTQ4ZjcwY2JlOWMwMGZmMTM4OWRjYzY1Yzk1ZGFiZTBmMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsLmNwcApAQCAtNzkyLDExICs3OTIsMTMgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudElt
cGw6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgc3VwcG9ydGVkVHlwZXMKICNp
ZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBXZWJN
ZWRpYVBsYXllckNsaWVudEltcGw6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFN0cmluZyYgY29kZWNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEtV
UkwmKQogewogI2Vsc2UKIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBTdHJpbmcmIGNvZGVjcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBjb2RlY3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IEtVUkwmKQogewogICAgIFN0cmluZyBrZXlTeXN0ZW07CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgK
aW5kZXggNmYxNTBkZGE3MmZiZGY0OWM1NzFkMTRjYjg5ODVlZTBjMTQxOGRiYy4uMzdkNWFhZTI4
NmYyZTQzOWI1MTVjNGE4MmFjODg4YTVhZmU1ZDNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKQEAgLTE4NiwxMCAr
MTg2LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoV1RG
OjpIYXNoU2V0PFdURjo6U3RyaW5nPiYpOwogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAg
ICAgc3RhdGljIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBl
KAotICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgdHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmIGNv
ZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOworICAgICAgICBjb25zdCBXVEY6OlN0cmlu
ZyYgdHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0
ZW0sIGNvbnN0IEtVUkwmKTsKICNlbHNlCiAgICAgc3RhdGljIFdlYkNvcmU6Ok1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKAotICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYg
dHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmIGNvZGVjcyk7CisgICAgICAgIGNvbnN0IFdURjo6U3Ry
aW5nJiB0eXBlLCBjb25zdCBXVEY6OlN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJMJik7CiAjZW5k
aWYKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYm9vbCBhY2NlbGVyYXRl
ZFJlbmRlcmluZ0luVXNlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149008</attachid>
            <date>2012-06-22 06:02:25 -0700</date>
            <delta_ts>2012-06-22 09:11:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89514-20120622100223.patch</filename>
            <type>text/plain</type>
            <size>32781</size>
            <attacher name="Danilo de Paula">danilo.eu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlNWZkZWE5MDA4Mzkx
YWFjYzBhOTViOTY1OGQwZGIyMzk2OWI1NC4uZmQ5YWNmZmExMWUxNGRiM2Y2ODVmZjRjMWIzNGFk
ZTQ4YWFhODQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA2LTE5ICBEYW5p
bG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgIDxkYW5pbG8uY2VzYXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIEFkZCB1cmwgdG8gc3VwcG9ydHNUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTUxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGVyZSdzIG5vIGNo
YW5nZSBvbiBjb2RlIGJlaGF2aW9yLgorCisgICAgICAgIFdoZW4gYSBibG9iIGlzIGNyZWF0ZWQg
YXMgdGhlIGFkZHJlc3MgZm9yIGEgTWVkaWEgU3RyZWFtLCB0aGUgTWVkaWFFbmdpbmUKKyAgICAg
ICAgd2lsbCBhc2sgaXQncyBwbGF5ZXJzIGlmIHRoZXkgc3VwcG9ydCB0aGF0IG1lZGlhLiBIb3dl
dmVyLCBhIHBsYXllciBidWlsdAorICAgICAgICBmb3IgTWVkaWFTdHJlYW0gbmVlZHMgdG8ga25v
dyB0byBVUkwgdG8gZGVjaWRlIGlmIGl0J3Mgc3VwcG9ydGVkIG9yIG5vdC4KKworCisgICAgICAg
ICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VD
aGlsZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoTWVkaWFQbGF5ZXJGYWN0
b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6TWVkaWFQbGF5ZXJG
YWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFBsYWlu
KToKKyAgICAgICAgKFdlYkNvcmU6OmJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c3Vw
cG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzdXBwb3J0c1R5cGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRi5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpz
dXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5Lmg6CisgICAgICAgIChNZWRp
YVBsYXllclByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZh
dGVRVEtpdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5
ZXJQcml2YXRlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXQ6
OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5
ZXJQcml2YXRlUXQuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZVF0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRdWlja1Rp
bWVWaXN1YWxDb250ZXh0OjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Lmg6CisgICAg
ICAgIChNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oOgorICAg
ICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlKToKKwogMjAxMi0wNi0wOCAgVnNldm9sb2QgVmxhc292
ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBGaXggc2V2
ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhbmQgZXJyb3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01J
bXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggNGQzZDg1MzNhZDBhMmQzZDk3NGNlYzY5NjRmMjI3Mjg4
YjZlNjFjNy4uMGM3YTBiYmFiYzgxMGM4MDA1NTYzZDA4Nzk2OTdmYTdlMjVmYTBhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC00MDcsNyArNDA3LDcgQEAg
UGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNv
bnN0IFN0cmluZyYgdHlwZSwgRnJhbWUKICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB0eXBl
IGNhbiBiZSBwbGF5ZWQgYnkgb3VyIE1lZGlhUGxheWVyLCBpZiBzbyBjcmVhdGUgYSBNZWRpYURv
Y3VtZW50CiAgICAgLy8gS2V5IHN5c3RlbSBpcyBub3QgYXBwbGljYWJsZSBoZXJlLgogICAgIERP
TUltcGxlbWVudGF0aW9uU3VwcG9ydHNUeXBlQ2xpZW50IGNsaWVudChmcmFtZSAmJiBmcmFtZS0+
c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KSwgdXJsLmhvc3QoKSk7Ci0gICAgaWYgKE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVu
dFR5cGUodHlwZSksIFN0cmluZygpLCAmY2xpZW50KSkKKyAgICBpZiAoTWVkaWFQbGF5ZXI6OnN1
cHBvcnRzVHlwZShDb250ZW50VHlwZSh0eXBlKSwgU3RyaW5nKCksIHVybCwgJmNsaWVudCkpCiAg
ICAgICAgICByZXR1cm4gTWVkaWFEb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCB1cmwpOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDQ4OWM1MTIy
ZDQ0ZTQ4ZWZkZDRiZDIwOTNmMTczYmZmMDdiOWI5ZDYuLjYxZTA2ZWY2OGE4ZDBhNDZmNTM5N2Fi
Nzk3MWU2ODVhZTcyYmUzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtNjE4LDkgKzYxOCw5IEBAIEhUTUxNZWRpYUVsZW1lbnQ6Ok5ldHdvcmtTdGF0ZSBI
VE1MTWVkaWFFbGVtZW50OjpuZXR3b3JrU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBtX25ldHdv
cmtTdGF0ZTsKIH0KIAotU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKSBjb25zdAorU3RyaW5n
IEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ID0gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlw
ZShDb250ZW50VHlwZShtaW1lVHlwZSksIGtleVN5c3RlbSwgdGhpcyk7CisgICAgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ID0gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250
ZW50VHlwZShtaW1lVHlwZSksIGtleVN5c3RlbSwgdXJsLCB0aGlzKTsKICAgICBTdHJpbmcgY2Fu
UGxheTsKIAogICAgIC8vIDQuOC4xMC4zCkBAIC02MzcsNyArNjM3LDcgQEAgU3RyaW5nIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0
cmluZyYga2V5U3kKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAKLSAgICBMT0coTWVk
aWEsICJIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZSglcywgJXMpIC0+ICVzIiwgbWltZVR5
cGUudXRmOCgpLmRhdGEoKSwga2V5U3lzdGVtLnV0ZjgoKS5kYXRhKCksIGNhblBsYXkudXRmOCgp
LmRhdGEoKSk7CisgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUo
JXMsICVzLCAlcykgLT4gJXMiLCBtaW1lVHlwZS51dGY4KCkuZGF0YSgpLCBrZXlTeXN0ZW0udXRm
OCgpLmRhdGEoKSwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGNhblBsYXkudXRmOCgpLmRh
dGEoKSk7CiAKICAgICByZXR1cm4gY2FuUGxheTsKIH0KQEAgLTMxNzUsNyArMzE3NSw3IEBAIEtV
UkwgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKENvbnRlbnRUeXBlKiBj
b250ZW50VHlwZSwgU3RyaW5nKiBrCiAgICAgICAgICAgICBpZiAoc2hvdWxkTG9nKQogICAgICAg
ICAgICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VD
aGlsZCAtICd0eXBlJyBpcyAnJXMnIC0ga2V5IHN5c3RlbSBpcyAnJXMnIiwgdHlwZS51dGY4KCku
ZGF0YSgpLCBzeXN0ZW0udXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKLSAgICAgICAgICAgIGlmICgh
TWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250ZW50VHlwZSh0eXBlKSwgc3lzdGVtLCB0aGlz
KSkKKyAgICAgICAgICAgIGlmICghTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250ZW50VHlw
ZSh0eXBlKSwgc3lzdGVtLCBtZWRpYVVSTCwgdGhpcykpCiAgICAgICAgICAgICAgICAgZ290byBj
aGVja19hZ2FpbjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCmluZGV4IDE2NzNlMTUzNTI0OTE4ZDUyOTU3MWU4Yjk1ZWQyZWE1NGRmOTM1ODAuLjQwMTVh
MmY4NmYwNTk1NmU2ZTYzNmQxYTg2NjlhMmI4Yjg4MTgyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMjgsNyArMTI4LDcgQEAgcHVibGljOgogCiAgICAgUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgIHZvaWQgbG9hZChFeGNl
cHRpb25Db2RlJik7Ci0gICAgU3RyaW5nIGNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtID0gU3RyaW5nKCkpIGNvbnN0OworICAgIFN0cmlu
ZyBjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSA9IFN0cmluZygpLCBjb25zdCBLVVJMJiA9IEtVUkwoKSkgY29uc3Q7CiAKIC8vIHJlYWR5
IHN0YXRlCiAgICAgUmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggN2Q4NDVhY2Nj
OGNiM2RkMDYxZmM3ZTU2MWQ3MTUwODg2MmU3MTExNC4uNzNhYWNkNDk2MWI4ZWU4ODQ3M2ZmZTkx
YzlmZjI5MTZjN2FjYzgxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTc2LDE1ICsxNzYsMTQgQEAgc3RydWN0IE1lZGlhUGxh
eWVyRmFjdG9yeSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFQbGF5ZXJGYWN0b3J5
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTWVkaWFQbGF5ZXJGYWN0
b3J5KENyZWF0ZU1lZGlhRW5naW5lUGxheWVyIGNvbnN0cnVjdG9yLCBNZWRpYUVuZ2luZVN1cHBv
cnRlZFR5cGVzIGdldFN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSBzdXBw
b3J0c1R5cGVBbmRDb2RlY3MsCi0gICAgICAgIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2Fj
aGUgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlIGNsZWFy
TWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlIGNsZWFyTWVkaWFD
YWNoZUZvclNpdGUpIAorICAgICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdl
dFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlh
Q2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBjbGVhck1lZGlhQ2FjaGVG
b3JTaXRlKQogICAgICAgICA6IGNvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKQogICAgICAgICAsIGdl
dFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzKQogICAgICAgICAsIHN1cHBvcnRzVHlw
ZUFuZENvZGVjcyhzdXBwb3J0c1R5cGVBbmRDb2RlY3MpCiAgICAgICAgICwgZ2V0U2l0ZXNJbk1l
ZGlhQ2FjaGUoZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUpCiAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hl
KGNsZWFyTWVkaWFDYWNoZSkKICAgICAgICAgLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKGNsZWFy
TWVkaWFDYWNoZUZvclNpdGUpCi0KLSAgICB7IAorICAgIHsKICAgICB9CiAKICAgICBDcmVhdGVN
ZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvcjsKQEAgLTE5Niw3ICsxOTUsOCBAQCBwdWJsaWM6
CiB9OwogCiBzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRpYUVuZ2luZVBsYXll
ciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUsIE1l
ZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hl
LCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUpOwotc3RhdGljIE1lZGlhUGxheWVy
RmFjdG9yeSogYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgTWVkaWFQ
bGF5ZXJGYWN0b3J5KiBjdXJyZW50ID0gMCk7CisKK3N0YXRpYyBNZWRpYVBsYXllckZhY3Rvcnkq
IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IEtVUkwmLCBN
ZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQgPSAwKTsKIHN0YXRpYyBNZWRpYVBsYXllckZhY3Rv
cnkqIG5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpOwogCiBzdGF0
aWMgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9yeSo+JiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKSAK
QEAgLTI1Myw3ICsyNTMsNyBAQCBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb2RlY3MoKQog
ICAgIHJldHVybiBjb2RlY3M7CiB9CiAKLXN0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIGJlc3RN
ZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIE1lZGlhUGxheWVyRmFjdG9yeSog
Y3VycmVudCkKK3N0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIGJlc3RNZWRpYUVuZ2luZUZvclR5
cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IEtVUkwmIHVybCwgTWVkaWFQbGF5ZXJGYWN0b3J5
KiBjdXJyZW50KQogewogICAgIGlmICh0eXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7
CkBAIC0yODAsMTEgKzI4MCwxMSBAQCBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0TWVk
aWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgYwogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAg
ICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIGVuZ2luZVN1cHBvcnQgPSBlbmdpbmVzW25k
eF0tPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCBjb2RlY3MsIGtleVN5c3RlbSk7CisgICAg
ICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgZW5naW5lU3VwcG9ydCA9IGVuZ2luZXNbbmR4
XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIGNvZGVjcywga2V5U3lzdGVtLCB1cmwpOwog
I2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKGtleVN5c3RlbSk7CiAgICAgICAgIEFTU0VSVChr
ZXlTeXN0ZW0uaXNFbXB0eSgpKTsKLSAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBl
bmdpbmVTdXBwb3J0ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwg
Y29kZWNzKTsKKyAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBlbmdpbmVTdXBwb3J0
ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgY29kZWNzLCB1cmwp
OwogI2VuZGlmCiAgICAgICAgIGlmIChlbmdpbmVTdXBwb3J0ID4gc3VwcG9ydGVkKSB7CiAgICAg
ICAgICAgICBzdXBwb3J0ZWQgPSBlbmdpbmVTdXBwb3J0OwpAQCAtMzUyLDE0ICszNTIsMTQgQEAg
Ym9vbCBNZWRpYVBsYXllcjo6bG9hZChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IENvbnRlbnRUeXBl
JiBjb250ZW50VHlwZSwgY29uc3QgU3QKIHsKICAgICBtX2NvbnRlbnRNSU1FVHlwZSA9IGNvbnRl
bnRUeXBlLnR5cGUoKS5sb3dlcigpOwogICAgIG1fY29udGVudFR5cGVDb2RlY3MgPSBjb250ZW50
VHlwZS5wYXJhbWV0ZXIoY29kZWNzKCkpOwotICAgIG1fdXJsID0gdXJsLnN0cmluZygpOworICAg
IG1fdXJsID0gdXJsOwogICAgIG1fa2V5U3lzdGVtID0ga2V5U3lzdGVtLmxvd2VyKCk7CiAgICAg
bV9jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24gPSBmYWxzZTsKIAogICAg
IC8vIElmIHRoZSBNSU1FIHR5cGUgaXMgbWlzc2luZyBvciBpcyBub3QgbWVhbmluZ2Z1bCwgdHJ5
IHRvIGZpZ3VyZSBpdCBvdXQgZnJvbSB0aGUgVVJMLgogICAgIGlmIChtX2NvbnRlbnRNSU1FVHlw
ZS5pc0VtcHR5KCkgfHwgbV9jb250ZW50TUlNRVR5cGUgPT0gYXBwbGljYXRpb25PY3RldFN0cmVh
bSgpIHx8IG1fY29udGVudE1JTUVUeXBlID09IHRleHRQbGFpbigpKSB7Ci0gICAgICAgIGlmIChw
cm90b2NvbElzKG1fdXJsLCAiZGF0YSIpKQotICAgICAgICAgICAgbV9jb250ZW50TUlNRVR5cGUg
PSBtaW1lVHlwZUZyb21EYXRhVVJMKG1fdXJsKTsKKyAgICAgICAgaWYgKHByb3RvY29sSXMobV91
cmwuc3RyaW5nKCksICJkYXRhIikpCisgICAgICAgICAgICBtX2NvbnRlbnRNSU1FVHlwZSA9IG1p
bWVUeXBlRnJvbURhdGFVUkwobV91cmwuc3RyaW5nKCkpOwogICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgIFN0cmluZyBsYXN0UGF0aENvbXBvbmVudCA9IHVybC5sYXN0UGF0aENvbXBvbmVudCgp
OwogICAgICAgICAgICAgc2l6ZV90IHBvcyA9IGxhc3RQYXRoQ29tcG9uZW50LnJldmVyc2VGaW5k
KCcuJyk7CkBAIC0zODMsNyArMzgzLDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0
TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogICAgIE1lZGlhUGxheWVy
RmFjdG9yeSogZW5naW5lID0gMDsKIAogICAgIGlmICghbV9jb250ZW50TUlNRVR5cGUuaXNFbXB0
eSgpKQotICAgICAgICBlbmdpbmUgPSBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1f
Y29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBlQ29kZWNzLCBtX2tleVN5c3RlbSwgY3VycmVu
dCk7CisgICAgICAgIGVuZ2luZSA9IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MobV9j
b250ZW50TUlNRVR5cGUsIG1fY29udGVudFR5cGVDb2RlY3MsIG1fa2V5U3lzdGVtLCBtX3VybCwg
Y3VycmVudCk7CiAKICAgICAvLyBJZiBubyBNSU1FIHR5cGUgaXMgc3BlY2lmaWVkIG9yIHRoZSB0
eXBlIHdhcyBpbmZlcnJlZCBmcm9tIHRoZSBmaWxlIGV4dGVuc2lvbiwganVzdCB1c2UgdGhlIG5l
eHQgZW5naW5lLgogICAgIGlmICghZW5naW5lICYmIChtX2NvbnRlbnRNSU1FVHlwZS5pc0VtcHR5
KCkgfHwgbV9jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24pKQpAQCAtNDEw
LDcgKzQxMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKE1l
ZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCkKICAgICB9CiAKICAgICBpZiAobV9wcml2YXRlKQot
ICAgICAgICBtX3ByaXZhdGUtPmxvYWQobV91cmwpOworICAgICAgICBtX3ByaXZhdGUtPmxvYWQo
bV91cmwuc3RyaW5nKCkpOwogICAgIGVsc2UgewogICAgICAgICBtX3ByaXZhdGUgPSBjcmVhdGVO
dWxsTWVkaWFQbGF5ZXIodGhpcyk7CiAgICAgICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KSB7
CkBAIC00MTgsNyArNDE4LDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFF
bmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogICAgICAgICAgICAgbV9tZWRpYVBs
YXllckNsaWVudC0+bWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBvcnRlZCh0aGlzKTsKICAgICAg
ICAgfQogICAgIH0KLX0gICAgCit9CiAKIGJvb2wgTWVkaWFQbGF5ZXI6Omhhc0F2YWlsYWJsZVZp
ZGVvRnJhbWUoKSBjb25zdAogewpAQCAtNzI0LDcgKzcyNCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6
OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCogcCwgY29uc3QgSW50
UmVjdCYKICAgICBtX3ByaXZhdGUtPnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KHAsIHIpOwog
fQogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUo
Y29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwg
Y29uc3QgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVDbGllbnQqIGNsaWVudCkKK01lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlw
ZSYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBLVVJMJiB1cmws
IGNvbnN0IE1lZGlhUGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgU3Ry
aW5nIHR5cGUgPSBjb250ZW50VHlwZS50eXBlKCkubG93ZXIoKTsKICAgICAvLyBUaGUgY29kZWNz
IHN0cmluZyBpcyBub3QgbG93ZXItY2FzZWQgYmVjYXVzZSBNUDQgdmFsdWVzIGFyZSBjYXNlIHNl
bnNpdGl2ZQpAQCAtNzM3LDcgKzczNyw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVk
aWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5CiAgICAg
aWYgKHR5cGUgPT0gYXBwbGljYXRpb25PY3RldFN0cmVhbSgpKQogICAgICAgICByZXR1cm4gSXNO
b3RTdXBwb3J0ZWQ7CiAKLSAgICBNZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IGJlc3RNZWRp
YUVuZ2luZUZvclR5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtKTsKKyAgICBN
ZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2Rl
Y3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtLCB1cmwpOwogICAgIGlmICghZW5naW5lKQogICAg
ICAgICByZXR1cm4gSXNOb3RTdXBwb3J0ZWQ7CiAKQEAgLTc1NywxMCArNzU3LDEwIEBAIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250
ZW50VHlwZSYgY29udGVudFR5CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
Ci0gICAgcmV0dXJuIGVuZ2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2Rl
Y3MsIHN5c3RlbSk7CisgICAgcmV0dXJuIGVuZ2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5
cGUsIHR5cGVDb2RlY3MsIHN5c3RlbSwgdXJsKTsKICNlbHNlCiAgICAgQVNTRVJUKHN5c3RlbS5p
c0VtcHR5KCkpOwotICAgIHJldHVybiBlbmdpbmUtPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBl
LCB0eXBlQ29kZWNzKTsKKyAgICByZXR1cm4gZW5naW5lLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3Mo
dHlwZSwgdHlwZUNvZGVjcywgdXJsKTsKICNlbmRpZgogfQogCkBAIC05NDIsNyArOTQyLDcgQEAg
dm9pZCBNZWRpYVBsYXllcjo6bmV0d29ya1N0YXRlQ2hhbmdlZCgpCiAgICAgaWYgKG1fcHJpdmF0
ZS0+bmV0d29ya1N0YXRlKCkgPj0gRm9ybWF0RXJyb3IKICAgICAgICAgJiYgbV9wcml2YXRlLT5y
ZWFkeVN0YXRlKCkgPCBIYXZlTWV0YWRhdGEKICAgICAgICAgJiYgaW5zdGFsbGVkTWVkaWFFbmdp
bmVzKCkuc2l6ZSgpID4gMSkgewotICAgICAgICBpZiAobV9jb250ZW50TUlNRVR5cGUuaXNFbXB0
eSgpIHx8IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MobV9jb250ZW50TUlNRVR5cGUs
IG1fY29udGVudFR5cGVDb2RlY3MsIG1fa2V5U3lzdGVtLCBtX2N1cnJlbnRNZWRpYUVuZ2luZSkp
IHsKKyAgICAgICAgaWYgKG1fY29udGVudE1JTUVUeXBlLmlzRW1wdHkoKSB8fCBiZXN0TWVkaWFF
bmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBlQ29k
ZWNzLCBtX2tleVN5c3RlbSwgbV91cmwsIG1fY3VycmVudE1lZGlhRW5naW5lKSkgewogICAgICAg
ICAgICAgbV9yZWxvYWRUaW1lci5zdGFydE9uZVNob3QoMCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCmluZGV4IDZjNzIyYTA4MDdhNDVmMDNjNTkzOTY1MTJmMmQ5OGIyNTFlMDUzM2IuLmMz
ZDQ1M2Y2NzZmOWZiMDQzZTg4YjhiODU2NTJhMmY4NjYxODZlMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjAzLDcgKzIwMyw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgogICAgIGVudW0gU3VwcG9y
dHNUeXBlIHsgSXNOb3RTdXBwb3J0ZWQsIElzU3VwcG9ydGVkLCBNYXlCZVN1cHBvcnRlZCB9Owot
ICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBD
b250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBNZWRpYVBsYXllclN1
cHBvcnRzVHlwZUNsaWVudCopOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IHN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
LCBjb25zdCBLVVJMJiwgY29uc3QgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVDbGllbnQqKTsKICAg
ICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKICAgICBz
dGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogICAgIHN0YXRpYyB2b2lkIGdldFNpdGVzSW5NZWRp
YUNhY2hlKFZlY3RvcjxTdHJpbmc+Jik7CkBAIC00MDAsNyArNDAwLDcgQEAgcHJpdmF0ZToKICAg
ICBUaW1lcjxNZWRpYVBsYXllcj4gbV9yZWxvYWRUaW1lcjsKICAgICBPd25QdHI8TWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlPiBtX3ByaXZhdGU7CiAgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBt
X2N1cnJlbnRNZWRpYUVuZ2luZTsKLSAgICBTdHJpbmcgbV91cmw7CisgICAgS1VSTCBtX3VybDsK
ICAgICBTdHJpbmcgbV9jb250ZW50TUlNRVR5cGU7CiAgICAgU3RyaW5nIG1fY29udGVudFR5cGVD
b2RlY3M7CiAgICAgU3RyaW5nIG1fa2V5U3lzdGVtOwpAQCAtNDIzLDE3ICs0MjMsMTYgQEAgcHJp
dmF0ZToKIHR5cGVkZWYgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+ICgq
Q3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIpKE1lZGlhUGxheWVyKik7CiB0eXBlZGVmIHZvaWQgKCpN
ZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzKShIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQotdHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
ICgqTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKK3R5cGVkZWYgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSAoKk1lZGlhRW5naW5lU3VwcG9ydHNUeXBlKShjb25zdCBTdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29u
c3QgS1VSTCYgdXJsKTsKICNlbHNlCi10eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
KCpNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIGNvZGVjcyk7Cit0eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVu
Z2luZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVj
cywgY29uc3QgS1VSTCYgdXJsKTsKICNlbmRpZgogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVH
ZXRTaXRlc0luTWVkaWFDYWNoZSkoVmVjdG9yPFN0cmluZz4mKTsKIHR5cGVkZWYgdm9pZCAoKk1l
ZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlKSgpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVD
bGVhck1lZGlhQ2FjaGVGb3JTaXRlKShjb25zdCBTdHJpbmcmKTsKIAotdHlwZWRlZiB2b2lkICgq
TWVkaWFFbmdpbmVSZWdpc3RyYXIpKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2lu
ZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgCi0gICAgTWVkaWFFbmdp
bmVHZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUsIE1lZGlh
RW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSk7IAotCit0eXBlZGVmIHZvaWQgKCpNZWRpYUVu
Z2luZVJlZ2lzdHJhcikoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIsIE1lZGlhRW5naW5lU3VwcG9y
dGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLAorICAgIE1lZGlhRW5naW5lR2V0U2l0
ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNs
ZWFyTWVkaWFDYWNoZUZvclNpdGUpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCmluZGV4IDg3NWQx
MmRmYmU3YmI0MjIxYmU3NTUyNGY4MWFjZDIwN2NhM2E3ODAuLjExODBhNDdkNTUzNjk2ZDNkNGVk
OTU3YTQ3ZTJiYThiNmFhMDJkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApAQCAtNzI1LDggKzcyNSwx
MCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4mIHN1cHBvcgogICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZVR5
cGVDYWNoZSgpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiB1cmwpCiB7CisgICAgVU5VU0VEX1BB
UkFNKHVybCk7CisKICAgICAvLyBPbmx5IHJldHVybiAiSXNTdXBwb3J0ZWQiIGlmIHRoZXJlIGlz
IG5vIGNvZGVjcyBwYXJhbWV0ZXIgZm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3YXkgdG8gYXNrIGlm
IGl0IHN1cHBvcnRzIGFuCiAgICAgLy8gZXh0ZW5kZWQgTUlNRSB0eXBlIHVudGlsIHJkYXI6Ly84
NzIxNzE1IGlzIGZpeGVkLgogICAgIGlmIChtaW1lVHlwZUNhY2hlKCkuY29udGFpbnModHlwZSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5oCmluZGV4IGY1ZGQwMDE1MGQ0NDA1MTcwY2FmYzhhMjQ3ZGRkOGE0OTI3Mzhh
NzYuLjgxYTliYzZlNGZmMTI1NDk1M2ViZDNhYzJjMWIyYzNlYmQ5MjFmZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gRW5naW5lIHN1cHBvcnQKICAg
ICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShN
ZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8
U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKTsKKyAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpOwogICAgIHN0YXRp
YyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGRjYzA0NmQwNzdiNWZmNzNmY2ViZTdhMzVjN2UzNWU1
YjMwMTk1NjEuLmU1Y2ZjYjQ0NWZmYTRhOTE0Yzg4MmRmZjI3YjU0ZjRlNmU0NzU3OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICAvLyBlbmdp
bmUgc3VwcG9ydAogICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVk
VHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBjb2RlY3MpOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRz
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJM
Jik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxMb2FkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA5ZTg2NTM0OTdlZjVhZWVj
ZmEwZjdkMDk4ZmMwZDNiZTY0ZTZkNTRiLi5lZTQ2NzZlZmNiZTU5NTQ4MjlhMDA1YTNiZWM5ZDkw
YjNiMTY1YmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTY3Miw3ICs2NzIsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN1cHBvcnRlZFR5cGVz
KEhhc2hTZXQ8U3RyaW5nPiYgc3VwcAogICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZVR5cGVDYWNo
ZSgpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKQogewogICAgIGlmICghbWltZVR5cGVDYWNo
ZSgpLmNvbnRhaW5zKHR5cGUpKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3Vw
cG9ydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJy
eS5jcHAKaW5kZXggM2FjOTNlOGI0YzY3ZWQyZjE0ZmUzNjZhZjY1MTI2Mjg0MGExMTA5Ny4uNGVk
ZmNlYmM0ODk1OTgxOWQ2ODEwMjdjYTgzMWNkNDZmNzU3Yzc5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVC
bGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFj
a2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mIHR5cGVzKQogICAgICAgICB0eXBlcy5hZGQoaS0+Y19zdHIoKSk7CiB9CiAKLU1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c1R5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpCiB7CiAgICAgaWYgKHR5cGUuaXNO
dWxsKCkgfHwgdHlwZS5pc0VtcHR5KCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5
ZXIgZG9lcyBub3Qgc3VwcG9ydCB0eXBlOyB0eXBlIGlzIG51bGwgb3IgZW1wdHkuIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlh
UGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCmluZGV4IDBhYzQ2
NmJlYzhlZTg4ODExYTFiMTY0MGI3MzUyYTkwOWM4NTM2NWUuLjVmODc4NGU2YjNlZTZlMTRiMTAy
ZWUxZDNlNmIzYjA5OGU1Y2MxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQ
cml2YXRlQmxhY2tCZXJyeS5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXll
ciopOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdp
c3RyYXIpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5n
PiYpOwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29u
c3QgS1VSTCYpOwogICAgIHN0YXRpYyB2b2lkIG5vdGlmeUFwcEFjdGl2YXRlZEV2ZW50KGJvb2wp
OwogICAgIHN0YXRpYyB2b2lkIHNldENlcnRpZmljYXRlUGF0aChjb25zdCBTdHJpbmcmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA4
Mzk3MDhlZTk3NzYwMTQ4MGMyOGQzMDY5OTY4MTFiOGNhMzkxNjBjLi42YmMxMTJmODVlMDlhMmNh
MTc4ZWFkMWY2OWM4NzA3MmMyNTFjZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTU5Niw3ICsxNTk2LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYg
dHlwZXMpCiAgICAgdHlwZXMgPSBtaW1lVHlwZUNhY2hlKCk7CiB9CiAKLU1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUoY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpCiB7CiAgICAg
aWYgKHR5cGUuaXNOdWxsKCkgfHwgdHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBNZWRp
YVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKaW5kZXggMzllZTljZTRiZmJjYjgxMjNhMDIzYzQxNTcyYzMwYTYzZWMx
ZDMwZC4uM2NkNGE4N2ExNzYyNDg3YjdlMDc3YWU5OWE2MDBjZjMwNmU2ZDI0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTMwLDcgKzEzMCw4
IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UgewogICAgICAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAogICAgICAgICAg
ICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7Ci0gICAg
ICAgICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgICAgICAgICBzdGF0
aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0
eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpOworCiAgICAgICAgICAgICBz
dGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgICAgICAgICB2b2lkIHVwZGF0ZUF1ZGlv
U2luaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCAwMTFlYzM2YTI1ZDE5ZGU2
MTExZWQ1ODNjZDJiNmExNDRlMWM0MGE0Li4zZTg5YmM3ZDM0ZGJkZWYxNTkwMWVjMDY3Yjg0ZjFj
YThkNWI4YTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtNzQsNyArNzQsNyBA
QCBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBzdXBwb3J0CiAgICAgc3RhdGljIFBhc3NPd25QdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBz
dGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKLSAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgc3RhdGljIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTaXRlc0luTWVk
aWFDYWNoZShWZWN0b3I8U3RyaW5nPiYpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyTWVkaWFDYWNo
ZSgpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUoY29uc3QgU3RyaW5n
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggMjkyNDlhYTc4ODdiOGYyM2Qz
YThkNTgxZWM1N2M4NzY5MWY3ODMwZi4uMDIzNTY3YTRmMTMxNThlMTAxYTRkY2NlMmY5NDZhYTIx
YTc3N2FkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMTQ2MCw3ICsxNDYw
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFz
aFNldDxTdHJpbmc+JiBzdXBwb3J0ZWRUeXBlcykKICAgICAgICAgc3VwcG9ydGVkVHlwZXMuYWRk
KCppdCk7CiB9IAogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNv
ZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBj
b25zdCBLVVJMJikKIHsKICAgICAvLyBPbmx5IHJldHVybiAiSXNTdXBwb3J0ZWQiIGlmIHRoZXJl
IGlzIG5vIGNvZGVjcyBwYXJhbWV0ZXIgZm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3YXkgdG8gYXNr
IFFUIGlmIGl0IHN1cHBvcnRzIGFuCiAgICAgLy8gZXh0ZW5kZWQgTUlNRSB0eXBlIHlldC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlh
UGxheWVyUHJpdmF0ZVF0LmNwcAppbmRleCAzYTMwN2NiMjc0OWNlNDMzMGU5OGNlNWUxMzUzZTU4
NDE0OWI4ODViLi43OTRiYzEwMzYzYzk3YTMzMzkyZDdiZTVhYzc3ZTY4M2RkODBlN2E3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclBy
aXZhdGVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVk
aWFQbGF5ZXJQcml2YXRlUXQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUXQ6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiAmc3VwcG9ydGVkKQog
ICAgIH0KIH0KIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVR
dDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgbWltZSwgY29uc3QgU3RyaW5nJiBjb2RlYykK
K01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUXQ6OnN1cHBvcnRz
VHlwZShjb25zdCBTdHJpbmcmIG1pbWUsIGNvbnN0IFN0cmluZyYgY29kZWMsIGNvbnN0IEtVUkwm
KQogewogICAgIGlmICghbWltZS5zdGFydHNXaXRoKCJhdWRpby8iKSAmJiAhbWltZS5zdGFydHNX
aXRoKCJ2aWRlby8iKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRl
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlh
UGxheWVyUHJpdmF0ZVF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9N
ZWRpYVBsYXllclByaXZhdGVRdC5oCmluZGV4IGM2ZmNiZDgzOGQxMWQ4M2U0NzU3NTA5ZjdhMjE2
OTdmMzM0N2RhMGUuLmExMjllNWRlNTE5NjYzYjA1ZWI0ZWFjZWMyMGZlNzJkMTYyOGM2ZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVk
aWFQbGF5ZXJQcml2YXRlUXQuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBz
dGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKLSAgICBzdGF0
aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3Vw
cG9ydHNUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEtVUkwmKTsKICAg
ICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wg
aGFzVmlkZW8oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAppbmRleCA3ZDlkY2FmZTY2N2Y1NzMzNzRjYmVhYTVh
NjNlY2Q3ZGIwMjI4MzIyLi5mZDc5N2VjYWM4NmQxMjAxNjJlYmE2NTkwNDJhNjQzZDMzNjNlNmYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3Vh
bENvbnRleHQuY3BwCkBAIC0xMDExLDcgKzEwMTEsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OmlzQXZhaWxhYmxlKCkKICAgICByZXR1cm4gUVRNb3Zp
ZTo6aW5pdGlhbGl6ZVF1aWNrVGltZSgpOwogfQogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnN1cHBvcnRzVHlwZShj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpzdXBw
b3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3Qg
S1VSTCYpCiB7CiAgICAgLy8gb25seSByZXR1cm4gIklzU3VwcG9ydGVkIiBpZiB0aGVyZSBpcyBu
byBjb2RlY3MgcGFyYW1ldGVyIGZvciBub3cgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIGFzayBRVCBp
ZiBpdCBzdXBwb3J0cyBhbgogICAgIC8vICBleHRlbmRlZCBNSU1FIHR5cGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oCmluZGV4IDRj
NDRhZjQwMWViYjAzZmRiMmYzZmYxNDI0Mjg1Nzk1MWY5MTExMzUuLmViNTJlZjY0ZDkxODFhNjkx
Mjg0YmY0ZjRlZGNlMzgwMjIzNzI4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZh
dGU6CiAgICAgLy8gZW5naW5lIHN1cHBvcnQKICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2
b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRp
YyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNv
ZGVjcywgY29uc3QgS1VSTCYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2lu
Q0UuaAppbmRleCAwZmFhMDQ1Nzg0ZDcxYmZhODcwNjhkZWZkYjA2MDY2NzRjOWViNzJjLi5hYjRl
YzRkMDUwZmRkNzJiNDdkOWIwYjJmOThlYTFmNjNlZWUwOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVy
UHJpdmF0ZVdpbkNFLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIC8vIGVuZ2luZSBzdXBwb3J0CiAgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgICAgIHN0
YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAg
ICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgICAgIHN0YXRpYyBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJMJik7CiAgICAgICAgIHN0YXRpYyBib29sIGlz
QXZhaWxhYmxlKCk7CiAKICAgICAgICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5j
cHAKaW5kZXggYTI5YTRjNzkyOGI2NDRmZDZkYzU4ZWY0OWZhMWQ1NDEwOTE5M2EzYy4uYzgyNmQ5
NDhmNzBjYmU5YzAwZmYxMzg5ZGNjNjVjOTVkYWJlMGYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCkBAIC03
OTIsMTEgKzc5MiwxMyBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Z2V0U3VwcG9y
dGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiBzdXBwb3J0ZWRUeXBlcwogI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
U3RyaW5nJiBjb2RlY3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS1VSTCYpCiB7CiAjZWxz
ZQogTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1
cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgY29k
ZWNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGNvZGVjcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS1VSTCYp
CiB7CiAgICAgU3RyaW5nIGtleVN5c3RlbTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAppbmRleCA2ZjE1MGRk
YTcyZmJkZjQ5YzU3MWQxNGNiODk4NWVlMGMxNDE4ZGJjLi4zN2Q1YWFlMjg2ZjJlNDM5YjUxNWM0
YTgyYWM4ODhhNWFmZTVkM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtMTg2LDEwICsxODYsMTAgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhXVEY6Okhhc2hTZXQ8V1RG
OjpTdHJpbmc+Jik7CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGF0aWMgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoCi0gICAgICAgIGNv
bnN0IFdURjo6U3RyaW5nJiB0eXBlLCBjb25zdCBXVEY6OlN0cmluZyYgY29kZWNzLCBjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSk7CisgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiB0eXBlLCBjb25z
dCBXVEY6OlN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgS1VS
TCYpOwogI2Vsc2UKICAgICBzdGF0aWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBzdXBwb3J0c1R5cGUoCi0gICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiB0eXBlLCBjb25zdCBX
VEY6OlN0cmluZyYgY29kZWNzKTsKKyAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHR5cGUsIGNv
bnN0IFdURjo6U3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKTsKICNlbmRpZgogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIGFjY2VsZXJhdGVkUmVuZGVyaW5nSW5V
c2UoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149037</attachid>
            <date>2012-06-22 09:12:08 -0700</date>
            <delta_ts>2012-06-22 09:45:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89514-20120622131207.patch</filename>
            <type>text/plain</type>
            <size>32821</size>
            <attacher name="Danilo de Paula">danilo.eu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlNWZkZWE5MDA4Mzkx
YWFjYzBhOTViOTY1OGQwZGIyMzk2OWI1NC4uZmQ5YWNmZmExMWUxNGRiM2Y2ODVmZjRjMWIzNGFk
ZTQ4YWFhODQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA2LTE5ICBEYW5p
bG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgIDxkYW5pbG8uY2VzYXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIEFkZCB1cmwgdG8gc3VwcG9ydHNUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTUxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGVyZSdzIG5vIGNo
YW5nZSBvbiBjb2RlIGJlaGF2aW9yLgorCisgICAgICAgIFdoZW4gYSBibG9iIGlzIGNyZWF0ZWQg
YXMgdGhlIGFkZHJlc3MgZm9yIGEgTWVkaWEgU3RyZWFtLCB0aGUgTWVkaWFFbmdpbmUKKyAgICAg
ICAgd2lsbCBhc2sgaXQncyBwbGF5ZXJzIGlmIHRoZXkgc3VwcG9ydCB0aGF0IG1lZGlhLiBIb3dl
dmVyLCBhIHBsYXllciBidWlsdAorICAgICAgICBmb3IgTWVkaWFTdHJlYW0gbmVlZHMgdG8ga25v
dyB0byBVUkwgdG8gZGVjaWRlIGlmIGl0J3Mgc3VwcG9ydGVkIG9yIG5vdC4KKworCisgICAgICAg
ICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VD
aGlsZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoTWVkaWFQbGF5ZXJGYWN0
b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6TWVkaWFQbGF5ZXJG
YWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFBsYWlu
KToKKyAgICAgICAgKFdlYkNvcmU6OmJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c3Vw
cG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzdXBwb3J0c1R5cGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRi5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpz
dXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5Lmg6CisgICAgICAgIChNZWRp
YVBsYXllclByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZh
dGVRVEtpdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5
ZXJQcml2YXRlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXQ6
OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5
ZXJQcml2YXRlUXQuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZVF0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRdWlja1Rp
bWVWaXN1YWxDb250ZXh0OjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Lmg6CisgICAg
ICAgIChNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oOgorICAg
ICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlKToKKwogMjAxMi0wNi0wOCAgVnNldm9sb2QgVmxhc292
ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBGaXggc2V2
ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhbmQgZXJyb3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01J
bXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggNGQzZDg1MzNhZDBhMmQzZDk3NGNlYzY5NjRmMjI3Mjg4
YjZlNjFjNy4uMGM3YTBiYmFiYzgxMGM4MDA1NTYzZDA4Nzk2OTdmYTdlMjVmYTBhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC00MDcsNyArNDA3LDcgQEAg
UGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNv
bnN0IFN0cmluZyYgdHlwZSwgRnJhbWUKICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB0eXBl
IGNhbiBiZSBwbGF5ZWQgYnkgb3VyIE1lZGlhUGxheWVyLCBpZiBzbyBjcmVhdGUgYSBNZWRpYURv
Y3VtZW50CiAgICAgLy8gS2V5IHN5c3RlbSBpcyBub3QgYXBwbGljYWJsZSBoZXJlLgogICAgIERP
TUltcGxlbWVudGF0aW9uU3VwcG9ydHNUeXBlQ2xpZW50IGNsaWVudChmcmFtZSAmJiBmcmFtZS0+
c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KSwgdXJsLmhvc3QoKSk7Ci0gICAgaWYgKE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVu
dFR5cGUodHlwZSksIFN0cmluZygpLCAmY2xpZW50KSkKKyAgICBpZiAoTWVkaWFQbGF5ZXI6OnN1
cHBvcnRzVHlwZShDb250ZW50VHlwZSh0eXBlKSwgU3RyaW5nKCksIHVybCwgJmNsaWVudCkpCiAg
ICAgICAgICByZXR1cm4gTWVkaWFEb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCB1cmwpOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDQ4OWM1MTIy
ZDQ0ZTQ4ZWZkZDRiZDIwOTNmMTczYmZmMDdiOWI5ZDYuLjYxZTA2ZWY2OGE4ZDBhNDZmNTM5N2Fi
Nzk3MWU2ODVhZTcyYmUzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtNjE4LDkgKzYxOCw5IEBAIEhUTUxNZWRpYUVsZW1lbnQ6Ok5ldHdvcmtTdGF0ZSBI
VE1MTWVkaWFFbGVtZW50OjpuZXR3b3JrU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBtX25ldHdv
cmtTdGF0ZTsKIH0KIAotU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKSBjb25zdAorU3RyaW5n
IEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ID0gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlw
ZShDb250ZW50VHlwZShtaW1lVHlwZSksIGtleVN5c3RlbSwgdGhpcyk7CisgICAgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ID0gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250
ZW50VHlwZShtaW1lVHlwZSksIGtleVN5c3RlbSwgdXJsLCB0aGlzKTsKICAgICBTdHJpbmcgY2Fu
UGxheTsKIAogICAgIC8vIDQuOC4xMC4zCkBAIC02MzcsNyArNjM3LDcgQEAgU3RyaW5nIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0
cmluZyYga2V5U3kKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAKLSAgICBMT0coTWVk
aWEsICJIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZSglcywgJXMpIC0+ICVzIiwgbWltZVR5
cGUudXRmOCgpLmRhdGEoKSwga2V5U3lzdGVtLnV0ZjgoKS5kYXRhKCksIGNhblBsYXkudXRmOCgp
LmRhdGEoKSk7CisgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUo
JXMsICVzLCAlcykgLT4gJXMiLCBtaW1lVHlwZS51dGY4KCkuZGF0YSgpLCBrZXlTeXN0ZW0udXRm
OCgpLmRhdGEoKSwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGNhblBsYXkudXRmOCgpLmRh
dGEoKSk7CiAKICAgICByZXR1cm4gY2FuUGxheTsKIH0KQEAgLTMxNzUsNyArMzE3NSw3IEBAIEtV
UkwgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKENvbnRlbnRUeXBlKiBj
b250ZW50VHlwZSwgU3RyaW5nKiBrCiAgICAgICAgICAgICBpZiAoc2hvdWxkTG9nKQogICAgICAg
ICAgICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VD
aGlsZCAtICd0eXBlJyBpcyAnJXMnIC0ga2V5IHN5c3RlbSBpcyAnJXMnIiwgdHlwZS51dGY4KCku
ZGF0YSgpLCBzeXN0ZW0udXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKLSAgICAgICAgICAgIGlmICgh
TWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250ZW50VHlwZSh0eXBlKSwgc3lzdGVtLCB0aGlz
KSkKKyAgICAgICAgICAgIGlmICghTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250ZW50VHlw
ZSh0eXBlKSwgc3lzdGVtLCBtZWRpYVVSTCwgdGhpcykpCiAgICAgICAgICAgICAgICAgZ290byBj
aGVja19hZ2FpbjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCmluZGV4IDE2NzNlMTUzNTI0OTE4ZDUyOTU3MWU4Yjk1ZWQyZWE1NGRmOTM1ODAuLjQwMTVh
MmY4NmYwNTk1NmU2ZTYzNmQxYTg2NjlhMmI4Yjg4MTgyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMjgsNyArMTI4LDcgQEAgcHVibGljOgogCiAgICAgUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgIHZvaWQgbG9hZChFeGNl
cHRpb25Db2RlJik7Ci0gICAgU3RyaW5nIGNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtID0gU3RyaW5nKCkpIGNvbnN0OworICAgIFN0cmlu
ZyBjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSA9IFN0cmluZygpLCBjb25zdCBLVVJMJiA9IEtVUkwoKSkgY29uc3Q7CiAKIC8vIHJlYWR5
IHN0YXRlCiAgICAgUmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggN2Q4NDVhY2Nj
OGNiM2RkMDYxZmM3ZTU2MWQ3MTUwODg2MmU3MTExNC4uNzNhYWNkNDk2MWI4ZWU4ODQ3M2ZmZTkx
YzlmZjI5MTZjN2FjYzgxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTc2LDE1ICsxNzYsMTQgQEAgc3RydWN0IE1lZGlhUGxh
eWVyRmFjdG9yeSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFQbGF5ZXJGYWN0b3J5
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTWVkaWFQbGF5ZXJGYWN0
b3J5KENyZWF0ZU1lZGlhRW5naW5lUGxheWVyIGNvbnN0cnVjdG9yLCBNZWRpYUVuZ2luZVN1cHBv
cnRlZFR5cGVzIGdldFN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSBzdXBw
b3J0c1R5cGVBbmRDb2RlY3MsCi0gICAgICAgIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2Fj
aGUgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlIGNsZWFy
TWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlIGNsZWFyTWVkaWFD
YWNoZUZvclNpdGUpIAorICAgICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdl
dFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlh
Q2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBjbGVhck1lZGlhQ2FjaGVG
b3JTaXRlKQogICAgICAgICA6IGNvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKQogICAgICAgICAsIGdl
dFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzKQogICAgICAgICAsIHN1cHBvcnRzVHlw
ZUFuZENvZGVjcyhzdXBwb3J0c1R5cGVBbmRDb2RlY3MpCiAgICAgICAgICwgZ2V0U2l0ZXNJbk1l
ZGlhQ2FjaGUoZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUpCiAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hl
KGNsZWFyTWVkaWFDYWNoZSkKICAgICAgICAgLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKGNsZWFy
TWVkaWFDYWNoZUZvclNpdGUpCi0KLSAgICB7IAorICAgIHsKICAgICB9CiAKICAgICBDcmVhdGVN
ZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvcjsKQEAgLTE5Niw3ICsxOTUsOCBAQCBwdWJsaWM6
CiB9OwogCiBzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRpYUVuZ2luZVBsYXll
ciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUsIE1l
ZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hl
LCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUpOwotc3RhdGljIE1lZGlhUGxheWVy
RmFjdG9yeSogYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgTWVkaWFQ
bGF5ZXJGYWN0b3J5KiBjdXJyZW50ID0gMCk7CisKK3N0YXRpYyBNZWRpYVBsYXllckZhY3Rvcnkq
IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IEtVUkwmLCBN
ZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQgPSAwKTsKIHN0YXRpYyBNZWRpYVBsYXllckZhY3Rv
cnkqIG5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpOwogCiBzdGF0
aWMgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9yeSo+JiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKSAK
QEAgLTI1Myw3ICsyNTMsNyBAQCBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb2RlY3MoKQog
ICAgIHJldHVybiBjb2RlY3M7CiB9CiAKLXN0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIGJlc3RN
ZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIE1lZGlhUGxheWVyRmFjdG9yeSog
Y3VycmVudCkKK3N0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIGJlc3RNZWRpYUVuZ2luZUZvclR5
cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IEtVUkwmIHVybCwgTWVkaWFQbGF5ZXJGYWN0b3J5
KiBjdXJyZW50KQogewogICAgIGlmICh0eXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7
CkBAIC0yODAsMTEgKzI4MCwxMSBAQCBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0TWVk
aWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgYwogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAg
ICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIGVuZ2luZVN1cHBvcnQgPSBlbmdpbmVzW25k
eF0tPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCBjb2RlY3MsIGtleVN5c3RlbSk7CisgICAg
ICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgZW5naW5lU3VwcG9ydCA9IGVuZ2luZXNbbmR4
XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIGNvZGVjcywga2V5U3lzdGVtLCB1cmwpOwog
I2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKGtleVN5c3RlbSk7CiAgICAgICAgIEFTU0VSVChr
ZXlTeXN0ZW0uaXNFbXB0eSgpKTsKLSAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBl
bmdpbmVTdXBwb3J0ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwg
Y29kZWNzKTsKKyAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBlbmdpbmVTdXBwb3J0
ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgY29kZWNzLCB1cmwp
OwogI2VuZGlmCiAgICAgICAgIGlmIChlbmdpbmVTdXBwb3J0ID4gc3VwcG9ydGVkKSB7CiAgICAg
ICAgICAgICBzdXBwb3J0ZWQgPSBlbmdpbmVTdXBwb3J0OwpAQCAtMzUyLDE0ICszNTIsMTQgQEAg
Ym9vbCBNZWRpYVBsYXllcjo6bG9hZChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IENvbnRlbnRUeXBl
JiBjb250ZW50VHlwZSwgY29uc3QgU3QKIHsKICAgICBtX2NvbnRlbnRNSU1FVHlwZSA9IGNvbnRl
bnRUeXBlLnR5cGUoKS5sb3dlcigpOwogICAgIG1fY29udGVudFR5cGVDb2RlY3MgPSBjb250ZW50
VHlwZS5wYXJhbWV0ZXIoY29kZWNzKCkpOwotICAgIG1fdXJsID0gdXJsLnN0cmluZygpOworICAg
IG1fdXJsID0gdXJsOwogICAgIG1fa2V5U3lzdGVtID0ga2V5U3lzdGVtLmxvd2VyKCk7CiAgICAg
bV9jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24gPSBmYWxzZTsKIAogICAg
IC8vIElmIHRoZSBNSU1FIHR5cGUgaXMgbWlzc2luZyBvciBpcyBub3QgbWVhbmluZ2Z1bCwgdHJ5
IHRvIGZpZ3VyZSBpdCBvdXQgZnJvbSB0aGUgVVJMLgogICAgIGlmIChtX2NvbnRlbnRNSU1FVHlw
ZS5pc0VtcHR5KCkgfHwgbV9jb250ZW50TUlNRVR5cGUgPT0gYXBwbGljYXRpb25PY3RldFN0cmVh
bSgpIHx8IG1fY29udGVudE1JTUVUeXBlID09IHRleHRQbGFpbigpKSB7Ci0gICAgICAgIGlmIChw
cm90b2NvbElzKG1fdXJsLCAiZGF0YSIpKQotICAgICAgICAgICAgbV9jb250ZW50TUlNRVR5cGUg
PSBtaW1lVHlwZUZyb21EYXRhVVJMKG1fdXJsKTsKKyAgICAgICAgaWYgKHByb3RvY29sSXMobV91
cmwuc3RyaW5nKCksICJkYXRhIikpCisgICAgICAgICAgICBtX2NvbnRlbnRNSU1FVHlwZSA9IG1p
bWVUeXBlRnJvbURhdGFVUkwobV91cmwuc3RyaW5nKCkpOwogICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgIFN0cmluZyBsYXN0UGF0aENvbXBvbmVudCA9IHVybC5sYXN0UGF0aENvbXBvbmVudCgp
OwogICAgICAgICAgICAgc2l6ZV90IHBvcyA9IGxhc3RQYXRoQ29tcG9uZW50LnJldmVyc2VGaW5k
KCcuJyk7CkBAIC0zODMsNyArMzgzLDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0
TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogICAgIE1lZGlhUGxheWVy
RmFjdG9yeSogZW5naW5lID0gMDsKIAogICAgIGlmICghbV9jb250ZW50TUlNRVR5cGUuaXNFbXB0
eSgpKQotICAgICAgICBlbmdpbmUgPSBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1f
Y29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBlQ29kZWNzLCBtX2tleVN5c3RlbSwgY3VycmVu
dCk7CisgICAgICAgIGVuZ2luZSA9IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MobV9j
b250ZW50TUlNRVR5cGUsIG1fY29udGVudFR5cGVDb2RlY3MsIG1fa2V5U3lzdGVtLCBtX3VybCwg
Y3VycmVudCk7CiAKICAgICAvLyBJZiBubyBNSU1FIHR5cGUgaXMgc3BlY2lmaWVkIG9yIHRoZSB0
eXBlIHdhcyBpbmZlcnJlZCBmcm9tIHRoZSBmaWxlIGV4dGVuc2lvbiwganVzdCB1c2UgdGhlIG5l
eHQgZW5naW5lLgogICAgIGlmICghZW5naW5lICYmIChtX2NvbnRlbnRNSU1FVHlwZS5pc0VtcHR5
KCkgfHwgbV9jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24pKQpAQCAtNDEw
LDcgKzQxMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKE1l
ZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCkKICAgICB9CiAKICAgICBpZiAobV9wcml2YXRlKQot
ICAgICAgICBtX3ByaXZhdGUtPmxvYWQobV91cmwpOworICAgICAgICBtX3ByaXZhdGUtPmxvYWQo
bV91cmwuc3RyaW5nKCkpOwogICAgIGVsc2UgewogICAgICAgICBtX3ByaXZhdGUgPSBjcmVhdGVO
dWxsTWVkaWFQbGF5ZXIodGhpcyk7CiAgICAgICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KSB7
CkBAIC00MTgsNyArNDE4LDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFF
bmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogICAgICAgICAgICAgbV9tZWRpYVBs
YXllckNsaWVudC0+bWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBvcnRlZCh0aGlzKTsKICAgICAg
ICAgfQogICAgIH0KLX0gICAgCit9CiAKIGJvb2wgTWVkaWFQbGF5ZXI6Omhhc0F2YWlsYWJsZVZp
ZGVvRnJhbWUoKSBjb25zdAogewpAQCAtNzI0LDcgKzcyNCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6
OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCogcCwgY29uc3QgSW50
UmVjdCYKICAgICBtX3ByaXZhdGUtPnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KHAsIHIpOwog
fQogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUo
Y29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwg
Y29uc3QgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVDbGllbnQqIGNsaWVudCkKK01lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlw
ZSYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBLVVJMJiB1cmws
IGNvbnN0IE1lZGlhUGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgU3Ry
aW5nIHR5cGUgPSBjb250ZW50VHlwZS50eXBlKCkubG93ZXIoKTsKICAgICAvLyBUaGUgY29kZWNz
IHN0cmluZyBpcyBub3QgbG93ZXItY2FzZWQgYmVjYXVzZSBNUDQgdmFsdWVzIGFyZSBjYXNlIHNl
bnNpdGl2ZQpAQCAtNzM3LDcgKzczNyw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVk
aWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5CiAgICAg
aWYgKHR5cGUgPT0gYXBwbGljYXRpb25PY3RldFN0cmVhbSgpKQogICAgICAgICByZXR1cm4gSXNO
b3RTdXBwb3J0ZWQ7CiAKLSAgICBNZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IGJlc3RNZWRp
YUVuZ2luZUZvclR5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtKTsKKyAgICBN
ZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2Rl
Y3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtLCB1cmwpOwogICAgIGlmICghZW5naW5lKQogICAg
ICAgICByZXR1cm4gSXNOb3RTdXBwb3J0ZWQ7CiAKQEAgLTc1NywxMCArNzU3LDEwIEBAIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250
ZW50VHlwZSYgY29udGVudFR5CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
Ci0gICAgcmV0dXJuIGVuZ2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2Rl
Y3MsIHN5c3RlbSk7CisgICAgcmV0dXJuIGVuZ2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5
cGUsIHR5cGVDb2RlY3MsIHN5c3RlbSwgdXJsKTsKICNlbHNlCiAgICAgQVNTRVJUKHN5c3RlbS5p
c0VtcHR5KCkpOwotICAgIHJldHVybiBlbmdpbmUtPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBl
LCB0eXBlQ29kZWNzKTsKKyAgICByZXR1cm4gZW5naW5lLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3Mo
dHlwZSwgdHlwZUNvZGVjcywgdXJsKTsKICNlbmRpZgogfQogCkBAIC05NDIsNyArOTQyLDcgQEAg
dm9pZCBNZWRpYVBsYXllcjo6bmV0d29ya1N0YXRlQ2hhbmdlZCgpCiAgICAgaWYgKG1fcHJpdmF0
ZS0+bmV0d29ya1N0YXRlKCkgPj0gRm9ybWF0RXJyb3IKICAgICAgICAgJiYgbV9wcml2YXRlLT5y
ZWFkeVN0YXRlKCkgPCBIYXZlTWV0YWRhdGEKICAgICAgICAgJiYgaW5zdGFsbGVkTWVkaWFFbmdp
bmVzKCkuc2l6ZSgpID4gMSkgewotICAgICAgICBpZiAobV9jb250ZW50TUlNRVR5cGUuaXNFbXB0
eSgpIHx8IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MobV9jb250ZW50TUlNRVR5cGUs
IG1fY29udGVudFR5cGVDb2RlY3MsIG1fa2V5U3lzdGVtLCBtX2N1cnJlbnRNZWRpYUVuZ2luZSkp
IHsKKyAgICAgICAgaWYgKG1fY29udGVudE1JTUVUeXBlLmlzRW1wdHkoKSB8fCBiZXN0TWVkaWFF
bmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBlQ29k
ZWNzLCBtX2tleVN5c3RlbSwgbV91cmwsIG1fY3VycmVudE1lZGlhRW5naW5lKSkgewogICAgICAg
ICAgICAgbV9yZWxvYWRUaW1lci5zdGFydE9uZVNob3QoMCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCmluZGV4IDZjNzIyYTA4MDdhNDVmMDNjNTkzOTY1MTJmMmQ5OGIyNTFlMDUzM2IuLmMz
ZDQ1M2Y2NzZmOWZiMDQzZTg4YjhiODU2NTJhMmY4NjYxODZlMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjAzLDcgKzIwMyw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgogICAgIGVudW0gU3VwcG9y
dHNUeXBlIHsgSXNOb3RTdXBwb3J0ZWQsIElzU3VwcG9ydGVkLCBNYXlCZVN1cHBvcnRlZCB9Owot
ICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBD
b250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBNZWRpYVBsYXllclN1
cHBvcnRzVHlwZUNsaWVudCopOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IHN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
LCBjb25zdCBLVVJMJiwgY29uc3QgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVDbGllbnQqKTsKICAg
ICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKICAgICBz
dGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogICAgIHN0YXRpYyB2b2lkIGdldFNpdGVzSW5NZWRp
YUNhY2hlKFZlY3RvcjxTdHJpbmc+Jik7CkBAIC00MDAsNyArNDAwLDcgQEAgcHJpdmF0ZToKICAg
ICBUaW1lcjxNZWRpYVBsYXllcj4gbV9yZWxvYWRUaW1lcjsKICAgICBPd25QdHI8TWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlPiBtX3ByaXZhdGU7CiAgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBt
X2N1cnJlbnRNZWRpYUVuZ2luZTsKLSAgICBTdHJpbmcgbV91cmw7CisgICAgS1VSTCBtX3VybDsK
ICAgICBTdHJpbmcgbV9jb250ZW50TUlNRVR5cGU7CiAgICAgU3RyaW5nIG1fY29udGVudFR5cGVD
b2RlY3M7CiAgICAgU3RyaW5nIG1fa2V5U3lzdGVtOwpAQCAtNDIzLDE3ICs0MjMsMTYgQEAgcHJp
dmF0ZToKIHR5cGVkZWYgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+ICgq
Q3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIpKE1lZGlhUGxheWVyKik7CiB0eXBlZGVmIHZvaWQgKCpN
ZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzKShIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQotdHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
ICgqTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKK3R5cGVkZWYgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSAoKk1lZGlhRW5naW5lU3VwcG9ydHNUeXBlKShjb25zdCBTdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29u
c3QgS1VSTCYgdXJsKTsKICNlbHNlCi10eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
KCpNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIGNvZGVjcyk7Cit0eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVu
Z2luZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVj
cywgY29uc3QgS1VSTCYgdXJsKTsKICNlbmRpZgogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVH
ZXRTaXRlc0luTWVkaWFDYWNoZSkoVmVjdG9yPFN0cmluZz4mKTsKIHR5cGVkZWYgdm9pZCAoKk1l
ZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlKSgpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVD
bGVhck1lZGlhQ2FjaGVGb3JTaXRlKShjb25zdCBTdHJpbmcmKTsKIAotdHlwZWRlZiB2b2lkICgq
TWVkaWFFbmdpbmVSZWdpc3RyYXIpKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2lu
ZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgCi0gICAgTWVkaWFFbmdp
bmVHZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUsIE1lZGlh
RW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSk7IAotCit0eXBlZGVmIHZvaWQgKCpNZWRpYUVu
Z2luZVJlZ2lzdHJhcikoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIsIE1lZGlhRW5naW5lU3VwcG9y
dGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLAorICAgIE1lZGlhRW5naW5lR2V0U2l0
ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNs
ZWFyTWVkaWFDYWNoZUZvclNpdGUpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCmluZGV4IDg3NWQx
MmRmYmU3YmI0MjIxYmU3NTUyNGY4MWFjZDIwN2NhM2E3ODAuLjExODBhNDdkNTUzNjk2ZDNkNGVk
OTU3YTQ3ZTJiYThiNmFhMDJkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApAQCAtNzI1LDggKzcyNSwx
MCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4mIHN1cHBvcgogICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZVR5
cGVDYWNoZSgpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiB1cmwpCiB7CisgICAgVU5VU0VEX1BB
UkFNKHVybCk7CisKICAgICAvLyBPbmx5IHJldHVybiAiSXNTdXBwb3J0ZWQiIGlmIHRoZXJlIGlz
IG5vIGNvZGVjcyBwYXJhbWV0ZXIgZm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3YXkgdG8gYXNrIGlm
IGl0IHN1cHBvcnRzIGFuCiAgICAgLy8gZXh0ZW5kZWQgTUlNRSB0eXBlIHVudGlsIHJkYXI6Ly84
NzIxNzE1IGlzIGZpeGVkLgogICAgIGlmIChtaW1lVHlwZUNhY2hlKCkuY29udGFpbnModHlwZSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5oCmluZGV4IGY1ZGQwMDE1MGQ0NDA1MTcwY2FmYzhhMjQ3ZGRkOGE0OTI3Mzhh
NzYuLjgxYTliYzZlNGZmMTI1NDk1M2ViZDNhYzJjMWIyYzNlYmQ5MjFmZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gRW5naW5lIHN1cHBvcnQKICAg
ICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShN
ZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8
U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKTsKKyAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpOwogICAgIHN0YXRp
YyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGRjYzA0NmQwNzdiNWZmNzNmY2ViZTdhMzVjN2UzNWU1
YjMwMTk1NjEuLmU1Y2ZjYjQ0NWZmYTRhOTE0Yzg4MmRmZjI3YjU0ZjRlNmU0NzU3OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICAvLyBlbmdp
bmUgc3VwcG9ydAogICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVk
VHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBjb2RlY3MpOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRz
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJM
Jik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxMb2FkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA5ZTg2NTM0OTdlZjVhZWVj
ZmEwZjdkMDk4ZmMwZDNiZTY0ZTZkNTRiLi5lZTQ2NzZlZmNiZTU5NTQ4MjlhMDA1YTNiZWM5ZDkw
YjNiMTY1YmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTY3Miw3ICs2NzIsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN1cHBvcnRlZFR5cGVz
KEhhc2hTZXQ8U3RyaW5nPiYgc3VwcAogICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZVR5cGVDYWNo
ZSgpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKQogewogICAgIGlmICghbWltZVR5cGVDYWNo
ZSgpLmNvbnRhaW5zKHR5cGUpKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3Vw
cG9ydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJy
eS5jcHAKaW5kZXggM2FjOTNlOGI0YzY3ZWQyZjE0ZmUzNjZhZjY1MTI2Mjg0MGExMTA5Ny4uNGVk
ZmNlYmM0ODk1OTgxOWQ2ODEwMjdjYTgzMWNkNDZmNzU3Yzc5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVC
bGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFj
a2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mIHR5cGVzKQogICAgICAgICB0eXBlcy5hZGQoaS0+Y19zdHIoKSk7CiB9CiAKLU1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c1R5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpCiB7CiAgICAgaWYgKHR5cGUuaXNO
dWxsKCkgfHwgdHlwZS5pc0VtcHR5KCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5
ZXIgZG9lcyBub3Qgc3VwcG9ydCB0eXBlOyB0eXBlIGlzIG51bGwgb3IgZW1wdHkuIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlh
UGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCmluZGV4IDBhYzQ2
NmJlYzhlZTg4ODExYTFiMTY0MGI3MzUyYTkwOWM4NTM2NWUuLjVmODc4NGU2YjNlZTZlMTRiMTAy
ZWUxZDNlNmIzYjA5OGU1Y2MxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQ
cml2YXRlQmxhY2tCZXJyeS5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXll
ciopOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdp
c3RyYXIpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5n
PiYpOwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29u
c3QgS1VSTCYpOwogICAgIHN0YXRpYyB2b2lkIG5vdGlmeUFwcEFjdGl2YXRlZEV2ZW50KGJvb2wp
OwogICAgIHN0YXRpYyB2b2lkIHNldENlcnRpZmljYXRlUGF0aChjb25zdCBTdHJpbmcmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA4
Mzk3MDhlZTk3NzYwMTQ4MGMyOGQzMDY5OTY4MTFiOGNhMzkxNjBjLi42YmMxMTJmODVlMDlhMmNh
MTc4ZWFkMWY2OWM4NzA3MmMyNTFjZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTU5Niw3ICsxNTk2LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYg
dHlwZXMpCiAgICAgdHlwZXMgPSBtaW1lVHlwZUNhY2hlKCk7CiB9CiAKLU1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUoY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpCiB7CiAgICAg
aWYgKHR5cGUuaXNOdWxsKCkgfHwgdHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBNZWRp
YVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKaW5kZXggMzllZTljZTRiZmJjYjgxMjNhMDIzYzQxNTcyYzMwYTYzZWMx
ZDMwZC4uM2NkNGE4N2ExNzYyNDg3YjdlMDc3YWU5OWE2MDBjZjMwNmU2ZDI0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTMwLDcgKzEzMCw4
IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UgewogICAgICAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAogICAgICAgICAg
ICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7Ci0gICAg
ICAgICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgICAgICAgICBzdGF0
aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0
eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpOworCiAgICAgICAgICAgICBz
dGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgICAgICAgICB2b2lkIHVwZGF0ZUF1ZGlv
U2luaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCAwMTFlYzM2YTI1ZDE5ZGU2
MTExZWQ1ODNjZDJiNmExNDRlMWM0MGE0Li4zZTg5YmM3ZDM0ZGJkZWYxNTkwMWVjMDY3Yjg0ZjFj
YThkNWI4YTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtNzQsNyArNzQsNyBA
QCBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBzdXBwb3J0CiAgICAgc3RhdGljIFBhc3NPd25QdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBz
dGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKLSAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgc3RhdGljIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTaXRlc0luTWVk
aWFDYWNoZShWZWN0b3I8U3RyaW5nPiYpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyTWVkaWFDYWNo
ZSgpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUoY29uc3QgU3RyaW5n
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggMjkyNDlhYTc4ODdiOGYyM2Qz
YThkNTgxZWM1N2M4NzY5MWY3ODMwZi4uMDIzNTY3YTRmMTMxNThlMTAxYTRkY2NlMmY5NDZhYTIx
YTc3N2FkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMTQ2MCw3ICsxNDYw
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFz
aFNldDxTdHJpbmc+JiBzdXBwb3J0ZWRUeXBlcykKICAgICAgICAgc3VwcG9ydGVkVHlwZXMuYWRk
KCppdCk7CiB9IAogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNv
ZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBj
b25zdCBLVVJMJikKIHsKICAgICAvLyBPbmx5IHJldHVybiAiSXNTdXBwb3J0ZWQiIGlmIHRoZXJl
IGlzIG5vIGNvZGVjcyBwYXJhbWV0ZXIgZm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3YXkgdG8gYXNr
IFFUIGlmIGl0IHN1cHBvcnRzIGFuCiAgICAgLy8gZXh0ZW5kZWQgTUlNRSB0eXBlIHlldC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlh
UGxheWVyUHJpdmF0ZVF0LmNwcAppbmRleCAzYTMwN2NiMjc0OWNlNDMzMGU5OGNlNWUxMzUzZTU4
NDE0OWI4ODViLi43OTRiYzEwMzYzYzk3YTMzMzkyZDdiZTVhYzc3ZTY4M2RkODBlN2E3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclBy
aXZhdGVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVk
aWFQbGF5ZXJQcml2YXRlUXQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUXQ6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiAmc3VwcG9ydGVkKQog
ICAgIH0KIH0KIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVR
dDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgbWltZSwgY29uc3QgU3RyaW5nJiBjb2RlYykK
K01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUXQ6OnN1cHBvcnRz
VHlwZShjb25zdCBTdHJpbmcmIG1pbWUsIGNvbnN0IFN0cmluZyYgY29kZWMsIGNvbnN0IEtVUkwm
KQogewogICAgIGlmICghbWltZS5zdGFydHNXaXRoKCJhdWRpby8iKSAmJiAhbWltZS5zdGFydHNX
aXRoKCJ2aWRlby8iKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRl
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlh
UGxheWVyUHJpdmF0ZVF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9N
ZWRpYVBsYXllclByaXZhdGVRdC5oCmluZGV4IGM2ZmNiZDgzOGQxMWQ4M2U0NzU3NTA5ZjdhMjE2
OTdmMzM0N2RhMGUuLmExMjllNWRlNTE5NjYzYjA1ZWI0ZWFjZWMyMGZlNzJkMTYyOGM2ZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVk
aWFQbGF5ZXJQcml2YXRlUXQuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBz
dGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKLSAgICBzdGF0
aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3Vw
cG9ydHNUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEtVUkwmKTsKICAg
ICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wg
aGFzVmlkZW8oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAppbmRleCA3ZDlkY2FmZTY2N2Y1NzMzNzRjYmVhYTVh
NjNlY2Q3ZGIwMjI4MzIyLi5mZDc5N2VjYWM4NmQxMjAxNjJlYmE2NTkwNDJhNjQzZDMzNjNlNmYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3Vh
bENvbnRleHQuY3BwCkBAIC0xMDExLDcgKzEwMTEsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OmlzQXZhaWxhYmxlKCkKICAgICByZXR1cm4gUVRNb3Zp
ZTo6aW5pdGlhbGl6ZVF1aWNrVGltZSgpOwogfQogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnN1cHBvcnRzVHlwZShj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpzdXBw
b3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3Qg
S1VSTCYpCiB7CiAgICAgLy8gb25seSByZXR1cm4gIklzU3VwcG9ydGVkIiBpZiB0aGVyZSBpcyBu
byBjb2RlY3MgcGFyYW1ldGVyIGZvciBub3cgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIGFzayBRVCBp
ZiBpdCBzdXBwb3J0cyBhbgogICAgIC8vICBleHRlbmRlZCBNSU1FIHR5cGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oCmluZGV4IDRj
NDRhZjQwMWViYjAzZmRiMmYzZmYxNDI0Mjg1Nzk1MWY5MTExMzUuLmViNTJlZjY0ZDkxODFhNjkx
Mjg0YmY0ZjRlZGNlMzgwMjIzNzI4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZh
dGU6CiAgICAgLy8gZW5naW5lIHN1cHBvcnQKICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2
b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRp
YyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNv
ZGVjcywgY29uc3QgS1VSTCYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2lu
Q0UuaAppbmRleCAwZmFhMDQ1Nzg0ZDcxYmZhODcwNjhkZWZkYjA2MDY2NzRjOWViNzJjLi5hYjRl
YzRkMDUwZmRkNzJiNDdkOWIwYjJmOThlYTFmNjNlZWUwOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVy
UHJpdmF0ZVdpbkNFLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIC8vIGVuZ2luZSBzdXBwb3J0CiAgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgICAgIHN0
YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAg
ICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgICAgIHN0YXRpYyBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJMJik7CiAgICAgICAgIHN0YXRpYyBib29sIGlz
QXZhaWxhYmxlKCk7CiAKICAgICAgICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5j
cHAKaW5kZXggYTI5YTRjNzkyOGI2NDRmZDZkYzU4ZWY0OWZhMWQ1NDEwOTE5M2EzYy4uNWUyNWI3
NDhlNzNlYTExM2E0NDU2ODMwM2YwODNmNDg1OGNkYzA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCkBAIC03
OTIsMTEgKzc5MiwxMyBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Z2V0U3VwcG9y
dGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiBzdXBwb3J0ZWRUeXBlcwogI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
U3RyaW5nJiBjb2RlY3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJVUkwm
KQogewogI2Vsc2UKIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBT
dHJpbmcmIGNvZGVjcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBjb2RlY3MsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFdlYktpdDo6V2ViVVJMJikKIHsKICAgICBTdHJpbmcga2V5U3lzdGVtOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oCmluZGV4IDZmMTUwZGRhNzJmYmRmNDljNTcxZDE0Y2I4OTg1ZWUwYzE0MThkYmMuLmE0
YjIzOTI0YjM4YjgxODhmOGY0Y2UyNjllNTk5ZTZhYTNlNWRiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCkBAIC0x
ODYsMTAgKzE4NiwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5
cGVzKFdURjo6SGFzaFNldDxXVEY6OlN0cmluZz4mKTsKICNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQogICAgIHN0YXRpYyBXZWJDb3JlOjpNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBv
cnRzVHlwZSgKLSAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHR5cGUsIGNvbnN0IFdURjo6U3Ry
aW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKKyAgICAgICAgY29uc3QgV1RG
OjpTdHJpbmcmIHR5cGUsIGNvbnN0IFdURjo6U3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCBXZWJLaXQ6OldlYlVSTCYpOwogI2Vsc2UKICAgICBzdGF0aWMgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoCi0gICAgICAgIGNv
bnN0IFdURjo6U3RyaW5nJiB0eXBlLCBjb25zdCBXVEY6OlN0cmluZyYgY29kZWNzKTsKKyAgICAg
ICAgY29uc3QgV1RGOjpTdHJpbmcmIHR5cGUsIGNvbnN0IFdURjo6U3RyaW5nJiBjb2RlY3MsIGNv
bnN0IFdlYktpdDo6V2ViVVJMJik7CiAjZW5kaWYKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgYm9vbCBhY2NlbGVyYXRlZFJlbmRlcmluZ0luVXNlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149044</attachid>
            <date>2012-06-22 09:46:07 -0700</date>
            <delta_ts>2012-06-22 10:23:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89514-20120622134606.patch</filename>
            <type>text/plain</type>
            <size>32799</size>
            <attacher name="Danilo de Paula">danilo.eu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlNWZkZWE5MDA4Mzkx
YWFjYzBhOTViOTY1OGQwZGIyMzk2OWI1NC4uZmQ5YWNmZmExMWUxNGRiM2Y2ODVmZjRjMWIzNGFk
ZTQ4YWFhODQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA2LTE5ICBEYW5p
bG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgIDxkYW5pbG8uY2VzYXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIEFkZCB1cmwgdG8gc3VwcG9ydHNUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTUxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGVyZSdzIG5vIGNo
YW5nZSBvbiBjb2RlIGJlaGF2aW9yLgorCisgICAgICAgIFdoZW4gYSBibG9iIGlzIGNyZWF0ZWQg
YXMgdGhlIGFkZHJlc3MgZm9yIGEgTWVkaWEgU3RyZWFtLCB0aGUgTWVkaWFFbmdpbmUKKyAgICAg
ICAgd2lsbCBhc2sgaXQncyBwbGF5ZXJzIGlmIHRoZXkgc3VwcG9ydCB0aGF0IG1lZGlhLiBIb3dl
dmVyLCBhIHBsYXllciBidWlsdAorICAgICAgICBmb3IgTWVkaWFTdHJlYW0gbmVlZHMgdG8ga25v
dyB0byBVUkwgdG8gZGVjaWRlIGlmIGl0J3Mgc3VwcG9ydGVkIG9yIG5vdC4KKworCisgICAgICAg
ICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VD
aGlsZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoTWVkaWFQbGF5ZXJGYWN0
b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6TWVkaWFQbGF5ZXJG
YWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFBsYWlu
KToKKyAgICAgICAgKFdlYkNvcmU6OmJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c3Vw
cG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzdXBwb3J0c1R5cGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRi5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpz
dXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5Lmg6CisgICAgICAgIChNZWRp
YVBsYXllclByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZh
dGVRVEtpdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5
ZXJQcml2YXRlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXQ6
OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5
ZXJQcml2YXRlUXQuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZVF0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRdWlja1Rp
bWVWaXN1YWxDb250ZXh0OjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Lmg6CisgICAg
ICAgIChNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oOgorICAg
ICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlKToKKwogMjAxMi0wNi0wOCAgVnNldm9sb2QgVmxhc292
ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBGaXggc2V2
ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhbmQgZXJyb3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01J
bXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggNGQzZDg1MzNhZDBhMmQzZDk3NGNlYzY5NjRmMjI3Mjg4
YjZlNjFjNy4uMGM3YTBiYmFiYzgxMGM4MDA1NTYzZDA4Nzk2OTdmYTdlMjVmYTBhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC00MDcsNyArNDA3LDcgQEAg
UGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNv
bnN0IFN0cmluZyYgdHlwZSwgRnJhbWUKICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB0eXBl
IGNhbiBiZSBwbGF5ZWQgYnkgb3VyIE1lZGlhUGxheWVyLCBpZiBzbyBjcmVhdGUgYSBNZWRpYURv
Y3VtZW50CiAgICAgLy8gS2V5IHN5c3RlbSBpcyBub3QgYXBwbGljYWJsZSBoZXJlLgogICAgIERP
TUltcGxlbWVudGF0aW9uU3VwcG9ydHNUeXBlQ2xpZW50IGNsaWVudChmcmFtZSAmJiBmcmFtZS0+
c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KSwgdXJsLmhvc3QoKSk7Ci0gICAgaWYgKE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVu
dFR5cGUodHlwZSksIFN0cmluZygpLCAmY2xpZW50KSkKKyAgICBpZiAoTWVkaWFQbGF5ZXI6OnN1
cHBvcnRzVHlwZShDb250ZW50VHlwZSh0eXBlKSwgU3RyaW5nKCksIHVybCwgJmNsaWVudCkpCiAg
ICAgICAgICByZXR1cm4gTWVkaWFEb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCB1cmwpOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDQ4OWM1MTIy
ZDQ0ZTQ4ZWZkZDRiZDIwOTNmMTczYmZmMDdiOWI5ZDYuLjYxZTA2ZWY2OGE4ZDBhNDZmNTM5N2Fi
Nzk3MWU2ODVhZTcyYmUzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtNjE4LDkgKzYxOCw5IEBAIEhUTUxNZWRpYUVsZW1lbnQ6Ok5ldHdvcmtTdGF0ZSBI
VE1MTWVkaWFFbGVtZW50OjpuZXR3b3JrU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBtX25ldHdv
cmtTdGF0ZTsKIH0KIAotU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKSBjb25zdAorU3RyaW5n
IEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ID0gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlw
ZShDb250ZW50VHlwZShtaW1lVHlwZSksIGtleVN5c3RlbSwgdGhpcyk7CisgICAgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ID0gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250
ZW50VHlwZShtaW1lVHlwZSksIGtleVN5c3RlbSwgdXJsLCB0aGlzKTsKICAgICBTdHJpbmcgY2Fu
UGxheTsKIAogICAgIC8vIDQuOC4xMC4zCkBAIC02MzcsNyArNjM3LDcgQEAgU3RyaW5nIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0
cmluZyYga2V5U3kKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAKLSAgICBMT0coTWVk
aWEsICJIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZSglcywgJXMpIC0+ICVzIiwgbWltZVR5
cGUudXRmOCgpLmRhdGEoKSwga2V5U3lzdGVtLnV0ZjgoKS5kYXRhKCksIGNhblBsYXkudXRmOCgp
LmRhdGEoKSk7CisgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUo
JXMsICVzLCAlcykgLT4gJXMiLCBtaW1lVHlwZS51dGY4KCkuZGF0YSgpLCBrZXlTeXN0ZW0udXRm
OCgpLmRhdGEoKSwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGNhblBsYXkudXRmOCgpLmRh
dGEoKSk7CiAKICAgICByZXR1cm4gY2FuUGxheTsKIH0KQEAgLTMxNzUsNyArMzE3NSw3IEBAIEtV
UkwgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKENvbnRlbnRUeXBlKiBj
b250ZW50VHlwZSwgU3RyaW5nKiBrCiAgICAgICAgICAgICBpZiAoc2hvdWxkTG9nKQogICAgICAg
ICAgICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VD
aGlsZCAtICd0eXBlJyBpcyAnJXMnIC0ga2V5IHN5c3RlbSBpcyAnJXMnIiwgdHlwZS51dGY4KCku
ZGF0YSgpLCBzeXN0ZW0udXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKLSAgICAgICAgICAgIGlmICgh
TWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250ZW50VHlwZSh0eXBlKSwgc3lzdGVtLCB0aGlz
KSkKKyAgICAgICAgICAgIGlmICghTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250ZW50VHlw
ZSh0eXBlKSwgc3lzdGVtLCBtZWRpYVVSTCwgdGhpcykpCiAgICAgICAgICAgICAgICAgZ290byBj
aGVja19hZ2FpbjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCmluZGV4IDE2NzNlMTUzNTI0OTE4ZDUyOTU3MWU4Yjk1ZWQyZWE1NGRmOTM1ODAuLjQwMTVh
MmY4NmYwNTk1NmU2ZTYzNmQxYTg2NjlhMmI4Yjg4MTgyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMjgsNyArMTI4LDcgQEAgcHVibGljOgogCiAgICAgUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgIHZvaWQgbG9hZChFeGNl
cHRpb25Db2RlJik7Ci0gICAgU3RyaW5nIGNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtID0gU3RyaW5nKCkpIGNvbnN0OworICAgIFN0cmlu
ZyBjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSA9IFN0cmluZygpLCBjb25zdCBLVVJMJiA9IEtVUkwoKSkgY29uc3Q7CiAKIC8vIHJlYWR5
IHN0YXRlCiAgICAgUmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggN2Q4NDVhY2Nj
OGNiM2RkMDYxZmM3ZTU2MWQ3MTUwODg2MmU3MTExNC4uNzNhYWNkNDk2MWI4ZWU4ODQ3M2ZmZTkx
YzlmZjI5MTZjN2FjYzgxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTc2LDE1ICsxNzYsMTQgQEAgc3RydWN0IE1lZGlhUGxh
eWVyRmFjdG9yeSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFQbGF5ZXJGYWN0b3J5
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTWVkaWFQbGF5ZXJGYWN0
b3J5KENyZWF0ZU1lZGlhRW5naW5lUGxheWVyIGNvbnN0cnVjdG9yLCBNZWRpYUVuZ2luZVN1cHBv
cnRlZFR5cGVzIGdldFN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSBzdXBw
b3J0c1R5cGVBbmRDb2RlY3MsCi0gICAgICAgIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2Fj
aGUgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlIGNsZWFy
TWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlIGNsZWFyTWVkaWFD
YWNoZUZvclNpdGUpIAorICAgICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdl
dFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlh
Q2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBjbGVhck1lZGlhQ2FjaGVG
b3JTaXRlKQogICAgICAgICA6IGNvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKQogICAgICAgICAsIGdl
dFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzKQogICAgICAgICAsIHN1cHBvcnRzVHlw
ZUFuZENvZGVjcyhzdXBwb3J0c1R5cGVBbmRDb2RlY3MpCiAgICAgICAgICwgZ2V0U2l0ZXNJbk1l
ZGlhQ2FjaGUoZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUpCiAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hl
KGNsZWFyTWVkaWFDYWNoZSkKICAgICAgICAgLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKGNsZWFy
TWVkaWFDYWNoZUZvclNpdGUpCi0KLSAgICB7IAorICAgIHsKICAgICB9CiAKICAgICBDcmVhdGVN
ZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvcjsKQEAgLTE5Niw3ICsxOTUsOCBAQCBwdWJsaWM6
CiB9OwogCiBzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRpYUVuZ2luZVBsYXll
ciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUsIE1l
ZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hl
LCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUpOwotc3RhdGljIE1lZGlhUGxheWVy
RmFjdG9yeSogYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgTWVkaWFQ
bGF5ZXJGYWN0b3J5KiBjdXJyZW50ID0gMCk7CisKK3N0YXRpYyBNZWRpYVBsYXllckZhY3Rvcnkq
IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IEtVUkwmLCBN
ZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQgPSAwKTsKIHN0YXRpYyBNZWRpYVBsYXllckZhY3Rv
cnkqIG5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpOwogCiBzdGF0
aWMgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9yeSo+JiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKSAK
QEAgLTI1Myw3ICsyNTMsNyBAQCBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb2RlY3MoKQog
ICAgIHJldHVybiBjb2RlY3M7CiB9CiAKLXN0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIGJlc3RN
ZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIE1lZGlhUGxheWVyRmFjdG9yeSog
Y3VycmVudCkKK3N0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIGJlc3RNZWRpYUVuZ2luZUZvclR5
cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IEtVUkwmIHVybCwgTWVkaWFQbGF5ZXJGYWN0b3J5
KiBjdXJyZW50KQogewogICAgIGlmICh0eXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7
CkBAIC0yODAsMTEgKzI4MCwxMSBAQCBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0TWVk
aWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgYwogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAg
ICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIGVuZ2luZVN1cHBvcnQgPSBlbmdpbmVzW25k
eF0tPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCBjb2RlY3MsIGtleVN5c3RlbSk7CisgICAg
ICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgZW5naW5lU3VwcG9ydCA9IGVuZ2luZXNbbmR4
XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIGNvZGVjcywga2V5U3lzdGVtLCB1cmwpOwog
I2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKGtleVN5c3RlbSk7CiAgICAgICAgIEFTU0VSVChr
ZXlTeXN0ZW0uaXNFbXB0eSgpKTsKLSAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBl
bmdpbmVTdXBwb3J0ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwg
Y29kZWNzKTsKKyAgICAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBlbmdpbmVTdXBwb3J0
ID0gZW5naW5lc1tuZHhdLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgY29kZWNzLCB1cmwp
OwogI2VuZGlmCiAgICAgICAgIGlmIChlbmdpbmVTdXBwb3J0ID4gc3VwcG9ydGVkKSB7CiAgICAg
ICAgICAgICBzdXBwb3J0ZWQgPSBlbmdpbmVTdXBwb3J0OwpAQCAtMzUyLDE0ICszNTIsMTQgQEAg
Ym9vbCBNZWRpYVBsYXllcjo6bG9hZChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IENvbnRlbnRUeXBl
JiBjb250ZW50VHlwZSwgY29uc3QgU3QKIHsKICAgICBtX2NvbnRlbnRNSU1FVHlwZSA9IGNvbnRl
bnRUeXBlLnR5cGUoKS5sb3dlcigpOwogICAgIG1fY29udGVudFR5cGVDb2RlY3MgPSBjb250ZW50
VHlwZS5wYXJhbWV0ZXIoY29kZWNzKCkpOwotICAgIG1fdXJsID0gdXJsLnN0cmluZygpOworICAg
IG1fdXJsID0gdXJsOwogICAgIG1fa2V5U3lzdGVtID0ga2V5U3lzdGVtLmxvd2VyKCk7CiAgICAg
bV9jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24gPSBmYWxzZTsKIAogICAg
IC8vIElmIHRoZSBNSU1FIHR5cGUgaXMgbWlzc2luZyBvciBpcyBub3QgbWVhbmluZ2Z1bCwgdHJ5
IHRvIGZpZ3VyZSBpdCBvdXQgZnJvbSB0aGUgVVJMLgogICAgIGlmIChtX2NvbnRlbnRNSU1FVHlw
ZS5pc0VtcHR5KCkgfHwgbV9jb250ZW50TUlNRVR5cGUgPT0gYXBwbGljYXRpb25PY3RldFN0cmVh
bSgpIHx8IG1fY29udGVudE1JTUVUeXBlID09IHRleHRQbGFpbigpKSB7Ci0gICAgICAgIGlmIChw
cm90b2NvbElzKG1fdXJsLCAiZGF0YSIpKQotICAgICAgICAgICAgbV9jb250ZW50TUlNRVR5cGUg
PSBtaW1lVHlwZUZyb21EYXRhVVJMKG1fdXJsKTsKKyAgICAgICAgaWYgKHByb3RvY29sSXMobV91
cmwuc3RyaW5nKCksICJkYXRhIikpCisgICAgICAgICAgICBtX2NvbnRlbnRNSU1FVHlwZSA9IG1p
bWVUeXBlRnJvbURhdGFVUkwobV91cmwuc3RyaW5nKCkpOwogICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgIFN0cmluZyBsYXN0UGF0aENvbXBvbmVudCA9IHVybC5sYXN0UGF0aENvbXBvbmVudCgp
OwogICAgICAgICAgICAgc2l6ZV90IHBvcyA9IGxhc3RQYXRoQ29tcG9uZW50LnJldmVyc2VGaW5k
KCcuJyk7CkBAIC0zODMsNyArMzgzLDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0
TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogICAgIE1lZGlhUGxheWVy
RmFjdG9yeSogZW5naW5lID0gMDsKIAogICAgIGlmICghbV9jb250ZW50TUlNRVR5cGUuaXNFbXB0
eSgpKQotICAgICAgICBlbmdpbmUgPSBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1f
Y29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBlQ29kZWNzLCBtX2tleVN5c3RlbSwgY3VycmVu
dCk7CisgICAgICAgIGVuZ2luZSA9IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MobV9j
b250ZW50TUlNRVR5cGUsIG1fY29udGVudFR5cGVDb2RlY3MsIG1fa2V5U3lzdGVtLCBtX3VybCwg
Y3VycmVudCk7CiAKICAgICAvLyBJZiBubyBNSU1FIHR5cGUgaXMgc3BlY2lmaWVkIG9yIHRoZSB0
eXBlIHdhcyBpbmZlcnJlZCBmcm9tIHRoZSBmaWxlIGV4dGVuc2lvbiwganVzdCB1c2UgdGhlIG5l
eHQgZW5naW5lLgogICAgIGlmICghZW5naW5lICYmIChtX2NvbnRlbnRNSU1FVHlwZS5pc0VtcHR5
KCkgfHwgbV9jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24pKQpAQCAtNDEw
LDcgKzQxMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKE1l
ZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCkKICAgICB9CiAKICAgICBpZiAobV9wcml2YXRlKQot
ICAgICAgICBtX3ByaXZhdGUtPmxvYWQobV91cmwpOworICAgICAgICBtX3ByaXZhdGUtPmxvYWQo
bV91cmwuc3RyaW5nKCkpOwogICAgIGVsc2UgewogICAgICAgICBtX3ByaXZhdGUgPSBjcmVhdGVO
dWxsTWVkaWFQbGF5ZXIodGhpcyk7CiAgICAgICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KSB7
CkBAIC00MTgsNyArNDE4LDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFF
bmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogICAgICAgICAgICAgbV9tZWRpYVBs
YXllckNsaWVudC0+bWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBvcnRlZCh0aGlzKTsKICAgICAg
ICAgfQogICAgIH0KLX0gICAgCit9CiAKIGJvb2wgTWVkaWFQbGF5ZXI6Omhhc0F2YWlsYWJsZVZp
ZGVvRnJhbWUoKSBjb25zdAogewpAQCAtNzI0LDcgKzcyNCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6
OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCogcCwgY29uc3QgSW50
UmVjdCYKICAgICBtX3ByaXZhdGUtPnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KHAsIHIpOwog
fQogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUo
Y29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwg
Y29uc3QgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVDbGllbnQqIGNsaWVudCkKK01lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlw
ZSYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBLVVJMJiB1cmws
IGNvbnN0IE1lZGlhUGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgU3Ry
aW5nIHR5cGUgPSBjb250ZW50VHlwZS50eXBlKCkubG93ZXIoKTsKICAgICAvLyBUaGUgY29kZWNz
IHN0cmluZyBpcyBub3QgbG93ZXItY2FzZWQgYmVjYXVzZSBNUDQgdmFsdWVzIGFyZSBjYXNlIHNl
bnNpdGl2ZQpAQCAtNzM3LDcgKzczNyw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVk
aWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5CiAgICAg
aWYgKHR5cGUgPT0gYXBwbGljYXRpb25PY3RldFN0cmVhbSgpKQogICAgICAgICByZXR1cm4gSXNO
b3RTdXBwb3J0ZWQ7CiAKLSAgICBNZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IGJlc3RNZWRp
YUVuZ2luZUZvclR5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtKTsKKyAgICBN
ZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2Rl
Y3ModHlwZSwgdHlwZUNvZGVjcywgc3lzdGVtLCB1cmwpOwogICAgIGlmICghZW5naW5lKQogICAg
ICAgICByZXR1cm4gSXNOb3RTdXBwb3J0ZWQ7CiAKQEAgLTc1NywxMCArNzU3LDEwIEBAIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250
ZW50VHlwZSYgY29udGVudFR5CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
Ci0gICAgcmV0dXJuIGVuZ2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2Rl
Y3MsIHN5c3RlbSk7CisgICAgcmV0dXJuIGVuZ2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5
cGUsIHR5cGVDb2RlY3MsIHN5c3RlbSwgdXJsKTsKICNlbHNlCiAgICAgQVNTRVJUKHN5c3RlbS5p
c0VtcHR5KCkpOwotICAgIHJldHVybiBlbmdpbmUtPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBl
LCB0eXBlQ29kZWNzKTsKKyAgICByZXR1cm4gZW5naW5lLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3Mo
dHlwZSwgdHlwZUNvZGVjcywgdXJsKTsKICNlbmRpZgogfQogCkBAIC05NDIsNyArOTQyLDcgQEAg
dm9pZCBNZWRpYVBsYXllcjo6bmV0d29ya1N0YXRlQ2hhbmdlZCgpCiAgICAgaWYgKG1fcHJpdmF0
ZS0+bmV0d29ya1N0YXRlKCkgPj0gRm9ybWF0RXJyb3IKICAgICAgICAgJiYgbV9wcml2YXRlLT5y
ZWFkeVN0YXRlKCkgPCBIYXZlTWV0YWRhdGEKICAgICAgICAgJiYgaW5zdGFsbGVkTWVkaWFFbmdp
bmVzKCkuc2l6ZSgpID4gMSkgewotICAgICAgICBpZiAobV9jb250ZW50TUlNRVR5cGUuaXNFbXB0
eSgpIHx8IGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MobV9jb250ZW50TUlNRVR5cGUs
IG1fY29udGVudFR5cGVDb2RlY3MsIG1fa2V5U3lzdGVtLCBtX2N1cnJlbnRNZWRpYUVuZ2luZSkp
IHsKKyAgICAgICAgaWYgKG1fY29udGVudE1JTUVUeXBlLmlzRW1wdHkoKSB8fCBiZXN0TWVkaWFF
bmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBlQ29k
ZWNzLCBtX2tleVN5c3RlbSwgbV91cmwsIG1fY3VycmVudE1lZGlhRW5naW5lKSkgewogICAgICAg
ICAgICAgbV9yZWxvYWRUaW1lci5zdGFydE9uZVNob3QoMCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCmluZGV4IDZjNzIyYTA4MDdhNDVmMDNjNTkzOTY1MTJmMmQ5OGIyNTFlMDUzM2IuLmMz
ZDQ1M2Y2NzZmOWZiMDQzZTg4YjhiODU2NTJhMmY4NjYxODZlMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjAzLDcgKzIwMyw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgogICAgIGVudW0gU3VwcG9y
dHNUeXBlIHsgSXNOb3RTdXBwb3J0ZWQsIElzU3VwcG9ydGVkLCBNYXlCZVN1cHBvcnRlZCB9Owot
ICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBD
b250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBNZWRpYVBsYXllclN1
cHBvcnRzVHlwZUNsaWVudCopOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IHN1cHBvcnRzVHlwZShjb25zdCBDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
LCBjb25zdCBLVVJMJiwgY29uc3QgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVDbGllbnQqKTsKICAg
ICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKICAgICBz
dGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogICAgIHN0YXRpYyB2b2lkIGdldFNpdGVzSW5NZWRp
YUNhY2hlKFZlY3RvcjxTdHJpbmc+Jik7CkBAIC00MDAsNyArNDAwLDcgQEAgcHJpdmF0ZToKICAg
ICBUaW1lcjxNZWRpYVBsYXllcj4gbV9yZWxvYWRUaW1lcjsKICAgICBPd25QdHI8TWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlPiBtX3ByaXZhdGU7CiAgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBt
X2N1cnJlbnRNZWRpYUVuZ2luZTsKLSAgICBTdHJpbmcgbV91cmw7CisgICAgS1VSTCBtX3VybDsK
ICAgICBTdHJpbmcgbV9jb250ZW50TUlNRVR5cGU7CiAgICAgU3RyaW5nIG1fY29udGVudFR5cGVD
b2RlY3M7CiAgICAgU3RyaW5nIG1fa2V5U3lzdGVtOwpAQCAtNDIzLDE3ICs0MjMsMTYgQEAgcHJp
dmF0ZToKIHR5cGVkZWYgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+ICgq
Q3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIpKE1lZGlhUGxheWVyKik7CiB0eXBlZGVmIHZvaWQgKCpN
ZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzKShIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQotdHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
ICgqTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKK3R5cGVkZWYgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSAoKk1lZGlhRW5naW5lU3VwcG9ydHNUeXBlKShjb25zdCBTdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29u
c3QgS1VSTCYgdXJsKTsKICNlbHNlCi10eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
KCpNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIGNvZGVjcyk7Cit0eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVu
Z2luZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVj
cywgY29uc3QgS1VSTCYgdXJsKTsKICNlbmRpZgogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVH
ZXRTaXRlc0luTWVkaWFDYWNoZSkoVmVjdG9yPFN0cmluZz4mKTsKIHR5cGVkZWYgdm9pZCAoKk1l
ZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlKSgpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVD
bGVhck1lZGlhQ2FjaGVGb3JTaXRlKShjb25zdCBTdHJpbmcmKTsKIAotdHlwZWRlZiB2b2lkICgq
TWVkaWFFbmdpbmVSZWdpc3RyYXIpKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2lu
ZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgCi0gICAgTWVkaWFFbmdp
bmVHZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUsIE1lZGlh
RW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSk7IAotCit0eXBlZGVmIHZvaWQgKCpNZWRpYUVu
Z2luZVJlZ2lzdHJhcikoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIsIE1lZGlhRW5naW5lU3VwcG9y
dGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLAorICAgIE1lZGlhRW5naW5lR2V0U2l0
ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNs
ZWFyTWVkaWFDYWNoZUZvclNpdGUpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCmluZGV4IDg3NWQx
MmRmYmU3YmI0MjIxYmU3NTUyNGY4MWFjZDIwN2NhM2E3ODAuLjExODBhNDdkNTUzNjk2ZDNkNGVk
OTU3YTQ3ZTJiYThiNmFhMDJkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApAQCAtNzI1LDggKzcyNSwx
MCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4mIHN1cHBvcgogICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZVR5
cGVDYWNoZSgpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiB1cmwpCiB7CisgICAgVU5VU0VEX1BB
UkFNKHVybCk7CisKICAgICAvLyBPbmx5IHJldHVybiAiSXNTdXBwb3J0ZWQiIGlmIHRoZXJlIGlz
IG5vIGNvZGVjcyBwYXJhbWV0ZXIgZm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3YXkgdG8gYXNrIGlm
IGl0IHN1cHBvcnRzIGFuCiAgICAgLy8gZXh0ZW5kZWQgTUlNRSB0eXBlIHVudGlsIHJkYXI6Ly84
NzIxNzE1IGlzIGZpeGVkLgogICAgIGlmIChtaW1lVHlwZUNhY2hlKCkuY29udGFpbnModHlwZSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5oCmluZGV4IGY1ZGQwMDE1MGQ0NDA1MTcwY2FmYzhhMjQ3ZGRkOGE0OTI3Mzhh
NzYuLjgxYTliYzZlNGZmMTI1NDk1M2ViZDNhYzJjMWIyYzNlYmQ5MjFmZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gRW5naW5lIHN1cHBvcnQKICAg
ICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShN
ZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8
U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKTsKKyAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpOwogICAgIHN0YXRp
YyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGRjYzA0NmQwNzdiNWZmNzNmY2ViZTdhMzVjN2UzNWU1
YjMwMTk1NjEuLmU1Y2ZjYjQ0NWZmYTRhOTE0Yzg4MmRmZjI3YjU0ZjRlNmU0NzU3OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICAvLyBlbmdp
bmUgc3VwcG9ydAogICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVk
VHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBjb2RlY3MpOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRz
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJM
Jik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxMb2FkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA5ZTg2NTM0OTdlZjVhZWVj
ZmEwZjdkMDk4ZmMwZDNiZTY0ZTZkNTRiLi5lZTQ2NzZlZmNiZTU5NTQ4MjlhMDA1YTNiZWM5ZDkw
YjNiMTY1YmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTY3Miw3ICs2NzIsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN1cHBvcnRlZFR5cGVz
KEhhc2hTZXQ8U3RyaW5nPiYgc3VwcAogICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZVR5cGVDYWNo
ZSgpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKQogewogICAgIGlmICghbWltZVR5cGVDYWNo
ZSgpLmNvbnRhaW5zKHR5cGUpKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3Vw
cG9ydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJy
eS5jcHAKaW5kZXggM2FjOTNlOGI0YzY3ZWQyZjE0ZmUzNjZhZjY1MTI2Mjg0MGExMTA5Ny4uNGVk
ZmNlYmM0ODk1OTgxOWQ2ODEwMjdjYTgzMWNkNDZmNzU3Yzc5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVC
bGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFj
a2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mIHR5cGVzKQogICAgICAgICB0eXBlcy5hZGQoaS0+Y19zdHIoKSk7CiB9CiAKLU1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c1R5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpCiB7CiAgICAgaWYgKHR5cGUuaXNO
dWxsKCkgfHwgdHlwZS5pc0VtcHR5KCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5
ZXIgZG9lcyBub3Qgc3VwcG9ydCB0eXBlOyB0eXBlIGlzIG51bGwgb3IgZW1wdHkuIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlh
UGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCmluZGV4IDBhYzQ2
NmJlYzhlZTg4ODExYTFiMTY0MGI3MzUyYTkwOWM4NTM2NWUuLjVmODc4NGU2YjNlZTZlMTRiMTAy
ZWUxZDNlNmIzYjA5OGU1Y2MxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQ
cml2YXRlQmxhY2tCZXJyeS5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXll
ciopOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdp
c3RyYXIpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5n
PiYpOwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29u
c3QgS1VSTCYpOwogICAgIHN0YXRpYyB2b2lkIG5vdGlmeUFwcEFjdGl2YXRlZEV2ZW50KGJvb2wp
OwogICAgIHN0YXRpYyB2b2lkIHNldENlcnRpZmljYXRlUGF0aChjb25zdCBTdHJpbmcmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA4
Mzk3MDhlZTk3NzYwMTQ4MGMyOGQzMDY5OTY4MTFiOGNhMzkxNjBjLi42YmMxMTJmODVlMDlhMmNh
MTc4ZWFkMWY2OWM4NzA3MmMyNTFjZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTU5Niw3ICsxNTk2LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYg
dHlwZXMpCiAgICAgdHlwZXMgPSBtaW1lVHlwZUNhY2hlKCk7CiB9CiAKLU1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUoY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpCiB7CiAgICAg
aWYgKHR5cGUuaXNOdWxsKCkgfHwgdHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBNZWRp
YVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKaW5kZXggMzllZTljZTRiZmJjYjgxMjNhMDIzYzQxNTcyYzMwYTYzZWMx
ZDMwZC4uM2NkNGE4N2ExNzYyNDg3YjdlMDc3YWU5OWE2MDBjZjMwNmU2ZDI0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTMwLDcgKzEzMCw4
IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UgewogICAgICAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAogICAgICAgICAg
ICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7Ci0gICAg
ICAgICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgICAgICAgICBzdGF0
aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0
eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpOworCiAgICAgICAgICAgICBz
dGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgICAgICAgICB2b2lkIHVwZGF0ZUF1ZGlv
U2luaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCAwMTFlYzM2YTI1ZDE5ZGU2
MTExZWQ1ODNjZDJiNmExNDRlMWM0MGE0Li4zZTg5YmM3ZDM0ZGJkZWYxNTkwMWVjMDY3Yjg0ZjFj
YThkNWI4YTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtNzQsNyArNzQsNyBA
QCBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBzdXBwb3J0CiAgICAgc3RhdGljIFBhc3NPd25QdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBz
dGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKLSAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgc3RhdGljIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTaXRlc0luTWVk
aWFDYWNoZShWZWN0b3I8U3RyaW5nPiYpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyTWVkaWFDYWNo
ZSgpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUoY29uc3QgU3RyaW5n
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggMjkyNDlhYTc4ODdiOGYyM2Qz
YThkNTgxZWM1N2M4NzY5MWY3ODMwZi4uMDIzNTY3YTRmMTMxNThlMTAxYTRkY2NlMmY5NDZhYTIx
YTc3N2FkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMTQ2MCw3ICsxNDYw
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFz
aFNldDxTdHJpbmc+JiBzdXBwb3J0ZWRUeXBlcykKICAgICAgICAgc3VwcG9ydGVkVHlwZXMuYWRk
KCppdCk7CiB9IAogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNv
ZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBj
b25zdCBLVVJMJikKIHsKICAgICAvLyBPbmx5IHJldHVybiAiSXNTdXBwb3J0ZWQiIGlmIHRoZXJl
IGlzIG5vIGNvZGVjcyBwYXJhbWV0ZXIgZm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3YXkgdG8gYXNr
IFFUIGlmIGl0IHN1cHBvcnRzIGFuCiAgICAgLy8gZXh0ZW5kZWQgTUlNRSB0eXBlIHlldC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlh
UGxheWVyUHJpdmF0ZVF0LmNwcAppbmRleCAzYTMwN2NiMjc0OWNlNDMzMGU5OGNlNWUxMzUzZTU4
NDE0OWI4ODViLi43OTRiYzEwMzYzYzk3YTMzMzkyZDdiZTVhYzc3ZTY4M2RkODBlN2E3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclBy
aXZhdGVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVk
aWFQbGF5ZXJQcml2YXRlUXQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUXQ6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiAmc3VwcG9ydGVkKQog
ICAgIH0KIH0KIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVR
dDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgbWltZSwgY29uc3QgU3RyaW5nJiBjb2RlYykK
K01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUXQ6OnN1cHBvcnRz
VHlwZShjb25zdCBTdHJpbmcmIG1pbWUsIGNvbnN0IFN0cmluZyYgY29kZWMsIGNvbnN0IEtVUkwm
KQogewogICAgIGlmICghbWltZS5zdGFydHNXaXRoKCJhdWRpby8iKSAmJiAhbWltZS5zdGFydHNX
aXRoKCJ2aWRlby8iKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRl
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlh
UGxheWVyUHJpdmF0ZVF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9N
ZWRpYVBsYXllclByaXZhdGVRdC5oCmluZGV4IGM2ZmNiZDgzOGQxMWQ4M2U0NzU3NTA5ZjdhMjE2
OTdmMzM0N2RhMGUuLmExMjllNWRlNTE5NjYzYjA1ZWI0ZWFjZWMyMGZlNzJkMTYyOGM2ZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVk
aWFQbGF5ZXJQcml2YXRlUXQuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBz
dGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKLSAgICBzdGF0
aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3Vw
cG9ydHNUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEtVUkwmKTsKICAg
ICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wg
aGFzVmlkZW8oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAppbmRleCA3ZDlkY2FmZTY2N2Y1NzMzNzRjYmVhYTVh
NjNlY2Q3ZGIwMjI4MzIyLi5mZDc5N2VjYWM4NmQxMjAxNjJlYmE2NTkwNDJhNjQzZDMzNjNlNmYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3Vh
bENvbnRleHQuY3BwCkBAIC0xMDExLDcgKzEwMTEsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OmlzQXZhaWxhYmxlKCkKICAgICByZXR1cm4gUVRNb3Zp
ZTo6aW5pdGlhbGl6ZVF1aWNrVGltZSgpOwogfQogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnN1cHBvcnRzVHlwZShj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpzdXBw
b3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3Qg
S1VSTCYpCiB7CiAgICAgLy8gb25seSByZXR1cm4gIklzU3VwcG9ydGVkIiBpZiB0aGVyZSBpcyBu
byBjb2RlY3MgcGFyYW1ldGVyIGZvciBub3cgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIGFzayBRVCBp
ZiBpdCBzdXBwb3J0cyBhbgogICAgIC8vICBleHRlbmRlZCBNSU1FIHR5cGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oCmluZGV4IDRj
NDRhZjQwMWViYjAzZmRiMmYzZmYxNDI0Mjg1Nzk1MWY5MTExMzUuLmViNTJlZjY0ZDkxODFhNjkx
Mjg0YmY0ZjRlZGNlMzgwMjIzNzI4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZh
dGU6CiAgICAgLy8gZW5naW5lIHN1cHBvcnQKICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2
b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRp
YyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNv
ZGVjcywgY29uc3QgS1VSTCYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2lu
Q0UuaAppbmRleCAwZmFhMDQ1Nzg0ZDcxYmZhODcwNjhkZWZkYjA2MDY2NzRjOWViNzJjLi5hYjRl
YzRkMDUwZmRkNzJiNDdkOWIwYjJmOThlYTFmNjNlZWUwOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVy
UHJpdmF0ZVdpbkNFLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIC8vIGVuZ2luZSBzdXBwb3J0CiAgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgICAgIHN0
YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAg
ICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgICAgIHN0YXRpYyBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJMJik7CiAgICAgICAgIHN0YXRpYyBib29sIGlz
QXZhaWxhYmxlKCk7CiAKICAgICAgICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5j
cHAKaW5kZXggYTI5YTRjNzkyOGI2NDRmZDZkYzU4ZWY0OWZhMWQ1NDEwOTE5M2EzYy4uYzgyNmQ5
NDhmNzBjYmU5YzAwZmYxMzg5ZGNjNjVjOTVkYWJlMGYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCkBAIC03
OTIsMTEgKzc5MiwxMyBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Z2V0U3VwcG9y
dGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiBzdXBwb3J0ZWRUeXBlcwogI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
U3RyaW5nJiBjb2RlY3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS1VSTCYpCiB7CiAjZWxz
ZQogTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1
cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgY29k
ZWNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGNvZGVjcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS1VSTCYp
CiB7CiAgICAgU3RyaW5nIGtleVN5c3RlbTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAppbmRleCA2ZjE1MGRk
YTcyZmJkZjQ5YzU3MWQxNGNiODk4NWVlMGMxNDE4ZGJjLi5jNTU3YjBiZTA3YTY2MzJiOTc0ZGRh
YjMwZmE2YWI1Y2M2MTVlZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtMTg2LDEwICsxODYsMTAgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhXVEY6Okhhc2hTZXQ8V1RG
OjpTdHJpbmc+Jik7CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGF0aWMgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoCi0gICAgICAgIGNv
bnN0IFdURjo6U3RyaW5nJiB0eXBlLCBjb25zdCBXVEY6OlN0cmluZyYgY29kZWNzLCBjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSk7CisgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiB0eXBlLCBjb25z
dCBXVEY6OlN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgV2Vi
Q29yZTo6S1VSTCYpOwogI2Vsc2UKICAgICBzdGF0aWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoCi0gICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiB0eXBl
LCBjb25zdCBXVEY6OlN0cmluZyYgY29kZWNzKTsKKyAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcm
IHR5cGUsIGNvbnN0IFdURjo6U3RyaW5nJiBjb2RlY3MsIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsK
ICNlbmRpZgogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIGFjY2Vs
ZXJhdGVkUmVuZGVyaW5nSW5Vc2UoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149051</attachid>
            <date>2012-06-22 10:24:04 -0700</date>
            <delta_ts>2012-06-22 10:42:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89514-20120622142402.patch</filename>
            <type>text/plain</type>
            <size>32727</size>
            <attacher name="Danilo de Paula">danilo.eu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlNWZkZWE5MDA4Mzkx
YWFjYzBhOTViOTY1OGQwZGIyMzk2OWI1NC4uN2EzZjI5ZTRiZTJkMmJlZWYxNzZlYjBkZjFkMTg0
NTM4ZmQ3NzU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTA2LTE5ICBEYW5p
bG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgIDxkYW5pbG8uY2VzYXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIEFkZCB1cmwgdG8gc3VwcG9ydHNUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTUxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGVyZSdzIG5vIGNo
YW5nZSBvbiBjb2RlIGJlaGF2aW9yLgorCisgICAgICAgIFdoZW4gYSBibG9iIGlzIGNyZWF0ZWQg
YXMgdGhlIGFkZHJlc3MgZm9yIGEgTWVkaWEgU3RyZWFtLCB0aGUgTWVkaWFFbmdpbmUKKyAgICAg
ICAgd2lsbCBhc2sgaXQncyBwbGF5ZXJzIGlmIHRoZXkgc3VwcG9ydCB0aGF0IG1lZGlhLiBIb3dl
dmVyLCBhIHBsYXllciBidWlsdAorICAgICAgICBmb3IgTWVkaWFTdHJlYW0gbmVlZHMgdG8ga25v
dyB0byBVUkwgdG8gZGVjaWRlIGlmIGl0J3Mgc3VwcG9ydGVkIG9yIG5vdC4KKworICAgICAgICAq
IGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1l
bnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hp
bGQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKE1lZGlhUGxheWVyRmFjdG9y
eSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckZhY3Rvcnk6Ok1lZGlhUGxheWVyRmFj
dG9yeSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRQbGFpbik6
CisgICAgICAgIChXZWJDb3JlOjpiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnN1cHBv
cnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uQ0YuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgIChNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3Vw
cG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlh
UGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlOjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Js
YWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oOgorICAgICAgICAoTWVkaWFQ
bGF5ZXJQcml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZh
dGVRVEtpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojpz
dXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF0Ojpz
dXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVF0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVRdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dDo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oOgorICAgICAg
ICAoTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaDoKKyAgICAg
ICAgKE1lZGlhUGxheWVyUHJpdmF0ZSk6CisKIDIwMTItMDYtMDggIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IHNldmVy
YWwgY29tcGlsZXIgd2FybmluZ3MgYW5kIGVycm9ycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1w
bGVtZW50YXRpb24uY3BwCmluZGV4IDRkM2Q4NTMzYWQwYTJkM2Q5NzRjZWM2OTY0ZjIyNzI4OGI2
ZTYxYzcuLjBjN2EwYmJhYmM4MTBjODAwNTU2M2QwODc5Njk3ZmE3ZTI1ZmEwYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtNDA3LDcgKzQwNyw3IEBAIFBh
c3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25z
dCBTdHJpbmcmIHR5cGUsIEZyYW1lCiAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgdHlwZSBj
YW4gYmUgcGxheWVkIGJ5IG91ciBNZWRpYVBsYXllciwgaWYgc28gY3JlYXRlIGEgTWVkaWFEb2N1
bWVudAogICAgIC8vIEtleSBzeXN0ZW0gaXMgbm90IGFwcGxpY2FibGUgaGVyZS4KICAgICBET01J
bXBsZW1lbnRhdGlvblN1cHBvcnRzVHlwZUNsaWVudCBjbGllbnQoZnJhbWUgJiYgZnJhbWUtPnNl
dHRpbmdzKCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCks
IHVybC5ob3N0KCkpOwotICAgIGlmIChNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKENvbnRlbnRU
eXBlKHR5cGUpLCBTdHJpbmcoKSwgJmNsaWVudCkpCisgICAgaWYgKE1lZGlhUGxheWVyOjpzdXBw
b3J0c1R5cGUoQ29udGVudFR5cGUodHlwZSksIFN0cmluZygpLCB1cmwsICZjbGllbnQpKQogICAg
ICAgICAgcmV0dXJuIE1lZGlhRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgdXJsKTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA0ODljNTEyMmQ0
NGU0OGVmZGQ0YmQyMDkzZjE3M2JmZjA3YjliOWQ2Li42MWUwNmVmNjhhOGQwYTQ2ZjUzOTdhYjc5
NzFlNjg1YWU3MmJlMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKQEAgLTYxOCw5ICs2MTgsOSBAQCBIVE1MTWVkaWFFbGVtZW50OjpOZXR3b3JrU3RhdGUgSFRN
TE1lZGlhRWxlbWVudDo6bmV0d29ya1N0YXRlKCkgY29uc3QKICAgICByZXR1cm4gbV9uZXR3b3Jr
U3RhdGU7CiB9CiAKLVN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkgY29uc3QKK1N0cmluZyBI
VE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewotICAgIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUo
Q29udGVudFR5cGUobWltZVR5cGUpLCBrZXlTeXN0ZW0sIHRoaXMpOworICAgIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVu
dFR5cGUobWltZVR5cGUpLCBrZXlTeXN0ZW0sIHVybCwgdGhpcyk7CiAgICAgU3RyaW5nIGNhblBs
YXk7CiAKICAgICAvLyA0LjguMTAuMwpAQCAtNjM3LDcgKzYzNyw3IEBAIFN0cmluZyBIVE1MTWVk
aWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJp
bmcmIGtleVN5CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgCi0gICAgTE9HKE1lZGlh
LCAiSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoJXMsICVzKSAtPiAlcyIsIG1pbWVUeXBl
LnV0ZjgoKS5kYXRhKCksIGtleVN5c3RlbS51dGY4KCkuZGF0YSgpLCBjYW5QbGF5LnV0ZjgoKS5k
YXRhKCkpOworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCVz
LCAlcywgJXMpIC0+ICVzIiwgbWltZVR5cGUudXRmOCgpLmRhdGEoKSwga2V5U3lzdGVtLnV0Zjgo
KS5kYXRhKCksIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBjYW5QbGF5LnV0ZjgoKS5kYXRh
KCkpOwogCiAgICAgcmV0dXJuIGNhblBsYXk7CiB9CkBAIC0zMTc1LDcgKzMxNzUsNyBAQCBLVVJM
IEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZChDb250ZW50VHlwZSogY29u
dGVudFR5cGUsIFN0cmluZyogawogICAgICAgICAgICAgaWYgKHNob3VsZExvZykKICAgICAgICAg
ICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hp
bGQgLSAndHlwZScgaXMgJyVzJyAtIGtleSBzeXN0ZW0gaXMgJyVzJyIsIHR5cGUudXRmOCgpLmRh
dGEoKSwgc3lzdGVtLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCi0gICAgICAgICAgICBpZiAoIU1l
ZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5cGUodHlwZSksIHN5c3RlbSwgdGhpcykp
CisgICAgICAgICAgICBpZiAoIU1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5cGUo
dHlwZSksIHN5c3RlbSwgbWVkaWFVUkwsIHRoaXMpKQogICAgICAgICAgICAgICAgIGdvdG8gY2hl
Y2tfYWdhaW47CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCAxNjczZTE1MzUyNDkxOGQ1Mjk1NzFlOGI5NWVkMmVhNTRkZjkzNTgwLi40MDE1YTJm
ODZmMDU5NTZlNmU2MzZkMWE4NjY5YTJiOGI4ODE4MjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NS
ZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICB2b2lkIGxvYWQoRXhjZXB0
aW9uQ29kZSYpOwotICAgIFN0cmluZyBjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSA9IFN0cmluZygpKSBjb25zdDsKKyAgICBTdHJpbmcg
Y2FuUGxheVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0
ZW0gPSBTdHJpbmcoKSwgY29uc3QgS1VSTCYgPSBLVVJMKCkpIGNvbnN0OwogCiAvLyByZWFkeSBz
dGF0ZQogICAgIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDdkODQ1YWNjYzhj
YjNkZDA2MWZjN2U1NjFkNzE1MDg4NjJlNzExMTQuLjczYWFjZDQ5NjFiOGVlODg0NzNmZmU5MWM5
ZmYyOTE2YzdhY2M4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKQEAgLTE3NiwxNSArMTc2LDE0IEBAIHN0cnVjdCBNZWRpYVBsYXll
ckZhY3RvcnkgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUGxheWVyRmFjdG9yeSk7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE1lZGlhUGxheWVyRmFjdG9y
eShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvciwgTWVkaWFFbmdpbmVTdXBwb3J0
ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlQW5kQ29kZWNzLAotICAgICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hl
IGdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1l
ZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBjbGVhck1lZGlhQ2Fj
aGVGb3JTaXRlKSAKKyAgICAgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSBnZXRT
aXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUgY2xlYXJNZWRpYUNh
Y2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUgY2xlYXJNZWRpYUNhY2hlRm9y
U2l0ZSkKICAgICAgICAgOiBjb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcikKICAgICAgICAgLCBnZXRT
dXBwb3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBlcykKICAgICAgICAgLCBzdXBwb3J0c1R5cGVB
bmRDb2RlY3Moc3VwcG9ydHNUeXBlQW5kQ29kZWNzKQogICAgICAgICAsIGdldFNpdGVzSW5NZWRp
YUNhY2hlKGdldFNpdGVzSW5NZWRpYUNhY2hlKQogICAgICAgICAsIGNsZWFyTWVkaWFDYWNoZShj
bGVhck1lZGlhQ2FjaGUpCiAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjbGVhck1l
ZGlhQ2FjaGVGb3JTaXRlKQotCi0gICAgeyAKKyAgICB7CiAgICAgfQogCiAgICAgQ3JlYXRlTWVk
aWFFbmdpbmVQbGF5ZXIgY29uc3RydWN0b3I7CkBAIC0xOTYsNyArMTk1LDggQEAgcHVibGljOgog
fTsKIAogc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIs
IE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLCBNZWRp
YUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwg
TWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlKTsKLXN0YXRpYyBNZWRpYVBsYXllckZh
Y3RvcnkqIGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIE1lZGlhUGxh
eWVyRmFjdG9yeSogY3VycmVudCA9IDApOworCitzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBi
ZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBLVVJMJiwgTWVk
aWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50ID0gMCk7CiBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5
KiBuZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KTsKIAogc3RhdGlj
IFZlY3RvcjxNZWRpYVBsYXllckZhY3RvcnkqPiYgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCkgCkBA
IC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29kZWNzKCkKICAg
ICByZXR1cm4gY29kZWNzOwogfQogCi1zdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0TWVk
aWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBNZWRpYVBsYXllckZhY3RvcnkqIGN1
cnJlbnQpCitzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0TWVkaWFFbmdpbmVGb3JUeXBl
QW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBLVVJMJiB1cmwsIE1lZGlhUGxheWVyRmFjdG9yeSog
Y3VycmVudCkKIHsKICAgICBpZiAodHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAwOwpA
QCAtMjgwLDExICsyODAsMTEgQEAgc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogYmVzdE1lZGlh
RW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUsIGMKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICAg
ICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBlbmdpbmVTdXBwb3J0ID0gZW5naW5lc1tuZHhd
LT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgY29kZWNzLCBrZXlTeXN0ZW0pOworICAgICAg
ICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIGVuZ2luZVN1cHBvcnQgPSBlbmdpbmVzW25keF0t
PnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCBjb2RlY3MsIGtleVN5c3RlbSwgdXJsKTsKICNl
bHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOwogICAgICAgICBBU1NFUlQoa2V5
U3lzdGVtLmlzRW1wdHkoKSk7Ci0gICAgICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgZW5n
aW5lU3VwcG9ydCA9IGVuZ2luZXNbbmR4XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIGNv
ZGVjcyk7CisgICAgICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgZW5naW5lU3VwcG9ydCA9
IGVuZ2luZXNbbmR4XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIGNvZGVjcywgdXJsKTsK
ICNlbmRpZgogICAgICAgICBpZiAoZW5naW5lU3VwcG9ydCA+IHN1cHBvcnRlZCkgewogICAgICAg
ICAgICAgc3VwcG9ydGVkID0gZW5naW5lU3VwcG9ydDsKQEAgLTM1MiwxNCArMzUyLDE0IEBAIGJv
b2wgTWVkaWFQbGF5ZXI6OmxvYWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYg
Y29udGVudFR5cGUsIGNvbnN0IFN0CiB7CiAgICAgbV9jb250ZW50TUlNRVR5cGUgPSBjb250ZW50
VHlwZS50eXBlKCkubG93ZXIoKTsKICAgICBtX2NvbnRlbnRUeXBlQ29kZWNzID0gY29udGVudFR5
cGUucGFyYW1ldGVyKGNvZGVjcygpKTsKLSAgICBtX3VybCA9IHVybC5zdHJpbmcoKTsKKyAgICBt
X3VybCA9IHVybDsKICAgICBtX2tleVN5c3RlbSA9IGtleVN5c3RlbS5sb3dlcigpOwogICAgIG1f
Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uID0gZmFsc2U7CiAKICAgICAv
LyBJZiB0aGUgTUlNRSB0eXBlIGlzIG1pc3Npbmcgb3IgaXMgbm90IG1lYW5pbmdmdWwsIHRyeSB0
byBmaWd1cmUgaXQgb3V0IGZyb20gdGhlIFVSTC4KICAgICBpZiAobV9jb250ZW50TUlNRVR5cGUu
aXNFbXB0eSgpIHx8IG1fY29udGVudE1JTUVUeXBlID09IGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0o
KSB8fCBtX2NvbnRlbnRNSU1FVHlwZSA9PSB0ZXh0UGxhaW4oKSkgewotICAgICAgICBpZiAocHJv
dG9jb2xJcyhtX3VybCwgImRhdGEiKSkKLSAgICAgICAgICAgIG1fY29udGVudE1JTUVUeXBlID0g
bWltZVR5cGVGcm9tRGF0YVVSTChtX3VybCk7CisgICAgICAgIGlmIChwcm90b2NvbElzKG1fdXJs
LnN0cmluZygpLCAiZGF0YSIpKQorICAgICAgICAgICAgbV9jb250ZW50TUlNRVR5cGUgPSBtaW1l
VHlwZUZyb21EYXRhVVJMKG1fdXJsLnN0cmluZygpKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICBTdHJpbmcgbGFzdFBhdGhDb21wb25lbnQgPSB1cmwubGFzdFBhdGhDb21wb25lbnQoKTsK
ICAgICAgICAgICAgIHNpemVfdCBwb3MgPSBsYXN0UGF0aENvbXBvbmVudC5yZXZlcnNlRmluZCgn
LicpOwpAQCAtMzgzLDcgKzM4Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1l
ZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCkKICAgICBNZWRpYVBsYXllckZh
Y3RvcnkqIGVuZ2luZSA9IDA7CiAKICAgICBpZiAoIW1fY29udGVudE1JTUVUeXBlLmlzRW1wdHko
KSkKLSAgICAgICAgZW5naW5lID0gYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhtX2Nv
bnRlbnRNSU1FVHlwZSwgbV9jb250ZW50VHlwZUNvZGVjcywgbV9rZXlTeXN0ZW0sIGN1cnJlbnQp
OworICAgICAgICBlbmdpbmUgPSBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29u
dGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBlQ29kZWNzLCBtX2tleVN5c3RlbSwgbV91cmwsIGN1
cnJlbnQpOwogCiAgICAgLy8gSWYgbm8gTUlNRSB0eXBlIGlzIHNwZWNpZmllZCBvciB0aGUgdHlw
ZSB3YXMgaW5mZXJyZWQgZnJvbSB0aGUgZmlsZSBleHRlbnNpb24sIGp1c3QgdXNlIHRoZSBuZXh0
IGVuZ2luZS4KICAgICBpZiAoIWVuZ2luZSAmJiAobV9jb250ZW50TUlNRVR5cGUuaXNFbXB0eSgp
IHx8IG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uKSkKQEAgLTQxMCw3
ICs0MTAsNyBAQCB2b2lkIE1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRp
YVBsYXllckZhY3RvcnkqIGN1cnJlbnQpCiAgICAgfQogCiAgICAgaWYgKG1fcHJpdmF0ZSkKLSAg
ICAgICAgbV9wcml2YXRlLT5sb2FkKG1fdXJsKTsKKyAgICAgICAgbV9wcml2YXRlLT5sb2FkKG1f
dXJsLnN0cmluZygpKTsKICAgICBlbHNlIHsKICAgICAgICAgbV9wcml2YXRlID0gY3JlYXRlTnVs
bE1lZGlhUGxheWVyKHRoaXMpOwogICAgICAgICBpZiAobV9tZWRpYVBsYXllckNsaWVudCkgewpA
QCAtNDE4LDcgKzQxOCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5n
aW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCkKICAgICAgICAgICAgIG1fbWVkaWFQbGF5
ZXJDbGllbnQtPm1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQodGhpcyk7CiAgICAgICAg
IH0KICAgICB9Ci19ICAgIAorfQogCiBib29sIE1lZGlhUGxheWVyOjpoYXNBdmFpbGFibGVWaWRl
b0ZyYW1lKCkgY29uc3QKIHsKQEAgLTcyNCw3ICs3MjQsNyBAQCB2b2lkIE1lZGlhUGxheWVyOjpw
YWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQqIHAsIGNvbnN0IEludFJl
Y3QmCiAgICAgbV9wcml2YXRlLT5wYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChwLCByKTsKIH0K
IAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKGNv
bnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNv
bnN0IE1lZGlhUGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50KiBjbGllbnQpCitNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgQ29udGVudFR5cGUm
IGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgS1VSTCYgdXJsLCBj
b25zdCBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNsaWVudCogY2xpZW50KQogewogICAgIFN0cmlu
ZyB0eXBlID0gY29udGVudFR5cGUudHlwZSgpLmxvd2VyKCk7CiAgICAgLy8gVGhlIGNvZGVjcyBz
dHJpbmcgaXMgbm90IGxvd2VyLWNhc2VkIGJlY2F1c2UgTVA0IHZhbHVlcyBhcmUgY2FzZSBzZW5z
aXRpdmUKQEAgLTczNyw3ICs3MzcsNyBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlh
UGxheWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeQogICAgIGlm
ICh0eXBlID09IGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oKSkKICAgICAgICAgcmV0dXJuIElzTm90
U3VwcG9ydGVkOwogCi0gICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBlbmdpbmUgPSBiZXN0TWVkaWFF
bmdpbmVGb3JUeXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2RlY3MsIHN5c3RlbSk7CisgICAgTWVk
aWFQbGF5ZXJGYWN0b3J5KiBlbmdpbmUgPSBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNz
KHR5cGUsIHR5cGVDb2RlY3MsIHN5c3RlbSwgdXJsKTsKICAgICBpZiAoIWVuZ2luZSkKICAgICAg
ICAgcmV0dXJuIElzTm90U3VwcG9ydGVkOwogCkBAIC03NTcsMTAgKzc1NywxMCBAQCBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgQ29udGVu
dFR5cGUmIGNvbnRlbnRUeQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQot
ICAgIHJldHVybiBlbmdpbmUtPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBlQ29kZWNz
LCBzeXN0ZW0pOworICAgIHJldHVybiBlbmdpbmUtPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBl
LCB0eXBlQ29kZWNzLCBzeXN0ZW0sIHVybCk7CiAjZWxzZQogICAgIEFTU0VSVChzeXN0ZW0uaXNF
bXB0eSgpKTsKLSAgICByZXR1cm4gZW5naW5lLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwg
dHlwZUNvZGVjcyk7CisgICAgcmV0dXJuIGVuZ2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5
cGUsIHR5cGVDb2RlY3MsIHVybCk7CiAjZW5kaWYKIH0KIApAQCAtOTQyLDcgKzk0Miw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXI6Om5ldHdvcmtTdGF0ZUNoYW5nZWQoKQogICAgIGlmIChtX3ByaXZhdGUt
Pm5ldHdvcmtTdGF0ZSgpID49IEZvcm1hdEVycm9yCiAgICAgICAgICYmIG1fcHJpdmF0ZS0+cmVh
ZHlTdGF0ZSgpIDwgSGF2ZU1ldGFkYXRhCiAgICAgICAgICYmIGluc3RhbGxlZE1lZGlhRW5naW5l
cygpLnNpemUoKSA+IDEpIHsKLSAgICAgICAgaWYgKG1fY29udGVudE1JTUVUeXBlLmlzRW1wdHko
KSB8fCBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVUeXBlLCBt
X2NvbnRlbnRUeXBlQ29kZWNzLCBtX2tleVN5c3RlbSwgbV9jdXJyZW50TWVkaWFFbmdpbmUpKSB7
CisgICAgICAgIGlmIChtX2NvbnRlbnRNSU1FVHlwZS5pc0VtcHR5KCkgfHwgYmVzdE1lZGlhRW5n
aW5lRm9yVHlwZUFuZENvZGVjcyhtX2NvbnRlbnRNSU1FVHlwZSwgbV9jb250ZW50VHlwZUNvZGVj
cywgbV9rZXlTeXN0ZW0sIG1fdXJsLCBtX2N1cnJlbnRNZWRpYUVuZ2luZSkpIHsKICAgICAgICAg
ICAgIG1fcmVsb2FkVGltZXIuc3RhcnRPbmVTaG90KDApOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaAppbmRleCA2YzcyMmEwODA3YTQ1ZjAzYzU5Mzk2NTEyZjJkOThiMjUxZTA1MzNiLi5jM2Q0
NTNmNjc2ZjlmYjA0M2U4OGI4Yjg1NjUyYTJmODY2MTg2ZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTIwMyw3ICsyMDMsNyBAQCBw
dWJsaWM6CiAKICAgICAvLyBNZWRpYSBlbmdpbmUgc3VwcG9ydC4KICAgICBlbnVtIFN1cHBvcnRz
VHlwZSB7IElzTm90U3VwcG9ydGVkLCBJc1N1cHBvcnRlZCwgTWF5QmVTdXBwb3J0ZWQgfTsKLSAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgQ29u
dGVudFR5cGUmLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgTWVkaWFQbGF5ZXJTdXBw
b3J0c1R5cGVDbGllbnQqKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBz
dXBwb3J0c1R5cGUoY29uc3QgQ29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwg
Y29uc3QgS1VSTCYsIGNvbnN0IE1lZGlhUGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50Kik7CiAgICAg
c3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7CiAgICAgc3Rh
dGljIGJvb2wgaXNBdmFpbGFibGUoKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTaXRlc0luTWVkaWFD
YWNoZShWZWN0b3I8U3RyaW5nPiYpOwpAQCAtNDAwLDcgKzQwMCw3IEBAIHByaXZhdGU6CiAgICAg
VGltZXI8TWVkaWFQbGF5ZXI+IG1fcmVsb2FkVGltZXI7CiAgICAgT3duUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOwogICAgIE1lZGlhUGxheWVyRmFjdG9yeSogbV9j
dXJyZW50TWVkaWFFbmdpbmU7Ci0gICAgU3RyaW5nIG1fdXJsOworICAgIEtVUkwgbV91cmw7CiAg
ICAgU3RyaW5nIG1fY29udGVudE1JTUVUeXBlOwogICAgIFN0cmluZyBtX2NvbnRlbnRUeXBlQ29k
ZWNzOwogICAgIFN0cmluZyBtX2tleVN5c3RlbTsKQEAgLTQyMywxNyArNDIzLDE2IEBAIHByaXZh
dGU6CiB0eXBlZGVmIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiAoKkNy
ZWF0ZU1lZGlhRW5naW5lUGxheWVyKShNZWRpYVBsYXllciopOwogdHlwZWRlZiB2b2lkICgqTWVk
aWFFbmdpbmVTdXBwb3J0ZWRUeXBlcykoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKLXR5cGVkZWYgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSAo
Kk1lZGlhRW5naW5lU3VwcG9ydHNUeXBlKShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSk7Cit0eXBlZGVmIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0
eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0
IEtVUkwmIHVybCk7CiAjZWxzZQotdHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlICgq
TWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBjb2RlY3MpOwordHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdp
bmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3Ms
IGNvbnN0IEtVUkwmIHVybCk7CiAjZW5kaWYKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lR2V0
U2l0ZXNJbk1lZGlhQ2FjaGUpKFZlY3RvcjxTdHJpbmc+Jik7CiB0eXBlZGVmIHZvaWQgKCpNZWRp
YUVuZ2luZUNsZWFyTWVkaWFDYWNoZSkoKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lQ2xl
YXJNZWRpYUNhY2hlRm9yU2l0ZSkoY29uc3QgU3RyaW5nJik7CiAKLXR5cGVkZWYgdm9pZCAoKk1l
ZGlhRW5naW5lUmVnaXN0cmFyKShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciwgTWVkaWFFbmdpbmVT
dXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUsIAotICAgIE1lZGlhRW5naW5l
R2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVu
Z2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUpOyAKLQordHlwZWRlZiB2b2lkICgqTWVkaWFFbmdp
bmVSZWdpc3RyYXIpKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2luZVN1cHBvcnRl
ZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwKKyAgICBNZWRpYUVuZ2luZUdldFNpdGVz
SW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVh
ck1lZGlhQ2FjaGVGb3JTaXRlKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCA4NzVkMTJk
ZmJlN2JiNDIyMWJlNzU1MjRmODFhY2QyMDdjYTNhNzgwLi41Yjk2NTAwODVjNmI3ZWNkZWFlZjE2
NzNjMzYxYjM0N2M3M2RmZjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTcyNSw3ICs3MjUsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpnZXRTdXBwb3J0ZWRUeXBl
cyhIYXNoU2V0PFN0cmluZz4mIHN1cHBvcgogICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZVR5cGVD
YWNoZSgpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYgdXJsKQogewogICAgIC8vIE9ubHkgcmV0dXJu
ICJJc1N1cHBvcnRlZCIgaWYgdGhlcmUgaXMgbm8gY29kZWNzIHBhcmFtZXRlciBmb3Igbm93IGFz
IHRoZXJlIGlzIG5vIHdheSB0byBhc2sgaWYgaXQgc3VwcG9ydHMgYW4KICAgICAvLyBleHRlbmRl
ZCBNSU1FIHR5cGUgdW50aWwgcmRhcjovLzg3MjE3MTUgaXMgZml4ZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oCmlu
ZGV4IGY1ZGQwMDE1MGQ0NDA1MTcwY2FmYzhhMjQ3ZGRkOGE0OTI3MzhhNzYuLjgxYTliYzZlNGZm
MTI1NDk1M2ViZDNhYzJjMWIyYzNlYmQ5MjFmZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oCkBAIC00Niw3ICs0
Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gRW5naW5lIHN1cHBvcnQKICAgICBzdGF0aWMgUGFzc093
blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwog
ICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMp
OwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKTsKKyAgICBzdGF0aWMgTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxh
YmxlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCmluZGV4IGRjYzA0NmQwNzdiNWZmNzNmY2ViZTdhMzVjN2UzNWU1YjMwMTk1NjEuLmU1Y2Zj
YjQ0NWZmYTRhOTE0Yzg4MmRmZjI3YjU0ZjRlNmU0NzU3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICAvLyBlbmdpbmUgc3VwcG9ydAogICAg
IHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1l
ZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxT
dHJpbmc+JiB0eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3Vw
cG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpOworICAg
IHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJMJik7CiAgICAgc3RhdGlj
IGJvb2wgaXNBdmFpbGFibGUoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxMb2FkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA5ZTg2NTM0OTdlZjVhZWVjZmEwZjdkMDk4ZmMwZDNi
ZTY0ZTZkNTRiLi5lZTQ2NzZlZmNiZTU5NTQ4MjlhMDA1YTNiZWM5ZDkwYjNiMTY1YmEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTY3Miw3ICs2NzIsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5n
PiYgc3VwcAogICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZVR5cGVDYWNoZSgpOwogfSAKIAotTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcykK
K01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2Rl
Y3MsIGNvbnN0IEtVUkwmKQogewogICAgIGlmICghbWltZVR5cGVDYWNoZSgpLmNvbnRhaW5zKHR5
cGUpKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBs
YXllclByaXZhdGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKaW5kZXggM2Fj
OTNlOGI0YzY3ZWQyZjE0ZmUzNjZhZjY1MTI2Mjg0MGExMTA5Ny4uNGVkZmNlYmM0ODk1OTgxOWQ2
ODEwMjdjYTgzMWNkNDZmNzU3Yzc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxh
eWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKQogICAg
ICAgICB0eXBlcy5hZGQoaS0+Y19zdHIoKSk7CiB9CiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5
cGUgTWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5
ZXJQcml2YXRlOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IGNvZGVjcywgY29uc3QgS1VSTCYpCiB7CiAgICAgaWYgKHR5cGUuaXNOdWxsKCkgfHwgdHlwZS5p
c0VtcHR5KCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXIgZG9lcyBub3Qgc3Vw
cG9ydCB0eXBlOyB0eXBlIGlzIG51bGwgb3IgZW1wdHkuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJs
YWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkv
TWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCmluZGV4IDBhYzQ2NmJlYzhlZTg4ODExYTFi
MTY0MGI3MzUyYTkwOWM4NTM2NWUuLjVmODc4NGU2YjNlZTZlMTRiMTAyZWUxZDNlNmIzYjA5OGU1
Y2MxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJy
eS5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRp
YyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogICAgIHN0
YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwotICAgIHN0YXRp
YyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBw
b3J0c1R5cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgS1VSTCYpOwogICAg
IHN0YXRpYyB2b2lkIG5vdGlmeUFwcEFjdGl2YXRlZEV2ZW50KGJvb2wpOwogICAgIHN0YXRpYyB2
b2lkIHNldENlcnRpZmljYXRlUGF0aChjb25zdCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA4Mzk3MDhlZTk3NzYwMTQ4
MGMyOGQzMDY5OTY4MTFiOGNhMzkxNjBjLi42YmMxMTJmODVlMDlhMmNhMTc4ZWFkMWY2OWM4NzA3
MmMyNTFjZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtMTU5Niw3ICsxNTk2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpCiAgICAgdHlw
ZXMgPSBtaW1lVHlwZUNhY2hlKCk7CiB9CiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBTdHJpbmcmIGNvZGVjcykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpCiB7CiAgICAgaWYgKHR5cGUuaXNOdWxs
KCkgfHwgdHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RT
dXBwb3J0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgK
aW5kZXggMzllZTljZTRiZmJjYjgxMjNhMDIzYzQxNTcyYzMwYTYzZWMxZDMwZC4uM2NkNGE4N2Ex
NzYyNDg3YjdlMDc3YWU5OWE2MDBjZjMwNmU2ZDI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTMwLDcgKzEzMCw4IEBAIGNsYXNzIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2UgewogICAgICAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAogICAgICAgICAgICAgc3RhdGljIHZvaWQg
Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7Ci0gICAgICAgICAgICBzdGF0aWMg
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgICAgICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIGNvZGVjcywgY29uc3QgS1VSTCYpOworCiAgICAgICAgICAgICBzdGF0aWMgYm9vbCBpc0F2
YWlsYWJsZSgpOwogCiAgICAgICAgICAgICB2b2lkIHVwZGF0ZUF1ZGlvU2luaygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCAwMTFlYzM2YTI1ZDE5ZGU2MTExZWQ1ODNjZDJiNmEx
NDRlMWM0MGE0Li4zZTg5YmM3ZDM0ZGJkZWYxNTkwMWVjMDY3Yjg0ZjFjYThkNWI4YTQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtNzQsNyArNzQsNyBAQCBwcml2YXRlOgogICAg
IC8vIGVuZ2luZSBzdXBwb3J0CiAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRT
dXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKLSAgICBzdGF0aWMgTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGNvZGVjcyk7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNv
bnN0IEtVUkwmKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTaXRlc0luTWVkaWFDYWNoZShWZWN0b3I8
U3RyaW5nPiYpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyTWVkaWFDYWNoZSgpOwogICAgIHN0YXRp
YyB2b2lkIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggMjkyNDlhYTc4ODdiOGYyM2QzYThkNTgxZWM1N2M4NzY5
MWY3ODMwZi4uMDIzNTY3YTRmMTMxNThlMTAxYTRkY2NlMmY5NDZhYTIxYTc3N2FkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMTQ2MCw3ICsxNDYwLDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiBz
dXBwb3J0ZWRUeXBlcykKICAgICAgICAgc3VwcG9ydGVkVHlwZXMuYWRkKCppdCk7CiB9IAogCi1N
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzdXBwb3J0
c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcykKK01lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnN1cHBvcnRzVHlwZShj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJMJikKIHsK
ICAgICAvLyBPbmx5IHJldHVybiAiSXNTdXBwb3J0ZWQiIGlmIHRoZXJlIGlzIG5vIGNvZGVjcyBw
YXJhbWV0ZXIgZm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3YXkgdG8gYXNrIFFUIGlmIGl0IHN1cHBv
cnRzIGFuCiAgICAgLy8gZXh0ZW5kZWQgTUlNRSB0eXBlIHlldC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0
LmNwcAppbmRleCAzYTMwN2NiMjc0OWNlNDMzMGU5OGNlNWUxMzUzZTU4NDE0OWI4ODViLi43OTRi
YzEwMzYzYzk3YTMzMzkyZDdiZTVhYzc3ZTY4M2RkODBlN2E3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRl
UXQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXQ6OmdldFN1
cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiAmc3VwcG9ydGVkKQogICAgIH0KIH0KIAotTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRdDo6c3VwcG9ydHNUeXBl
KGNvbnN0IFN0cmluZyYgbWltZSwgY29uc3QgU3RyaW5nJiBjb2RlYykKK01lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUXQ6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJp
bmcmIG1pbWUsIGNvbnN0IFN0cmluZyYgY29kZWMsIGNvbnN0IEtVUkwmKQogewogICAgIGlmICgh
bWltZS5zdGFydHNXaXRoKCJhdWRpby8iKSAmJiAhbWltZS5zdGFydHNXaXRoKCJ2aWRlby8iKSkK
ICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRlZDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZh
dGVRdC5oCmluZGV4IGM2ZmNiZDgzOGQxMWQ4M2U0NzU3NTA5ZjdhMjE2OTdmMzM0N2RhMGUuLmEx
MjllNWRlNTE5NjYzYjA1ZWI0ZWFjZWMyMGZlNzJkMTYyOGM2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRl
UXQuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBzdGF0aWMgdm9pZCBnZXRT
dXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7
CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgYm9vbCBp
c0F2YWlsYWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wgaGFzVmlkZW8oKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRp
YVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxD
b250ZXh0LmNwcAppbmRleCA3ZDlkY2FmZTY2N2Y1NzMzNzRjYmVhYTVhNjNlY2Q3ZGIwMjI4MzIy
Li5mZDc5N2VjYWM4NmQxMjAxNjJlYmE2NTkwNDJhNjQzZDMzNjNlNmYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwCkBA
IC0xMDExLDcgKzEwMTEsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3Vh
bENvbnRleHQ6OmlzQXZhaWxhYmxlKCkKICAgICByZXR1cm4gUVRNb3ZpZTo6aW5pdGlhbGl6ZVF1
aWNrVGltZSgpOwogfQogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJp
dmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRp
YVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpzdXBwb3J0c1R5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpCiB7CiAgICAg
Ly8gb25seSByZXR1cm4gIklzU3VwcG9ydGVkIiBpZiB0aGVyZSBpcyBubyBjb2RlY3MgcGFyYW1l
dGVyIGZvciBub3cgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIGFzayBRVCBpZiBpdCBzdXBwb3J0cyBh
bgogICAgIC8vICBleHRlbmRlZCBNSU1FIHR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxD
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oCmluZGV4IDRjNDRhZjQwMWViYjAzZmRi
MmYzZmYxNDI0Mjg1Nzk1MWY5MTExMzUuLmViNTJlZjY0ZDkxODFhNjkxMjg0YmY0ZjRlZGNlMzgw
MjIzNzI4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGlt
ZVZpc3VhbENvbnRleHQuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgLy8gZW5n
aW5lIHN1cHBvcnQKICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRl
cmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRl
ZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgY29kZWNzKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0
c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VS
TCYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaAppbmRleCAwZmFh
MDQ1Nzg0ZDcxYmZhODcwNjhkZWZkYjA2MDY2NzRjOWViNzJjLi5hYjRlYzRkMDUwZmRkNzJiNDdk
OWIwYjJmOThlYTFmNjNlZWUwOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbkNFLmgK
QEAgLTEwMCw3ICsxMDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIGVuZ2lu
ZSBzdXBwb3J0CiAgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgICAgIHN0YXRpYyB2b2lkIGdldFN1
cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAgICAgICBzdGF0aWMgTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9y
dHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29k
ZWNzLCBjb25zdCBLVVJMJik7CiAgICAgICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAK
ICAgICAgICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKaW5kZXggYTI5YTRj
NzkyOGI2NDRmZDZkYzU4ZWY0OWZhMWQ1NDEwOTE5M2EzYy4uYzgyNmQ5NDhmNzBjYmU5YzAwZmYx
Mzg5ZGNjNjVjOTVkYWJlMGYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCkBAIC03OTIsMTEgKzc5MiwxMyBA
QCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNl
dDxTdHJpbmc+JiBzdXBwb3J0ZWRUeXBlcwogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9y
dHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBjb2RlY3Ms
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcm
IGtleVN5c3RlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgS1VSTCYpCiB7CiAjZWxzZQogTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1cHBvcnRzVHlwZShjb25z
dCBTdHJpbmcmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgY29kZWNzKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBTdHJpbmcmIGNvZGVjcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS1VSTCYpCiB7CiAgICAgU3RyaW5n
IGtleVN5c3RlbTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAppbmRleCA2ZjE1MGRkYTcyZmJkZjQ5YzU3MWQx
NGNiODk4NWVlMGMxNDE4ZGJjLi5jNTU3YjBiZTA3YTY2MzJiOTc0ZGRhYjMwZmE2YWI1Y2M2MTVl
ZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXll
ckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBs
YXllckNsaWVudEltcGwuaApAQCAtMTg2LDEwICsxODYsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhXVEY6Okhhc2hTZXQ8V1RGOjpTdHJpbmc+Jik7CiAj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGF0aWMgV2ViQ29yZTo6TWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoCi0gICAgICAgIGNvbnN0IFdURjo6U3RyaW5n
JiB0eXBlLCBjb25zdCBXVEY6OlN0cmluZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3Rl
bSk7CisgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiB0eXBlLCBjb25zdCBXVEY6OlN0cmluZyYg
Y29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwog
I2Vsc2UKICAgICBzdGF0aWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBw
b3J0c1R5cGUoCi0gICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiB0eXBlLCBjb25zdCBXVEY6OlN0
cmluZyYgY29kZWNzKTsKKyAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHR5cGUsIGNvbnN0IFdU
Rjo6U3RyaW5nJiBjb2RlY3MsIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKICNlbmRpZgogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIGFjY2VsZXJhdGVkUmVuZGVyaW5n
SW5Vc2UoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149056</attachid>
            <date>2012-06-22 10:43:17 -0700</date>
            <delta_ts>2012-06-22 13:28:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89514-20120622144315.patch</filename>
            <type>text/plain</type>
            <size>32723</size>
            <attacher name="Danilo de Paula">danilo.eu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlNWZkZWE5MDA4Mzkx
YWFjYzBhOTViOTY1OGQwZGIyMzk2OWI1NC4uN2EzZjI5ZTRiZTJkMmJlZWYxNzZlYjBkZjFkMTg0
NTM4ZmQ3NzU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTA2LTE5ICBEYW5p
bG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgIDxkYW5pbG8uY2VzYXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIEFkZCB1cmwgdG8gc3VwcG9ydHNUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTUxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGVyZSdzIG5vIGNo
YW5nZSBvbiBjb2RlIGJlaGF2aW9yLgorCisgICAgICAgIFdoZW4gYSBibG9iIGlzIGNyZWF0ZWQg
YXMgdGhlIGFkZHJlc3MgZm9yIGEgTWVkaWEgU3RyZWFtLCB0aGUgTWVkaWFFbmdpbmUKKyAgICAg
ICAgd2lsbCBhc2sgaXQncyBwbGF5ZXJzIGlmIHRoZXkgc3VwcG9ydCB0aGF0IG1lZGlhLiBIb3dl
dmVyLCBhIHBsYXllciBidWlsdAorICAgICAgICBmb3IgTWVkaWFTdHJlYW0gbmVlZHMgdG8ga25v
dyB0byBVUkwgdG8gZGVjaWRlIGlmIGl0J3Mgc3VwcG9ydGVkIG9yIG5vdC4KKworICAgICAgICAq
IGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1l
bnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hp
bGQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKE1lZGlhUGxheWVyRmFjdG9y
eSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckZhY3Rvcnk6Ok1lZGlhUGxheWVyRmFj
dG9yeSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRQbGFpbik6
CisgICAgICAgIChXZWJDb3JlOjpiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnN1cHBv
cnRzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uQ0YuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgIChNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3Vw
cG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlh
UGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlOjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Js
YWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oOgorICAgICAgICAoTWVkaWFQ
bGF5ZXJQcml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZh
dGVRVEtpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojpz
dXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF0Ojpz
dXBwb3J0c1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVF0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVRdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dDo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oOgorICAgICAg
ICAoTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaDoKKyAgICAg
ICAgKE1lZGlhUGxheWVyUHJpdmF0ZSk6CisKIDIwMTItMDYtMDggIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IHNldmVy
YWwgY29tcGlsZXIgd2FybmluZ3MgYW5kIGVycm9ycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1w
bGVtZW50YXRpb24uY3BwCmluZGV4IDRkM2Q4NTMzYWQwYTJkM2Q5NzRjZWM2OTY0ZjIyNzI4OGI2
ZTYxYzcuLjBjN2EwYmJhYmM4MTBjODAwNTU2M2QwODc5Njk3ZmE3ZTI1ZmEwYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtNDA3LDcgKzQwNyw3IEBAIFBh
c3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25z
dCBTdHJpbmcmIHR5cGUsIEZyYW1lCiAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgdHlwZSBj
YW4gYmUgcGxheWVkIGJ5IG91ciBNZWRpYVBsYXllciwgaWYgc28gY3JlYXRlIGEgTWVkaWFEb2N1
bWVudAogICAgIC8vIEtleSBzeXN0ZW0gaXMgbm90IGFwcGxpY2FibGUgaGVyZS4KICAgICBET01J
bXBsZW1lbnRhdGlvblN1cHBvcnRzVHlwZUNsaWVudCBjbGllbnQoZnJhbWUgJiYgZnJhbWUtPnNl
dHRpbmdzKCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCks
IHVybC5ob3N0KCkpOwotICAgIGlmIChNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKENvbnRlbnRU
eXBlKHR5cGUpLCBTdHJpbmcoKSwgJmNsaWVudCkpCisgICAgaWYgKE1lZGlhUGxheWVyOjpzdXBw
b3J0c1R5cGUoQ29udGVudFR5cGUodHlwZSksIFN0cmluZygpLCB1cmwsICZjbGllbnQpKQogICAg
ICAgICAgcmV0dXJuIE1lZGlhRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgdXJsKTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA0ODljNTEyMmQ0
NGU0OGVmZGQ0YmQyMDkzZjE3M2JmZjA3YjliOWQ2Li42MWUwNmVmNjhhOGQwYTQ2ZjUzOTdhYjc5
NzFlNjg1YWU3MmJlMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKQEAgLTYxOCw5ICs2MTgsOSBAQCBIVE1MTWVkaWFFbGVtZW50OjpOZXR3b3JrU3RhdGUgSFRN
TE1lZGlhRWxlbWVudDo6bmV0d29ya1N0YXRlKCkgY29uc3QKICAgICByZXR1cm4gbV9uZXR3b3Jr
U3RhdGU7CiB9CiAKLVN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkgY29uc3QKK1N0cmluZyBI
VE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewotICAgIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUo
Q29udGVudFR5cGUobWltZVR5cGUpLCBrZXlTeXN0ZW0sIHRoaXMpOworICAgIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVu
dFR5cGUobWltZVR5cGUpLCBrZXlTeXN0ZW0sIHVybCwgdGhpcyk7CiAgICAgU3RyaW5nIGNhblBs
YXk7CiAKICAgICAvLyA0LjguMTAuMwpAQCAtNjM3LDcgKzYzNyw3IEBAIFN0cmluZyBIVE1MTWVk
aWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJp
bmcmIGtleVN5CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgCi0gICAgTE9HKE1lZGlh
LCAiSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoJXMsICVzKSAtPiAlcyIsIG1pbWVUeXBl
LnV0ZjgoKS5kYXRhKCksIGtleVN5c3RlbS51dGY4KCkuZGF0YSgpLCBjYW5QbGF5LnV0ZjgoKS5k
YXRhKCkpOworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCVz
LCAlcywgJXMpIC0+ICVzIiwgbWltZVR5cGUudXRmOCgpLmRhdGEoKSwga2V5U3lzdGVtLnV0Zjgo
KS5kYXRhKCksIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBjYW5QbGF5LnV0ZjgoKS5kYXRh
KCkpOwogCiAgICAgcmV0dXJuIGNhblBsYXk7CiB9CkBAIC0zMTc1LDcgKzMxNzUsNyBAQCBLVVJM
IEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZChDb250ZW50VHlwZSogY29u
dGVudFR5cGUsIFN0cmluZyogawogICAgICAgICAgICAgaWYgKHNob3VsZExvZykKICAgICAgICAg
ICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hp
bGQgLSAndHlwZScgaXMgJyVzJyAtIGtleSBzeXN0ZW0gaXMgJyVzJyIsIHR5cGUudXRmOCgpLmRh
dGEoKSwgc3lzdGVtLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCi0gICAgICAgICAgICBpZiAoIU1l
ZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5cGUodHlwZSksIHN5c3RlbSwgdGhpcykp
CisgICAgICAgICAgICBpZiAoIU1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVudFR5cGUo
dHlwZSksIHN5c3RlbSwgbWVkaWFVUkwsIHRoaXMpKQogICAgICAgICAgICAgICAgIGdvdG8gY2hl
Y2tfYWdhaW47CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCAxNjczZTE1MzUyNDkxOGQ1Mjk1NzFlOGI5NWVkMmVhNTRkZjkzNTgwLi40MDE1YTJm
ODZmMDU5NTZlNmU2MzZkMWE4NjY5YTJiOGI4ODE4MjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NS
ZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICB2b2lkIGxvYWQoRXhjZXB0
aW9uQ29kZSYpOwotICAgIFN0cmluZyBjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSA9IFN0cmluZygpKSBjb25zdDsKKyAgICBTdHJpbmcg
Y2FuUGxheVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0
ZW0gPSBTdHJpbmcoKSwgY29uc3QgS1VSTCYgPSBLVVJMKCkpIGNvbnN0OwogCiAvLyByZWFkeSBz
dGF0ZQogICAgIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDdkODQ1YWNjYzhj
YjNkZDA2MWZjN2U1NjFkNzE1MDg4NjJlNzExMTQuLjczYWFjZDQ5NjFiOGVlODg0NzNmZmU5MWM5
ZmYyOTE2YzdhY2M4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKQEAgLTE3NiwxNSArMTc2LDE0IEBAIHN0cnVjdCBNZWRpYVBsYXll
ckZhY3RvcnkgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUGxheWVyRmFjdG9yeSk7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE1lZGlhUGxheWVyRmFjdG9y
eShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvciwgTWVkaWFFbmdpbmVTdXBwb3J0
ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlQW5kQ29kZWNzLAotICAgICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hl
IGdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1l
ZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBjbGVhck1lZGlhQ2Fj
aGVGb3JTaXRlKSAKKyAgICAgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSBnZXRT
aXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUgY2xlYXJNZWRpYUNh
Y2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUgY2xlYXJNZWRpYUNhY2hlRm9y
U2l0ZSkKICAgICAgICAgOiBjb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcikKICAgICAgICAgLCBnZXRT
dXBwb3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBlcykKICAgICAgICAgLCBzdXBwb3J0c1R5cGVB
bmRDb2RlY3Moc3VwcG9ydHNUeXBlQW5kQ29kZWNzKQogICAgICAgICAsIGdldFNpdGVzSW5NZWRp
YUNhY2hlKGdldFNpdGVzSW5NZWRpYUNhY2hlKQogICAgICAgICAsIGNsZWFyTWVkaWFDYWNoZShj
bGVhck1lZGlhQ2FjaGUpCiAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjbGVhck1l
ZGlhQ2FjaGVGb3JTaXRlKQotCi0gICAgeyAKKyAgICB7CiAgICAgfQogCiAgICAgQ3JlYXRlTWVk
aWFFbmdpbmVQbGF5ZXIgY29uc3RydWN0b3I7CkBAIC0xOTYsNyArMTk1LDggQEAgcHVibGljOgog
fTsKIAogc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIs
IE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLCBNZWRp
YUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwg
TWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlKTsKLXN0YXRpYyBNZWRpYVBsYXllckZh
Y3RvcnkqIGJlc3RNZWRpYUVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIE1lZGlhUGxh
eWVyRmFjdG9yeSogY3VycmVudCA9IDApOworCitzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBi
ZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBLVVJMJiwgTWVk
aWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50ID0gMCk7CiBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5
KiBuZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KTsKIAogc3RhdGlj
IFZlY3RvcjxNZWRpYVBsYXllckZhY3RvcnkqPiYgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCkgCkBA
IC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29kZWNzKCkKICAg
ICByZXR1cm4gY29kZWNzOwogfQogCi1zdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0TWVk
aWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBNZWRpYVBsYXllckZhY3RvcnkqIGN1
cnJlbnQpCitzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBiZXN0TWVkaWFFbmdpbmVGb3JUeXBl
QW5kQ29kZWNzKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBLVVJMJiB1cmwsIE1lZGlhUGxheWVyRmFjdG9yeSog
Y3VycmVudCkKIHsKICAgICBpZiAodHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAwOwpA
QCAtMjgwLDExICsyODAsMTEgQEAgc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogYmVzdE1lZGlh
RW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUsIGMKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICAg
ICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBlbmdpbmVTdXBwb3J0ID0gZW5naW5lc1tuZHhd
LT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwgY29kZWNzLCBrZXlTeXN0ZW0pOworICAgICAg
ICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIGVuZ2luZVN1cHBvcnQgPSBlbmdpbmVzW25keF0t
PnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCBjb2RlY3MsIGtleVN5c3RlbSwgdXJsKTsKICNl
bHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOwogICAgICAgICBBU1NFUlQoa2V5
U3lzdGVtLmlzRW1wdHkoKSk7Ci0gICAgICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgZW5n
aW5lU3VwcG9ydCA9IGVuZ2luZXNbbmR4XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIGNv
ZGVjcyk7CisgICAgICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgZW5naW5lU3VwcG9ydCA9
IGVuZ2luZXNbbmR4XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIGNvZGVjcywgdXJsKTsK
ICNlbmRpZgogICAgICAgICBpZiAoZW5naW5lU3VwcG9ydCA+IHN1cHBvcnRlZCkgewogICAgICAg
ICAgICAgc3VwcG9ydGVkID0gZW5naW5lU3VwcG9ydDsKQEAgLTM1MiwxNCArMzUyLDE0IEBAIGJv
b2wgTWVkaWFQbGF5ZXI6OmxvYWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYg
Y29udGVudFR5cGUsIGNvbnN0IFN0CiB7CiAgICAgbV9jb250ZW50TUlNRVR5cGUgPSBjb250ZW50
VHlwZS50eXBlKCkubG93ZXIoKTsKICAgICBtX2NvbnRlbnRUeXBlQ29kZWNzID0gY29udGVudFR5
cGUucGFyYW1ldGVyKGNvZGVjcygpKTsKLSAgICBtX3VybCA9IHVybC5zdHJpbmcoKTsKKyAgICBt
X3VybCA9IHVybDsKICAgICBtX2tleVN5c3RlbSA9IGtleVN5c3RlbS5sb3dlcigpOwogICAgIG1f
Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uID0gZmFsc2U7CiAKICAgICAv
LyBJZiB0aGUgTUlNRSB0eXBlIGlzIG1pc3Npbmcgb3IgaXMgbm90IG1lYW5pbmdmdWwsIHRyeSB0
byBmaWd1cmUgaXQgb3V0IGZyb20gdGhlIFVSTC4KICAgICBpZiAobV9jb250ZW50TUlNRVR5cGUu
aXNFbXB0eSgpIHx8IG1fY29udGVudE1JTUVUeXBlID09IGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0o
KSB8fCBtX2NvbnRlbnRNSU1FVHlwZSA9PSB0ZXh0UGxhaW4oKSkgewotICAgICAgICBpZiAocHJv
dG9jb2xJcyhtX3VybCwgImRhdGEiKSkKLSAgICAgICAgICAgIG1fY29udGVudE1JTUVUeXBlID0g
bWltZVR5cGVGcm9tRGF0YVVSTChtX3VybCk7CisgICAgICAgIGlmIChwcm90b2NvbElzKG1fdXJs
LnN0cmluZygpLCAiZGF0YSIpKQorICAgICAgICAgICAgbV9jb250ZW50TUlNRVR5cGUgPSBtaW1l
VHlwZUZyb21EYXRhVVJMKG1fdXJsLnN0cmluZygpKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICBTdHJpbmcgbGFzdFBhdGhDb21wb25lbnQgPSB1cmwubGFzdFBhdGhDb21wb25lbnQoKTsK
ICAgICAgICAgICAgIHNpemVfdCBwb3MgPSBsYXN0UGF0aENvbXBvbmVudC5yZXZlcnNlRmluZCgn
LicpOwpAQCAtMzgzLDcgKzM4Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1l
ZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCkKICAgICBNZWRpYVBsYXllckZh
Y3RvcnkqIGVuZ2luZSA9IDA7CiAKICAgICBpZiAoIW1fY29udGVudE1JTUVUeXBlLmlzRW1wdHko
KSkKLSAgICAgICAgZW5naW5lID0gYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhtX2Nv
bnRlbnRNSU1FVHlwZSwgbV9jb250ZW50VHlwZUNvZGVjcywgbV9rZXlTeXN0ZW0sIGN1cnJlbnQp
OworICAgICAgICBlbmdpbmUgPSBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29u
dGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBlQ29kZWNzLCBtX2tleVN5c3RlbSwgbV91cmwsIGN1
cnJlbnQpOwogCiAgICAgLy8gSWYgbm8gTUlNRSB0eXBlIGlzIHNwZWNpZmllZCBvciB0aGUgdHlw
ZSB3YXMgaW5mZXJyZWQgZnJvbSB0aGUgZmlsZSBleHRlbnNpb24sIGp1c3QgdXNlIHRoZSBuZXh0
IGVuZ2luZS4KICAgICBpZiAoIWVuZ2luZSAmJiAobV9jb250ZW50TUlNRVR5cGUuaXNFbXB0eSgp
IHx8IG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uKSkKQEAgLTQxMCw3
ICs0MTAsNyBAQCB2b2lkIE1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRp
YVBsYXllckZhY3RvcnkqIGN1cnJlbnQpCiAgICAgfQogCiAgICAgaWYgKG1fcHJpdmF0ZSkKLSAg
ICAgICAgbV9wcml2YXRlLT5sb2FkKG1fdXJsKTsKKyAgICAgICAgbV9wcml2YXRlLT5sb2FkKG1f
dXJsLnN0cmluZygpKTsKICAgICBlbHNlIHsKICAgICAgICAgbV9wcml2YXRlID0gY3JlYXRlTnVs
bE1lZGlhUGxheWVyKHRoaXMpOwogICAgICAgICBpZiAobV9tZWRpYVBsYXllckNsaWVudCkgewpA
QCAtNDE4LDcgKzQxOCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5n
aW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCkKICAgICAgICAgICAgIG1fbWVkaWFQbGF5
ZXJDbGllbnQtPm1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQodGhpcyk7CiAgICAgICAg
IH0KICAgICB9Ci19ICAgIAorfQogCiBib29sIE1lZGlhUGxheWVyOjpoYXNBdmFpbGFibGVWaWRl
b0ZyYW1lKCkgY29uc3QKIHsKQEAgLTcyNCw3ICs3MjQsNyBAQCB2b2lkIE1lZGlhUGxheWVyOjpw
YWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQqIHAsIGNvbnN0IEludFJl
Y3QmCiAgICAgbV9wcml2YXRlLT5wYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChwLCByKTsKIH0K
IAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKGNv
bnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNv
bnN0IE1lZGlhUGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50KiBjbGllbnQpCitNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgQ29udGVudFR5cGUm
IGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgS1VSTCYgdXJsLCBj
b25zdCBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNsaWVudCogY2xpZW50KQogewogICAgIFN0cmlu
ZyB0eXBlID0gY29udGVudFR5cGUudHlwZSgpLmxvd2VyKCk7CiAgICAgLy8gVGhlIGNvZGVjcyBz
dHJpbmcgaXMgbm90IGxvd2VyLWNhc2VkIGJlY2F1c2UgTVA0IHZhbHVlcyBhcmUgY2FzZSBzZW5z
aXRpdmUKQEAgLTczNyw3ICs3MzcsNyBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlh
UGxheWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeQogICAgIGlm
ICh0eXBlID09IGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oKSkKICAgICAgICAgcmV0dXJuIElzTm90
U3VwcG9ydGVkOwogCi0gICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBlbmdpbmUgPSBiZXN0TWVkaWFF
bmdpbmVGb3JUeXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2RlY3MsIHN5c3RlbSk7CisgICAgTWVk
aWFQbGF5ZXJGYWN0b3J5KiBlbmdpbmUgPSBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNz
KHR5cGUsIHR5cGVDb2RlY3MsIHN5c3RlbSwgdXJsKTsKICAgICBpZiAoIWVuZ2luZSkKICAgICAg
ICAgcmV0dXJuIElzTm90U3VwcG9ydGVkOwogCkBAIC03NTcsMTAgKzc1NywxMCBAQCBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgQ29udGVu
dFR5cGUmIGNvbnRlbnRUeQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQot
ICAgIHJldHVybiBlbmdpbmUtPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBlQ29kZWNz
LCBzeXN0ZW0pOworICAgIHJldHVybiBlbmdpbmUtPnN1cHBvcnRzVHlwZUFuZENvZGVjcyh0eXBl
LCB0eXBlQ29kZWNzLCBzeXN0ZW0sIHVybCk7CiAjZWxzZQogICAgIEFTU0VSVChzeXN0ZW0uaXNF
bXB0eSgpKTsKLSAgICByZXR1cm4gZW5naW5lLT5zdXBwb3J0c1R5cGVBbmRDb2RlY3ModHlwZSwg
dHlwZUNvZGVjcyk7CisgICAgcmV0dXJuIGVuZ2luZS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5
cGUsIHR5cGVDb2RlY3MsIHVybCk7CiAjZW5kaWYKIH0KIApAQCAtOTQyLDcgKzk0Miw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXI6Om5ldHdvcmtTdGF0ZUNoYW5nZWQoKQogICAgIGlmIChtX3ByaXZhdGUt
Pm5ldHdvcmtTdGF0ZSgpID49IEZvcm1hdEVycm9yCiAgICAgICAgICYmIG1fcHJpdmF0ZS0+cmVh
ZHlTdGF0ZSgpIDwgSGF2ZU1ldGFkYXRhCiAgICAgICAgICYmIGluc3RhbGxlZE1lZGlhRW5naW5l
cygpLnNpemUoKSA+IDEpIHsKLSAgICAgICAgaWYgKG1fY29udGVudE1JTUVUeXBlLmlzRW1wdHko
KSB8fCBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVUeXBlLCBt
X2NvbnRlbnRUeXBlQ29kZWNzLCBtX2tleVN5c3RlbSwgbV9jdXJyZW50TWVkaWFFbmdpbmUpKSB7
CisgICAgICAgIGlmIChtX2NvbnRlbnRNSU1FVHlwZS5pc0VtcHR5KCkgfHwgYmVzdE1lZGlhRW5n
aW5lRm9yVHlwZUFuZENvZGVjcyhtX2NvbnRlbnRNSU1FVHlwZSwgbV9jb250ZW50VHlwZUNvZGVj
cywgbV9rZXlTeXN0ZW0sIG1fdXJsLCBtX2N1cnJlbnRNZWRpYUVuZ2luZSkpIHsKICAgICAgICAg
ICAgIG1fcmVsb2FkVGltZXIuc3RhcnRPbmVTaG90KDApOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaAppbmRleCA2YzcyMmEwODA3YTQ1ZjAzYzU5Mzk2NTEyZjJkOThiMjUxZTA1MzNiLi5jM2Q0
NTNmNjc2ZjlmYjA0M2U4OGI4Yjg1NjUyYTJmODY2MTg2ZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTIwMyw3ICsyMDMsNyBAQCBw
dWJsaWM6CiAKICAgICAvLyBNZWRpYSBlbmdpbmUgc3VwcG9ydC4KICAgICBlbnVtIFN1cHBvcnRz
VHlwZSB7IElzTm90U3VwcG9ydGVkLCBJc1N1cHBvcnRlZCwgTWF5QmVTdXBwb3J0ZWQgfTsKLSAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgQ29u
dGVudFR5cGUmLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgTWVkaWFQbGF5ZXJTdXBw
b3J0c1R5cGVDbGllbnQqKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBz
dXBwb3J0c1R5cGUoY29uc3QgQ29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwg
Y29uc3QgS1VSTCYsIGNvbnN0IE1lZGlhUGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50Kik7CiAgICAg
c3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7CiAgICAgc3Rh
dGljIGJvb2wgaXNBdmFpbGFibGUoKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTaXRlc0luTWVkaWFD
YWNoZShWZWN0b3I8U3RyaW5nPiYpOwpAQCAtNDAwLDcgKzQwMCw3IEBAIHByaXZhdGU6CiAgICAg
VGltZXI8TWVkaWFQbGF5ZXI+IG1fcmVsb2FkVGltZXI7CiAgICAgT3duUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOwogICAgIE1lZGlhUGxheWVyRmFjdG9yeSogbV9j
dXJyZW50TWVkaWFFbmdpbmU7Ci0gICAgU3RyaW5nIG1fdXJsOworICAgIEtVUkwgbV91cmw7CiAg
ICAgU3RyaW5nIG1fY29udGVudE1JTUVUeXBlOwogICAgIFN0cmluZyBtX2NvbnRlbnRUeXBlQ29k
ZWNzOwogICAgIFN0cmluZyBtX2tleVN5c3RlbTsKQEAgLTQyMywxNyArNDIzLDE2IEBAIHByaXZh
dGU6CiB0eXBlZGVmIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiAoKkNy
ZWF0ZU1lZGlhRW5naW5lUGxheWVyKShNZWRpYVBsYXllciopOwogdHlwZWRlZiB2b2lkICgqTWVk
aWFFbmdpbmVTdXBwb3J0ZWRUeXBlcykoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKLXR5cGVkZWYgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSAo
Kk1lZGlhRW5naW5lU3VwcG9ydHNUeXBlKShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgY29kZWNzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSk7Cit0eXBlZGVmIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgU3RyaW5nJiB0
eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0
IEtVUkwmIHVybCk7CiAjZWxzZQotdHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlICgq
TWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBjb2RlY3MpOwordHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdp
bmVTdXBwb3J0c1R5cGUpKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3Ms
IGNvbnN0IEtVUkwmIHVybCk7CiAjZW5kaWYKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lR2V0
U2l0ZXNJbk1lZGlhQ2FjaGUpKFZlY3RvcjxTdHJpbmc+Jik7CiB0eXBlZGVmIHZvaWQgKCpNZWRp
YUVuZ2luZUNsZWFyTWVkaWFDYWNoZSkoKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lQ2xl
YXJNZWRpYUNhY2hlRm9yU2l0ZSkoY29uc3QgU3RyaW5nJik7CiAKLXR5cGVkZWYgdm9pZCAoKk1l
ZGlhRW5naW5lUmVnaXN0cmFyKShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciwgTWVkaWFFbmdpbmVT
dXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUsIAotICAgIE1lZGlhRW5naW5l
R2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVu
Z2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUpOyAKLQordHlwZWRlZiB2b2lkICgqTWVkaWFFbmdp
bmVSZWdpc3RyYXIpKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2luZVN1cHBvcnRl
ZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwKKyAgICBNZWRpYUVuZ2luZUdldFNpdGVz
SW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVh
ck1lZGlhQ2FjaGVGb3JTaXRlKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCA4NzVkMTJk
ZmJlN2JiNDIyMWJlNzU1MjRmODFhY2QyMDdjYTNhNzgwLi5hOWYzOWE0MGRlZWM3N2UzMTZjMzc4
MDRiZDEyNzNmZjhhOTczNWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTcyNSw3ICs3MjUsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpnZXRTdXBwb3J0ZWRUeXBl
cyhIYXNoU2V0PFN0cmluZz4mIHN1cHBvcgogICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZVR5cGVD
YWNoZSgpOwogfSAKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRjo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGNvZGVjcywgY29uc3QgS1VSTCYpCiB7CiAgICAgLy8gT25seSByZXR1cm4gIklz
U3VwcG9ydGVkIiBpZiB0aGVyZSBpcyBubyBjb2RlY3MgcGFyYW1ldGVyIGZvciBub3cgYXMgdGhl
cmUgaXMgbm8gd2F5IHRvIGFzayBpZiBpdCBzdXBwb3J0cyBhbgogICAgIC8vIGV4dGVuZGVkIE1J
TUUgdHlwZSB1bnRpbCByZGFyOi8vODcyMTcxNSBpcyBmaXhlZC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKaW5kZXgg
ZjVkZDAwMTUwZDQ0MDUxNzBjYWZjOGEyNDdkZGQ4YTQ5MjczOGE3Ni4uODFhOWJjNmU0ZmYxMjU0
OTUzZWJkM2FjMmMxYjJjM2ViZDkyMWZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKQEAgLTQ2LDcgKzQ2LDcg
QEAgcHJpdmF0ZToKICAgICAvLyBFbmdpbmUgc3VwcG9ydAogICAgIHN0YXRpYyBQYXNzT3duUHRy
PE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAg
c3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7Ci0g
ICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpOworICAgIHN0YXRpYyBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgY29kZWNzLCBjb25zdCBLVVJMJik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUo
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxMb2FkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgK
aW5kZXggZGNjMDQ2ZDA3N2I1ZmY3M2ZjZWJlN2EzNWM3ZTM1ZTViMzAxOTU2MS4uZTVjZmNiNDQ1
ZmZhNGE5MTRjODgyZGZmMjdiNTRmNGU2ZTQ3NTc4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApA
QCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBzdXBwb3J0CiAgICAgc3Rh
dGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQ
bGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mIHR5cGVzKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0
c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisgICAgc3Rh
dGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgYm9v
bCBpc0F2YWlsYWJsZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbExvYWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCmluZGV4IDllODY1MzQ5N2VmNWFlZWNmYTBmN2QwOThmYzBkM2JlNjRl
NmQ1NGIuLmVlNDY3NmVmY2JlNTk1NDgyOWEwMDVhM2JlYzlkOTBiM2IxNjViYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQpAQCAtNjcyLDcgKzY3Miw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiBz
dXBwCiAgICAgc3VwcG9ydGVkVHlwZXMgPSBtaW1lVHlwZUNhY2hlKCk7CiB9IAogCi1NZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1
cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywg
Y29uc3QgS1VSTCYpCiB7CiAgICAgaWYgKCFtaW1lVHlwZUNhY2hlKCkuY29udGFpbnModHlwZSkp
CiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVy
UHJpdmF0ZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcAppbmRleCAzYWM5M2U4
YjRjNjdlZDJmMTRmZTM2NmFmNjUxMjYyODQwYTExMDk3Li40ZWRmY2ViYzQ4OTU5ODE5ZDY4MTAy
N2NhODMxY2Q0NmY3NTdjNzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQ
cml2YXRlQmxhY2tCZXJyeS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGU6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpCiAgICAgICAg
IHR5cGVzLmFkZChpLT5jX3N0cigpKTsKIH0KIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBN
ZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclBy
aXZhdGU6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29k
ZWNzLCBjb25zdCBLVVJMJikKIHsKICAgICBpZiAodHlwZS5pc051bGwoKSB8fCB0eXBlLmlzRW1w
dHkoKSkgewogICAgICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllciBkb2VzIG5vdCBzdXBwb3J0
IHR5cGU7IHR5cGUgaXMgbnVsbCBvciBlbXB0eS4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tC
ZXJyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRp
YVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgKaW5kZXggMGFjNDY2YmVjOGVlODg4MTFhMWIxNjQw
YjczNTJhOTA5Yzg1MzY1ZS4uNWY4Nzg0ZTZiM2VlNmUxNGIxMDJlZTFkM2U2YjNiMDk4ZTVjYzEy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJy
eS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgK
QEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZv
aWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAgICAgc3RhdGlj
IHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7Ci0gICAgc3RhdGljIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRz
VHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBLVVJMJik7CiAgICAgc3Rh
dGljIHZvaWQgbm90aWZ5QXBwQWN0aXZhdGVkRXZlbnQoYm9vbCk7CiAgICAgc3RhdGljIHZvaWQg
c2V0Q2VydGlmaWNhdGVQYXRoKGNvbnN0IFN0cmluZyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDgzOTcwOGVlOTc3NjAxNDgwYzI4
ZDMwNjk5NjgxMWI4Y2EzOTE2MGMuLjZiYzExMmY4NWUwOWEyY2ExNzhlYWQxZjY5Yzg3MDcyYzI1
MWNkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCkBAIC0xNTk2LDcgKzE1OTYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcykKICAgICB0eXBlcyA9
IG1pbWVUeXBlQ2FjaGUoKTsKIH0KIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJMJikKIHsKICAgICBpZiAodHlwZS5pc051bGwoKSB8
fCB0eXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBv
cnRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRl
eCAzOWVlOWNlNGJmYmNiODEyM2EwMjNjNDE1NzJjMzBhNjNlYzFkMzBkLi4zY2Q0YTg3YTE3NjI0
ODdiN2UwNzdhZTk5YTYwMGNmMzA2ZTZkMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0xMzAsNyArMTMwLDggQEAgY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CiAgICAgICAgICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogCiAgICAgICAgICAgICBzdGF0aWMgdm9pZCBnZXRT
dXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKLSAgICAgICAgICAgIHN0YXRpYyBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgY29kZWNzKTsKKyAgICAgICAgICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
Y29kZWNzLCBjb25zdCBLVVJMJik7CisKICAgICAgICAgICAgIHN0YXRpYyBib29sIGlzQXZhaWxh
YmxlKCk7CiAKICAgICAgICAgICAgIHZvaWQgdXBkYXRlQXVkaW9TaW5rKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5oCmluZGV4IDAxMWVjMzZhMjVkMTlkZTYxMTFlZDU4M2NkMmI2YTE0NGUx
YzQwYTQuLjNlODliYzdkMzRkYmRlZjE1OTAxZWMwNjdiODRmMWNhOGQ1YjhhNDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZh
dGVRVEtpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRp
YVBsYXllclByaXZhdGVRVEtpdC5oCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgLy8g
ZW5naW5lIHN1cHBvcnQKICAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBv
cnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRpYyBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgY29kZWNzKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBw
b3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcywgY29uc3Qg
S1VSTCYpOwogICAgIHN0YXRpYyB2b2lkIGdldFNpdGVzSW5NZWRpYUNhY2hlKFZlY3RvcjxTdHJp
bmc+Jik7CiAgICAgc3RhdGljIHZvaWQgY2xlYXJNZWRpYUNhY2hlKCk7CiAgICAgc3RhdGljIHZv
aWQgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclBy
aXZhdGVRVEtpdC5tbQppbmRleCAyOTI0OWFhNzg4N2I4ZjIzZDNhOGQ1ODFlYzU3Yzg3NjkxZjc4
MzBmLi4wMjM1NjdhNGYxMzE1OGUxMDFhNGRjY2UyZjk0NmFhMjFhNzc3YWQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0xNDYwLDcgKzE0NjAsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0OjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHN1cHBv
cnRlZFR5cGVzKQogICAgICAgICBzdXBwb3J0ZWRUeXBlcy5hZGQoKml0KTsKIH0gCiAKLU1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnN1cHBvcnRzVHlw
ZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c3VwcG9ydHNUeXBlKGNvbnN0
IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKQogewogICAg
IC8vIE9ubHkgcmV0dXJuICJJc1N1cHBvcnRlZCIgaWYgdGhlcmUgaXMgbm8gY29kZWNzIHBhcmFt
ZXRlciBmb3Igbm93IGFzIHRoZXJlIGlzIG5vIHdheSB0byBhc2sgUVQgaWYgaXQgc3VwcG9ydHMg
YW4KICAgICAvLyBleHRlbmRlZCBNSU1FIHR5cGUgeWV0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3Bw
CmluZGV4IDNhMzA3Y2IyNzQ5Y2U0MzMwZTk4Y2U1ZTEzNTNlNTg0MTQ5Yjg4NWIuLjc5NGJjMTAz
NjNjOTdhMzMzOTJkN2JlNWFjNzdlNjgzZGQ4MGU3YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5j
cHAKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdDo6Z2V0U3VwcG9y
dGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+ICZzdXBwb3J0ZWQpCiAgICAgfQogfQogCi1NZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZVF0OjpzdXBwb3J0c1R5cGUoY29u
c3QgU3RyaW5nJiBtaW1lLCBjb25zdCBTdHJpbmcmIGNvZGVjKQorTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVRdDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYg
bWltZSwgY29uc3QgU3RyaW5nJiBjb2RlYywgY29uc3QgS1VSTCYpCiB7CiAgICAgaWYgKCFtaW1l
LnN0YXJ0c1dpdGgoImF1ZGlvLyIpICYmICFtaW1lLnN0YXJ0c1dpdGgoInZpZGVvLyIpKQogICAg
ICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0
LmgKaW5kZXggYzZmY2JkODM4ZDExZDgzZTQ3NTc1MDlmN2EyMTY5N2YzMzQ3ZGEwZS4uYTEyOWU1
ZGU1MTk2NjNiMDVlYjRlYWNlYzIwZmU3MmQxNjI4YzZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5o
CkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVk
aWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBv
cnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKyAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgS1VSTCYpOwogICAgIHN0YXRpYyBib29sIGlzQXZh
aWxhYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxh
eWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRl
eHQuY3BwCmluZGV4IDdkOWRjYWZlNjY3ZjU3MzM3NGNiZWFhNWE2M2VjZDdkYjAyMjgzMjIuLmZk
Nzk3ZWNhYzg2ZDEyMDE2MmViYTY1OTA0MmE2NDNkMzM2M2U2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1Rp
bWVWaXN1YWxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKQEAgLTEw
MTEsNyArMTAxMSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29u
dGV4dDo6aXNBdmFpbGFibGUoKQogICAgIHJldHVybiBRVE1vdmllOjppbml0aWFsaXplUXVpY2tU
aW1lKCk7CiB9CiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRl
UXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwg
Y29uc3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxh
eWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJMJikKIHsKICAgICAvLyBv
bmx5IHJldHVybiAiSXNTdXBwb3J0ZWQiIGlmIHRoZXJlIGlzIG5vIGNvZGVjcyBwYXJhbWV0ZXIg
Zm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3YXkgdG8gYXNrIFFUIGlmIGl0IHN1cHBvcnRzIGFuCiAg
ICAgLy8gIGV4dGVuZGVkIE1JTUUgdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgKaW5kZXggNGM0NGFmNDAxZWJiMDNmZGIyZjNm
ZjE0MjQyODU3OTUxZjkxMTEzNS4uZWI1MmVmNjRkOTE4MWE2OTEyODRiZjRmNGVkY2UzODAyMjM3
MjgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dC5oCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBlbmdpbmUg
c3VwcG9ydAogICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlw
ZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBj
b2RlY3MpOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlw
ZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBLVVJMJik7
CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbkNFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oCmluZGV4IDBmYWEwNDU3
ODRkNzFiZmE4NzA2OGRlZmRiMDYwNjY3NGM5ZWI3MmMuLmFiNGVjNGQwNTBmZGQ3MmI0N2Q5YjBi
MmY5OGVhMWY2M2VlZTA5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbkNFLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaApAQCAt
MTAwLDcgKzEwMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gZW5naW5lIHN1
cHBvcnQKICAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9y
dGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7Ci0gICAgICAgIHN0YXRpYyBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgY29kZWNzKTsKKyAgICAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5
cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3Ms
IGNvbnN0IEtVUkwmKTsKICAgICAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAogICAg
ICAgICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCBhMjlhNGM3OTI4
YjY0NGZkNmRjNThlZjQ5ZmExZDU0MTA5MTkzYTNjLi5jODI2ZDk0OGY3MGNiZTljMDBmZjEzODlk
Y2M2NWM5NWRhYmUwZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTc5MiwxMSArNzkyLDEzIEBAIHZv
aWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0
cmluZz4mIHN1cHBvcnRlZFR5cGVzCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0c1R5
cGUoY29uc3QgU3RyaW5nJiB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGNvZGVjcywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYga2V5
U3lzdGVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBLVVJMJikKIHsKICNlbHNlCiBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0
cmluZyYgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBjb2RlY3MpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgY29kZWNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBLVVJMJikKIHsKICAgICBTdHJpbmcga2V5
U3lzdGVtOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCmluZGV4IDZmMTUwZGRhNzJmYmRmNDljNTcxZDE0Y2I4
OTg1ZWUwYzE0MThkYmMuLmM1NTdiMGJlMDdhNjYzMmI5NzRkZGFiMzBmYTZhYjVjYzYxNWVmZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5oCkBAIC0xODYsMTAgKzE4NiwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2
b2lkIGdldFN1cHBvcnRlZFR5cGVzKFdURjo6SGFzaFNldDxXVEY6OlN0cmluZz4mKTsKICNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHN0YXRpYyBXZWJDb3JlOjpNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZSgKLSAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHR5
cGUsIGNvbnN0IFdURjo6U3RyaW5nJiBjb2RlY3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsK
KyAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHR5cGUsIGNvbnN0IFdURjo6U3RyaW5nJiBjb2Rl
Y3MsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBXZWJDb3JlOjpLVVJMJik7CiAjZWxz
ZQogICAgIHN0YXRpYyBXZWJDb3JlOjpNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRz
VHlwZSgKLSAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHR5cGUsIGNvbnN0IFdURjo6U3RyaW5n
JiBjb2RlY3MpOworICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgdHlwZSwgY29uc3QgV1RGOjpT
dHJpbmcmIGNvZGVjcywgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwogI2VuZGlmCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgYWNjZWxlcmF0ZWRSZW5kZXJpbmdJblVz
ZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>