<?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>224280</bug_id>
          
          <creation_ts>2021-04-07 08:19:47 -0700</creation_ts>
          <short_desc>Accessibility support for image text recognition.</short_desc>
          <delta_ts>2021-06-28 02:48:38 -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>Accessibility</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>227440</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1747887</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-04-07 08:19:47 -0700</bug_when>
    <thetext>Preliminary accessibility work to support image text extraction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747888</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-07 08:19:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/76348740&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747890</commentid>
    <comment_count>2</comment_count>
      <attachid>425396</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-04-07 08:25:30 -0700</bug_when>
    <thetext>Created attachment 425396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747908</commentid>
    <comment_count>3</comment_count>
      <attachid>425405</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-04-07 08:58:08 -0700</bug_when>
    <thetext>Created attachment 425405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747917</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-04-07 09:21:25 -0700</bug_when>
    <thetext>The content of attachment 425396 has been deleted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748760</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-04-09 09:34:08 -0700</bug_when>
    <thetext>The content of attachment 425405 has been deleted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749233</commentid>
    <comment_count>6</comment_count>
      <attachid>425752</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-04-12 08:56:11 -0700</bug_when>
    <thetext>Created attachment 425752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749244</commentid>
    <comment_count>7</comment_count>
      <attachid>425752</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-04-12 09:14:24 -0700</bug_when>
    <thetext>Comment on attachment 425752
Patch

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

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:469
&gt; +    bool isAXImageInstance() const override;

we should probably call this

isAccessibilityImageInstance() to match the other methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749251</commentid>
    <comment_count>8</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-04-12 09:35:26 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #7)
&gt; Comment on attachment 425752 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425752&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:469
&gt; &gt; +    bool isAXImageInstance() const override;
&gt; 
&gt; we should probably call this
&gt; 
&gt; isAccessibilityImageInstance() to match the other methods

I was following the convention isClassNameInstance, and the class name AXImage, similar to isAXIsolatedObjectInstance. I very much prefer the AX prefix for class names instead of the whole Accessibility, and plan to do a gradual renaming. But I can be persuaded if you feel strongly otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750610</commentid>
    <comment_count>9</comment_count>
      <attachid>426105</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-04-15 08:11:56 -0700</bug_when>
    <thetext>Created attachment 426105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750819</commentid>
    <comment_count>10</comment_count>
      <attachid>426147</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-04-15 15:55:38 -0700</bug_when>
    <thetext>Created attachment 426147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750850</commentid>
    <comment_count>11</comment_count>
      <attachid>426147</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-04-15 17:00:07 -0700</bug_when>
    <thetext>Comment on attachment 426147
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Preliminary accessibility work

Please provide a more clear title.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests (OOPS!).

Please include the reason no tests are being included.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750889</commentid>
    <comment_count>12</comment_count>
      <attachid>426170</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-04-15 18:56:16 -0700</bug_when>
    <thetext>Created attachment 426170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750939</commentid>
    <comment_count>13</comment_count>
      <attachid>426170</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-04-15 22:58:59 -0700</bug_when>
    <thetext>Comment on attachment 426170
Patch

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

&gt; Source/WebCore/accessibility/AXImage.cpp:62
&gt; +    if (m_imageOverlayHost)

should this be !m_imageoverlayHost?
and second, do we want to return an empty array here in that case?

&gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:436
&gt; +- (NSArray *)accessibilityElements
&gt; +{

I don&apos;t think we should add this. this is actually more expensive, because to just know how many children there are, we have to create the NSArray and return it, rather than just returning the size of the array in elementCount

I also think that if we find that axElementAtIndex and friends are implemented we prefer that over accessibilityElements.

&gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:1863
&gt; +    auto imageOverlayElements = self.axBackingObject-&gt;imageOverlayElements();

I feel like if the count is empty here, we should return nil. it will be a more efficient operation to return nil (which will be the common case(

&gt; Source/WebCore/platform/Logging.cpp:93
&gt; +    LogAccessibility.state = WTFLogChannelState::On;

this should probably be off right

&gt; LayoutTests/ChangeLog:8
&gt; +        * accessibility/image-link-expected.txt:

we&apos;ll probably need to skip these on the non supported platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761666</commentid>
    <comment_count>14</comment_count>
      <attachid>429088</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-05-19 13:04:09 -0700</bug_when>
    <thetext>Created attachment 429088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761671</commentid>
    <comment_count>15</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-05-19 13:25:21 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #13)
&gt; Comment on attachment 426170 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=426170&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXImage.cpp:62
&gt; &gt; +    if (m_imageOverlayHost)
&gt; 
&gt; should this be !m_imageoverlayHost?
&gt; and second, do we want to return an empty array here in that case?

The purpose of the block should be clearer in this revision. The return value of the function is now an Optional.

&gt; 
&gt; &gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:436
&gt; &gt; +- (NSArray *)accessibilityElements
&gt; &gt; +{
&gt; 
&gt; I don&apos;t think we should add this. this is actually more expensive, because
&gt; to just know how many children there are, we have to create the NSArray and
&gt; return it, rather than just returning the size of the array in elementCount
&gt; 
&gt; I also think that if we find that axElementAtIndex and friends are
&gt; implemented we prefer that over accessibilityElements.

I removed the comment saying that this is preferable. I&apos;d like to keep the method if possible cause it makes writing scripts clearer. As for what is more efficient, I&apos;m not convinced that neither one is preferable. I believe the critical path is in retrieving the CoreObject children, and in the by index methods that has to happen multiple times to just iterate over the array. In any case, this is not taking away the by index/count methods.

&gt; 
&gt; &gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:1863
&gt; &gt; +    auto imageOverlayElements = self.axBackingObject-&gt;imageOverlayElements();
&gt; 
&gt; I feel like if the count is empty here, we should return nil. it will be a
&gt; more efficient operation to return nil (which will be the common case(

Fixed with imageOverlayElements() returning an Optional.

&gt; 
&gt; &gt; Source/WebCore/platform/Logging.cpp:93
&gt; &gt; +    LogAccessibility.state = WTFLogChannelState::On;
&gt; 
&gt; this should probably be off right

Yes.

&gt; 
&gt; &gt; LayoutTests/ChangeLog:8
&gt; &gt; +        * accessibility/image-link-expected.txt:
&gt; 
&gt; we&apos;ll probably need to skip these on the non supported platforms

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761744</commentid>
    <comment_count>16</comment_count>
      <attachid>429088</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-05-19 15:50:29 -0700</bug_when>
    <thetext>Comment on attachment 429088
Patch

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

&gt; Source/WebCore/accessibility/AXImage.cpp:68
&gt; +        auto* axImage = axObjectCache-&gt;getOrCreate(m_imageOverlayHost.get());

this can be done in one line

&gt; Source/WebCore/accessibility/AXImage.cpp:79
&gt; +        WTFLogAlways(&quot;aqui estoy %p %p&quot;, this, imageOverlayHost.get());

remove this log

&gt; Source/WebCore/accessibility/AXImage.cpp:82
&gt; +        // FIXME: post notification.

what notification do we need here?

&gt; Source/WebCore/accessibility/AXImage.cpp:86
&gt; +    return children(); // FIXME: once notification is added, this should be return WTF::nullopt;

we need to return the image overlay again right?

&gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:433
&gt; +- (NSArray *)accessibilityElements

is this necessary to implement?  isn&apos;t this handled by accessibilityElementAtIndex?

&gt; Source/WebCore/platform/Logging.cpp:93
&gt; +    LogAccessibility.state = WTFLogChannelState::On;

undo

&gt; Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:471
&gt; +    WTFLogAlways(&quot;PageClientImpl::requestImageExtraction {&quot;);

probably remove these logs in this method

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:7348
&gt; +    WTFLogAlways(&quot;WebPage::requestImageExtraction {&quot;);

remove logging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770893</commentid>
    <comment_count>17</comment_count>
      <attachid>431742</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-17 16:53:46 -0700</bug_when>
    <thetext>Created attachment 431742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771004</commentid>
    <comment_count>18</comment_count>
      <attachid>431774</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-18 06:54:09 -0700</bug_when>
    <thetext>Created attachment 431774
Patch

Rebasing on master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771010</commentid>
    <comment_count>19</comment_count>
      <attachid>431776</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-18 07:32:03 -0700</bug_when>
    <thetext>Created attachment 431776
Patch

Build fix for non-Cocoa platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771288</commentid>
    <comment_count>20</comment_count>
      <attachid>431862</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-21 08:22:51 -0700</bug_when>
    <thetext>Created attachment 431862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771347</commentid>
    <comment_count>21</comment_count>
      <attachid>431878</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-21 10:54:56 -0700</bug_when>
    <thetext>Created attachment 431878
Patch

Fixes accessibility/image-link.html since imageOverlayElements returns nil instead of a 0-element array.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771736</commentid>
    <comment_count>22</comment_count>
      <attachid>431982</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-22 11:40:37 -0700</bug_when>
    <thetext>Created attachment 431982
Patch

Uses new format for internals.installImageOverlay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771936</commentid>
    <comment_count>23</comment_count>
      <attachid>432045</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-23 08:28:30 -0700</bug_when>
    <thetext>Created attachment 432045
Patch

Skip test on iOS 14.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771978</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-23 09:59:41 -0700</bug_when>
    <thetext>Committed r279171 (239068@main): &lt;https://commits.webkit.org/239068@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432045.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>425396</attachid>
            <date>2021-04-07 08:25:30 -0700</date>
            <delta_ts>2021-04-07 09:23:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210407112528.patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64"></data>
<flag name="commit-queue"
          id="445351"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>425405</attachid>
            <date>2021-04-07 08:58:08 -0700</date>
            <delta_ts>2021-04-07 09:08:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210407115807.patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425752</attachid>
            <date>2021-04-12 08:56:11 -0700</date>
            <delta_ts>2021-04-15 08:11:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210412115610.patch</filename>
            <type>text/plain</type>
            <size>15198</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJjMzYzNWI0ZGQ2MTM2
MTcxYWVkNTE5MzZlMzY4YTVmMGQzYTVhMi4uY2NmZDNkN2QwNTk5MDNmMjhiMmVmN2MzN2QyMDk2
NzU4NDk1MmRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA0LTEyICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVsaW1pbmFy
eSBhY2Nlc3NpYmlsaXR5IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDI4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
QVhJbWFnZTo6QVhJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6cm9sZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSW1hZ2U6OnRleHRVbmRlckVsZW1lbnQgY29uc3QpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQVhJbWFnZS5oOiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNTaW1wbGVJbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbiBjb25zdCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElz
b2xhdGVkT2JqZWN0Ojppc0FYSW1hZ2VJbnN0YW5jZSBjb25zdCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oOgorCiAyMDIxLTA0LTA5ICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XVtXUEVdIEJ1bXAgbGlic291cDMgdmVyc2lvbiB0byAyLjk5LjMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
MzE2NTA5NjhhYzBmN2QwNGI3YjU3ZTI1MGE5NjlkZWEyYmRkODJkMi4uZTUzYjFmNGJhZWFlNGRk
OGY0Njk0YjI5NzEzM2E2YzFiMmVkMjhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTQ0NCw2ICs0NDQs
NyBAQCBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAgQG5vLXVuaWZ5CiBNb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIEBuby11bmlmeQogTW9kdWxl
cy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4
ci9YUlNlc3Npb25FdmVudC5jcHAgQG5vLXVuaWZ5CithY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3Bw
CiBhY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTc3MGIw
ODQwMjI5MjQwMjgwNWE2MzcxNzRkMzY5ZTZjZDM1NDE3MC4uOWE4YTc1Yzc3MjFlNDMyOTkzY2Ni
YTcyM2I2NzQzZWRkNzViMmM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ1MDMsNiArMTQ1MDMsOCBAQAogCQlCRUE4MDdD
NzBGNzE0QTAzMDA1MjQxOTkgLyogU2VsZWN0aW9uUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZWxlY3Rpb25SZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJFRjI5RUU5MTcxNUREMDkwMEM0QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCRUYyOUVFQTE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9U
cmFja1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UcmFj
a1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzA0MDBDN0MyNjFDQjNE
QjAwQUY0NEZBIC8qIEFYSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVhJbWFnZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDMDQwMEM3RTI2MUNCM0RCMDBBRjQ0RkEgLyogQVhJbWFn
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBWEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzA0NkUxQUIxMjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3Mu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxpemVkU3RyaW5n
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwNDkzRUI3MjQ0Njk5RTQwMDlB
QUM4MCAvKiBBWExvZ2dlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBWExv
Z2dlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMDc4Mzc2MDIzREYyNTNFMDBD
OUM1QzggLyogQVhJc29sYXRlZE9iamVjdE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFY
SXNvbGF0ZWRPYmplY3RNYWMubW07IHBhdGggPSBtYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MjgzLDYgKzE5Mjg1LDggQEAKIAkJCQlB
OTFDOUZDMDFCNjU5QTY3MDBBRkZENTQgLyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNwcCAqLywK
IAkJCQlBOTFDOUZDMTFCNjU5QTY3MDBBRkZENTQgLyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmgg
Ki8sCiAJCQkJQTlFRTQ0OEMyMTBGQzlBRDAwQjZFQUU2IC8qIEFyaWFBdHRyaWJ1dGVzLmlkbCAq
LywKKwkJCQlDMDQwMEM3RTI2MUNCM0RCMDBBRjQ0RkEgLyogQVhJbWFnZS5jcHAgKi8sCisJCQkJ
QzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFYSW1hZ2UuaCAqLywKIAkJCQlDMDhGMTNBMTI0
NDc2NkRDMDBBQjk4OUYgLyogQVhMb2dnZXIuY3BwICovLAogCQkJCUMwNDkzRUI3MjQ0Njk5RTQw
MDlBQUM4MCAvKiBBWExvZ2dlci5oICovLAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAv
KiBBWE9iamVjdENhY2hlLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1h
Z2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM3OTE3MmRmOWQ2MTdmNWE1OGE2MGJlY2ZmODFlYjc0ZTViZTRm
MjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1h
Z2UuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFYSW1hZ2UuaCIK
KworI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBWEltYWdlOjpBWElt
YWdlKFJlbmRlckltYWdlKiByZW5kZXJlcikKKyAgICA6IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QocmVuZGVyZXIpCit7Cit9CisKK1JlZjxBWEltYWdlPiBBWEltYWdlOjpjcmVhdGUoUmVuZGVy
SW1hZ2UqIHJlbmRlcmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFYSW1hZ2UocmVu
ZGVyZXIpKTsKK30KKworQWNjZXNzaWJpbGl0eVJvbGUgQVhJbWFnZTo6cm9sZVZhbHVlKCkgY29u
c3QKK3sKKyAgICBhdXRvIGFyaWFSb2xlID0gYXJpYVJvbGVBdHRyaWJ1dGUoKTsKKyAgICBpZiAo
YXJpYVJvbGUgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24pCisgICAgICAgIHJldHVybiBh
cmlhUm9sZTsKKworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2U7Cit9CisKK1N0
cmluZyBBWEltYWdlOjp0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVt
ZW50TW9kZSkgY29uc3QKK3sKKyAgICBpZiAobV9pbWFnZU92ZXJsYXlIb3N0KQorICAgICAgICBy
ZXR1cm4geyB9OworCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgYXV0byogcGFn
ZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKCplbGVt
ZW50KCksIFt0aGlzXSAoUmVmUHRyPEVsZW1lbnQ+JiYgaW1hZ2VPdmVybGF5SG9zdCkgeworICAg
ICAgICBtX2ltYWdlT3ZlcmxheUhvc3QgPSBpbWFnZU92ZXJsYXlIb3N0LmdldCgpOworICAgIH0p
OworI2VuZGlmCisKKyAgICByZXR1cm4geyB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjMTViMTFj
YzZhNTM2MjFmZjc1ZmNmYzBiZmRhZmE2ZDhiMzIwZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaApAQCAtMCwwICsxLDUzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRl
ckltYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQVhJbWFnZSA6IHB1Ymxp
YyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEFY
SW1hZ2U+IGNyZWF0ZShSZW5kZXJJbWFnZSopOworICAgIHZpcnR1YWwgfkFYSW1hZ2UoKSA9IGRl
ZmF1bHQ7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQVhJbWFnZShSZW5kZXJJbWFnZSopOwor
ICAgIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CisKKyAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICBTdHJpbmcgdGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVu
dE1vZGUpIGNvbnN0IG92ZXJyaWRlOworCisgICAgUmVmUHRyPEVsZW1lbnQ+IG1faW1hZ2VPdmVy
bGF5SG9zdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUgCisKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQUNDRVNTSUJJTElUWShBWEltYWdlLCBpc0FYSW1hZ2VJbnN0YW5jZSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggZWM4
MTYxZTQwYTc1MTRkODE3MjE1YmM2YzgyNmNkNzU2MGVhNDg1Ni4uZWU0ZTllYThhOGZjY2M2ZTBk
NzI0MDdkNzdmZDBjYWMxNGY3NWU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC01MTIsNiArNTEyLDI4IEBAIGJvb2wgbm9kZUhhc1Jv
bGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiByb2xlKQogICAgIHJldHVybiBTcGFjZVNwbGl0
U3RyaW5nKHJvbGVWYWx1ZSwgdHJ1ZSkuY29udGFpbnMocm9sZSk7CiB9CiAKK3N0YXRpYyBib29s
IGlzU2ltcGxlSW1hZ2UoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK3sKKyAgICBpZiAo
IWlzPFJlbmRlckltYWdlPihyZW5kZXJlcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IC8vIEV4Y2x1ZGUgSW1hZ2VCdXR0b25zIGJlY2F1c2UgdGhleSBhcmUgdHJlYXRlZCBhcyBidXR0
b25zLCBub3QgYXMgaW1hZ2VzLgorICAgIGF1dG8qIG5vZGUgPSByZW5kZXJlci5ub2RlKCk7Cisg
ICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAvLyBJbWFnZU1hcHMgYXJlIG5vdCBzaW1wbGUgaW1hZ2VzLgorICAgIGlmIChkb3du
Y2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpLmltYWdlTWFwKCkKKyAgICAgICAgfHwgKGlzPEhU
TUxJbWFnZUVsZW1lbnQ+KG5vZGUpICYmIGRvd25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+KG5vZGUp
LT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHVzZW1hcEF0dHIpKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gRXhjbHVkZSB2aWRlbyBhbmQgYXVkaW8gZWxlbWVu
dHMuCisgICAgaWYgKGlzPEhUTUxNZWRpYUVsZW1lbnQ+KG5vZGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5
T2JqZWN0PiBjcmVhdGVGcm9tUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKICAg
ICAvLyBGSVhNRTogSG93IGNvdWxkIHJlbmRlcmVyLT5ub2RlKCkgZXZlciBub3QgYmUgYW4gRWxl
bWVudD8KQEAgLTU1MSw2ICs1NzMsOSBAQCBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+
IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIGlmIChpczxT
VkdFbGVtZW50Pihub2RlKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50
OjpjcmVhdGUocmVuZGVyZXIpOwogCisgICAgaWYgKGlzU2ltcGxlSW1hZ2UoKnJlbmRlcmVyKSkK
KyAgICAgICAgcmV0dXJuIEFYSW1hZ2U6OmNyZWF0ZShkb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVu
ZGVyZXIpKTsKKwogI2lmIEVOQUJMRShNQVRITUwpCiAgICAgLy8gVGhlIG1mZW5jZWQgZWxlbWVu
dCBjcmVhdGVzIGFub255bW91cyBSZW5kZXJNYXRoTUxPcGVyYXRvcnMgd2hpY2ggc2hvdWxkIGJl
IHRyZWF0ZWQKICAgICAvLyBhcyBNYXRoTUwgZWxlbWVudHMgYW5kIGFzc2lnbmVkIHRoZSBNYXRo
RWxlbWVudFJvbGUgc28gdGhhdCBwbGF0Zm9ybSBsb2dpYyByZWdhcmRpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAKaW5kZXggZGIzNjM0MDE3MmU3ZWI2NGQwZGY2NTIyMWUwOTdmMzI4NGM5OWFmOS4uYzVkYjcx
NjVlNjU5NjIwZmVkNWU0NmRhZTdlZmM3NjI0Yzg5MGE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAg
LTM3OCw3ICszNzgsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hp
bGRyZW4oKSBjb25zdAogICAgIAogICAgIC8vIEVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBoYXZl
IGNoaWxkcmVuCiAgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgewotICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkltYWdlOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQb3BVcEJ1dHRvbjoKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpDaGVja0JveDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggNTZjM2NkMzMxNzIwZjM2N2EyNjFmMGY0MGUy
YWE1ZTQ4ODExYmQ1ZS4uNDZjZTg3NmE2ZWMzOTZiZjk5NjAxZmY0MWFhNWYzNzA4NmRlMDY4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgKQEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29s
IGlzQWNjZXNzaWJpbGl0eVNjcm9sbGJhcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5
U1ZHUm9vdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0Fj
Y2Vzc2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVRhYmxlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCA5ODIzMDZiNTQ4MmQy
MmMxZjBjNjg2NjhhZDg2ZGNiYWFmMmU1NDhhLi5kMTk3ODQyYzI5YWM1OGIwZDc1M2M1OGRiM2U1
MmVkMDY4MGNkMTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtNzkxLDYgKzc5MSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXdJbnN0
YW5jZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQoKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVRhYmxlSW5zdGFuY2UoKSBj
b25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IGFlNWMzZDkxNWQwZWQ1
MTRiNjIyOGM3OGQxOGE5YTM2NDMwZTE1NjguLjQxZWQyYzBhYzVhYTEwOTAxNjI1MzllMzc5ZjFl
NmNjYzQ2ZTRlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0xMjU5LDYgKzEy
NTksMTIgQEAgYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojppc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3
SW5zdGFuY2UoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBBWElzb2xhdGVk
T2JqZWN0Ojppc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEFYSXNvbGF0ZWRPYmplY3Q6Omlz
QWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCmluZGV4IDBhZDgwMDBjNGZiMjU4MGE2ZDg4ZjEyNzkx
ZWNlZmUyYWY1NDgwZTYuLmFjMzhkNjA4OTRiMjFhMTRjNDVkMmE5ZjNlOGQ1ODliNTQ2MDA3MWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTQ2Niw2ICs0NjYsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIoKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIGlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXdJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlz
QWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzQWNjZXNz
aWJpbGl0eVNWR0VsZW1lbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJp
bGl0eVRhYmxlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426105</attachid>
            <date>2021-04-15 08:11:56 -0700</date>
            <delta_ts>2021-04-15 15:55:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210415111155.patch</filename>
            <type>text/plain</type>
            <size>25223</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJjMzYzNWI0ZGQ2MTM2
MTcxYWVkNTE5MzZlMzY4YTVmMGQzYTVhMi4uNDFlYjkzODdhZGRhZmQ5YWRlN2ZkZTgzMDcxZTky
Zjk1MzJhYWNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA0LTE1ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVsaW1pbmFy
eSBhY2Nlc3NpYmlsaXR5IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDI4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
QVhJbWFnZTo6QVhJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6cm9sZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYSW1hZ2UuaDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU2ltcGxlSW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlRnJvbVJlbmRlcmVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4gY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9z
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tOgorICAgICAgICAoLVtXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5RWxlbWVudHNdKToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUltYWdlT3Zlcmxh
eUVsZW1lbnRzXSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppc0FY
SW1hZ2VJbnN0YW5jZSBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5oOgorCiAyMDIxLTA0LTA5ICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEJ1bXAgbGlic291
cDMgdmVyc2lvbiB0byAyLjk5LjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMzE2NTA5NjhhYzBmN2QwNGI3
YjU3ZTI1MGE5NjlkZWEyYmRkODJkMi4uZTUzYjFmNGJhZWFlNGRkOGY0Njk0YjI5NzEzM2E2YzFi
MmVkMjhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTQ0NCw2ICs0NDQsNyBAQCBNb2R1bGVzL3dlYnhy
L1hSSW5wdXRTb3VyY2VFdmVudC5jcHAgQG5vLXVuaWZ5CiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQuY3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlRXZlbnQuY3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5j
cHAgQG5vLXVuaWZ5CithY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCiBhY2Nlc3NpYmlsaXR5L0FY
TG9nZ2VyLmNwcAogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTc3MGIwODQwMjI5MjQwMjgwNWE2Mzcx
NzRkMzY5ZTZjZDM1NDE3MC4uOWE4YTc1Yzc3MjFlNDMyOTkzY2NiYTcyM2I2NzQzZWRkNzViMmM1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTQ1MDMsNiArMTQ1MDMsOCBAQAogCQlCRUE4MDdDNzBGNzE0QTAzMDA1MjQxOTkg
LyogU2VsZWN0aW9uUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxl
Y3Rpb25SZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFRjI5RUU5MTcxNURE
MDkwMEM0QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCRUYyOUVFQTE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFYSW1h
Z2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQVhJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMDQwMEM3RTI2MUNCM0RCMDBBRjQ0RkEgLyogQVhJbWFnZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBWEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzA0NkUx
QUIxMjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxpemVkU3RyaW5ncy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMwNDkzRUI3MjQ0Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBWExvZ2dlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMDc4Mzc2MDIzREYyNTNFMDBDOUM1QzggLyogQVhJc29sYXRl
ZE9iamVjdE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFYSXNvbGF0ZWRPYmplY3RNYWMu
bW07IHBhdGggPSBtYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5MjgzLDYgKzE5Mjg1LDggQEAKIAkJCQlBOTFDOUZDMDFCNjU5QTY3MDBB
RkZENTQgLyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNwcCAqLywKIAkJCQlBOTFDOUZDMTFCNjU5
QTY3MDBBRkZENTQgLyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmggKi8sCiAJCQkJQTlFRTQ0OEMy
MTBGQzlBRDAwQjZFQUU2IC8qIEFyaWFBdHRyaWJ1dGVzLmlkbCAqLywKKwkJCQlDMDQwMEM3RTI2
MUNCM0RCMDBBRjQ0RkEgLyogQVhJbWFnZS5jcHAgKi8sCisJCQkJQzA0MDBDN0MyNjFDQjNEQjAw
QUY0NEZBIC8qIEFYSW1hZ2UuaCAqLywKIAkJCQlDMDhGMTNBMTI0NDc2NkRDMDBBQjk4OUYgLyog
QVhMb2dnZXIuY3BwICovLAogCQkJCUMwNDkzRUI3MjQ0Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dl
ci5oICovLAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENhY2hlLmNw
cCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjViMzA2OGFlYzc1YjQyMjZmMjE1OTExMmNlMGNhYzkxYjYyYTBkYjcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCkBAIC0wLDAgKzEs
NzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFYSW1hZ2UuaCIKKworI2luY2x1ZGUgIkNocm9t
ZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBWEltYWdlOjpBWEltYWdlKFJlbmRlckltYWdlKiBy
ZW5kZXJlcikKKyAgICA6IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCit7Cit9
CisKK1JlZjxBWEltYWdlPiBBWEltYWdlOjpjcmVhdGUoUmVuZGVySW1hZ2UqIHJlbmRlcmVyKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFYSW1hZ2UocmVuZGVyZXIpKTsKK30KKworQWNj
ZXNzaWJpbGl0eVJvbGUgQVhJbWFnZTo6cm9sZVZhbHVlKCkgY29uc3QKK3sKKyAgICBhdXRvIGFy
aWFSb2xlID0gYXJpYVJvbGVBdHRyaWJ1dGUoKTsKKyAgICBpZiAoYXJpYVJvbGUgIT0gQWNjZXNz
aWJpbGl0eVJvbGU6OlVua25vd24pCisgICAgICAgIHJldHVybiBhcmlhUm9sZTsKKworICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2U7Cit9CisKK0FYQ29yZU9iamVjdDo6QWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzKCkKK3sK
KyAgICBpZiAobV9pbWFnZU92ZXJsYXlIb3N0KQorICAgICAgICByZXR1cm4gY2hpbGRyZW4oKTsK
KworI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIGF1dG8qIHBhZ2UgPSB0aGlzLT5w
YWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcGFnZS0+
Y2hyb21lKCkuY2xpZW50KCkucmVxdWVzdEltYWdlRXh0cmFjdGlvbigqZWxlbWVudCgpLCBbdGhp
c10gKFJlZlB0cjxFbGVtZW50PiYmIGltYWdlT3ZlcmxheUhvc3QpIHsKKyAgICAgICAgbV9pbWFn
ZU92ZXJsYXlIb3N0ID0gaW1hZ2VPdmVybGF5SG9zdC5nZXQoKTsKKyAgICB9KTsKKyNlbmRpZgor
CisgICAgcmV0dXJuIGNoaWxkcmVuKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY4MDFlZWZhNjZh
NmM4NjNlZDFlODM2NGY4MjllOTZhNzdhZTJjZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVySW1h
Z2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBWEltYWdlIDogcHVibGljIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QVhJbWFn
ZT4gY3JlYXRlKFJlbmRlckltYWdlKik7CisgICAgdmlydHVhbCB+QVhJbWFnZSgpID0gZGVmYXVs
dDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBWEltYWdlKFJlbmRlckltYWdlKik7CisgICAg
Ym9vbCBpc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
KworICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBpbWFnZU92ZXJsYXlFbGVtZW50cygpIG92ZXJy
aWRlOworCisgICAgUmVmUHRyPEVsZW1lbnQ+IG1faW1hZ2VPdmVybGF5SG9zdDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUgCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQUNDRVNTSUJJ
TElUWShBWEltYWdlLCBpc0FYSW1hZ2VJbnN0YW5jZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggZWM4MTYxZTQwYTc1MTRkODE3MjE1
YmM2YzgyNmNkNzU2MGVhNDg1Ni4uZWU0ZTllYThhOGZjY2M2ZTBkNzI0MDdkNzdmZDBjYWMxNGY3
NWU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCkBAIC01MTIsNiArNTEyLDI4IEBAIGJvb2wgbm9kZUhhc1JvbGUoTm9kZSogbm9kZSwgY29u
c3QgU3RyaW5nJiByb2xlKQogICAgIHJldHVybiBTcGFjZVNwbGl0U3RyaW5nKHJvbGVWYWx1ZSwg
dHJ1ZSkuY29udGFpbnMocm9sZSk7CiB9CiAKK3N0YXRpYyBib29sIGlzU2ltcGxlSW1hZ2UoY29u
c3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK3sKKyAgICBpZiAoIWlzPFJlbmRlckltYWdlPihy
ZW5kZXJlcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEV4Y2x1ZGUgSW1hZ2VC
dXR0b25zIGJlY2F1c2UgdGhleSBhcmUgdHJlYXRlZCBhcyBidXR0b25zLCBub3QgYXMgaW1hZ2Vz
LgorICAgIGF1dG8qIG5vZGUgPSByZW5kZXJlci5ub2RlKCk7CisgICAgaWYgKGlzPEhUTUxJbnB1
dEVsZW1lbnQ+KG5vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJbWFnZU1h
cHMgYXJlIG5vdCBzaW1wbGUgaW1hZ2VzLgorICAgIGlmIChkb3duY2FzdDxSZW5kZXJJbWFnZT4o
cmVuZGVyZXIpLmltYWdlTWFwKCkKKyAgICAgICAgfHwgKGlzPEhUTUxJbWFnZUVsZW1lbnQ+KG5v
ZGUpICYmIGRvd25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+KG5vZGUpLT5oYXNBdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKHVzZW1hcEF0dHIpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgLy8gRXhjbHVkZSB2aWRlbyBhbmQgYXVkaW8gZWxlbWVudHMuCisgICAgaWYgKGlzPEhU
TUxNZWRpYUVsZW1lbnQ+KG5vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwogc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9t
UmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKICAgICAvLyBGSVhNRTogSG93IGNv
dWxkIHJlbmRlcmVyLT5ub2RlKCkgZXZlciBub3QgYmUgYW4gRWxlbWVudD8KQEAgLTU1MSw2ICs1
NzMsOSBAQCBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJl
cihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIGlmIChpczxTVkdFbGVtZW50Pihub2RlKSkK
ICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50OjpjcmVhdGUocmVuZGVyZXIp
OwogCisgICAgaWYgKGlzU2ltcGxlSW1hZ2UoKnJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIEFY
SW1hZ2U6OmNyZWF0ZShkb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKTsKKwogI2lmIEVO
QUJMRShNQVRITUwpCiAgICAgLy8gVGhlIG1mZW5jZWQgZWxlbWVudCBjcmVhdGVzIGFub255bW91
cyBSZW5kZXJNYXRoTUxPcGVyYXRvcnMgd2hpY2ggc2hvdWxkIGJlIHRyZWF0ZWQKICAgICAvLyBh
cyBNYXRoTUwgZWxlbWVudHMgYW5kIGFzc2lnbmVkIHRoZSBNYXRoRWxlbWVudFJvbGUgc28gdGhh
dCBwbGF0Zm9ybSBsb2dpYyByZWdhcmRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZGIzNjM0MDE3
MmU3ZWI2NGQwZGY2NTIyMWUwOTdmMzI4NGM5OWFmOS4uYzVkYjcxNjVlNjU5NjIwZmVkNWU0NmRh
ZTdlZmM3NjI0Yzg5MGE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTM3OCw3ICszNzgsNiBAQCBi
b29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdAogICAg
IAogICAgIC8vIEVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBoYXZlIGNoaWxkcmVuCiAgICAgc3dp
dGNoIChyb2xlVmFsdWUoKSkgewotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlOgog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpQb3BVcEJ1dHRvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVja0Jv
eDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgKaW5kZXggNTZjM2NkMzMxNzIwZjM2N2EyNjFmMGY0MGUyYWE1ZTQ4ODExYmQ1ZS4uYWI4
Y2EzY2JhMGFhNzc2NWExMzIyZmZkOTE4NTJmZjA0NTBhMmU0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTkzLDYgKzkz
LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNj
cm9sbGJhcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0Fj
Y2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQorICAgIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVt
ZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzQWNjZXNz
aWJpbGl0eVRhYmxlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQpA
QCAtNDAwLDYgKzQwMSw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgYnJhaWxsZUxhYmVsKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6YXJpYV9icmFpbGxl
bGFiZWxBdHRyKTsgfQogICAgIFN0cmluZyBicmFpbGxlUm9sZURlc2NyaXB0aW9uKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6YXJpYV9icmFpbGxlcm9s
ZWRlc2NyaXB0aW9uQXR0cik7IH0KICAgICBTdHJpbmcgZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9u
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGltYWdl
T3ZlcmxheUVsZW1lbnRzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9CiAKICAgICAvLyBBYmJy
ZXZpYXRpb25zCiAgICAgU3RyaW5nIGV4cGFuZGVkVGV4dFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gU3RyaW5nKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggOTgyMzA2YjU0
ODJkMjJjMWYwYzY4NjY4YWQ4NmRjYmFhZjJlNTQ4YS4uOWE5MzhhNmRiYmZjZmM5YWU0ZTM5Yzll
NWIxMTliNmY4MzhkYTNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTc5MSw2ICs3OTEs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFy
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3
SW5zdGFuY2UoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQVhJbWFnZUluc3RhbmNl
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50KCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUluc3RhbmNl
KCkgY29uc3QgPSAwOwpAQCAtMTAxNCw2ICsxMDE1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
U3RyaW5nIGJyYWlsbGVMYWJlbCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBicmFp
bGxlUm9sZURlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGVtYmVk
ZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBpbWFnZU92ZXJsYXlFbGVtZW50cygpID0gMDsKIAogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0FSSUFPd25zKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBp
c0FjdGl2ZURlc2NlbmRhbnRPZkZvY3VzZWRDb250YWluZXIoKSBjb25zdCA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCmluZGV4IDg1ZTIwNmFmMzM2Yjc0MmFiMDMx
MjRhNmQwNjYxZDE5NjkwNTA0YmIuLmQ2NTBiYTQ0M2JjNDhhMDM3MmI1NGNjODIxNjQ1Y2Q3YjU3
MzNkZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCkBAIC02OSw2
ICs2OSw4IEBAIGVudW0gewogLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5TGFiZWw7CiAtIChO
U1N0cmluZyAqKWFjY2Vzc2liaWxpdHlWYWx1ZTsKIC0gKEJPT0wpaXNBY2Nlc3NpYmlsaXR5RWxl
bWVudDsKKy8vIEl0IGlzIG1vcmUgZWZmaWNpZW50IGZvciBjbGllbnRzIHRvIHVzZSBhY2Nlc3Np
YmlsaXR5RWxlbWVudHMgdGhhbiBpdGVyYXRlIG9uIGluZGV4IHVzaW5nIGFjY2Vzc2liaWxpdHlF
bGVtZW50Q291bnQgYW5kIGFjY2Vzc2liaWxpdHlFbGVtZW50QXRJbmRleC4KKy0gKE5TQXJyYXkg
KilhY2Nlc3NpYmlsaXR5RWxlbWVudHM7CiAtIChOU0ludGVnZXIpYWNjZXNzaWJpbGl0eUVsZW1l
bnRDb3VudDsKIC0gKGlkKWFjY2Vzc2liaWxpdHlFbGVtZW50QXRJbmRleDooTlNJbnRlZ2VyKWlu
ZGV4OwogLSAoTlNJbnRlZ2VyKWluZGV4T2ZBY2Nlc3NpYmlsaXR5RWxlbWVudDooaWQpZWxlbWVu
dDsKQEAgLTQyOSw2ICs0MzEsMzAgQEAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
KiBBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IoQWNjZXNzaWJpbGl0eU8KICAgICAgICAg
Y2FjaGUtPnN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiB9CiAKKy8vIEl0
IGlzIG1vcmUgZWZmaWNpZW50IGZvciBjbGllbnRzIHRvIHVzZSBhY2Nlc3NpYmlsaXR5RWxlbWVu
dHMgdGhhbiBpdGVyYXRlIG9uIGluZGV4IHVzaW5nIGFjY2Vzc2liaWxpdHlFbGVtZW50Q291bnQg
YW5kIGFjY2Vzc2liaWxpdHlFbGVtZW50QXRJbmRleC4KKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmls
aXR5RWxlbWVudHMKK3sKKyAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxd
KQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgaWYgKFtzZWxmIGlzQXR0YWNobWVudF0pIHsK
KyAgICAgICAgaWYgKGlkIGF0dGFjaG1lbnRWaWV3ID0gW3NlbGYgYXR0YWNobWVudFZpZXddKQor
ICAgICAgICAgICAgcmV0dXJuIFthdHRhY2htZW50VmlldyBhY2Nlc3NpYmlsaXR5RWxlbWVudHNd
OworICAgIH0KKworICAgIGF1dG8gYXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxs
b2NdIGluaXRdKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxkIDogc2VsZi5heEJhY2tpbmdP
YmplY3QtPmNoaWxkcmVuKCkpIHsKKyAgICAgICAgYXV0byogd3JhcHBlciA9IGNoaWxkLT53cmFw
cGVyKCk7CisgICAgICAgIGlmIChjaGlsZC0+aXNBdHRhY2htZW50KCkpIHsKKyAgICAgICAgICAg
IGlmIChpZCBhdHRhY2htZW50VmlldyA9IFt3cmFwcGVyIGF0dGFjaG1lbnRWaWV3XSkKKyAgICAg
ICAgICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OmF0dGFjaG1lbnRWaWV3XTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OndyYXBwZXJdOworICAgIH0KKworICAg
IHJldHVybiBhcnJheS5hdXRvcmVsZWFzZSgpOworfQorCiAtIChOU0ludGVnZXIpYWNjZXNzaWJp
bGl0eUVsZW1lbnRDb3VudAogewogICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5
Q2FsbF0pCkBAIC0xODI5LDYgKzE4NTUsMTUgQEAgc3RhdGljIHZvaWQgYXBwZW5kU3RyaW5nVG9S
ZXN1bHQoTlNNdXRhYmxlU3RyaW5nICpyZXN1bHQsIE5TU3RyaW5nICpzdHJpbmcpCiAgICAgcmV0
dXJuIHNlbGYuYXhCYWNraW5nT2JqZWN0LT5lbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKTsKIH0K
IAorLSAoTlNBcnJheSAqKWFjY2Vzc2liaWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50cworeworICAg
IGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCisgICAgICAgIHJldHVybiBu
aWw7CisKKyAgICBhdXRvIGltYWdlT3ZlcmxheUVsZW1lbnRzID0gc2VsZi5heEJhY2tpbmdPYmpl
Y3QtPmltYWdlT3ZlcmxheUVsZW1lbnRzKCk7CisgICAgcmV0dXJuIGFjY2Vzc2libGVFbGVtZW50
c0Zvck9iamVjdHMoaW1hZ2VPdmVybGF5RWxlbWVudHMpOworfQorCiAtIChOU1N0cmluZyAqKWFj
Y2Vzc2liaWxpdHlMaW5rUmVsYXRpb25zaGlwVHlwZQogewogICAgIGlmICghW3NlbGYgX3ByZXBh
cmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IGFl
NWMzZDkxNWQwZWQ1MTRiNjIyOGM3OGQxOGE5YTM2NDMwZTE1NjguLjQxZWQyYzBhYzVhYTEwOTAx
NjI1MzllMzc5ZjFlNmNjYzQ2ZTRlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBA
IC0xMjU5LDYgKzEyNTksMTIgQEAgYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojppc0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9v
bCBBWElzb2xhdGVkT2JqZWN0Ojppc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0Cit7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEFYSXNvbGF0
ZWRPYmplY3Q6OmlzQWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSBjb25zdAogewogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCmluZGV4IDBhZDgwMDBjNGZiMjU4
MGE2ZDg4ZjEyNzkxZWNlZmUyYWY1NDgwZTYuLmI3ZGU1YTBlNmI2MmQzNzkxY2QxZDU4ZDA4OWQ0
YWE2N2YwOTRkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTI3Myw2ICsyNzMsNyBA
QCBwcml2YXRlOgogICAgIFN0cmluZyBicmFpbGxlTGFiZWwoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6QnJhaWxsZUxhYmVsKTsg
fQogICAgIFN0cmluZyBicmFpbGxlUm9sZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkJyYWlsbGVSb2xlRGVz
Y3JpcHRpb24pOyB9CiAgICAgU3RyaW5nIGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpF
bWJlZGRlZEltYWdlRGVzY3JpcHRpb24pOyB9CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVj
dG9yIGltYWdlT3ZlcmxheUVsZW1lbnRzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9CiAKICAg
ICBTdHJpbmcgY29tcHV0ZWRSb2xlU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3Ry
aW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkNvbXB1dGVkUm9sZVN0cmluZyk7IH0K
ICAgICBib29sIGlzVmFsdWVBdXRvZmlsbGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9v
bEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc1ZhbHVlQXV0b2ZpbGxlZCk7IH0KQEAg
LTQ2Niw2ICs0NjcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxi
YXIoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXdJ
bnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBj
b25zdCBvdmVycmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSBjb25zdCBv
dmVycmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVRhYmxlSW5zdGFuY2UoKSBjb25zdCBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBhYjgyZDQ5M2I3NGZmNzFjZGZmMmMzMjY0MDdiOTFmNmIxMzZkZjc3Li40MTczYjdkMWZhZDNj
NDcxOWYwZTAzZmMxYjBmNWJhMjFiMGVjODZhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDQtMTUgIEFuZHJl
cyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgorCisgICAgICAgIFByZWxpbWluYXJ5
IGFjY2Vzc2liaWxpdHkgd29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI0MjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpj
aGlsZHJlbiBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50SU9TLm1tOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGls
ZHJlbiBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmltYWdl
T3ZlcmxheUVsZW1lbnRzIGNvbnN0KToKKwogMjAyMS0wNC0wOCAgSmlld2VuIFRhbiAgPGppZXdl
bl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFBDTTogV3JpdGUgbW9yZSBibGluZGVkIHNlY3Jl
dCB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKaW5kZXggOTdhMWMyYjk1Y2Zk
NWZlMmIyZmVjNzg3MGE2MjE4ZDZlNGMyZGI0Ny4uNjc0YTgwZTJjMmNjMDQwZTYwODViYTM3NDU1
MDI0NDU4NTQ5ODg2OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC0xMjcs
NiArMTI3LDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpuZXh0U2VudGVuY2VFbmRUZXh0TWFya2UKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJldmlvdXNTZW50ZW5jZVN0YXJ0
VGV4dE1hcmtlckZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKSB7IHJldHVy
biBudWxscHRyOyB9CiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6bWlzc3BlbGxpbmdUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXJSYW5nZSosIGJvb2wpIHsgcmV0dXJuIG51bGxwdHI7IH0KIHZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpIHsgfQorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogSlNWYWx1ZVJlZiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXRhaWxzRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiB7
IH07IH0KIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZXJyb3JNZXNzYWdlRWxl
bWVudHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCB7
IHJldHVybiBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4IGNhYzYx
ODI2ZWJhZjgyZTM2ZTZmNzk4OTU3NjdlNDM3MmNkNWI4OTUuLmZiZjU2ZjE3ZDNlOGZlYjA3MmM4
NTY5MTQ2ZWNhMzU5NDViMjA2NWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCkBAIC04
Myw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZG9tSWRl
bnRpZmllcigpIGNvbnN0OwogCiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGVs
ZW1lbnRBdFBvaW50KGludCB4LCBpbnQgeSk7CisgICAgSlNWYWx1ZVJlZiBjaGlsZHJlbigpIGNv
bnN0OwogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBjaGlsZEF0SW5kZXgodW5z
aWduZWQpOwogICAgIHVuc2lnbmVkIGluZGV4T2ZDaGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Kik7CiAgICAgaW50IGNoaWxkcmVuQ291bnQoKTsKQEAgLTE5Niw3ICsxOTcsOCBAQCBwdWJsaWM6
CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHVybCgpOwogICAgIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBjbGFzc0xpc3QoKSBjb25zdDsKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKCkgY29uc3Q7Ci0gICAgCisgICAgSlNWYWx1ZVJl
ZiBpbWFnZU92ZXJsYXlFbGVtZW50cygpIGNvbnN0OworCiAgICAgLy8gQ1NTMy1zcGVlY2ggcHJv
cGVydGllcy4KICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gc3BlYWtBcygpOwogICAgIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKaW5kZXggMjYy
NjVhNWM4NTBmMjQxYzljYTA5NWFiZTFkODJhMmVlNmVkY2E5Yi4uNzkyNzliZTJjODhmNThlZDYz
OGRjZTBhMjcxYThkMmUxNjZhNjJjZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaWRsCkBAIC0xMTAsNiArMTEwLDcgQEAKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGFyaWFEcm9wRWZmZWN0czsKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGNsYXNzTGlzdDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGVt
YmVkZGVkSW1hZ2VEZXNjcmlwdGlvbjsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgb2JqZWN0IGlt
YWdlT3ZlcmxheUVsZW1lbnRzOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeDsKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyB5OwpAQCAtMTE4LDYgKzExOSw3IEBACiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGxvbmcgY2xpY2tQb2ludFg7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGxvbmcgY2xpY2tQb2ludFk7CiAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgb2JqZWN0IGNoaWxk
cmVuOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGNoaWxkcmVuQ291bnQ7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGxvbmcgc2VsZWN0ZWRDaGlsZHJlbkNvdW50OwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIHJvd0NvdW50OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0KaW5kZXggNjkwMDI4ZGI2MGFhNWYwZmI1NTE5ZDI1MjAxNjE2MTc3YTZjOTUx
NS4uMDViNzc4ZDRkYTY1MWZmOWNhMWMxNmE4ZWY2NTc4ZTk1YjUwYjYzNiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudElPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCkBAIC0xMDIsNiArMTAyLDcgQEAgdHlw
ZWRlZiB2b2lkICgqQVhQb3N0ZWROb3RpZmljYXRpb25DYWxsYmFjaykoaWQgZWxlbWVudCwgTlNT
dHJpbmcqIG5vdGlmaWNhdGlvbiwKIC0gKGlkKV9hY2Nlc3NpYmlsaXR5TGFuZG1hcmtBbmNlc3Rv
cjsKIC0gKGlkKV9hY2Nlc3NpYmlsaXR5TGlzdEFuY2VzdG9yOwogLSAoaWQpX2FjY2Vzc2liaWxp
dHlQaG90b0Rlc2NyaXB0aW9uOworLSAoTlNBcnJheSAqKWFjY2Vzc2liaWxpdHlJbWFnZU92ZXJs
YXlFbGVtZW50czsKIAogLy8gVGV4dE1hcmtlciByZWxhdGVkCiAtIChOU0FycmF5ICopdGV4dE1h
cmtlclJhbmdlOwpAQCAtMjE1LDYgKzIxNiwxMSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmdldERvY3VtZW50TGlua3MoVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZQog
ewogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbWFrZUpTQXJyYXkobWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4+KFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUVsZW1lbnRzXSkpOworfQor
CiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYgZWxlbWVudFZlY3RvcikKIHsKICAgICBOU0ludGVn
ZXIgY2hpbGRDb3VudCA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUVsZW1lbnRDb3VudF07CkBA
IC0xMTAxLDYgKzExMDcsMTEgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnMKICAgICByZXR1cm4g
Y29uY2F0ZW5hdGVBdHRyaWJ1dGVBbmRWYWx1ZShAIkFYRW1iZWRkZWRJbWFnZURlc2NyaXB0aW9u
IiwgW21fZWxlbWVudCBfYWNjZXNzaWJpbGl0eVBob3RvRGVzY3JpcHRpb25dKTsKIH0KIAorSlNW
YWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbWFnZU92ZXJsYXlFbGVtZW50cygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+PihbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlJbWFnZU92ZXJsYXlFbGVt
ZW50c10pKTsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426147</attachid>
            <date>2021-04-15 15:55:38 -0700</date>
            <delta_ts>2021-04-15 18:56:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210415185537.patch</filename>
            <type>text/plain</type>
            <size>30411</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJjMzYzNWI0ZGQ2MTM2
MTcxYWVkNTE5MzZlMzY4YTVmMGQzYTVhMi4uM2RjNDM3MzE3ZDc0MDZlMmE4NzMwNmY4MGFmYTVi
YjllN2ZkYTgxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA0LTE1ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVsaW1pbmFy
eSBhY2Nlc3NpYmlsaXR5IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDI4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
QVhJbWFnZTo6QVhJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6cm9sZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYSW1hZ2UuaDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU2ltcGxlSW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlRnJvbVJlbmRlcmVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4gY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9z
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tOgorICAgICAgICAoLVtXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5RWxlbWVudHNdKToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUltYWdlT3Zlcmxh
eUVsZW1lbnRzXSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppc0FY
SW1hZ2VJbnN0YW5jZSBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkRdKToK
KyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUF0
dHJpYnV0ZVZhbHVlOl0pOgorCiAyMDIxLTA0LTA5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEJ1bXAgbGlic291cDMgdmVy
c2lvbiB0byAyLjk5LjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMzE2NTA5NjhhYzBmN2QwNGI3YjU3ZTI1
MGE5NjlkZWEyYmRkODJkMi4uZTUzYjFmNGJhZWFlNGRkOGY0Njk0YjI5NzEzM2E2YzFiMmVkMjhm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTQ0NCw2ICs0NDQsNyBAQCBNb2R1bGVzL3dlYnhyL1hSSW5w
dXRTb3VyY2VFdmVudC5jcHAgQG5vLXVuaWZ5CiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2Vz
Q2hhbmdlRXZlbnQuY3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNl
RXZlbnQuY3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHAgQG5v
LXVuaWZ5CithY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCiBhY2Nlc3NpYmlsaXR5L0FYTG9nZ2Vy
LmNwcAogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5QVJJQUdyaWQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTc3MGIwODQwMjI5MjQwMjgwNWE2MzcxNzRkMzY5
ZTZjZDM1NDE3MC4uOWE4YTc1Yzc3MjFlNDMyOTkzY2NiYTcyM2I2NzQzZWRkNzViMmM1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTQ1MDMsNiArMTQ1MDMsOCBAQAogCQlCRUE4MDdDNzBGNzE0QTAzMDA1MjQxOTkgLyogU2Vs
ZWN0aW9uUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3Rpb25S
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFRjI5RUU5MTcxNUREMDkwMEM0
QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBdWRpb1RyYWNrUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
RUYyOUVFQTE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFYSW1hZ2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQVhJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MDQwMEM3RTI2MUNCM0RCMDBBRjQ0RkEgLyogQVhJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBWEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzA0NkUxQUIxMjA4
QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxpemVkU3RyaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUMwNDkzRUI3MjQ0Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBWExvZ2dlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDMDc4Mzc2MDIzREYyNTNFMDBDOUM1QzggLyogQVhJc29sYXRlZE9iamVj
dE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFYSXNvbGF0ZWRPYmplY3RNYWMubW07IHBh
dGggPSBtYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE5MjgzLDYgKzE5Mjg1LDggQEAKIAkJCQlBOTFDOUZDMDFCNjU5QTY3MDBBRkZENTQg
LyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNwcCAqLywKIAkJCQlBOTFDOUZDMTFCNjU5QTY3MDBB
RkZENTQgLyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmggKi8sCiAJCQkJQTlFRTQ0OEMyMTBGQzlB
RDAwQjZFQUU2IC8qIEFyaWFBdHRyaWJ1dGVzLmlkbCAqLywKKwkJCQlDMDQwMEM3RTI2MUNCM0RC
MDBBRjQ0RkEgLyogQVhJbWFnZS5jcHAgKi8sCisJCQkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZB
IC8qIEFYSW1hZ2UuaCAqLywKIAkJCQlDMDhGMTNBMTI0NDc2NkRDMDBBQjk4OUYgLyogQVhMb2dn
ZXIuY3BwICovLAogCQkJCUMwNDkzRUI3MjQ0Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICov
LAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViMzA2
OGFlYzc1YjQyMjZmMjE1OTExMmNlMGNhYzkxYjYyYTBkYjcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCkBAIC0wLDAgKzEsNzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkFYSW1hZ2UuaCIKKworI2luY2x1ZGUgIkNocm9tZS5oIgor
I2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitBWEltYWdlOjpBWEltYWdlKFJlbmRlckltYWdlKiByZW5kZXJl
cikKKyAgICA6IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCit7Cit9CisKK1Jl
ZjxBWEltYWdlPiBBWEltYWdlOjpjcmVhdGUoUmVuZGVySW1hZ2UqIHJlbmRlcmVyKQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEFYSW1hZ2UocmVuZGVyZXIpKTsKK30KKworQWNjZXNzaWJp
bGl0eVJvbGUgQVhJbWFnZTo6cm9sZVZhbHVlKCkgY29uc3QKK3sKKyAgICBhdXRvIGFyaWFSb2xl
ID0gYXJpYVJvbGVBdHRyaWJ1dGUoKTsKKyAgICBpZiAoYXJpYVJvbGUgIT0gQWNjZXNzaWJpbGl0
eVJvbGU6OlVua25vd24pCisgICAgICAgIHJldHVybiBhcmlhUm9sZTsKKworICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2U7Cit9CisKK0FYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIEFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzKCkKK3sKKyAgICBp
ZiAobV9pbWFnZU92ZXJsYXlIb3N0KQorICAgICAgICByZXR1cm4gY2hpbGRyZW4oKTsKKworI2lm
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCk7
CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcGFnZS0+Y2hyb21l
KCkuY2xpZW50KCkucmVxdWVzdEltYWdlRXh0cmFjdGlvbigqZWxlbWVudCgpLCBbdGhpc10gKFJl
ZlB0cjxFbGVtZW50PiYmIGltYWdlT3ZlcmxheUhvc3QpIHsKKyAgICAgICAgbV9pbWFnZU92ZXJs
YXlIb3N0ID0gaW1hZ2VPdmVybGF5SG9zdC5nZXQoKTsKKyAgICB9KTsKKyNlbmRpZgorCisgICAg
cmV0dXJuIGNoaWxkcmVuKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY4MDFlZWZhNjZhNmM4NjNl
ZDFlODM2NGY4MjllOTZhNzdhZTJjZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBWEltYWdlIDogcHVibGljIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QVhJbWFnZT4gY3Jl
YXRlKFJlbmRlckltYWdlKik7CisgICAgdmlydHVhbCB+QVhJbWFnZSgpID0gZGVmYXVsdDsKKwor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBBWEltYWdlKFJlbmRlckltYWdlKik7CisgICAgYm9vbCBp
c0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKworICAg
IEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIEFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciBpbWFnZU92ZXJsYXlFbGVtZW50cygpIG92ZXJyaWRlOwor
CisgICAgUmVmUHRyPEVsZW1lbnQ+IG1faW1hZ2VPdmVybGF5SG9zdDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUgCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQUNDRVNTSUJJTElUWShB
WEltYWdlLCBpc0FYSW1hZ2VJbnN0YW5jZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggZWM4MTYxZTQwYTc1MTRkODE3MjE1YmM2Yzgy
NmNkNzU2MGVhNDg1Ni4uZWU0ZTllYThhOGZjY2M2ZTBkNzI0MDdkNzdmZDBjYWMxNGY3NWU1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBA
IC01MTIsNiArNTEyLDI4IEBAIGJvb2wgbm9kZUhhc1JvbGUoTm9kZSogbm9kZSwgY29uc3QgU3Ry
aW5nJiByb2xlKQogICAgIHJldHVybiBTcGFjZVNwbGl0U3RyaW5nKHJvbGVWYWx1ZSwgdHJ1ZSku
Y29udGFpbnMocm9sZSk7CiB9CiAKK3N0YXRpYyBib29sIGlzU2ltcGxlSW1hZ2UoY29uc3QgUmVu
ZGVyT2JqZWN0JiByZW5kZXJlcikKK3sKKyAgICBpZiAoIWlzPFJlbmRlckltYWdlPihyZW5kZXJl
cikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEV4Y2x1ZGUgSW1hZ2VCdXR0b25z
IGJlY2F1c2UgdGhleSBhcmUgdHJlYXRlZCBhcyBidXR0b25zLCBub3QgYXMgaW1hZ2VzLgorICAg
IGF1dG8qIG5vZGUgPSByZW5kZXJlci5ub2RlKCk7CisgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1l
bnQ+KG5vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJbWFnZU1hcHMgYXJl
IG5vdCBzaW1wbGUgaW1hZ2VzLgorICAgIGlmIChkb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVy
ZXIpLmltYWdlTWFwKCkKKyAgICAgICAgfHwgKGlzPEhUTUxJbWFnZUVsZW1lbnQ+KG5vZGUpICYm
IGRvd25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+KG5vZGUpLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKHVzZW1hcEF0dHIpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
Ly8gRXhjbHVkZSB2aWRlbyBhbmQgYXVkaW8gZWxlbWVudHMuCisgICAgaWYgKGlzPEhUTUxNZWRp
YUVsZW1lbnQ+KG5vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tUmVuZGVy
ZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKICAgICAvLyBGSVhNRTogSG93IGNvdWxkIHJl
bmRlcmVyLT5ub2RlKCkgZXZlciBub3QgYmUgYW4gRWxlbWVudD8KQEAgLTU1MSw2ICs1NzMsOSBA
QCBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIGlmIChpczxTVkdFbGVtZW50Pihub2RlKSkKICAgICAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50OjpjcmVhdGUocmVuZGVyZXIpOwogCisg
ICAgaWYgKGlzU2ltcGxlSW1hZ2UoKnJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIEFYSW1hZ2U6
OmNyZWF0ZShkb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKTsKKwogI2lmIEVOQUJMRShN
QVRITUwpCiAgICAgLy8gVGhlIG1mZW5jZWQgZWxlbWVudCBjcmVhdGVzIGFub255bW91cyBSZW5k
ZXJNYXRoTUxPcGVyYXRvcnMgd2hpY2ggc2hvdWxkIGJlIHRyZWF0ZWQKICAgICAvLyBhcyBNYXRo
TUwgZWxlbWVudHMgYW5kIGFzc2lnbmVkIHRoZSBNYXRoRWxlbWVudFJvbGUgc28gdGhhdCBwbGF0
Zm9ybSBsb2dpYyByZWdhcmRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZGIzNjM0MDE3MmU3ZWI2
NGQwZGY2NTIyMWUwOTdmMzI4NGM5OWFmOS4uYzVkYjcxNjVlNjU5NjIwZmVkNWU0NmRhZTdlZmM3
NjI0Yzg5MGE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTM3OCw3ICszNzgsNiBAQCBib29sIEFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdAogICAgIAogICAg
IC8vIEVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBoYXZlIGNoaWxkcmVuCiAgICAgc3dpdGNoIChy
b2xlVmFsdWUoKSkgewotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlOgogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpQb3BVcEJ1dHRvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVja0JveDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
aW5kZXggNTZjM2NkMzMxNzIwZjM2N2EyNjFmMGY0MGUyYWE1ZTQ4ODExYmQ1ZS4uYWI4Y2EzY2Jh
MGFhNzc2NWExMzIyZmZkOTE4NTJmZjA0NTBhMmU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTkzLDYgKzkzLDcgQEAg
cHVibGljOgogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNjcm9sbGJh
cigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQorICAgIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzQWNjZXNzaWJpbGl0
eVRhYmxlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQpAQCAtNDAw
LDYgKzQwMSw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgYnJhaWxsZUxhYmVsKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6YXJpYV9icmFpbGxlbGFiZWxB
dHRyKTsgfQogICAgIFN0cmluZyBicmFpbGxlUm9sZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6YXJpYV9icmFpbGxlcm9sZWRlc2Ny
aXB0aW9uQXR0cik7IH0KICAgICBTdHJpbmcgZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGltYWdlT3Zlcmxh
eUVsZW1lbnRzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9CiAKICAgICAvLyBBYmJyZXZpYXRp
b25zCiAgICAgU3RyaW5nIGV4cGFuZGVkVGV4dFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gU3RyaW5nKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggOTgyMzA2YjU0ODJkMjJj
MWYwYzY4NjY4YWQ4NmRjYmFhZjJlNTQ4YS4uOWE5MzhhNmRiYmZjZmM5YWU0ZTM5YzllNWIxMTli
NmY4MzhkYTNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTc5MSw2ICs3OTEsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5zdGFu
Y2UoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUluc3RhbmNlKCkgY29u
c3QgPSAwOwpAQCAtMTAxNCw2ICsxMDE1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5n
IGJyYWlsbGVMYWJlbCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBicmFpbGxlUm9s
ZURlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGVtYmVkZGVkSW1h
Z2VEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciBpbWFnZU92ZXJsYXlFbGVtZW50cygpID0gMDsKIAogICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0FSSUFPd25zKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2
ZURlc2NlbmRhbnRPZkZvY3VzZWRDb250YWluZXIoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCmluZGV4IDg1ZTIwNmFmMzM2Yjc0MmFiMDMxMjRhNmQw
NjYxZDE5NjkwNTA0YmIuLmQ2NTBiYTQ0M2JjNDhhMDM3MmI1NGNjODIxNjQ1Y2Q3YjU3MzNkZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCkBAIC02OSw2ICs2OSw4
IEBAIGVudW0gewogLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5TGFiZWw7CiAtIChOU1N0cmlu
ZyAqKWFjY2Vzc2liaWxpdHlWYWx1ZTsKIC0gKEJPT0wpaXNBY2Nlc3NpYmlsaXR5RWxlbWVudDsK
Ky8vIEl0IGlzIG1vcmUgZWZmaWNpZW50IGZvciBjbGllbnRzIHRvIHVzZSBhY2Nlc3NpYmlsaXR5
RWxlbWVudHMgdGhhbiBpdGVyYXRlIG9uIGluZGV4IHVzaW5nIGFjY2Vzc2liaWxpdHlFbGVtZW50
Q291bnQgYW5kIGFjY2Vzc2liaWxpdHlFbGVtZW50QXRJbmRleC4KKy0gKE5TQXJyYXkgKilhY2Nl
c3NpYmlsaXR5RWxlbWVudHM7CiAtIChOU0ludGVnZXIpYWNjZXNzaWJpbGl0eUVsZW1lbnRDb3Vu
dDsKIC0gKGlkKWFjY2Vzc2liaWxpdHlFbGVtZW50QXRJbmRleDooTlNJbnRlZ2VyKWluZGV4Owog
LSAoTlNJbnRlZ2VyKWluZGV4T2ZBY2Nlc3NpYmlsaXR5RWxlbWVudDooaWQpZWxlbWVudDsKQEAg
LTQyOSw2ICs0MzEsMzAgQEAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyKiBBY2Nl
c3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IoQWNjZXNzaWJpbGl0eU8KICAgICAgICAgY2FjaGUt
PnN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiB9CiAKKy8vIEl0IGlzIG1v
cmUgZWZmaWNpZW50IGZvciBjbGllbnRzIHRvIHVzZSBhY2Nlc3NpYmlsaXR5RWxlbWVudHMgdGhh
biBpdGVyYXRlIG9uIGluZGV4IHVzaW5nIGFjY2Vzc2liaWxpdHlFbGVtZW50Q291bnQgYW5kIGFj
Y2Vzc2liaWxpdHlFbGVtZW50QXRJbmRleC4KKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5RWxl
bWVudHMKK3sKKyAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQorICAg
ICAgICByZXR1cm4gbmlsOworCisgICAgaWYgKFtzZWxmIGlzQXR0YWNobWVudF0pIHsKKyAgICAg
ICAgaWYgKGlkIGF0dGFjaG1lbnRWaWV3ID0gW3NlbGYgYXR0YWNobWVudFZpZXddKQorICAgICAg
ICAgICAgcmV0dXJuIFthdHRhY2htZW50VmlldyBhY2Nlc3NpYmlsaXR5RWxlbWVudHNdOworICAg
IH0KKworICAgIGF1dG8gYXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRdKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxkIDogc2VsZi5heEJhY2tpbmdPYmplY3Qt
PmNoaWxkcmVuKCkpIHsKKyAgICAgICAgYXV0byogd3JhcHBlciA9IGNoaWxkLT53cmFwcGVyKCk7
CisgICAgICAgIGlmIChjaGlsZC0+aXNBdHRhY2htZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChp
ZCBhdHRhY2htZW50VmlldyA9IFt3cmFwcGVyIGF0dGFjaG1lbnRWaWV3XSkKKyAgICAgICAgICAg
ICAgICBbYXJyYXkgYWRkT2JqZWN0OmF0dGFjaG1lbnRWaWV3XTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OndyYXBwZXJdOworICAgIH0KKworICAgIHJldHVy
biBhcnJheS5hdXRvcmVsZWFzZSgpOworfQorCiAtIChOU0ludGVnZXIpYWNjZXNzaWJpbGl0eUVs
ZW1lbnRDb3VudAogewogICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0p
CkBAIC0xODI5LDYgKzE4NTUsMTUgQEAgc3RhdGljIHZvaWQgYXBwZW5kU3RyaW5nVG9SZXN1bHQo
TlNNdXRhYmxlU3RyaW5nICpyZXN1bHQsIE5TU3RyaW5nICpzdHJpbmcpCiAgICAgcmV0dXJuIHNl
bGYuYXhCYWNraW5nT2JqZWN0LT5lbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKTsKIH0KIAorLSAo
TlNBcnJheSAqKWFjY2Vzc2liaWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50cworeworICAgIGlmICgh
W3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCisgICAgICAgIHJldHVybiBuaWw7CisK
KyAgICBhdXRvIGltYWdlT3ZlcmxheUVsZW1lbnRzID0gc2VsZi5heEJhY2tpbmdPYmplY3QtPmlt
YWdlT3ZlcmxheUVsZW1lbnRzKCk7CisgICAgcmV0dXJuIGFjY2Vzc2libGVFbGVtZW50c0Zvck9i
amVjdHMoaW1hZ2VPdmVybGF5RWxlbWVudHMpOworfQorCiAtIChOU1N0cmluZyAqKWFjY2Vzc2li
aWxpdHlMaW5rUmVsYXRpb25zaGlwVHlwZQogewogICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nl
c3NpYmlsaXR5Q2FsbF0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IGFlNWMzZDkx
NWQwZWQ1MTRiNjIyOGM3OGQxOGE5YTM2NDMwZTE1NjguLjQxZWQyYzBhYzVhYTEwOTAxNjI1Mzll
Mzc5ZjFlNmNjYzQ2ZTRlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0xMjU5
LDYgKzEyNTksMTIgQEAgYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojppc0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3SW5zdGFuY2UoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBBWElz
b2xhdGVkT2JqZWN0Ojppc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEFYSXNvbGF0ZWRPYmpl
Y3Q6OmlzQWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCmluZGV4IDBhZDgwMDBjNGZiMjU4MGE2ZDg4
ZjEyNzkxZWNlZmUyYWY1NDgwZTYuLmI3ZGU1YTBlNmI2MmQzNzkxY2QxZDU4ZDA4OWQ0YWE2N2Yw
OTRkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTI3Myw2ICsyNzMsNyBAQCBwcml2
YXRlOgogICAgIFN0cmluZyBicmFpbGxlTGFiZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBz
dHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6QnJhaWxsZUxhYmVsKTsgfQogICAg
IFN0cmluZyBicmFpbGxlUm9sZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
c3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkJyYWlsbGVSb2xlRGVzY3JpcHRp
b24pOyB9CiAgICAgU3RyaW5nIGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpFbWJlZGRl
ZEltYWdlRGVzY3JpcHRpb24pOyB9CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGlt
YWdlT3ZlcmxheUVsZW1lbnRzKCkgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9CiAKICAgICBTdHJp
bmcgY29tcHV0ZWRSb2xlU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0
cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkNvbXB1dGVkUm9sZVN0cmluZyk7IH0KICAgICBi
b29sIGlzVmFsdWVBdXRvZmlsbGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJp
YnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc1ZhbHVlQXV0b2ZpbGxlZCk7IH0KQEAgLTQ2Niw2
ICs0NjcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIoKSBj
b25zdCBvdmVycmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXdJbnN0YW5j
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBjb25zdCBv
dmVycmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQoKSBjb25zdCBvdmVycmlkZTsK
ICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVRhYmxlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggNzUyNzQxNWJhMzkz
NGQ1N2FlMTM1N2IzYWVkMzFiMTdmNGM4ZjczYS4uMjg1Y2QwOTRlNDcyM2I3MzQxMDkxZWYwY2U1
YjJhMDljYzQ2ODc2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0K
QEAgLTU0Nyw2ICs1NDcsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eUVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbkF0dHJpYnV0ZSBAIkFYRW1iZWRk
ZWRJbWFnZURlc2NyaXB0aW9uIgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5SW1h
Z2VPdmVybGF5RWxlbWVudHNBdHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5SW1hZ2VP
dmVybGF5RWxlbWVudHNBdHRyaWJ1dGUgQCJBWEltYWdlT3ZlcmxheUVsZW1lbnRzIgorI2VuZGlm
CisKIGV4dGVybiAiQyIgQVhVSUVsZW1lbnRSZWYgTlNBY2Nlc3NpYmlsaXR5Q3JlYXRlQVhVSUVs
ZW1lbnRSZWYoaWQgZWxlbWVudCk7CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlcgpAQCAtMTU2NCw4ICsxNTY4LDkgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBM
RU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJp
bGl0eVZlcnRpY2FsU2Nyb2xsQmFyQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJh
eTsKICAgICB9KCkpOwotICAgIHN0YXRpYyBhdXRvIGltYWdlQXR0cnMgPSAgbWFrZU5ldmVyRGVz
dHJveWVkKFtdIHsKKyAgICBzdGF0aWMgYXV0byBpbWFnZUF0dHJzID0gbWFrZU5ldmVyRGVzdHJv
eWVkKFtdIHsKICAgICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRXaXRoQXJyYXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOworICAgICAg
ICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50
c0F0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0
eUVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkg
YWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVVSTEF0dHJpYnV0ZV07CiAgICAgICAgIHJldHVybiB0
ZW1wQXJyYXk7CkBAIC0yMzcwLDYgKzIzNzUsMTAgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1F
TlRBVElPTlNfRU5ECiAgICAgICAgIHJldHVybiBbc2VsZiBwb3NpdGlvbl07CiAgICAgaWYgKFth
dHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlQYXRoQXR0cmlidXRl
XSkKICAgICAgICAgcmV0dXJuIFtzZWxmIHBhdGhdOworCisgICAgaWYgKFthdHRyaWJ1dGVOYW1l
IGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50c0F0dHJp
YnV0ZV0pCisgICAgICAgIHJldHVybiBjb252ZXJ0VG9OU0FycmF5KGJhY2tpbmdPYmplY3QtPmlt
YWdlT3ZlcmxheUVsZW1lbnRzKCkpOworCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxU
b1N0cmluZzpOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3JpcHRpb25BdHRyaWJ1dGVd
KQogICAgICAgICByZXR1cm4gYmFja2luZ09iamVjdC0+ZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9u
KCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBhYjgyZDQ5M2I3NGZmNzFjZGZmMmMzMjY0MDdiOTFmNmIxMzZkZjc3Li5iNWQ1M2RmMWFmMDhj
ZDg3MTZkZWYxZmFlZDkzYjdlNzNkZmVjMmVkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDQtMTUgIEFuZHJl
cyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgorCisgICAgICAgIFByZWxpbWluYXJ5
IGFjY2Vzc2liaWxpdHkgd29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI0MjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpj
aGlsZHJlbiBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50SU9TLm1tOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGls
ZHJlbiBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmltYWdl
T3ZlcmxheUVsZW1lbnRzIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOgorICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbiBjb25zdCk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmltYWdlT3ZlcmxheUVsZW1lbnRzIGNvbnN0KToKKwog
MjAyMS0wNC0wOCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFBDTTogV3JpdGUgbW9yZSBibGluZGVkIHNlY3JldCB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHAKaW5kZXggOTdhMWMyYjk1Y2ZkNWZlMmIyZmVjNzg3MGE2MjE4ZDZlNGMyZGI0
Ny4uNjc0YTgwZTJjMmNjMDQwZTYwODViYTM3NDU1MDI0NDU4NTQ5ODg2OSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC0xMjcsNiArMTI3LDcgQEAgUmVmUHRyPEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0U2VudGVuY2VFbmRU
ZXh0TWFya2UKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cHJldmlvdXNTZW50ZW5jZVN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIoQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXIqKSB7IHJldHVybiBudWxscHRyOyB9CiBSZWZQdHI8QWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWlzc3BlbGxp
bmdUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSosIGJvb2wpIHsg
cmV0dXJuIG51bGxwdHI7IH0KIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygp
IHsgfQorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbigpIGNvbnN0
IHsgcmV0dXJuIHsgfTsgfQogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXRh
aWxzRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIEpTVmFsdWVSZWYgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6ZXJyb3JNZXNzYWdlRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiB7IH07
IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbWJl
ZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5oCmluZGV4IGNhYzYxODI2ZWJhZjgyZTM2ZTZmNzk4OTU3NjdlNDM3
MmNkNWI4OTUuLmZiZjU2ZjE3ZDNlOGZlYjA3MmM4NTY5MTQ2ZWNhMzU5NDViMjA2NWMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCkBAIC04Myw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZG9tSWRlbnRpZmllcigpIGNvbnN0OwogCiAgICAgUmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGVsZW1lbnRBdFBvaW50KGludCB4LCBpbnQgeSk7
CisgICAgSlNWYWx1ZVJlZiBjaGlsZHJlbigpIGNvbnN0OwogICAgIFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBjaGlsZEF0SW5kZXgodW5zaWduZWQpOwogICAgIHVuc2lnbmVkIGluZGV4
T2ZDaGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Kik7CiAgICAgaW50IGNoaWxkcmVuQ291bnQo
KTsKQEAgLTE5Niw3ICsxOTcsOCBAQCBwdWJsaWM6CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IHVybCgpOwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjbGFzc0xpc3QoKSBjb25z
dDsKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9u
KCkgY29uc3Q7Ci0gICAgCisgICAgSlNWYWx1ZVJlZiBpbWFnZU92ZXJsYXlFbGVtZW50cygpIGNv
bnN0OworCiAgICAgLy8gQ1NTMy1zcGVlY2ggcHJvcGVydGllcy4KICAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gc3BlYWtBcygpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmlk
bCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5pZGwKaW5kZXggMjYyNjVhNWM4NTBmMjQxYzljYTA5NWFiZTFkODJh
MmVlNmVkY2E5Yi4uNzkyNzliZTJjODhmNThlZDYzOGRjZTBhMjcxYThkMmUxNjZhNjJjZSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCkBAIC0xMTAs
NiArMTEwLDcgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFyaWFEcm9wRWZm
ZWN0czsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNsYXNzTGlzdDsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbjsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgb2JqZWN0IGltYWdlT3ZlcmxheUVsZW1lbnRzOwogCiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyB5
OwpAQCAtMTE4LDYgKzExOSw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgY2xpY2tQ
b2ludFg7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgY2xpY2tQb2ludFk7CiAKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgb2JqZWN0IGNoaWxkcmVuOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBsb25nIGNoaWxkcmVuQ291bnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgc2VsZWN0
ZWRDaGlsZHJlbkNvdW50OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHJvd0NvdW50Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KaW5kZXggNjkwMDI4ZGI2
MGFhNWYwZmI1NTE5ZDI1MjAxNjE2MTc3YTZjOTUxNS4uMDViNzc4ZDRkYTY1MWZmOWNhMWMxNmE4
ZWY2NTc4ZTk1YjUwYjYzNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
SU9TLm1tCkBAIC0xMDIsNiArMTAyLDcgQEAgdHlwZWRlZiB2b2lkICgqQVhQb3N0ZWROb3RpZmlj
YXRpb25DYWxsYmFjaykoaWQgZWxlbWVudCwgTlNTdHJpbmcqIG5vdGlmaWNhdGlvbiwKIC0gKGlk
KV9hY2Nlc3NpYmlsaXR5TGFuZG1hcmtBbmNlc3RvcjsKIC0gKGlkKV9hY2Nlc3NpYmlsaXR5TGlz
dEFuY2VzdG9yOwogLSAoaWQpX2FjY2Vzc2liaWxpdHlQaG90b0Rlc2NyaXB0aW9uOworLSAoTlNB
cnJheSAqKWFjY2Vzc2liaWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50czsKIAogLy8gVGV4dE1hcmtl
ciByZWxhdGVkCiAtIChOU0FycmF5ICopdGV4dE1hcmtlclJhbmdlOwpAQCAtMjE1LDYgKzIxNiwx
MSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldERvY3VtZW50TGlua3MoVmVjdG9y
PFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZQogewogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbWFrZUpTQXJy
YXkobWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KFttX2VsZW1lbnQg
YWNjZXNzaWJpbGl0eUVsZW1lbnRzXSkpOworfQorCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYg
ZWxlbWVudFZlY3RvcikKIHsKICAgICBOU0ludGVnZXIgY2hpbGRDb3VudCA9IFttX2VsZW1lbnQg
YWNjZXNzaWJpbGl0eUVsZW1lbnRDb3VudF07CkBAIC0xMTAxLDYgKzExMDcsMTEgQEAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVtYmVkZGVkSW1hZ2VE
ZXNjcmlwdGlvbigpIGNvbnMKICAgICByZXR1cm4gY29uY2F0ZW5hdGVBdHRyaWJ1dGVBbmRWYWx1
ZShAIkFYRW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uIiwgW21fZWxlbWVudCBfYWNjZXNzaWJpbGl0
eVBob3RvRGVzY3JpcHRpb25dKTsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjppbWFnZU92ZXJsYXlFbGVtZW50cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1ha2VKU0Fy
cmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihbbV9lbGVtZW50
IGFjY2Vzc2liaWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50c10pKTsKK30KKwogYm9vbCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggZGRkOGQ1
ODAwYmY4OTNhMjY4ZWZlNzJmNjcyNDg3MGIzZjgxMmViMS4uYzEyOTBkMWQ2YzhkNmQ5ODQ4ZmEz
YmRkYjY1NmY4MmFlNDdlY2YwMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tCkBAIC0zNDksNiArMzQ5LDE1IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Z2V0VUlFbGVtZW50c1dpdGhBdHRyaWJ1dGUoSlNTdHJpbmdSZWYgYXR0cmlidXRlLCBWCiAg
ICAgICAgIGVsZW1lbnRzID0gbWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dD4+KHZhbHVlKTsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGls
ZHJlbigpIGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgcmV0dXJu
IG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pihh
dHRyaWJ1dGVWYWx1ZShtX2VsZW1lbnQuZ2V0KCksIE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0
cmlidXRlKSkpOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKKworICAgIHJldHVybiBudWxs
cHRyOworfQorCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldENoaWxkcmVuKFZlY3Rv
cjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYgZWxlbWVudFZlY3RvcikKIHsKICAg
ICBlbGVtZW50VmVjdG9yID0gbWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dD4+KGF0dHJpYnV0ZVZhbHVlKG1fZWxlbWVudC5nZXQoKSwgTlNBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5BdHRyaWJ1dGUpKTsKQEAgLTE2NzQsNiArMTY4MywxNSBAQCBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKCkg
Y29ucwogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmltYWdlT3ZlcmxheUVsZW1lbnRzKCkgY29uc3QKK3sKKyAgICBCRUdJTl9BWF9P
QkpDX0VYQ0VQVElPTlMKKyAgICByZXR1cm4gbWFrZUpTQXJyYXkobWFrZVZlY3RvcjxSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KGF0dHJpYnV0ZVZhbHVlKG1fZWxlbWVudC5nZXQoKSwg
QCJBWEltYWdlT3ZlcmxheUVsZW1lbnRzIikpKTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05T
CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0lnbm9yZWQoKSBjb25zdAogewogICAgIEJPT0wgcmVzdWx0ID0gTk87CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjAy
MDdkOTJkNzAyYjNjMWM3YjhhYzFmNDFmNThjNjE0YTk3NjYyMS4uMDEwMTdiZTIxZDU5ZDg1ODkx
M2I1ZGU1NmU4OTMzMGExYTEyOGUyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA0LTE1
ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVs
aW1pbmFyeSBhY2Nlc3NpYmlsaXR5IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNDI4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pbWFnZS1saW5rLWV4cGVjdGVkLnR4
dDoKKwogMjAyMS0wNC0wOSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dTdHJlYW1lcl0gZmFzdC9jYW52YXMvY2FudmFzLWNyZWF0ZVBhdHRlcm4t
dmlkZW8tbG9hZGluZy5odG1sIGlzIGZhaWxpbmcgc2luY2UgcjIxODE3MApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1saW5rLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2UtbGluay1leHBlY3RlZC50eHQKaW5kZXggYjczMTg2
ZDMzMmQyMGQ2MjBlZDMyYWZhNjgyYjdlMGNiZDFlNDAwOS4uMDRkOGE2N2ZlZDUwZjgwYmEzNzBl
YjQyNWVlNTg5YzFiM2QwNDA4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9pbWFnZS1saW5rLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2ltYWdlLWxpbmstZXhwZWN0ZWQudHh0CkBAIC02NCw2ICs2NCw3IEBAIEFYRE9NQ2xhc3NMaXN0
OiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhGb2N1c2FibGVBbmNlc3RvcjogPEFYSW1hZ2U+CiBBWEVk
aXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhIaWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwp
CitBWEltYWdlT3ZlcmxheUVsZW1lbnRzOiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhFbWJlZGRlZElt
YWdlRGVzY3JpcHRpb246CiBBWFVSTDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yZXNvdXJj
ZXMvY2FrZS5wbmcKIEFYRWxlbWVudEJ1c3k6IDAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426170</attachid>
            <date>2021-04-15 18:56:16 -0700</date>
            <delta_ts>2021-05-19 13:04:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210415215615.patch</filename>
            <type>text/plain</type>
            <size>34851</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJjMzYzNWI0ZGQ2MTM2
MTcxYWVkNTE5MzZlMzY4YTVmMGQzYTVhMi4uNzdlN2RmZGVlYmE4ODNhY2Y1NGY5Y2FjMGJkMWFi
Y2IxMDVjNjMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA0LTE1ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVsaW1pbmFy
eSBhY2Nlc3NpYmlsaXR5IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDI4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvaW1hZ2Utb3ZlcmxheS1lbGVtZW50cy5o
dG1sCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlOjpBWEltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSW1hZ2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlOjpyb2xl
VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxl
bWVudHMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFnZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aXNTaW1wbGVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIpOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbiBj
b25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJ
T1MubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2li
aWxpdHlFbGVtZW50c10pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ciBhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVudHNdKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmlzQVhJbWFnZUluc3RhbmNlIGNvbnN0KToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06
CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIEFMTE9XX0RFUFJFQ0FU
RURfSU1QTEVNRU5UQVRJT05TX0VORF0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICogcGxh
dGZvcm0vTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5l
bHNJZk5lY2Vzc2FyeSk6CisKIDIwMjEtMDQtMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gQnVtcCBsaWJzb3VwMyB2ZXJz
aW9uIHRvIDIuOTkuMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAzMTY1MDk2OGFjMGY3ZDA0YjdiNTdlMjUw
YTk2OWRlYTJiZGQ4MmQyLi5lNTNiMWY0YmFlYWU0ZGQ4ZjQ2OTRiMjk3MTMzYTZjMWIyZWQyOGY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtNDQ0LDYgKzQ0NCw3IEBAIE1vZHVsZXMvd2VieHIvWFJJbnB1
dFNvdXJjZUV2ZW50LmNwcCBAbm8tdW5pZnkKIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudC5jcHAgQG5vLXVuaWZ5CiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VF
dmVudC5jcHAgQG5vLXVuaWZ5CiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmNwcCBAbm8t
dW5pZnkKK2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKIGFjY2Vzc2liaWxpdHkvQVhMb2dnZXIu
Y3BwCiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlBUklBR3JpZC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNzcwYjA4NDAyMjkyNDAyODA1YTYzNzE3NGQzNjll
NmNkMzU0MTcwLi45YThhNzVjNzcyMWU0MzI5OTNjY2JhNzIzYjY3NDNlZGQ3NWIyYzUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xNDUwMyw2ICsxNDUwMyw4IEBACiAJCUJFQTgwN0M3MEY3MTRBMDMwMDUyNDE5OSAvKiBTZWxl
Y3Rpb25SZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlbGVjdGlvblJl
Y3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkVGMjlFRTkxNzE1REQwOTAwQzRC
NEM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvVHJhY2tQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJF
RjI5RUVBMTcxNUREMDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDMDQwMEM3QzI2MUNCM0RCMDBBRjQ0RkEgLyogQVhJbWFnZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBWEltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMw
NDAwQzdFMjYxQ0IzREIwMEFGNDRGQSAvKiBBWEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEFYSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMDQ2RTFBQjEyMDhB
OUZFMDBCQTJDRjcgLyogTG9jYWxpemVkU3RyaW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMb2NhbGl6ZWRTdHJpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzA0OTNFQjcyNDQ2OTlFNDAwOUFBQzgwIC8qIEFYTG9nZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFYTG9nZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUMwNzgzNzYwMjNERjI1M0UwMEM5QzVDOCAvKiBBWElzb2xhdGVkT2JqZWN0
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQVhJc29sYXRlZE9iamVjdE1hYy5tbTsgcGF0
aCA9IG1hYy9BWElzb2xhdGVkT2JqZWN0TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTkyODMsNiArMTkyODUsOCBAQAogCQkJCUE5MUM5RkMwMUI2NTlBNjcwMEFGRkQ1NCAv
KiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0uY3BwICovLAogCQkJCUE5MUM5RkMxMUI2NTlBNjcwMEFG
RkQ1NCAvKiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0uaCAqLywKIAkJCQlBOUVFNDQ4QzIxMEZDOUFE
MDBCNkVBRTYgLyogQXJpYUF0dHJpYnV0ZXMuaWRsICovLAorCQkJCUMwNDAwQzdFMjYxQ0IzREIw
MEFGNDRGQSAvKiBBWEltYWdlLmNwcCAqLywKKwkJCQlDMDQwMEM3QzI2MUNCM0RCMDBBRjQ0RkEg
LyogQVhJbWFnZS5oICovLAogCQkJCUMwOEYxM0ExMjQ0NzY2REMwMEFCOTg5RiAvKiBBWExvZ2dl
ci5jcHAgKi8sCiAJCQkJQzA0OTNFQjcyNDQ2OTlFNDAwOUFBQzgwIC8qIEFYTG9nZ2VyLmggKi8s
CiAJCQkJMjk4MUNBQUYxMzE4MjJFQzAwRDEyRjJBIC8qIEFYT2JqZWN0Q2FjaGUuY3BwICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFkZTUw
ZGY1NDM4ZjVkMmUxMzU4OTFkMzgwYWEzN2Y2YmYzZjBiOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKQEAgLTAsMCArMSw3OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMu
ICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiQVhJbWFnZS5oIgorCisjaW5jbHVkZSAiQVhMb2dnZXIuaCIK
KyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQVhJbWFnZTo6QVhJbWFn
ZShSZW5kZXJJbWFnZSogcmVuZGVyZXIpCisgICAgOiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
KHJlbmRlcmVyKQoreworfQorCitSZWY8QVhJbWFnZT4gQVhJbWFnZTo6Y3JlYXRlKFJlbmRlcklt
YWdlKiByZW5kZXJlcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBWEltYWdlKHJlbmRl
cmVyKSk7Cit9CisKK0FjY2Vzc2liaWxpdHlSb2xlIEFYSW1hZ2U6OnJvbGVWYWx1ZSgpIGNvbnN0
Cit7CisgICAgYXV0byBhcmlhUm9sZSA9IGFyaWFSb2xlQXR0cmlidXRlKCk7CisgICAgaWYgKGFy
aWFSb2xlICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3duKQorICAgICAgICByZXR1cm4gYXJp
YVJvbGU7CisKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlOworfQorCitBWENv
cmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBBWEltYWdlOjppbWFnZU92ZXJs
YXlFbGVtZW50cygpCit7CisgICAgQVhUUkFDRSgiQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVu
dHMiKTsKKworICAgIGlmIChtX2ltYWdlT3ZlcmxheUhvc3QpCisgICAgICAgIHJldHVybiBjaGls
ZHJlbigpOworCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgYXV0byogcGFnZSA9
IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKCplbGVtZW50
KCksIFt0aGlzXSAoUmVmUHRyPEVsZW1lbnQ+JiYgaW1hZ2VPdmVybGF5SG9zdCkgeworICAgICAg
ICBBWExPRyhpbWFnZU92ZXJsYXlIb3N0ID8gImltYWdlT3ZlcmxheUhvc3Qgbm90IG51bGwiIDog
IjB4MCIpOworICAgICAgICBtX2ltYWdlT3ZlcmxheUhvc3QgPSBpbWFnZU92ZXJsYXlIb3N0Lmdl
dCgpOworICAgIH0pOworI2VuZGlmCisKKyAgICByZXR1cm4geyB9OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVmODAxZWVmYTY2YTZjODYzZWQxZTgzNjRmODI5ZTk2YTc3YWUyY2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaApAQCAtMCwwICsx
LDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisg
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIgorI2lu
Y2x1ZGUgIlJlbmRlckltYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQVhJ
bWFnZSA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPEFYSW1hZ2U+IGNyZWF0ZShSZW5kZXJJbWFnZSopOworICAgIHZpcnR1YWwgfkFY
SW1hZ2UoKSA9IGRlZmF1bHQ7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQVhJbWFnZShSZW5k
ZXJJbWFnZSopOworICAgIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CisKKyAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25z
dCBvdmVycmlkZTsKKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgaW1hZ2VPdmVybGF5
RWxlbWVudHMoKSBvdmVycmlkZTsKKworICAgIFJlZlB0cjxFbGVtZW50PiBtX2ltYWdlT3Zlcmxh
eUhvc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlIAorCitTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0FDQ0VTU0lCSUxJVFkoQVhJbWFnZSwgaXNBWEltYWdlSW5zdGFuY2UoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGVjODE2
MWU0MGE3NTE0ZDgxNzIxNWJjNmM4MjZjZDc1NjBlYTQ4NTYuLmVlNGU5ZWE4YThmY2NjNmUwZDcy
NDA3ZDc3ZmQwY2FjMTRmNzVlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNTEyLDYgKzUxMiwyOCBAQCBib29sIG5vZGVIYXNSb2xl
KE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgcm9sZSkKICAgICByZXR1cm4gU3BhY2VTcGxpdFN0
cmluZyhyb2xlVmFsdWUsIHRydWUpLmNvbnRhaW5zKHJvbGUpOwogfQogCitzdGF0aWMgYm9vbCBp
c1NpbXBsZUltYWdlKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCit7CisgICAgaWYgKCFp
czxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAv
LyBFeGNsdWRlIEltYWdlQnV0dG9ucyBiZWNhdXNlIHRoZXkgYXJlIHRyZWF0ZWQgYXMgYnV0dG9u
cywgbm90IGFzIGltYWdlcy4KKyAgICBhdXRvKiBub2RlID0gcmVuZGVyZXIubm9kZSgpOworICAg
IGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgLy8gSW1hZ2VNYXBzIGFyZSBub3Qgc2ltcGxlIGltYWdlcy4KKyAgICBpZiAoZG93bmNh
c3Q8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKS5pbWFnZU1hcCgpCisgICAgICAgIHx8IChpczxIVE1M
SW1hZ2VFbGVtZW50Pihub2RlKSAmJiBkb3duY2FzdDxIVE1MSW1hZ2VFbGVtZW50Pihub2RlKS0+
aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih1c2VtYXBBdHRyKSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIC8vIEV4Y2x1ZGUgdmlkZW8gYW5kIGF1ZGlvIGVsZW1lbnRz
LgorICAgIGlmIChpczxIVE1MTWVkaWFFbGVtZW50Pihub2RlKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU9i
amVjdD4gY3JlYXRlRnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7CiAgICAg
Ly8gRklYTUU6IEhvdyBjb3VsZCByZW5kZXJlci0+bm9kZSgpIGV2ZXIgbm90IGJlIGFuIEVsZW1l
bnQ/CkBAIC01NTEsNiArNTczLDkgQEAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBj
cmVhdGVGcm9tUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBpZiAoaXM8U1ZH
RWxlbWVudD4obm9kZSkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudDo6
Y3JlYXRlKHJlbmRlcmVyKTsKIAorICAgIGlmIChpc1NpbXBsZUltYWdlKCpyZW5kZXJlcikpCisg
ICAgICAgIHJldHVybiBBWEltYWdlOjpjcmVhdGUoZG93bmNhc3Q8UmVuZGVySW1hZ2U+KHJlbmRl
cmVyKSk7CisKICNpZiBFTkFCTEUoTUFUSE1MKQogICAgIC8vIFRoZSBtZmVuY2VkIGVsZW1lbnQg
Y3JlYXRlcyBhbm9ueW1vdXMgUmVuZGVyTWF0aE1MT3BlcmF0b3JzIHdoaWNoIHNob3VsZCBiZSB0
cmVhdGVkCiAgICAgLy8gYXMgTWF0aE1MIGVsZW1lbnRzIGFuZCBhc3NpZ25lZCB0aGUgTWF0aEVs
ZW1lbnRSb2xlIHNvIHRoYXQgcGxhdGZvcm0gbG9naWMgcmVnYXJkaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
CmluZGV4IGRiMzYzNDAxNzJlN2ViNjRkMGRmNjUyMjFlMDk3ZjMyODRjOTlhZjkuLmM1ZGI3MTY1
ZTY1OTYyMGZlZDVlNDZkYWU3ZWZjNzYyNGM4OTBhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0z
NzgsNyArMzc4LDYgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuSGF2ZUNoaWxk
cmVuKCkgY29uc3QKICAgICAKICAgICAvLyBFbGVtZW50cyB0aGF0IHNob3VsZCBub3QgaGF2ZSBj
aGlsZHJlbgogICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKLSAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpJbWFnZToKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCdXR0b246CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UG9wVXBCdXR0b246CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6Q2hlY2tCb3g6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDU2YzNjZDMzMTcyMGYzNjdhMjYxZjBmNDBlMmFh
NWU0ODgxMWJkNWUuLmFiOGNhM2NiYTBhYTc3NjVhMTMyMmZmZDkxODUyZmYwNDUwYTJlNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oCkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBp
c0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNW
R1Jvb3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNBY2Nl
c3NpYmlsaXR5U1ZHRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUluc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KQEAgLTQwMCw2ICs0MDEsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGJy
YWlsbGVMYWJlbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGdldEF0dHJpYnV0ZShIVE1MTmFt
ZXM6OmFyaWFfYnJhaWxsZWxhYmVsQXR0cik7IH0KICAgICBTdHJpbmcgYnJhaWxsZVJvbGVEZXNj
cmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGdldEF0dHJpYnV0ZShIVE1MTmFtZXM6
OmFyaWFfYnJhaWxsZXJvbGVkZXNjcmlwdGlvbkF0dHIpOyB9CiAgICAgU3RyaW5nIGVtYmVkZGVk
SW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIEFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciBpbWFnZU92ZXJsYXlFbGVtZW50cygpIG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsg
fQogCiAgICAgLy8gQWJicmV2aWF0aW9ucwogICAgIFN0cmluZyBleHBhbmRlZFRleHRWYWx1ZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFN0cmluZygpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
CmluZGV4IDk4MjMwNmI1NDgyZDIyYzFmMGM2ODY2OGFkODZkY2JhYWYyZTU0OGEuLjlhOTM4YTZk
YmJmY2ZjOWFlNGUzOWM5ZTViMTE5YjZmODM4ZGEzYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
CkBAIC03OTEsNiArNzkxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNz
aWJpbGl0eVNjcm9sbGJhcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBp
c0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3Np
YmlsaXR5U1ZHUm9vdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmls
aXR5U1ZHRWxlbWVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmls
aXR5VGFibGVJbnN0YW5jZSgpIGNvbnN0ID0gMDsKQEAgLTEwMTQsNiArMTAxNSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFN0cmluZyBicmFpbGxlTGFiZWwoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBTdHJpbmcgYnJhaWxsZVJvbGVEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIFN0cmluZyBlbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgaW1hZ2VPdmVybGF5RWxlbWVudHMoKSA9
IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBT3ducygpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmVEZXNjZW5kYW50T2ZGb2N1c2VkQ29udGFpbmVyKCkgY29u
c3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQppbmRleCA4NWUy
MDZhZjMzNmI3NDJhYjAzMTI0YTZkMDY2MWQxOTY5MDUwNGJiLi5kNjUwYmE0NDNiYzQ4YTAzNzJi
NTRjYzgyMTY0NWNkN2I1NzMzZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
cklPUy5tbQpAQCAtNjksNiArNjksOCBAQCBlbnVtIHsKIC0gKE5TU3RyaW5nICopYWNjZXNzaWJp
bGl0eUxhYmVsOwogLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5VmFsdWU7CiAtIChCT09MKWlz
QWNjZXNzaWJpbGl0eUVsZW1lbnQ7CisvLyBJdCBpcyBtb3JlIGVmZmljaWVudCBmb3IgY2xpZW50
cyB0byB1c2UgYWNjZXNzaWJpbGl0eUVsZW1lbnRzIHRoYW4gaXRlcmF0ZSBvbiBpbmRleCB1c2lu
ZyBhY2Nlc3NpYmlsaXR5RWxlbWVudENvdW50IGFuZCBhY2Nlc3NpYmlsaXR5RWxlbWVudEF0SW5k
ZXguCistIChOU0FycmF5ICopYWNjZXNzaWJpbGl0eUVsZW1lbnRzOwogLSAoTlNJbnRlZ2VyKWFj
Y2Vzc2liaWxpdHlFbGVtZW50Q291bnQ7CiAtIChpZClhY2Nlc3NpYmlsaXR5RWxlbWVudEF0SW5k
ZXg6KE5TSW50ZWdlcilpbmRleDsKIC0gKE5TSW50ZWdlcilpbmRleE9mQWNjZXNzaWJpbGl0eUVs
ZW1lbnQ6KGlkKWVsZW1lbnQ7CkBAIC00MjksNiArNDMxLDMwIEBAIHN0YXRpYyBBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciogQWNjZXNzaWJpbGl0eVVuaWdub3JlZEFuY2VzdG9yKEFjY2Vzc2li
aWxpdHlPCiAgICAgICAgIGNhY2hlLT5zdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRl
cygpOwogfQogCisvLyBJdCBpcyBtb3JlIGVmZmljaWVudCBmb3IgY2xpZW50cyB0byB1c2UgYWNj
ZXNzaWJpbGl0eUVsZW1lbnRzIHRoYW4gaXRlcmF0ZSBvbiBpbmRleCB1c2luZyBhY2Nlc3NpYmls
aXR5RWxlbWVudENvdW50IGFuZCBhY2Nlc3NpYmlsaXR5RWxlbWVudEF0SW5kZXguCistIChOU0Fy
cmF5ICopYWNjZXNzaWJpbGl0eUVsZW1lbnRzCit7CisgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFj
Y2Vzc2liaWxpdHlDYWxsXSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGlmIChbc2VsZiBp
c0F0dGFjaG1lbnRdKSB7CisgICAgICAgIGlmIChpZCBhdHRhY2htZW50VmlldyA9IFtzZWxmIGF0
dGFjaG1lbnRWaWV3XSkKKyAgICAgICAgICAgIHJldHVybiBbYXR0YWNobWVudFZpZXcgYWNjZXNz
aWJpbGl0eUVsZW1lbnRzXTsKKyAgICB9CisKKyAgICBhdXRvIGFycmF5ID0gYWRvcHROUyhbW05T
TXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6
IHNlbGYuYXhCYWNraW5nT2JqZWN0LT5jaGlsZHJlbigpKSB7CisgICAgICAgIGF1dG8qIHdyYXBw
ZXIgPSBjaGlsZC0+d3JhcHBlcigpOworICAgICAgICBpZiAoY2hpbGQtPmlzQXR0YWNobWVudCgp
KSB7CisgICAgICAgICAgICBpZiAoaWQgYXR0YWNobWVudFZpZXcgPSBbd3JhcHBlciBhdHRhY2ht
ZW50Vmlld10pCisgICAgICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDphdHRhY2htZW50Vmll
d107CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDp3cmFwcGVy
XTsKKyAgICB9CisKKyAgICByZXR1cm4gYXJyYXkuYXV0b3JlbGVhc2UoKTsKK30KKwogLSAoTlNJ
bnRlZ2VyKWFjY2Vzc2liaWxpdHlFbGVtZW50Q291bnQKIHsKICAgICBpZiAoIVtzZWxmIF9wcmVw
YXJlQWNjZXNzaWJpbGl0eUNhbGxdKQpAQCAtMTgyOSw2ICsxODU1LDE1IEBAIHN0YXRpYyB2b2lk
IGFwcGVuZFN0cmluZ1RvUmVzdWx0KE5TTXV0YWJsZVN0cmluZyAqcmVzdWx0LCBOU1N0cmluZyAq
c3RyaW5nKQogICAgIHJldHVybiBzZWxmLmF4QmFja2luZ09iamVjdC0+ZW1iZWRkZWRJbWFnZURl
c2NyaXB0aW9uKCk7CiB9CiAKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5
RWxlbWVudHMKK3sKKyAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQor
ICAgICAgICByZXR1cm4gbmlsOworCisgICAgYXV0byBpbWFnZU92ZXJsYXlFbGVtZW50cyA9IHNl
bGYuYXhCYWNraW5nT2JqZWN0LT5pbWFnZU92ZXJsYXlFbGVtZW50cygpOworICAgIHJldHVybiBh
Y2Nlc3NpYmxlRWxlbWVudHNGb3JPYmplY3RzKGltYWdlT3ZlcmxheUVsZW1lbnRzKTsKK30KKwog
LSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5TGlua1JlbGF0aW9uc2hpcFR5cGUKIHsKICAgICBp
ZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmNwcAppbmRleCBhZTVjM2Q5MTVkMGVkNTE0YjYyMjhjNzhkMThhOWEzNjQzMGUxNTY4Li40
MWVkMmMwYWM1YWExMDkwMTYyNTM5ZTM3OWYxZTZjY2M0NmU0ZTE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcApAQCAtMTI1OSw2ICsxMjU5LDEyIEBAIGJvb2wgQVhJc29sYXRlZE9iamVj
dDo6aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29uc3QKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK2Jvb2wgQVhJc29sYXRlZE9iamVjdDo6aXNBWEltYWdlSW5zdGFuY2UoKSBj
b25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KwogYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojppc0FjY2Vzc2liaWxpdHlTVkdSb290KCkgY29uc3QK
IHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAppbmRl
eCAwYWQ4MDAwYzRmYjI1ODBhNmQ4OGYxMjc5MWVjZWZlMmFmNTQ4MGU2Li5iN2RlNWEwZTZiNjJk
Mzc5MWNkMWQ1OGQwODlkNGFhNjdmMDk0ZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCkBA
IC0yNzMsNiArMjczLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgYnJhaWxsZUxhYmVsKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6
OkJyYWlsbGVMYWJlbCk7IH0KICAgICBTdHJpbmcgYnJhaWxsZVJvbGVEZXNjcmlwdGlvbigpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
OjpCcmFpbGxlUm9sZURlc2NyaXB0aW9uKTsgfQogICAgIFN0cmluZyBlbWJlZGRlZEltYWdlRGVz
Y3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShB
WFByb3BlcnR5TmFtZTo6RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKTsgfQorICAgIEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciBpbWFnZU92ZXJsYXlFbGVtZW50cygpIG92ZXJyaWRlIHsgcmV0
dXJuIHsgfTsgfQogCiAgICAgU3RyaW5nIGNvbXB1dGVkUm9sZVN0cmluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpDb21wdXRl
ZFJvbGVTdHJpbmcpOyB9CiAgICAgYm9vbCBpc1ZhbHVlQXV0b2ZpbGxlZCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNWYWx1ZUF1
dG9maWxsZWQpOyB9CkBAIC00NjYsNiArNDY3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNBY2Nl
c3NpYmlsaXR5U2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGlzQVhJ
bWFnZUluc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlT
VkdSb290KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVt
ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUluc3Rh
bmNlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
Lm1tCmluZGV4IDc1Mjc0MTViYTM5MzRkNTdhZTEzNTdiM2FlZDMxYjE3ZjRjOGY3M2EuLjI4NWNk
MDk0ZTQ3MjNiNzM0MTA5MWVmMGNlNWIyYTA5Y2M0Njg3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC01NDcsNiArNTQ3LDEwIEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3JpcHRp
b25BdHRyaWJ1dGUgQCJBWEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiIKICNlbmRpZgogCisjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzQXR0cmlidXRlCisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzQXR0cmlidXRlIEAiQVhJbWFnZU92
ZXJsYXlFbGVtZW50cyIKKyNlbmRpZgorCiBleHRlcm4gIkMiIEFYVUlFbGVtZW50UmVmIE5TQWNj
ZXNzaWJpbGl0eUNyZWF0ZUFYVUlFbGVtZW50UmVmKGlkIGVsZW1lbnQpOwogCiBAaW1wbGVtZW50
YXRpb24gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIKQEAgLTE1NjQsOCArMTU2OCw5IEBA
IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlWZXJ0aWNhbFNjcm9sbEJhckF0dHJpYnV0ZV07CiAg
ICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpKTsKLSAgICBzdGF0aWMgYXV0byBpbWFn
ZUF0dHJzID0gIG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisgICAgc3RhdGljIGF1dG8gaW1hZ2VB
dHRycyA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CiAgICAgICAgIGF1dG8gdGVtcEFycmF5ID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0dHJpYnV0ZXMu
Z2V0KCkuZ2V0KCldKTsKKyAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmls
aXR5SW1hZ2VPdmVybGF5RWxlbWVudHNBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3JpcHRpb25BdHRyaWJ1dGVd
OwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlVUkxBdHRyaWJ1
dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwpAQCAtMjM3MCw2ICsyMzc1LDEwIEBAIEFM
TE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICByZXR1cm4gW3NlbGYg
cG9zaXRpb25dOwogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nl
c3NpYmlsaXR5UGF0aEF0dHJpYnV0ZV0pCiAgICAgICAgIHJldHVybiBbc2VsZiBwYXRoXTsKKwor
ICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5SW1h
Z2VPdmVybGF5RWxlbWVudHNBdHRyaWJ1dGVdKQorICAgICAgICByZXR1cm4gY29udmVydFRvTlNB
cnJheShiYWNraW5nT2JqZWN0LT5pbWFnZU92ZXJsYXlFbGVtZW50cygpKTsKKwogICAgIGlmIChb
YXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5RW1iZWRkZWRJbWFn
ZURlc2NyaXB0aW9uQXR0cmlidXRlXSkKICAgICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3QtPmVt
YmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2dnaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3Bw
CmluZGV4IDhjZjAxODdjNzcwMzQ4NDg4NTc2ZmRlZmVkODdmYjMzMDRjZWViOTQuLjA5YWYyZDI2
Mzc2NGQ4MmYwOWZhNDQ0ODI2YWFmM2ZkMzg1YjcwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Z2dpbmcuY3BwCkBAIC05MCw2ICs5MCw3IEBAIHZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZO
ZWNlc3NhcnkoT3B0aW9uYWw8U3RyaW5nPiBsb2dDaGFubmVsU3RyaW5nKQogCiAgICAgU3RyaW5n
IGVuYWJsZWRDaGFubmVsc1N0cmluZyA9IGxvZ0NoYW5uZWxTdHJpbmcgPyBsb2dDaGFubmVsU3Ry
aW5nLnZhbHVlKCkgOiBsb2dMZXZlbFN0cmluZygpOwogICAgIFdURkluaXRpYWxpemVMb2dDaGFu
bmVsU3RhdGVzRnJvbVN0cmluZyhsb2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50LCBlbmFibGVk
Q2hhbm5lbHNTdHJpbmcudXRmOCgpLmRhdGEoKSk7CisgICAgTG9nQWNjZXNzaWJpbGl0eS5zdGF0
ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247CiAvLyAgICBMb2dFdmVudExvb3Auc3RhdGUgPSBX
VEZMb2dDaGFubmVsU3RhdGU6Ok9uOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWI4MmQ0OTNiNzRmZjcxY2RmZjJjMzI2NDA3YjkxZjZi
MTM2ZGY3Ny4uYjVkNTNkZjFhZjA4Y2Q4NzE2ZGVmMWZhZWQ5M2I3ZTczZGZlYzJlZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDIxLTA0LTE1ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4K
KworICAgICAgICBQcmVsaW1pbmFyeSBhY2Nlc3NpYmlsaXR5IHdvcmsKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDI4MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4gY29uc3QpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbToKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4gY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjppbWFnZU92ZXJsYXlFbGVtZW50cyBjb25zdCk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dE1hYy5tbToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4g
Y29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbWFnZU92ZXJs
YXlFbGVtZW50cyBjb25zdCk6CisKIDIwMjEtMDQtMDggIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBQQ006IFdyaXRlIG1vcmUgYmxpbmRlZCBzZWNyZXQgdGVz
dHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IDk3YTFjMmI5NWNmZDVmZTJi
MmZlYzc4NzBhNjIxOGQ2ZTRjMmRiNDcuLjY3NGE4MGUyYzJjYzA0MGU2MDg1YmEzNzQ1NTAyNDQ1
ODU0OTg4NjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcApAQCAtMTI3LDYgKzEy
Nyw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6bmV4dFNlbnRlbmNlRW5kVGV4dE1hcmtlCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRN
YXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzU2VudGVuY2VTdGFydFRleHRN
YXJrZXJGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1cm4gbnVs
bHB0cjsgfQogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6Om1pc3NwZWxsaW5nVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyUmFuZ2UqLCBib29sKSB7IHJldHVybiBudWxscHRyOyB9CiB2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmRpc21pc3MoKSB7IH0KK0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiB7IH07IH0KIEpTVmFsdWVSZWYgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6ZGV0YWlsc0VsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4geyB9OyB9
CiBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVycm9yTWVzc2FnZUVsZW1lbnRz
KCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6ZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1
cm4gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCBjYWM2MTgyNmVi
YWY4MmUzNmU2Zjc5ODk1NzY3ZTQzNzJjZDViODk1Li5mYmY1NmYxN2QzZThmZWIwNzJjODU2OTE0
NmVjYTM1OTQ1YjIwNjVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtODMsNiAr
ODMsNyBAQCBwdWJsaWM6CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGRvbUlkZW50aWZp
ZXIoKSBjb25zdDsKIAogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBlbGVtZW50
QXRQb2ludChpbnQgeCwgaW50IHkpOworICAgIEpTVmFsdWVSZWYgY2hpbGRyZW4oKSBjb25zdDsK
ICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gY2hpbGRBdEluZGV4KHVuc2lnbmVk
KTsKICAgICB1bnNpZ25lZCBpbmRleE9mQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopOwog
ICAgIGludCBjaGlsZHJlbkNvdW50KCk7CkBAIC0xOTYsNyArMTk3LDggQEAgcHVibGljOgogICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiB1cmwoKTsKICAgICBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gY2xhc3NMaXN0KCkgY29uc3Q7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGVt
YmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0OwotICAgIAorICAgIEpTVmFsdWVSZWYgaW1h
Z2VPdmVybGF5RWxlbWVudHMoKSBjb25zdDsKKwogICAgIC8vIENTUzMtc3BlZWNoIHByb3BlcnRp
ZXMuCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNwZWFrQXMoKTsKICAgICAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IDI2MjY1YTVj
ODUwZjI0MWM5Y2EwOTVhYmUxZDgyYTJlZTZlZGNhOWIuLjc5Mjc5YmUyYzg4ZjU4ZWQ2MzhkY2Uw
YTI3MWE4ZDJlMTY2YTYyY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmlkbApAQCAtMTEwLDYgKzExMCw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBhcmlhRHJvcEVmZmVjdHM7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyBjbGFzc0xpc3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBlbWJlZGRl
ZEltYWdlRGVzY3JpcHRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9iamVjdCBpbWFnZU92
ZXJsYXlFbGVtZW50czsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHg7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGxvbmcgeTsKQEAgLTExOCw2ICsxMTksNyBAQAogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIGNsaWNrUG9pbnRYOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
IGNsaWNrUG9pbnRZOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9iamVjdCBjaGlsZHJlbjsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBjaGlsZHJlbkNvdW50OwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIHNlbGVjdGVkQ2hpbGRyZW5Db3VudDsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgbG9uZyByb3dDb3VudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
SU9TLm1tCmluZGV4IDY5MDAyOGRiNjBhYTVmMGZiNTUxOWQyNTIwMTYxNjE3N2E2Yzk1MTUuLjA1
Yjc3OGQ0ZGE2NTFmZjljYTFjMTZhOGVmNjU3OGU5NWI1MGI2MzYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpAQCAtMTAyLDYgKzEwMiw3IEBAIHR5cGVkZWYg
dm9pZCAoKkFYUG9zdGVkTm90aWZpY2F0aW9uQ2FsbGJhY2spKGlkIGVsZW1lbnQsIE5TU3RyaW5n
KiBub3RpZmljYXRpb24sCiAtIChpZClfYWNjZXNzaWJpbGl0eUxhbmRtYXJrQW5jZXN0b3I7CiAt
IChpZClfYWNjZXNzaWJpbGl0eUxpc3RBbmNlc3RvcjsKIC0gKGlkKV9hY2Nlc3NpYmlsaXR5UGhv
dG9EZXNjcmlwdGlvbjsKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxl
bWVudHM7CiAKIC8vIFRleHRNYXJrZXIgcmVsYXRlZAogLSAoTlNBcnJheSAqKXRleHRNYXJrZXJS
YW5nZTsKQEAgLTIxNSw2ICsyMTYsMTEgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpn
ZXREb2N1bWVudExpbmtzKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWUKIHsKIH0K
IAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+PihbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50c10pKTsKK30KKwogdm9p
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgTlNJbnRlZ2VyIGNo
aWxkQ291bnQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50Q291bnRdOwpAQCAtMTEw
MSw2ICsxMTA3LDExIEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zCiAgICAgcmV0dXJuIGNvbmNh
dGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiIsIFtt
X2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlQaG90b0Rlc2NyaXB0aW9uXSk7CiB9CiAKK0pTVmFsdWVS
ZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25zdAor
eworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Pj4oW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVudHNd
KSk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWQoKSBjb25z
dAogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tCmluZGV4IGRkZDhkNTgwMGJmODkzYTI2OGVmZTcyZjY3MjQ4NzBiM2Y4MTJlYjEu
LmMxMjkwZDFkNmM4ZDZkOTg0OGZhM2JkZGI2NTZmODJhZTQ3ZWNmMDIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMzQ5LDYgKzM0OSwxNSBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldFVJRWxlbWVudHNXaXRoQXR0cmlidXRlKEpTU3Ry
aW5nUmVmIGF0dHJpYnV0ZSwgVgogICAgICAgICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8UmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pih2YWx1ZSk7CiB9CiAKK0pTVmFsdWVSZWYgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4oKSBjb25zdAoreworICAgIEJFR0lOX0FYX09CSkNf
RVhDRVBUSU9OUworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Pj4oYXR0cmlidXRlVmFsdWUobV9lbGVtZW50LmdldCgpLCBOU0Fj
Y2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZSkpKTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJ
T05TCisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4m
IGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgZWxlbWVudFZlY3RvciA9IG1ha2VWZWN0b3I8UmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShtX2VsZW1lbnQuZ2V0KCks
IE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlKSk7CkBAIC0xNjc0LDYgKzE2ODMsMTUg
QEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVtYmVk
ZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnMKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorSlNW
YWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbWFnZU92ZXJsYXlFbGVtZW50cygpIGNv
bnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgcmV0dXJuIG1ha2VKU0Fy
cmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVW
YWx1ZShtX2VsZW1lbnQuZ2V0KCksIEAiQVhJbWFnZU92ZXJsYXlFbGVtZW50cyIpKSk7CisgICAg
RU5EX0FYX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIGJvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICBCT09MIHJl
c3VsdCA9IE5POwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDYwMjA3ZDkyZDcwMmIzYzFjN2I4YWMxZjQxZjU4YzYxNGE5NzY2
MjEuLmUwYWE5OThkYjVmN2E5YjMxN2U0NTMyNGJlZjRlMWVkNWY0OWZlZTUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMS0wNC0xNSAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUHJlbGltaW5hcnkgYWNjZXNzaWJpbGl0eSB3b3JrCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
aW1hZ2UtbGluay1leHBlY3RlZC50eHQ6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pbWFnZS1v
dmVybGF5LWVsZW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nOiBBZGRlZC4KKwogMjAyMS0wNC0w
OSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dT
dHJlYW1lcl0gZmFzdC9jYW52YXMvY2FudmFzLWNyZWF0ZVBhdHRlcm4tdmlkZW8tbG9hZGluZy5o
dG1sIGlzIGZhaWxpbmcgc2luY2UgcjIxODE3MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9pbWFnZS1saW5rLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvaW1hZ2UtbGluay1leHBlY3RlZC50eHQKaW5kZXggYjczMTg2ZDMzMmQyMGQ2MjBlZDMy
YWZhNjgyYjdlMGNiZDFlNDAwOS4uMDRkOGE2N2ZlZDUwZjgwYmEzNzBlYjQyNWVlNTg5YzFiM2Qw
NDA4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1saW5rLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdlLWxpbmstZXhw
ZWN0ZWQudHh0CkBAIC02NCw2ICs2NCw3IEBAIEFYRE9NQ2xhc3NMaXN0OiA8YXJyYXkgb2Ygc2l6
ZSAwPgogQVhGb2N1c2FibGVBbmNlc3RvcjogPEFYSW1hZ2U+CiBBWEVkaXRhYmxlQW5jZXN0b3I6
IChudWxsKQogQVhIaWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCitBWEltYWdlT3Zlcmxh
eUVsZW1lbnRzOiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhFbWJlZGRlZEltYWdlRGVzY3JpcHRpb246
CiBBWFVSTDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yZXNvdXJjZXMvY2FrZS5wbmcKIEFY
RWxlbWVudEJ1c3k6IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1h
Z2Utb3ZlcmxheS1lbGVtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2ltYWdlLW92ZXJsYXktZWxlbWVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNzhk
ODA3YTNhZjlhNGFmZGUwMGRkYTNiOGM2OGFhN2I1OTYxZmQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdlLW92ZXJsYXktZWxlbWVudHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBheEltYWdlT3ZlcmxheUVsZW1lbnRzLmxlbmd0aCBp
cyAyCitoZWxsbworCit3b3JsZAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9p
bWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lt
YWdlLW92ZXJsYXktZWxlbWVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGI4MWI0Zjk1N2M5MmU1YjI2
MWIzNjViMzUwM2FiNTc0ZjhjMWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWwKQEAgLTAsMCArMSw2NCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNz
aWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgoraW1nIHsKKyAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+CisKKzxpbWcgaWQ9ImltYWdlMSIgc3JjPSIuL3Jlc291cmNlcy9ncmVlbi00
MDB4NDAwLnBuZyI+PC9pbWc+CisKKzxzY3JpcHQ+CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICAgICAg
aW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICAgICAgaW50ZXJuYWxz
Lmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIHRleHQgOiAid29ybGQiLAorICAgICAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgIHRvcFJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICBib3R0b21S
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgICAgIGJvdHRv
bUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAgICAgICAgICAgIH0sCisgICAg
ICAgIF0pOworCisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9KTsKKworICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsK
KyAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIHZh
ciBheEltYWdlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlk
KCJpbWFnZTEiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgd2luZG93LmF4SW1hZ2VPdmVybGF5RWxlbWVudHMgPSBheEltYWdlLmlt
YWdlT3ZlcmxheUVsZW1lbnRzOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXhJbWFnZU92
ZXJsYXlFbGVtZW50cy5sZW5ndGggPT0gMjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgiYXhJbWFnZU92ZXJsYXlFbGVtZW50cy5sZW5ndGgiLCAiMiIpOwor
CisgICAgICAgICAgICAgICAgZm9yIChsZXQgYXhFbGVtZW50IG9mIGF4SW1hZ2VPdmVybGF5RWxl
bWVudHMpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHRleHRNYXJrZXJSYW5nZSA9IGF4RWxl
bWVudC50ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KGF4RWxlbWVudCk7CisgICAgICAgICAgICAg
ICAgICAgIGRlYnVnKGF4RWxlbWVudC5zdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UodGV4dE1hcmtl
clJhbmdlKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9y
ZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Jl
c291cmNlcy9ncmVlbi00MDB4NDAwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjg0OTgyNDM3MWI4NzE5OGY0
N2VjZDAzZWZjZGQwMTI1NTdhZWVhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTM0CnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEweX55VjRNS0w5ODVxRns8e2xqMTFaaHxrSH0mTTI1dzt4V0BNTihN
Kj05dwp6VWdHS04lS25nQFBndW4mWXh8cC1LcTEtOGtjYmxKe01fOHN5Yj5VbmZ4KT5iSEwpWiRN
V0g7aUJ0eWE3KD5FWVIKekZPezh2ZiUlRTJpKF5RfHQrIVZVY15NY3VTVD9kaF4+QWxwX1NBbVp3
JVVnd0VgeVdkRnE0N0tmZWoyaSsmfWB2CnoxYD1SNDQ+eT1pajNtKHRAbWV1ejNpaEJNTSZaS2El
PisocjZuY3ImXm9jIyQ0SHJgJFR3PERraWd8KDk/NzFJNwpPMSVhb2xwVVhPQGdlQ3d6OTVKQikK
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429088</attachid>
            <date>2021-05-19 13:04:09 -0700</date>
            <delta_ts>2021-06-17 16:53:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210519160408.patch</filename>
            <type>text/plain</type>
            <size>43798</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAwZDY4Y2QzNjRkMWY3
NTNjMzY2MDM2NzBjZjJlNjJjYjVmY2I5Ny4uMmVlNzRjYjMxMWFlZmNhZWM2ZGZjNzRiNjA1ODlj
NDRhZjU5OTFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA1LTE5ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVsaW1pbmFy
eSBhY2Nlc3NpYmlsaXR5IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDI4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvaW1hZ2Utb3ZlcmxheS1lbGVtZW50cy5o
dG1sCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlOjpBWEltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSW1hZ2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlOjpyb2xl
VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxl
bWVudHMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFnZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aXNTaW1wbGVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIpOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbiBj
b25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJ
T1MubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2li
aWxpdHlFbGVtZW50c10pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ciBhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVudHNdKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmlzQVhJbWFnZUluc3RhbmNlIGNvbnN0KToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06
CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIEFMTE9XX0RFUFJFQ0FU
RURfSU1QTEVNRU5UQVRJT05TX0VORF0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICogcGxh
dGZvcm0vTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5l
bHNJZk5lY2Vzc2FyeSk6CisKIDIwMjEtMDUtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBNb3ZlIG1vcmUgbG9naWMgZnJvbSBBdWRpb0Rlc3RpbmF0aW9uTm9k
ZSB0byBpdHMgc3ViY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxM2MyNDRhYWM0NDZkYzE1NWM4NDc3Nzgz
YzllMDU1ZDYwZDFkZjhiLi43NGZmZjBhMGViZmFmZWJkODlhZWQ2NWE2YThjYmQyOWQzZjczZGNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA1LTE5ICBBbmRyZXMgR29uemFsZXog
IDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVsaW1pbmFyeSBhY2Nlc3NpYmls
aXR5IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNDI4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEltYWdlRXh0cmFj
dGlvbik6CisKIDIwMjEtMDUtMTcgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVUF0gV2ViQ29udGVudCBwcm9jZXNzIHNob3VsZCBub3QgcHVsbCBhdWRpbyBz
ZXNzaW9uIGNhdGVnb3J5IGZyb20gdGhlIEdQVSBQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGVh
YjI3ZTRhZDViMWNhZjU3YTE4MTU2M2JhMDU3ZWE5NTllZGM0MDguLmE0MmE4ODcyZjY3MTJkMDFj
ZTk1MWFjMzFmZTVjNmRmM2YzNTM5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC00NDQsNiArNDQ0LDcg
QEAgTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuY3BwIEBuby11bmlmeQogTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBAbm8tdW5pZnkKIE1vZHVsZXMv
d2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8tdW5pZnkKIE1vZHVsZXMvd2VieHIv
WFJTZXNzaW9uRXZlbnQuY3BwIEBuby11bmlmeQorYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAog
YWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJlYjE4OGEw
MGIxYmQ5OGJlZTk0NmY1ZmQwMGNhNTg1NWY1YTQ4YWQuLmMwYTc0ZDdhZmQ5ZWMyN2ZlNTRlNzJk
Yzk0MTYyNWY3ZjViYTI4NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NTY1LDYgKzE0NTY1LDggQEAKIAkJQkVBODA3Qzcw
RjcxNEEwMzAwNTI0MTk5IC8qIFNlbGVjdGlvbkdlb21ldHJ5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNlbGVjdGlvbkdlb21ldHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJFRjI5RUU5MTcxNUREMDkwMEM0QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRUYyOUVFQTE3MTVERDA5MDBDNEI0QzkgLyog
VmlkZW9UcmFja1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlk
ZW9UcmFja1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzA0MDBDN0My
NjFDQjNEQjAwQUY0NEZBIC8qIEFYSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVhJbWFnZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMDQwMEM3RTI2MUNCM0RCMDBBRjQ0RkEgLyog
QVhJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBWEltYWdlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzA0NkUxQUIxMjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0
cmluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxpemVk
U3RyaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwNDkzRUI3MjQ0Njk5
RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBWExvZ2dlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMDc4Mzc2MDIzREYy
NTNFMDBDOUM1QzggLyogQVhJc29sYXRlZE9iamVjdE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IEFYSXNvbGF0ZWRPYmplY3RNYWMubW07IHBhdGggPSBtYWMvQVhJc29sYXRlZE9iamVjdE1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MzMzLDYgKzE5MzM1LDggQEAK
IAkJCQlBOTFDOUZDMDFCNjU5QTY3MDBBRkZENTQgLyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNw
cCAqLywKIAkJCQlBOTFDOUZDMTFCNjU5QTY3MDBBRkZENTQgLyogQWNjZXNzaWJpbGl0eVRyZWVJ
dGVtLmggKi8sCiAJCQkJQTlFRTQ0OEMyMTBGQzlBRDAwQjZFQUU2IC8qIEFyaWFBdHRyaWJ1dGVz
LmlkbCAqLywKKwkJCQlDMDQwMEM3RTI2MUNCM0RCMDBBRjQ0RkEgLyogQVhJbWFnZS5jcHAgKi8s
CisJCQkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFYSW1hZ2UuaCAqLywKIAkJCQlDMDhG
MTNBMTI0NDc2NkRDMDBBQjk4OUYgLyogQVhMb2dnZXIuY3BwICovLAogCQkJCUMwNDkzRUI3MjQ0
Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICovLAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQx
MkYyQSAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1OTYwMjIxODM5OTU5M2Q5MjgxYzQ5MjA0MTQ3ZDMx
ZDA2YmZhNTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYSW1hZ2UuY3BwCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFYSW1h
Z2UuaCIKKworI2luY2x1ZGUgIkFYTG9nZ2VyLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBWEltYWdlOjpBWEltYWdlKFJl
bmRlckltYWdlKiByZW5kZXJlcikKKyAgICA6IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVu
ZGVyZXIpCit7Cit9CisKK1JlZjxBWEltYWdlPiBBWEltYWdlOjpjcmVhdGUoUmVuZGVySW1hZ2Uq
IHJlbmRlcmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFYSW1hZ2UocmVuZGVyZXIp
KTsKK30KKworQWNjZXNzaWJpbGl0eVJvbGUgQVhJbWFnZTo6cm9sZVZhbHVlKCkgY29uc3QKK3sK
KyAgICBhdXRvIGFyaWFSb2xlID0gYXJpYVJvbGVBdHRyaWJ1dGUoKTsKKyAgICBpZiAoYXJpYVJv
bGUgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24pCisgICAgICAgIHJldHVybiBhcmlhUm9s
ZTsKKworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2U7Cit9CisKK09wdGlvbmFs
PEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBBWEltYWdlOjppbWFn
ZU92ZXJsYXlFbGVtZW50cygpCit7CisgICAgQVhUUkFDRSgiQVhJbWFnZTo6aW1hZ2VPdmVybGF5
RWxlbWVudHMiKTsKKworICAgIGlmIChtX2ltYWdlT3ZlcmxheUhvc3QpIHsKKyAgICAgICAgYXV0
byogYXhPYmplY3RDYWNoZSA9IHRoaXMtPmF4T2JqZWN0Q2FjaGUoKTsKKyAgICAgICAgaWYgKCFh
eE9iamVjdENhY2hlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBhdXRvKiBheEltYWdlID0gYXhPYmplY3RDYWNoZS0+Z2V0T3JDcmVhdGUobV9pbWFnZU92ZXJs
YXlIb3N0LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIGF4SW1hZ2UtPmNoaWxkcmVuKCk7CisgICAg
fQorCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgYXV0byogcGFnZSA9IHRoaXMt
PnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICBXVEZMb2dBbHdheXMoImFxdWkgdGFtYmllbiIpOworICAgIHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpLnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oKmVsZW1lbnQoKSwgW3RoaXNdIChSZWZQdHI8
RWxlbWVudD4mJiBpbWFnZU92ZXJsYXlIb3N0KSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiYXF1
aSBlc3RveSAlcCAlcCIsIHRoaXMsIGltYWdlT3ZlcmxheUhvc3QuZ2V0KCkpOworICAgICAgICBt
X2ltYWdlT3ZlcmxheUhvc3QgPSBpbWFnZU92ZXJsYXlIb3N0LmdldCgpOworCisgICAgICAgIC8v
IEZJWE1FOiBwb3N0IG5vdGlmaWNhdGlvbi4KKyAgICB9KTsKKyNlbmRpZgorCisgICAgcmV0dXJu
IGNoaWxkcmVuKCk7IC8vIEZJWE1FOiBvbmNlIG5vdGlmaWNhdGlvbiBpcyBhZGRlZCwgdGhpcyBz
aG91bGQgYmUgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGYyNjhj
YjUwNDAwZDhjZjliNmE4ZWYzNzExNzM0N2JiYTEwZTVhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmgKQEAgLTAsMCArMSw1MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJSZW5k
ZXJJbWFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFYSW1hZ2UgOiBwdWJs
aWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxB
WEltYWdlPiBjcmVhdGUoUmVuZGVySW1hZ2UqKTsKKyAgICB2aXJ0dWFsIH5BWEltYWdlKCkgPSBk
ZWZhdWx0OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IEFYSW1hZ2UoUmVuZGVySW1hZ2UqKTsK
KyAgICBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorCisgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgV1RGOjpPcHRpb25hbDxBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3I+IGltYWdlT3Zl
cmxheUVsZW1lbnRzKCkgb3ZlcnJpZGU7CisKKyAgICBSZWZQdHI8RWxlbWVudD4gbV9pbWFnZU92
ZXJsYXlIb3N0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZSAKKworU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19BQ0NFU1NJQklMSVRZKEFYSW1hZ2UsIGlzQVhJbWFnZUluc3RhbmNlKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBh
ZmNjNmRiZDJiZTYwOWY0ZmJhMDhhZjkxOTQ3YWRlOWMyYjFhOWIwLi43OThjMTY0N2IxNDFiODIx
NWQ5MjhiYjQ1Yzk4YzU0Mjk2NTA3MjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTUxMiw2ICs1MTIsMjggQEAgYm9vbCBub2RlSGFz
Um9sZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIHJvbGUpCiAgICAgcmV0dXJuIFNwYWNlU3Bs
aXRTdHJpbmcocm9sZVZhbHVlLCB0cnVlKS5jb250YWlucyhyb2xlKTsKIH0KIAorc3RhdGljIGJv
b2wgaXNTaW1wbGVJbWFnZShjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQoreworICAgIGlm
ICghaXM8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgLy8gRXhjbHVkZSBJbWFnZUJ1dHRvbnMgYmVjYXVzZSB0aGV5IGFyZSB0cmVhdGVkIGFzIGJ1
dHRvbnMsIG5vdCBhcyBpbWFnZXMuCisgICAgYXV0byogbm9kZSA9IHJlbmRlcmVyLm5vZGUoKTsK
KyAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIC8vIEltYWdlTWFwcyBhcmUgbm90IHNpbXBsZSBpbWFnZXMuCisgICAgaWYgKGRv
d25jYXN0PFJlbmRlckltYWdlPihyZW5kZXJlcikuaW1hZ2VNYXAoKQorICAgICAgICB8fCAoaXM8
SFRNTEltYWdlRWxlbWVudD4obm9kZSkgJiYgZG93bmNhc3Q8SFRNTEltYWdlRWxlbWVudD4obm9k
ZSktPmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odXNlbWFwQXR0cikpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBFeGNsdWRlIHZpZGVvIGFuZCBhdWRpbyBlbGVt
ZW50cy4KKyAgICBpZiAoaXM8SFRNTE1lZGlhRWxlbWVudD4obm9kZSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMgUmVmPEFjY2Vzc2liaWxp
dHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewog
ICAgIC8vIEZJWE1FOiBIb3cgY291bGQgcmVuZGVyZXItPm5vZGUoKSBldmVyIG5vdCBiZSBhbiBF
bGVtZW50PwpAQCAtNTUxLDYgKzU3Myw5IEBAIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU9iamVj
dD4gY3JlYXRlRnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgaWYgKGlz
PFNWR0VsZW1lbnQ+KG5vZGUpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVNWR0VsZW1l
bnQ6OmNyZWF0ZShyZW5kZXJlcik7CiAKKyAgICBpZiAoaXNTaW1wbGVJbWFnZSgqcmVuZGVyZXIp
KQorICAgICAgICByZXR1cm4gQVhJbWFnZTo6Y3JlYXRlKGRvd25jYXN0PFJlbmRlckltYWdlPihy
ZW5kZXJlcikpOworCiAjaWYgRU5BQkxFKE1BVEhNTCkKICAgICAvLyBUaGUgbWZlbmNlZCBlbGVt
ZW50IGNyZWF0ZXMgYW5vbnltb3VzIFJlbmRlck1hdGhNTE9wZXJhdG9ycyB3aGljaCBzaG91bGQg
YmUgdHJlYXRlZAogICAgIC8vIGFzIE1hdGhNTCBlbGVtZW50cyBhbmQgYXNzaWduZWQgdGhlIE1h
dGhFbGVtZW50Um9sZSBzbyB0aGF0IHBsYXRmb3JtIGxvZ2ljIHJlZ2FyZGluZwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcAppbmRleCA3OTAyNjYwOTE2MjA3YThlYTM1MzQxNzk0Y2RiNGU2MjAxNTQ2Nzg1Li4yNzBi
YmQ5ZDhjYThlNDVmNDc4YzQyYWMzZmEwZjhjZTViZDgyNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApA
QCAtMzc4LDcgKzM3OCw2IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVD
aGlsZHJlbigpIGNvbnN0CiAgICAgCiAgICAgLy8gRWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGhh
dmUgY2hpbGRyZW4KICAgICBzd2l0Y2ggKHJvbGVWYWx1ZSgpKSB7Ci0gICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6SW1hZ2U6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnV0dG9uOgog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlBvcFVwQnV0dG9uOgogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkNoZWNrQm94OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCA0ZDljOTMzMThhODY3MWIzYmUwOTQyYzBl
YzJmYjc2MTRlM2VkOTc3Li4xZjRmOGMyMTU5M2U3ZmFjZDBiMzhlN2M0OTA2MzVlZmEwZTRjODI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJv
b2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXdJbnN0YW5jZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0FYSW1hZ2VJbnN0YW5jZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxp
dHlTVkdSb290KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlz
QWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VGFibGVJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC00MDAsNiArNDAxLDcgQEAgcHVibGljOgogICAgIFN0cmlu
ZyBicmFpbGxlTGFiZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBnZXRBdHRyaWJ1dGUoSFRN
TE5hbWVzOjphcmlhX2JyYWlsbGVsYWJlbEF0dHIpOyB9CiAgICAgU3RyaW5nIGJyYWlsbGVSb2xl
RGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBnZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjphcmlhX2JyYWlsbGVyb2xlZGVzY3JpcHRpb25BdHRyKTsgfQogICAgIFN0cmluZyBlbWJl
ZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICBXVEY6Ok9wdGlvbmFs
PEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcj4gaW1hZ2VPdmVybGF5RWxlbWVudHMoKSBvdmVy
cmlkZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KIAogICAgIC8vIEFiYnJldmlhdGlvbnMKICAg
ICBTdHJpbmcgZXhwYW5kZWRUZXh0VmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTdHJp
bmcoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCA5ODIzMDZiNTQ4MmQyMmMxZjBjNjg2
NjhhZDg2ZGNiYWFmMmU1NDhhLi42NDY0NTQ5M2Y5YzRiM2I1OTVhZjNkZjY5ZjgzZTFjZjRmMjE5
Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtNzkxLDYgKzc5MSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXdJbnN0YW5jZSgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVRhYmxlSW5zdGFuY2UoKSBjb25zdCA9IDA7
CkBAIC0xMDE0LDYgKzEwMTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgYnJhaWxs
ZUxhYmVsKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGJyYWlsbGVSb2xlRGVzY3Jp
cHRpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZW1iZWRkZWRJbWFnZURlc2Ny
aXB0aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgV1RGOjpPcHRpb25hbDxBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3I+IGltYWdlT3ZlcmxheUVsZW1lbnRzKCkgPSAwOwogCiAgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzQVJJQU93bnMoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29s
IGlzQWN0aXZlRGVzY2VuZGFudE9mRm9jdXNlZENvbnRhaW5lcigpIGNvbnN0ID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KaW5kZXggYmQ3MWNmMGQzNTM2NDBiMjVl
YzdlNjc2M2VjYmQ2NjgyNWU1MTgxOS4uMTUwZDA0ZGQwMTRiYjJlMDg2ZmJkZTRhZTc5NzZhOGEw
Y2E0MDY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KQEAgLTcy
LDYgKzcyLDcgQEAgZW51bSB7CiAtIChOU0ludGVnZXIpYWNjZXNzaWJpbGl0eUVsZW1lbnRDb3Vu
dDsKIC0gKGlkKWFjY2Vzc2liaWxpdHlFbGVtZW50QXRJbmRleDooTlNJbnRlZ2VyKWluZGV4Owog
LSAoTlNJbnRlZ2VyKWluZGV4T2ZBY2Nlc3NpYmlsaXR5RWxlbWVudDooaWQpZWxlbWVudDsKKy0g
KE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5RWxlbWVudHM7CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgKEFjY2Vzc2liaWxpdHlQcml2YXRlKQpAQCAtNDI5
LDYgKzQzMCwyOSBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIEFjY2Vzc2li
aWxpdHlVbmlnbm9yZWRBbmNlc3RvcihBY2Nlc3NpYmlsaXR5TwogICAgICAgICBjYWNoZS0+c3Rv
cENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIH0KIAorLSAoTlNBcnJheSAqKWFj
Y2Vzc2liaWxpdHlFbGVtZW50cworeworICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmls
aXR5Q2FsbF0pCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBpZiAoW3NlbGYgaXNBdHRhY2ht
ZW50XSkgeworICAgICAgICBpZiAoaWQgYXR0YWNobWVudFZpZXcgPSBbc2VsZiBhdHRhY2htZW50
Vmlld10pCisgICAgICAgICAgICByZXR1cm4gW2F0dGFjaG1lbnRWaWV3IGFjY2Vzc2liaWxpdHlF
bGVtZW50c107CisgICAgfQorCisgICAgYXV0byBhcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVB
cnJheSBhbGxvY10gaW5pdF0pOworICAgIGZvciAoY29uc3QgYXV0byYgY2hpbGQgOiBzZWxmLmF4
QmFja2luZ09iamVjdC0+Y2hpbGRyZW4oKSkgeworICAgICAgICBhdXRvKiB3cmFwcGVyID0gY2hp
bGQtPndyYXBwZXIoKTsKKyAgICAgICAgaWYgKGNoaWxkLT5pc0F0dGFjaG1lbnQoKSkgeworICAg
ICAgICAgICAgaWYgKGlkIGF0dGFjaG1lbnRWaWV3ID0gW3dyYXBwZXIgYXR0YWNobWVudFZpZXdd
KQorICAgICAgICAgICAgICAgIFthcnJheSBhZGRPYmplY3Q6YXR0YWNobWVudFZpZXddOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIFthcnJheSBhZGRPYmplY3Q6d3JhcHBlcl07CisgICAg
fQorCisgICAgcmV0dXJuIGFycmF5LmF1dG9yZWxlYXNlKCk7Cit9CisKIC0gKE5TSW50ZWdlcilh
Y2Nlc3NpYmlsaXR5RWxlbWVudENvdW50CiB7CiAgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vz
c2liaWxpdHlDYWxsXSkKQEAgLTE4MjksNiArMTg1MywxNSBAQCBzdGF0aWMgdm9pZCBhcHBlbmRT
dHJpbmdUb1Jlc3VsdChOU011dGFibGVTdHJpbmcgKnJlc3VsdCwgTlNTdHJpbmcgKnN0cmluZykK
ICAgICByZXR1cm4gc2VsZi5heEJhY2tpbmdPYmplY3QtPmVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlv
bigpOwogfQogCistIChOU0FycmF5ICopYWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRz
Cit7CisgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxsXSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKworICAgIGF1dG8gaW1hZ2VPdmVybGF5RWxlbWVudHMgPSBzZWxmLmF4QmFj
a2luZ09iamVjdC0+aW1hZ2VPdmVybGF5RWxlbWVudHMoKTsKKyAgICByZXR1cm4gaW1hZ2VPdmVy
bGF5RWxlbWVudHMgPyBhY2Nlc3NpYmxlRWxlbWVudHNGb3JPYmplY3RzKCppbWFnZU92ZXJsYXlF
bGVtZW50cykgOiBuaWw7Cit9CisKIC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0eUxpbmtSZWxh
dGlvbnNoaXBUeXBlCiB7CiAgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxs
XSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggYWU1YzNkOTE1ZDBlZDUxNGI2MjI4
Yzc4ZDE4YTlhMzY0MzBlMTU2OC4uNDFlZDJjMGFjNWFhMTA5MDE2MjUzOWUzNzlmMWU2Y2NjNDZl
NGUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTEyNTksNiArMTI1OSwxMiBA
QCBib29sIEFYSXNvbGF0ZWRPYmplY3Q6OmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXdJbnN0YW5j
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEFYSXNvbGF0ZWRPYmplY3Q6
OmlzQVhJbWFnZUluc3RhbmNlKCkgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgQVhJc29sYXRlZE9iamVjdDo6aXNBY2Nlc3Np
YmlsaXR5U1ZHUm9vdCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmgKaW5kZXggMGFkODAwMGM0ZmIyNTgwYTZkODhmMTI3OTFlY2VmZTJh
ZjU0ODBlNi4uMjg2OWU0MmU5NGRkY2MwM2QxYzE4Y2EzYTg4OTc1ZTdkMzA3NjY3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuaApAQCAtMjczLDYgKzI3Myw3IEBAIHByaXZhdGU6CiAgICAgU3Ry
aW5nIGJyYWlsbGVMYWJlbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0
ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpCcmFpbGxlTGFiZWwpOyB9CiAgICAgU3RyaW5nIGJyYWls
bGVSb2xlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJpbmdBdHRyaWJ1
dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6QnJhaWxsZVJvbGVEZXNjcmlwdGlvbik7IH0KICAgICBT
dHJpbmcgZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
c3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkVtYmVkZGVkSW1hZ2VEZXNjcmlw
dGlvbik7IH0KKyAgICBXVEY6Ok9wdGlvbmFsPEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcj4g
aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBvdmVycmlkZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0K
IAogICAgIFN0cmluZyBjb21wdXRlZFJvbGVTdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6Q29tcHV0ZWRSb2xlU3RyaW5n
KTsgfQogICAgIGJvb2wgaXNWYWx1ZUF1dG9maWxsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzVmFsdWVBdXRvZmlsbGVkKTsg
fQpAQCAtNDY2LDYgKzQ2Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNj
cm9sbGJhcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlld0luc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBpc0FYSW1hZ2VJbnN0YW5j
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VGFibGVJbnN0YW5jZSgpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCA3
NTI3NDE1YmEzOTM0ZDU3YWUxMzU3YjNhZWQzMWIxN2Y0YzhmNzNhLi41NjQxM2JkODRjZjlhZTAw
ZTJmYzA4ODBlOTRjMzNiYWRlODBjNWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbQpAQCAtNTQ3LDYgKzU0NywxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
ICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uQXR0cmlidXRl
IEAiQVhFbWJlZGRlZEltYWdlRGVzY3JpcHRpb24iCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50c0F0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50c0F0dHJpYnV0ZSBAIkFYSW1hZ2VPdmVybGF5RWxlbWVu
dHMiCisjZW5kaWYKKwogZXh0ZXJuICJDIiBBWFVJRWxlbWVudFJlZiBOU0FjY2Vzc2liaWxpdHlD
cmVhdGVBWFVJRWxlbWVudFJlZihpZCBlbGVtZW50KTsKIAogQGltcGxlbWVudGF0aW9uIFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyCkBAIC0xNTY0LDggKzE1NjgsOSBAQCBBTExPV19ERVBS
RUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5VmVydGljYWxTY3JvbGxCYXJBdHRyaWJ1dGVdOwogICAgICAgICByZXR1
cm4gdGVtcEFycmF5OwogICAgIH0oKSk7Ci0gICAgc3RhdGljIGF1dG8gaW1hZ2VBdHRycyA9ICBt
YWtlTmV2ZXJEZXN0cm95ZWQoW10geworICAgIHN0YXRpYyBhdXRvIGltYWdlQXR0cnMgPSBtYWtl
TmV2ZXJEZXN0cm95ZWQoW10gewogICAgICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tO
U011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgp
XSk7CisgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUltYWdlT3Zl
cmxheUVsZW1lbnRzQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICAgICAg
W3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VVJMQXR0cmlidXRlXTsKICAgICAg
ICAgcmV0dXJuIHRlbXBBcnJheTsKQEAgLTIzNzAsNiArMjM3NSwxMiBAQCBBTExPV19ERVBSRUNB
VEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIFtzZWxmIHBvc2l0aW9uXTsK
ICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVBh
dGhBdHRyaWJ1dGVdKQogICAgICAgICByZXR1cm4gW3NlbGYgcGF0aF07CisKKyAgICBpZiAoW2F0
dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVs
ZW1lbnRzQXR0cmlidXRlXSkgeworICAgICAgICBhdXRvIGltYWdlT3ZlcmxheUVsZW1lbnRzID0g
YmFja2luZ09iamVjdC0+aW1hZ2VPdmVybGF5RWxlbWVudHMoKTsKKyAgICAgICAgcmV0dXJuIGlt
YWdlT3ZlcmxheUVsZW1lbnRzID8gY29udmVydFRvTlNBcnJheSgqaW1hZ2VPdmVybGF5RWxlbWVu
dHMpIDogbmlsOworICAgIH0KKwogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJp
bmc6TlNBY2Nlc3NpYmlsaXR5RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uQXR0cmlidXRlXSkKICAg
ICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3QtPmVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCmluZGV4IDhjZjAxODdjNzcwMzQ4NDg4NTc2
ZmRlZmVkODdmYjMzMDRjZWViOTQuLjA5YWYyZDI2Mzc2NGQ4MmYwOWZhNDQ0ODI2YWFmM2ZkMzg1
YjcwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCkBAIC05MCw2ICs5MCw3IEBA
IHZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoT3B0aW9uYWw8U3RyaW5nPiBs
b2dDaGFubmVsU3RyaW5nKQogCiAgICAgU3RyaW5nIGVuYWJsZWRDaGFubmVsc1N0cmluZyA9IGxv
Z0NoYW5uZWxTdHJpbmcgPyBsb2dDaGFubmVsU3RyaW5nLnZhbHVlKCkgOiBsb2dMZXZlbFN0cmlu
ZygpOwogICAgIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyhsb2dDaGFu
bmVscywgbG9nQ2hhbm5lbENvdW50LCBlbmFibGVkQ2hhbm5lbHNTdHJpbmcudXRmOCgpLmRhdGEo
KSk7CisgICAgTG9nQWNjZXNzaWJpbGl0eS5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247
CiAvLyAgICBMb2dFdmVudExvb3Auc3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmlu
ZGV4IDY1YTUwNDNkZTQ4ZWM4YWVlNjAwNjVhNzk4ZDFkMDk1OWE1ZTFkNWUuLjU4YTgzZGIyMjBl
ZWNkMGI1YmE5NjJmNTQxZTYzZWE1ZDM4ODA4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMTksNiArMTE5LDExIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkb25lRGVmZXJyaW5nVG91Y2hTdGFydChib29sIHByZXZlbnROYXRpdmVH
ZXN0dXJlcykgb3ZlcnJpZGU7CiAgICAgdm9pZCBkb25lRGVmZXJyaW5nVG91Y2hFbmQoYm9vbCBw
cmV2ZW50TmF0aXZlR2VzdHVyZXMpIG92ZXJyaWRlOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKKyAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgVVJM
JiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJikgb3ZlcnJpZGU7CisjZW5kaWYK
KwogICAgIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2Vi
UGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAgICAgUmVmPFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU+
IGNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXZWJD
b3JlOjpWYWxpZGF0aW9uQnViYmxlOjpTZXR0aW5ncyYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggMjIyYzU2NGQ4
Y2NlM2FmOWUwMDUwOTQ4YjM0NTc4NWRhYzc3MWMxZC4uODc1ZTJjYjlmYWVkYzE1NmJkNDJhYTFk
MTIyOGY2NDA5YmQ4OGUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNDY1LDYgKzQ2NSw0NSBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkb25lRGVmZXJyaW5nVG91Y2hFbmQoYm9vbCBwcmV2ZW50TmF0aXZlR2VzdHVyZXMpCiAK
ICNlbmRpZiAvLyBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKIAorI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihj
b25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VE
YXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3Vs
dCYmKT4mJiBjb21wbGV0aW9uKQoreworICAgIFdURkxvZ0Fsd2F5cygiUGFnZUNsaWVudEltcGw6
OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24geyIpOworICAgIGF1dG8gaW1hZ2VCaXRtYXAgPSBTaGFy
ZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFnZURhdGEpOworICAgIFdURkxvZ0Fsd2F5cygiJXAiLCBp
bWFnZUJpdG1hcC5nZXQoKSk7CisgICAgaWYgKCFpbWFnZUJpdG1hcCkgeworICAgICAgICBjb21w
bGV0aW9uKHsgfSk7CisgICAgICAgIFdURkxvZ0Fsd2F5cygifSBQYWdlQ2xpZW50SW1wbDo6cmVx
dWVzdEltYWdlRXh0cmFjdGlvbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0
byBjZ0ltYWdlID0gaW1hZ2VCaXRtYXAtPm1ha2VDR0ltYWdlKCk7CisgICAgV1RGTG9nQWx3YXlz
KCIlcCIsIGNnSW1hZ2UuZ2V0KCkpOworICAgIGlmICghY2dJbWFnZSkgeworICAgICAgICBjb21w
bGV0aW9uKHsgfSk7CisgICAgICAgIFdURkxvZ0Fsd2F5cygifSBQYWdlQ2xpZW50SW1wbDo6cmVx
dWVzdEltYWdlRXh0cmFjdGlvbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0
byBpbWFnZSA9IGFkb3B0TlMoW1tVSUltYWdlIGFsbG9jXSBpbml0V2l0aENHSW1hZ2U6Y2dJbWFn
ZS5nZXQoKV0pOworICAgIFdURkxvZ0Fsd2F5cygiJXAiLCBpbWFnZS5nZXQoKSk7CisgICAgaWYg
KCFpbWFnZSkgeworICAgICAgICBjb21wbGV0aW9uKHsgfSk7CisgICAgICAgIFdURkxvZ0Fsd2F5
cygifSBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbiIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgW21fY29udGVudFZpZXcgcHJvY2Vzc0ltYWdlRXh0cmFjdGlv
bjppbWFnZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb24g
PSBXVEZNb3ZlKGNvbXBsZXRpb24pXSAoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYgcmVzdWx0KSBt
dXRhYmxlIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW2NvbXBsZXRpb24gPSBXVEZNb3Zl
KGNvbXBsZXRpb24pLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldICgpIG11dGFibGUgeworICAg
ICAgICBXVEZMb2dBbHdheXMoIlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9u
IGNhbGxiYWNrIGluIik7CisgICAgICAgIGNvbXBsZXRpb24oV1RGTW92ZShyZXN1bHQpKTsKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdEltYWdlRXh0cmFjdGlv
biBjYWxsYmFjayBvdXQiKTsKKyAgICAgICAgfSk7CisgICAgfSkuZ2V0KCldOworICAgIFdURkxv
Z0Fsd2F5cygifSBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbiIpOworfQor
I2VuZGlmCisKICNpZiBIQVZFKFBBU1RFQk9BUkRfREFUQV9PV05FUikKIAogV2ViQ29yZTo6RGF0
YU93bmVyVHlwZSBQYWdlQ2xpZW50SW1wbDo6ZGF0YU93bmVyRm9yUGFzdGVib2FyZChQYXN0ZWJv
YXJkQWNjZXNzSW50ZW50IGludGVudCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCAyMWY3ODdkNzI0
YWY2YTI2MmQwZWVkMDZjZWFmYTJkMmVjMDUyN2NhLi42YmQ4NTI0NTZlZGY4ODUxMDkyMjlkY2Nl
MjY5ODZhNzJhZDIyNGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RhdGFPd25lclR5cGUuaD4KICNp
bXBvcnQgPFdlYkNvcmUvRmxvYXRRdWFkLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ltYWdlRXh0cmFj
dGlvblJlc3VsdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BvaW50ZXJJRC5oPgogI2ltcG9ydCA8d3RmL0Jsb2Nr
UHRyLmg+CkBAIC03MjUsNiArNzI2LDcgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVX
X0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIAogI2lm
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogLSAodm9pZClfZW5kSW1hZ2VFeHRyYWN0aW9uR2Vz
dHVyZURlZmVycmFsOihXZWJLaXQ6OlNob3VsZFByZXZlbnRHZXN0dXJlcylzaG91bGRQcmV2ZW50
R2VzdHVyZXM7CistICh2b2lkKXByb2Nlc3NJbWFnZUV4dHJhY3Rpb246KFVJSW1hZ2UgKilpbWFn
ZSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbWFn
ZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpY29tcGxldGlvbjsKICNlbmRpZgogCiBAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDIwMmViM2Y2
MzQ5ODViN2FkMGE0NTg0OWU0ZGEwM2U1OTEzNGYxOTMuLmNiYjRjMWZiNGJhOTFjNzNhYzljMDIx
MDJlMDcwYjljYTc3ODdhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC03MzQ1LDkgKzczNDUsMTEgQEAgdm9pZCBXZWJQYWdlOjpyZW1vdmVN
ZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVy
KQogCiB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxlbWVu
dCYgZWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVu
dD4mJik+JiYgY29tcGxldGlvbikKIHsKKyAgICBXVEZMb2dBbHdheXMoIldlYlBhZ2U6OnJlcXVl
c3RJbWFnZUV4dHJhY3Rpb24geyIpOwogICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQp
KSB7CiAgICAgICAgIGlmIChjb21wbGV0aW9uKQogICAgICAgICAgICAgY29tcGxldGlvbih7IH0p
OworICAgICAgICBXVEZMb2dBbHdheXMoIjF9IFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rp
b24iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzM1OSw2ICs3MzYxLDcgQEAgdm9p
ZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1l
bnQsIENvbXBsZXRpb25IYW5kbGUKICAgICAgICAgICAgICAgICBpbWFnZU92ZXJsYXlIb3N0ID0g
bWFrZVJlZlB0cihlbGVtZW50KTsKICAgICAgICAgICAgIGNvbXBsZXRpb24oV1RGTW92ZShpbWFn
ZU92ZXJsYXlIb3N0KSk7CiAgICAgICAgIH0KKyAgICAgICAgV1RGTG9nQWx3YXlzKCIyfSBXZWJQ
YWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTczNjksNiArNzM3Miw3IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdEltYWdlRXh0cmFjdGlv
bihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50LCBDb21wbGV0aW9uSGFuZGxlCiAgICAgaWYgKG1h
dGNoSW5kZXggIT0gbm90Rm91bmQpIHsKICAgICAgICAgaWYgKGNvbXBsZXRpb24pCiAgICAgICAg
ICAgICBtX2VsZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlvblttYXRjaEluZGV4XS5zZWNvbmQu
YXBwZW5kKFdURk1vdmUoY29tcGxldGlvbikpOworICAgICAgICBXVEZMb2dBbHdheXMoIjN9IFdl
YlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtNzM3Niw2ICs3MzgwLDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0
aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICBpZiAo
IWlzPFJlbmRlckltYWdlPihyZW5kZXJlcikpIHsKICAgICAgICAgaWYgKGNvbXBsZXRpb24pCiAg
ICAgICAgICAgICBjb21wbGV0aW9uKHsgfSk7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiNH0gV2Vi
UGFnZTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC03Mzg0LDYgKzczODksNyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rp
b24oV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZQogICAgIGlmICgh
Yml0bWFwKSB7CiAgICAgICAgIGlmIChjb21wbGV0aW9uKQogICAgICAgICAgICAgY29tcGxldGlv
bih7IH0pOworICAgICAgICBXVEZMb2dBbHdheXMoIjV9IFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUV4
dHJhY3Rpb24iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzM5Miw2ICs3Mzk4LDcg
QEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQm
IGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICBpZiAoYml0bWFwSGFuZGxlLmlzTnVsbCgp
KSB7CiAgICAgICAgIGlmIChjb21wbGV0aW9uKQogICAgICAgICAgICAgY29tcGxldGlvbih7IH0p
OworICAgICAgICBXVEZMb2dBbHdheXMoIjZ9IFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rp
b24iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzQwMSw3ICs3NDA4LDggQEAgdm9p
ZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1l
bnQsIENvbXBsZXRpb25IYW5kbGUKICAgICBtX2VsZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlv
bi5hcHBlbmQoeyBtYWtlV2Vha1B0cihlbGVtZW50KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cnMpIH0pOwogCiAgICAgYXV0byBpbWFnZVVSTCA9IGVsZW1lbnQuZG9jdW1lbnQoKS5jb21wbGV0
ZVVSTChyZW5kZXJJbWFnZS5jYWNoZWRJbWFnZSgpLT51cmwoKS5zdHJpbmcoKSk7Ci0gICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RJbWFnZUV4dHJh
Y3Rpb24oV1RGTW92ZShpbWFnZVVSTCksIFdURk1vdmUoYml0bWFwSGFuZGxlKSksIFt3ZWJQYWdl
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWFrRWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQp
XSAoYXV0byYmIHJlc3VsdCkgeworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdURk1vdmUoaW1hZ2VVUkwpLCBXVEZN
b3ZlKGJpdG1hcEhhbmRsZSkpLCBbd2ViUGFnZSA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgd2Vha0Vs
ZW1lbnQgPSBtYWtlV2Vha1B0cihlbGVtZW50KV0gKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJl
c3VsdCYmIHJlc3VsdCkgeworICAgICAgICBXVEZMb2dBbHdheXMoIldlYlBhZ2U6OnJlcXVlc3RJ
bWFnZUV4dHJhY3Rpb24gcmVzdWx0ID0gJWkiLCByZXN1bHQuaXNFbXB0eSgpKTsKICAgICAgICAg
YXV0byBwcm90ZWN0ZWRQYWdlID0gbWFrZVJlZlB0cih3ZWJQYWdlLmdldCgpKTsKICAgICAgICAg
aWYgKCFwcm90ZWN0ZWRQYWdlKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNzQzNyw2ICs3NDQ1
LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1l
bnQmIGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKIAogICAgICAgICBwcm90ZWN0ZWRQYWdlLT5t
X2VsZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlvbi5yZW1vdmUobWF0Y2hJbmRleCk7CiAgICAg
fSk7CisgICAgV1RGTG9nQWx3YXlzKCJ9IFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24i
KTsKIH0KIAogdm9pZCBXZWJQYWdlOjp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KElt
YWdlRXh0cmFjdGlvblJlc3VsdCYmIHJlc3VsdCwgY29uc3QgRWxlbWVudENvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI1MGIzMjkwYmIzZDg2MTljOGJjYzgwNGE4YTVmOTY2NmNl
YmUxNTEuLjBiYTU2NWQzZDk4YzkzZTU3MWNmODg5ODUwZjJmMWNlZWY3ZTc3ODkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBA
QAorMjAyMS0wNS0xOSAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CisK
KyAgICAgICAgUHJlbGltaW5hcnkgYWNjZXNzaWJpbGl0eSB3b3JrCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
aW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuIGNv
bnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5
RWxlbWVudHMgY29uc3QpOgorCiAyMDIxLTA1LTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHN1cnZpdmVzIHBhZ2Ug
cmVsb2FkL25hdmlnYXRpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IDk3
YTFjMmI5NWNmZDVmZTJiMmZlYzc4NzBhNjIxOGQ2ZTRjMmRiNDcuLjY3NGE4MGUyYzJjYzA0MGU2
MDg1YmEzNzQ1NTAyNDQ1ODU0OTg4NjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cApAQCAtMTI3LDYgKzEyNyw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4dFNlbnRlbmNlRW5kVGV4dE1hcmtlCiBSZWZQdHI8QWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzU2Vu
dGVuY2VTdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
KikgeyByZXR1cm4gbnVsbHB0cjsgfQogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFu
Z2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1pc3NwZWxsaW5nVGV4dE1hcmtlclJhbmdlKEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqLCBib29sKSB7IHJldHVybiBudWxscHRyOyB9CiB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKSB7IH0KK0pTVmFsdWVSZWYgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiB7IH07IH0KIEpT
VmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGV0YWlsc0VsZW1lbnRzKCkgY29uc3Qg
eyByZXR1cm4geyB9OyB9CiBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVycm9y
TWVzc2FnZUVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9u
KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApp
bmRleCBjYWM2MTgyNmViYWY4MmUzNmU2Zjc5ODk1NzY3ZTQzNzJjZDViODk1Li5mYmY1NmYxN2Qz
ZThmZWIwNzJjODU2OTE0NmVjYTM1OTQ1YjIwNjVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IGRvbUlkZW50aWZpZXIoKSBjb25zdDsKIAogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBlbGVtZW50QXRQb2ludChpbnQgeCwgaW50IHkpOworICAgIEpTVmFsdWVSZWYgY2hp
bGRyZW4oKSBjb25zdDsKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gY2hpbGRB
dEluZGV4KHVuc2lnbmVkKTsKICAgICB1bnNpZ25lZCBpbmRleE9mQ2hpbGQoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudCopOwogICAgIGludCBjaGlsZHJlbkNvdW50KCk7CkBAIC0xOTYsNyArMTk3LDgg
QEAgcHVibGljOgogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiB1cmwoKTsKICAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gY2xhc3NMaXN0KCkgY29uc3Q7CiAgICAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0OwotICAgIAorICAg
IEpTVmFsdWVSZWYgaW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25zdDsKKwogICAgIC8vIENTUzMt
c3BlZWNoIHByb3BlcnRpZXMuCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNwZWFrQXMo
KTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRs
CmluZGV4IDI2MjY1YTVjODUwZjI0MWM5Y2EwOTVhYmUxZDgyYTJlZTZlZGNhOWIuLjc5Mjc5YmUy
Yzg4ZjU4ZWQ2MzhkY2UwYTI3MWE4ZDJlMTY2YTYyY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbApAQCAtMTEwLDYgKzExMCw3IEBACiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhcmlhRHJvcEVmZmVjdHM7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBjbGFzc0xpc3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBlbWJlZGRlZEltYWdlRGVzY3JpcHRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IG9iamVjdCBpbWFnZU92ZXJsYXlFbGVtZW50czsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nIHg7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeTsKQEAgLTExOCw2ICsxMTksNyBA
QAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGNsaWNrUG9pbnRYOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIGNsaWNrUG9pbnRZOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9i
amVjdCBjaGlsZHJlbjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBjaGlsZHJlbkNvdW50
OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHNlbGVjdGVkQ2hpbGRyZW5Db3VudDsKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyByb3dDb3VudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJ
T1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50SU9TLm1tCmluZGV4IDY5MDAyOGRiNjBhYTVmMGZiNTUxOWQyNTIwMTYx
NjE3N2E2Yzk1MTUuLjA1Yjc3OGQ0ZGE2NTFmZjljYTFjMTZhOGVmNjU3OGU5NWI1MGI2MzYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpAQCAtMTAyLDYgKzEw
Miw3IEBAIHR5cGVkZWYgdm9pZCAoKkFYUG9zdGVkTm90aWZpY2F0aW9uQ2FsbGJhY2spKGlkIGVs
ZW1lbnQsIE5TU3RyaW5nKiBub3RpZmljYXRpb24sCiAtIChpZClfYWNjZXNzaWJpbGl0eUxhbmRt
YXJrQW5jZXN0b3I7CiAtIChpZClfYWNjZXNzaWJpbGl0eUxpc3RBbmNlc3RvcjsKIC0gKGlkKV9h
Y2Nlc3NpYmlsaXR5UGhvdG9EZXNjcmlwdGlvbjsKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5
SW1hZ2VPdmVybGF5RWxlbWVudHM7CiAKIC8vIFRleHRNYXJrZXIgcmVsYXRlZAogLSAoTlNBcnJh
eSAqKXRleHRNYXJrZXJSYW5nZTsKQEAgLTIxNSw2ICsyMTYsMTEgQEAgdm9pZCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpnZXREb2N1bWVudExpbmtzKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0
eVVJRWxlbWUKIHsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGls
ZHJlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50
c10pKTsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbihWZWN0
b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAg
ICAgTlNJbnRlZ2VyIGNoaWxkQ291bnQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50
Q291bnRdOwpAQCAtMTEwMSw2ICsxMTA3LDExIEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zCiAg
ICAgcmV0dXJuIGNvbmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWEVtYmVkZGVkSW1hZ2VE
ZXNjcmlwdGlvbiIsIFttX2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlQaG90b0Rlc2NyaXB0aW9uXSk7
CiB9CiAKK0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxl
bWVudHMoKSBjb25zdAoreworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5SW1hZ2VP
dmVybGF5RWxlbWVudHNdKSk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXND
b2xsYXBzZWQoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IGRkZDhkNTgwMGJmODkzYTI2OGVmZTcyZjY3
MjQ4NzBiM2Y4MTJlYjEuLmMxMjkwZDFkNmM4ZDZkOTg0OGZhM2JkZGI2NTZmODJhZTQ3ZWNmMDIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMzQ5LDYg
KzM0OSwxNSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldFVJRWxlbWVudHNXaXRo
QXR0cmlidXRlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSwgVgogICAgICAgICBlbGVtZW50cyA9IG1h
a2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pih2YWx1ZSk7CiB9CiAKK0pT
VmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4oKSBjb25zdAoreworICAg
IEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVj
dG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oYXR0cmlidXRlVmFsdWUobV9lbGVt
ZW50LmdldCgpLCBOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZSkpKTsKKyAgICBFTkRf
QVhfT0JKQ19FWENFUFRJT05TCisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogdm9pZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgZWxlbWVudFZlY3RvciA9IG1h
a2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZSht
X2VsZW1lbnQuZ2V0KCksIE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlKSk7CkBAIC0x
Njc0LDYgKzE2ODMsMTUgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnMKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbWFnZU92ZXJs
YXlFbGVtZW50cygpIGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAg
cmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+PihhdHRyaWJ1dGVWYWx1ZShtX2VsZW1lbnQuZ2V0KCksIEAiQVhJbWFnZU92ZXJsYXlFbGVt
ZW50cyIpKSk7CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVkKCkgY29uc3QK
IHsKICAgICBCT09MIHJlc3VsdCA9IE5POwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYxODQwOTgxNjA0YWVhZWRmNDhlYTZi
MjBlMTg5Mzc3ZGEzNzg1NmEuLjc2NTMyNWYxMDkzMWRiMzZlNTgxOWM5YWE3ZDQxNjI1NDdjM2Ji
OWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNS0xOSAgQW5kcmVzIEdvbnphbGV6ICA8
YW5kcmVzZ18yMkBhcHBsZS5jb20+CisKKyAgICAgICAgUHJlbGltaW5hcnkgYWNjZXNzaWJpbGl0
eSB3b3JrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjQyODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvaW1hZ2UtbGluay1leHBlY3RlZC50eHQ6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nOiBBZGRl
ZC4KKwogMjAyMS0wNS0xNyAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHTElCXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBTZXZlcmFsIE9mZnNj
cmVlbkNhbnZhcyB0ZXN0cyBhcmUgZmFpbGluZyBzaW5jZSByMjc3NTQzLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1saW5rLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2UtbGluay1leHBlY3RlZC50eHQKaW5kZXggYjczMTg2
ZDMzMmQyMGQ2MjBlZDMyYWZhNjgyYjdlMGNiZDFlNDAwOS4uMDRkOGE2N2ZlZDUwZjgwYmEzNzBl
YjQyNWVlNTg5YzFiM2QwNDA4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9pbWFnZS1saW5rLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2ltYWdlLWxpbmstZXhwZWN0ZWQudHh0CkBAIC02NCw2ICs2NCw3IEBAIEFYRE9NQ2xhc3NMaXN0
OiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhGb2N1c2FibGVBbmNlc3RvcjogPEFYSW1hZ2U+CiBBWEVk
aXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhIaWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwp
CitBWEltYWdlT3ZlcmxheUVsZW1lbnRzOiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhFbWJlZGRlZElt
YWdlRGVzY3JpcHRpb246CiBBWFVSTDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yZXNvdXJj
ZXMvY2FrZS5wbmcKIEFYRWxlbWVudEJ1c3k6IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvaW1hZ2Utb3ZlcmxheS1lbGVtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdlLW92ZXJsYXktZWxlbWVudHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJmNzhkODA3YTNhZjlhNGFmZGUwMGRkYTNiOGM2OGFhN2I1OTYxZmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdlLW92ZXJsYXktZWxl
bWVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBheEltYWdlT3ZlcmxheUVs
ZW1lbnRzLmxlbmd0aCBpcyAyCitoZWxsbworCit3b3JsZAorCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2ltYWdlLW92ZXJsYXktZWxlbWVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTM1
N2I4NjRkMGJhYzc1ZGE0NjI4MDZhMDM0ZjFkMjgxMWY1ODY2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWwKQEAg
LTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgoraW1n
IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9
Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxpbWcgaWQ9ImltYWdlMSIgc3JjPSIuL3Jl
c291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+CisKKzxzY3JpcHQ+CisgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgp
ID0+IHsKKyAgICAgICAgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAg
ICAgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICB0b3BM
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICBib3R0b21S
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgYm90
dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRleHQgOiAid29ybGQiLAorICAgICAgICAg
ICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAg
ICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAg
ICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAg
ICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAgICAg
ICAgICAgIH0sCisgICAgICAgIF0pOworCisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9KTsKKwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4geworICAg
ICAgICAgICAgICAgIHZhciBheEltYWdlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJpbWFnZTEiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9y
KCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmF4SW1hZ2VPdmVybGF5RWxlbWVu
dHMgPSBheEltYWdlLmltYWdlT3ZlcmxheUVsZW1lbnRzOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYXhJbWFnZU92ZXJsYXlFbGVtZW50cy5sZW5ndGggPT0gMjsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgiYXhJbWFnZU92ZXJsYXlFbGVtZW50cy5s
ZW5ndGgiLCAiMiIpOworCisgICAgICAgICAgICAgICAgZm9yIChsZXQgYXhFbGVtZW50IG9mIGF4
SW1hZ2VPdmVybGF5RWxlbWVudHMpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoYXhFbGVt
ZW50LmNoaWxkcmVuQ291bnQpOworICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhheEVsZW1lbnQu
cm9sZSk7CisgICAgICAgICAgICAgICAgICAgIGxldCB0ZXh0TWFya2VyUmFuZ2UgPSBheEVsZW1l
bnQudGV4dE1hcmtlclJhbmdlRm9yRWxlbWVudChheEVsZW1lbnQpOworICAgICAgICAgICAgICAg
ICAgICBkZWJ1ZyhheEVsZW1lbnQuc3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKHRleHRNYXJrZXJS
YW5nZSkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICAgICAgfSwgMCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmVz
b3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yZXNv
dXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI4NDk4MjQzNzFiODcxOThmNDdl
Y2QwM2VmY2RkMDEyNTU3YWVlYQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTEzNAp6Y21lQVNA
Tj8ob2xIeWB1VkJxIWlhMHl+eVY0TUtMOTg1cUZ7PHtsajExWmh8a0h9Jk0yNXc7eFdATU4oTSo9
OXcKelVnR0tOJUtuZ0BQZ3VuJll4fHAtS3ExLThrY2JsSntNXzhzeWI+VW5meCk+YkhMKVokTVdI
O2lCdHlhNyg+RVlSCnpGT3s4dmYlJUUyaSheUXx0KyFWVWNeTWN1U1Q/ZGhePkFscF9TQW1adyVV
Z3dFYHlXZEZxNDdLZmVqMmkrJn1gdgp6MWA9UjQ0Pnk9aWozbSh0QG1ldXozaWhCTU0mWkthJT4r
KHI2bmNyJl5vYyMkNEhyYCRUdzxEa2lnfCg5PzcxSTcKTzElYW9scFVYT0BnZUN3ejk1SkIpCgps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431742</attachid>
            <date>2021-06-17 16:53:46 -0700</date>
            <delta_ts>2021-06-18 06:54:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210617195345.patch</filename>
            <type>text/plain</type>
            <size>39133</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzJlYmQ0ODA2NzVlOTZj
MzQwMmY1OGI4MDM3ZjkzNzhjYjY2OThhOC4uMGVkMzVkYjE5NjMxZGVkNDM5YzY1ZGQ5MzQ4Yzc0
ZmM4Zjc3NWI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIxLTA2LTE3ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBY2Nlc3NpYmls
aXR5IHN1cHBvcnQgZm9yIGltYWdlIHRleHQgcmVjb2duaXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODAKKyAgICAgICAgcmRhcjovLzc2
MzQ4NzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAg
VGVzdDogYWNjZXNzaWJpbGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWwKKworICAgICAg
ICBFeHBvc2VzIHRvIGFjY2Vzc2liaWxpdHkgY2xpZW50cyB0aGUgZWxlbWVudHMgY3JlYXRlZCBi
eQorICAgICAgICBXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uIGZvciBzdGF0aWMgaW1h
Z2VzLiBUaGlzIGFsbG93cyBjbGllbnRzCisgICAgICAgIHRvIHByZXNlbnQgdGhlIHJlY29nbml6
ZWQgdGV4dCBpbiBpbWFnZXMgdG8gYXNzaXN0aXZlIHRlY2hub2xvZ3kgdXNlcnMuCisgICAgICAg
IC0gQWRkZWQgYSBuZXcgQVhPYmplY3Qgc3ViY2xhc3MsIEFYSW1hZ2UsIHRvIGVuY2Fwc3VsYXRl
IHRoaXMgZnVuY3Rpb25hbGl0eS4KKyAgICAgICAgVGhpcyBjbGFzcyBjYW4gYmUgZXhwYW5kZWQg
dG8gb2ZmbG9hZCBzb21lIG9mIHRoZSBpbWFnZSBzcGVjaWZpYyBjb2RlCisgICAgICAgIGNvbnRh
aW5lZCBpbiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dCwKKyAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCBhbmQgb3RoZXJzLgorICAgICAgICAtIFNp
bmNlIHJlcXVlc3RUZXh0UmVjb2duaXRpb24gaXMgYW4gYXN5bmMgY2FsbCwgYWRkZWQgYW4gQVhO
b3RpZmljYXRpb24KKyAgICAgICAgdG8gbm90aWZ5IGNsaWVudHMgd2hlbiB0aGUgaW1hZ2Ugb3Zl
cmxheSBlbGVtZW50cyBhcmUgYXZhaWxhYmxlIGZvcgorICAgICAgICBjb25zdW1wdGlvbi4KKwor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2U6OkFYSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
QVhJbWFnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2U6OnJvbGVWYWx1ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWEltYWdlLmg6IEFkZGVkLgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmlzU2ltcGxlSW1hZ2UpOiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBnaXZlbiBlbGVtZW50
IGlzIGEgc3RhdGljCisgICAgICAgIGltYWdlLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJv
bVJlbmRlcmVyKTogSW5zdGFudGlhdGUgYW4gQVhJbWFnZSBvYmplY3Qgd2hlbgorICAgICAgICBh
cHByb3ByaWF0ZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4gY29u
c3QpOiBJbWFnZXMgY2FuCisgICAgICAgIGhhdmUgY2hpbGRyZW4uCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFtZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3Mv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW06CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlFbGVtZW50c10pOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5
RWxlbWVudHNdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmlzQVhJ
bWFnZUluc3RhbmNlIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORF0pOgorICAg
ICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlVmFsdWU6XSk6CisKIDIwMjEtMDUtMzEgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFy
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1mbGV4Ym94XSBEbyBub3QgY29tcHV0ZSB0aGUg
bWluLW1heCBzaXplcyBvZiBmbGV4IGl0ZW1zIHR3aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDg2ZDEx
OTNiNTVhYTBiN2EyYTQyYjllNTA4OWMyN2UyMjBiMTJlYmYuLjY2MjVjZDFlOTE0NTRkNTk4ZWRk
MjljMDcyMWNkNzAzMzIxMzdlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC00NDIsNiArNDQyLDcgQEAg
TW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuY3BwIEBuby11bmlmeQogTW9kdWxlcy93
ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBAbm8tdW5pZnkKIE1vZHVsZXMvd2Vi
eHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8tdW5pZnkKIE1vZHVsZXMvd2VieHIvWFJT
ZXNzaW9uRXZlbnQuY3BwIEBuby11bmlmeQorYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAogYWNj
ZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI5NmY5ODI5NmM5
YTZjYjY2NjgzMzc0NGRkNWRjNzY3NzBiZTZmMzUuLjhjMjZkZmQzNDQyMmViOTRiMGFjZDYwNzcy
NWZkYzI5ZjBlNmUyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NjY0LDYgKzE0NjY0LDggQEAKIAkJQkVBODA3QzcwRjcx
NEEwMzAwNTI0MTk5IC8qIFNlbGVjdGlvbkdlb21ldHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNlbGVjdGlvbkdlb21ldHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJFRjI5RUU5MTcxNUREMDkwMEM0QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRUYyOUVFQTE3MTVERDA5MDBDNEI0QzkgLyogVmlk
ZW9UcmFja1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9U
cmFja1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzA0MDBDN0MyNjFD
QjNEQjAwQUY0NEZBIC8qIEFYSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVhJbWFnZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMDQwMEM3RTI2MUNCM0RCMDBBRjQ0RkEgLyogQVhJ
bWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBWEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzA0NkUxQUIxMjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmlu
Z3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxpemVkU3Ry
aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwNDkzRUI3MjQ0Njk5RTQw
MDlBQUM4MCAvKiBBWExvZ2dlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
WExvZ2dlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMDc4Mzc2MDIzREYyNTNF
MDBDOUM1QzggLyogQVhJc29sYXRlZE9iamVjdE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IEFYSXNvbGF0ZWRPYmplY3RNYWMubW07IHBhdGggPSBtYWMvQVhJc29sYXRlZE9iamVjdE1hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NDY1LDYgKzE5NDY3LDggQEAKIAkJ
CQlBOTFDOUZDMDFCNjU5QTY3MDBBRkZENTQgLyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNwcCAq
LywKIAkJCQlBOTFDOUZDMTFCNjU5QTY3MDBBRkZENTQgLyogQWNjZXNzaWJpbGl0eVRyZWVJdGVt
LmggKi8sCiAJCQkJQTlFRTQ0OEMyMTBGQzlBRDAwQjZFQUU2IC8qIEFyaWFBdHRyaWJ1dGVzLmlk
bCAqLywKKwkJCQlDMDQwMEM3RTI2MUNCM0RCMDBBRjQ0RkEgLyogQVhJbWFnZS5jcHAgKi8sCisJ
CQkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFYSW1hZ2UuaCAqLywKIAkJCQlDMDhGMTNB
MTI0NDc2NkRDMDBBQjk4OUYgLyogQVhMb2dnZXIuY3BwICovLAogCQkJCUMwNDkzRUI3MjQ0Njk5
RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICovLAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYy
QSAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywKQEAgLTMyNjQ2LDcgKzMyNjUwLDYgQEAKIAkJCQlF
NEE4RDIxNjIyNTc4REI3MDBBODQ2M0MgLyogRXZlbnRSZWdpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUUwRkVGMzcyQjE3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTEyRURCN0IwQjMwOEE3ODAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmggaW4gSGVh
ZGVycyAqLywKLQkJCQlFM0NBMEJGQzI2NzNGNDdDMDA5RkRENjcgLyogSlNET01CaW5kaW5nU2Vj
dXJpdHlJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NEIzNDlBMjIyRjg2RTc1MDBENDdC
Q0YgLyogRXZlbnRUYXJnZXRDb25jcmV0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdBQTNDQTUx
NDUyMzdDQzAwM0UxREE2IC8qIEV2ZW50VGFyZ2V0SGVhZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTdBQTNDQTYxNDUyMzdDQzAwM0UxREE2IC8qIEV2ZW50VGFyZ2V0SW50ZXJmYWNlcy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMzQ1Myw2ICszMzQ1Niw3IEBACiAJCQkJOTNCNzBENjQwOUVCMEM3
QzAwOUQ4NDY4IC8qIEpTRE9NQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2RTZGRTgx
QkJEMTJERjAwMEEzRjY1IC8qIEpTRE9NQmluZGluZ0ludGVybmFsc0J1aWx0aW5zLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QzQ1QzlENDFFM0ZDQkRGMDBBQUI1NTggLyogSlNET01CaW5kaW5nU2Vj
dXJpdHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzQ0EwQkZDMjY3M0Y0N0MwMDlGREQ2NyAvKiBK
U0RPTUJpbmRpbmdTZWN1cml0eUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTE5MTcz
MUYyQUJFNzEwMDI3MkY3OSAvKiBKU0RPTUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0Ux
OTE3MzFGMkFCRTcxMDAyNzJGN0EgLyogSlNET01DYWNoZVN0b3JhZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg0MUM0NDE2MjYwQzM4RkQwMEZGNjY3MyAvKiBKU0RPTUNhc3RUaGlzVmFsdWUuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTcxZDkxOGE5MjRjNzFkNTY0M2U1OTk4YTFmZDlhMjA2NDkyNjBkNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKQEAg
LTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhJbWFnZS5oIgorCisjaW5jbHVk
ZSAiQVhMb2dnZXIuaCIKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGll
bnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBWEltYWdlOjpBWEltYWdlKFJlbmRlcklt
YWdlKiByZW5kZXJlcikKKyAgICA6IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIp
Cit7Cit9CisKK1JlZjxBWEltYWdlPiBBWEltYWdlOjpjcmVhdGUoUmVuZGVySW1hZ2UqIHJlbmRl
cmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFYSW1hZ2UocmVuZGVyZXIpKTsKK30K
KworQWNjZXNzaWJpbGl0eVJvbGUgQVhJbWFnZTo6cm9sZVZhbHVlKCkgY29uc3QKK3sKKyAgICBh
dXRvIGFyaWFSb2xlID0gYXJpYVJvbGVBdHRyaWJ1dGUoKTsKKyAgICBpZiAoYXJpYVJvbGUgIT0g
QWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24pCisgICAgICAgIHJldHVybiBhcmlhUm9sZTsKKwor
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2U7Cit9CisKK3N0ZDo6b3B0aW9uYWw8
QVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3I+IEFYSW1hZ2U6OmltYWdl
T3ZlcmxheUVsZW1lbnRzKCkKK3sKKyAgICBBWFRSQUNFKCJBWEltYWdlOjppbWFnZU92ZXJsYXlF
bGVtZW50cyIpOworCisgICAgYXV0byYgY2hpbGRyZW4gPSB0aGlzLT5jaGlsZHJlbigpOworICAg
IGlmIChjaGlsZHJlbi5zaXplKCkpCisgICAgICAgIHJldHVybiBjaGlsZHJlbjsKKworI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHBhZ2UtPmNo
cm9tZSgpLmNsaWVudCgpLnJlcXVlc3RUZXh0UmVjb2duaXRpb24oKmVsZW1lbnQoKSwgW10gKFJl
ZlB0cjxFbGVtZW50PiYmIGltYWdlT3ZlcmxheUhvc3QpIHsKKyAgICAgICAgaWYgKCFpbWFnZU92
ZXJsYXlIb3N0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChhdXRvKiBheE9i
amVjdENhY2hlID0gaW1hZ2VPdmVybGF5SG9zdC0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKKyAgICAgICAgICAgIGF4T2JqZWN0Q2FjaGUtPnBvc3ROb3RpZmljYXRpb24oaW1h
Z2VPdmVybGF5SG9zdC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhJbWFnZU92ZXJsYXlDaGFuZ2Vk
KTsKKyAgICB9KTsKKyNlbmRpZgorCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMjAzNGQwZjk1NGE3NDc1N2JjMjgyNWJmYmI5Njg0ZTNlYTk5ODZmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmgKQEAg
LTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
aCIKKyNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEFYSW1hZ2UgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxBWEltYWdlPiBjcmVhdGUoUmVuZGVySW1hZ2UqKTsKKyAgICB2aXJ0
dWFsIH5BWEltYWdlKCkgPSBkZWZhdWx0OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IEFYSW1h
Z2UoUmVuZGVySW1hZ2UqKTsKKyAgICBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVl
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3I+IGltYWdlT3ZlcmxheUVsZW1lbnRzKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlIAorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0FDQ0VTU0lCSUxJVFko
QVhJbWFnZSwgaXNBWEltYWdlSW5zdGFuY2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWExvZ2dlci5jcHAKaW5kZXggNDEzOWI0M2Y2ZWMwZjFhMGRiZTI0Njc1NmJhNWEyNTIyOGMw
MGFhZi4uNDJlZWY3ZjE5MjE5YjNmZTYwNjJhMWNkYjc3MzRmOWMzZDQxZmFjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKQEAgLTM3Miw2ICszNzIsOSBAQCBU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgQVhPYmplY3RDYWNoZTo6
QVhOb3RpZmljYXRpb24gbm90aWZpYwogICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmlj
YXRpb246OkFYSWRBdHRyaWJ1dGVDaGFuZ2VkOgogICAgICAgICBzdHJlYW0gPDwgIkFYSWRBdHRy
aWJ1dGVDaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpB
WE5vdGlmaWNhdGlvbjo6QVhJbWFnZU92ZXJsYXlDaGFuZ2VkOgorICAgICAgICBzdHJlYW0gPDwg
IkFYSW1hZ2VPdmVybGF5Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQVhPYmpl
Y3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYTGFuZ3VhZ2VDaGFuZ2VkOgogICAgICAgICBzdHJl
YW0gPDwgIkFYTGFuZ3VhZ2VDaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAwNWY4NmU0N2IyYzU5
MTMwNTQ2NDkwNjZmOTc1MzZhMTEzMDc4MzQ4Li5iNmMyYjc0NTM4NWViYWFiNGMzNTAxYTE0MTE2
NGY0YjE5NGZkMDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTUxMSw2ICs1MTEsMjggQEAgYm9vbCBub2RlSGFzUm9sZShOb2RlKiBu
b2RlLCBjb25zdCBTdHJpbmcmIHJvbGUpCiAgICAgcmV0dXJuIFNwYWNlU3BsaXRTdHJpbmcocm9s
ZVZhbHVlLCB0cnVlKS5jb250YWlucyhyb2xlKTsKIH0KIAorc3RhdGljIGJvb2wgaXNTaW1wbGVJ
bWFnZShjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQoreworICAgIGlmICghaXM8UmVuZGVy
SW1hZ2U+KHJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gRXhjbHVk
ZSBJbWFnZUJ1dHRvbnMgYmVjYXVzZSB0aGV5IGFyZSB0cmVhdGVkIGFzIGJ1dHRvbnMsIG5vdCBh
cyBpbWFnZXMuCisgICAgYXV0byogbm9kZSA9IHJlbmRlcmVyLm5vZGUoKTsKKyAgICBpZiAoaXM8
SFRNTElucHV0RWxlbWVudD4obm9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8v
IEltYWdlTWFwcyBhcmUgbm90IHNpbXBsZSBpbWFnZXMuCisgICAgaWYgKGRvd25jYXN0PFJlbmRl
ckltYWdlPihyZW5kZXJlcikuaW1hZ2VNYXAoKQorICAgICAgICB8fCAoaXM8SFRNTEltYWdlRWxl
bWVudD4obm9kZSkgJiYgZG93bmNhc3Q8SFRNTEltYWdlRWxlbWVudD4obm9kZSktPmhhc0F0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odXNlbWFwQXR0cikpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAvLyBFeGNsdWRlIHZpZGVvIGFuZCBhdWRpbyBlbGVtZW50cy4KKyAgICBp
ZiAoaXM8SFRNTE1lZGlhRWxlbWVudD4obm9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNy
ZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewogICAgIC8vIEZJWE1F
OiBIb3cgY291bGQgcmVuZGVyZXItPm5vZGUoKSBldmVyIG5vdCBiZSBhbiBFbGVtZW50PwpAQCAt
NTUwLDYgKzU3Miw5IEBAIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlRnJv
bVJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgaWYgKGlzPFNWR0VsZW1lbnQ+
KG5vZGUpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQ6OmNyZWF0ZShy
ZW5kZXJlcik7CiAKKyAgICBpZiAoaXNTaW1wbGVJbWFnZSgqcmVuZGVyZXIpKQorICAgICAgICBy
ZXR1cm4gQVhJbWFnZTo6Y3JlYXRlKGRvd25jYXN0PFJlbmRlckltYWdlPihyZW5kZXJlcikpOwor
CiAjaWYgRU5BQkxFKE1BVEhNTCkKICAgICAvLyBUaGUgbWZlbmNlZCBlbGVtZW50IGNyZWF0ZXMg
YW5vbnltb3VzIFJlbmRlck1hdGhNTE9wZXJhdG9ycyB3aGljaCBzaG91bGQgYmUgdHJlYXRlZAog
ICAgIC8vIGFzIE1hdGhNTCBlbGVtZW50cyBhbmQgYXNzaWduZWQgdGhlIE1hdGhFbGVtZW50Um9s
ZSBzbyB0aGF0IHBsYXRmb3JtIGxvZ2ljIHJlZ2FyZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCA1NjQ3MTZjZTM0YmRkYzc2YzY0NGZlZjMx
YTgxYTBmMGUzYTQzZTNkLi5mOGQwMDU5NTE1ODI5MWYwODFlZjRiMDQyNzFlNDU5ODc4YTkwNjNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAt
Mjg0LDYgKzI4NCw3IEBAIHB1YmxpYzoKICAgICAgICAgQVhGb2N1c2VkVUlFbGVtZW50Q2hhbmdl
ZCwKICAgICAgICAgQVhGcmFtZUxvYWRDb21wbGV0ZSwKICAgICAgICAgQVhJZEF0dHJpYnV0ZUNo
YW5nZWQsCisgICAgICAgIEFYSW1hZ2VPdmVybGF5Q2hhbmdlZCwKICAgICAgICAgQVhMYW5ndWFn
ZUNoYW5nZWQsCiAgICAgICAgIEFYTGF5b3V0Q29tcGxldGUsCiAgICAgICAgIEFYTG9hZENvbXBs
ZXRlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCA3OTAyNjYwOTE2MjA3YThlYTM1MzQxNzk0Y2RiNGU2
MjAxNTQ2Nzg1Li4yNzBiYmQ5ZDhjYThlNDVmNDc4YzQyYWMzZmEwZjhjZTViZDgyNTFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcApAQCAtMzc4LDcgKzM3OCw2IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmNhbkhhdmVDaGlsZHJlbigpIGNvbnN0CiAgICAgCiAgICAgLy8gRWxlbWVudHMgdGhh
dCBzaG91bGQgbm90IGhhdmUgY2hpbGRyZW4KICAgICBzd2l0Y2ggKHJvbGVWYWx1ZSgpKSB7Ci0g
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2U6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QnV0dG9uOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlBvcFVwQnV0dG9uOgog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNoZWNrQm94OgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCBjN2YwMzE3ZGZm
ZDQ4YTRjY2FlOGQ1NDFiNDAxMWIzODgwMDFiNGIwLi5kYWYzYTIxYmFlNTAyZWZlNWY2NDg3Y2Nk
NDliOTFkNzlmY2Q5YmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXdJ
bnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0FY
SW1hZ2VJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9v
bCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VGFibGVJbnN0YW5jZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0zOTksNiArNDAwLDcgQEAgcHVi
bGljOgogICAgIFN0cmluZyBicmFpbGxlTGFiZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBn
ZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjphcmlhX2JyYWlsbGVsYWJlbEF0dHIpOyB9CiAgICAgU3Ry
aW5nIGJyYWlsbGVSb2xlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBnZXRB
dHRyaWJ1dGUoSFRNTE5hbWVzOjphcmlhX2JyYWlsbGVyb2xlZGVzY3JpcHRpb25BdHRyKTsgfQog
ICAgIFN0cmluZyBlbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcj4gaW1hZ2VPdmVybGF5
RWxlbWVudHMoKSBvdmVycmlkZSB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KIAogICAgIC8vIEFi
YnJldmlhdGlvbnMKICAgICBTdHJpbmcgZXhwYW5kZWRUZXh0VmFsdWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBTdHJpbmcoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCA3OTRhMTFl
MmJiNTZlNTMzNWI2ZGI5ZjYxOTEzOWUwMWNmNzQwNzI2Li40MTgyOTc5Y2FlMzUzMDJjOGEwNzMz
MDlhMjYyODVhNzM5YWI4M2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtNzkxLDYgKzc5
MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxi
YXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXdJbnN0YW5jZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBWEltYWdlSW5zdGFu
Y2UoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVNWR1Jvb3Qo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVRhYmxlSW5zdGFu
Y2UoKSBjb25zdCA9IDA7CkBAIC0xMDE0LDYgKzEwMTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBTdHJpbmcgYnJhaWxsZUxhYmVsKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGJy
YWlsbGVSb2xlRGVzY3JpcHRpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZW1i
ZWRkZWRJbWFnZURlc2NyaXB0aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgc3RkOjpvcHRp
b25hbDxBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3I+IGltYWdlT3ZlcmxheUVsZW1lbnRzKCkg
PSAwOwogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQU93bnMoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGlzQWN0aXZlRGVzY2VuZGFudE9mRm9jdXNlZENvbnRhaW5lcigpIGNv
bnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FY
T2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9i
amVjdENhY2hlSU9TLm1tCmluZGV4IDRmNTQwMWY1Yjc4ODU3NzVkODdiYzlmNTVhNTU2YzBlYzcy
YzVjM2IuLjQ4MmY2YzkwMWI3NDU3ODY3Yjg5ZTUyMGJlZDViYmZiNmUyMmY5OTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bQpAQCAtNTEsNiArNTEsOSBAQCBTdHJpbmcgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUGxh
dGZvcm1OYW1lKEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKICAgICBjYXNlIEFYRm9jdXNl
ZFVJRWxlbWVudENoYW5nZWQ6CiAgICAgICAgIG5hbWUgPSAiQVhGb2N1c0NoYW5nZWQiOwogICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFYSW1hZ2VPdmVybGF5Q2hhbmdlZDoKKyAgICAgICAgbmFt
ZSA9ICJBWEltYWdlT3ZlcmxheUNoYW5nZWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIEFY
UGFnZVNjcm9sbGVkOgogICAgICAgICBuYW1lID0gIkFYUGFnZVNjcm9sbGVkIjsKICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCmluZGV4IDEwNjJm
MGY5ZmFjYmViOTA5MjRhMzE5OWI4NzZhZjE2YjkxYzcyNzIuLjc1MDc3NWVmODU1ZmI3OTJmYzdl
OWZjODhlNDlkMDEwYmY3YjlkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
SU9TLm1tCkBAIC03Miw2ICs3Miw3IEBAIGVudW0gewogLSAoTlNJbnRlZ2VyKWFjY2Vzc2liaWxp
dHlFbGVtZW50Q291bnQ7CiAtIChpZClhY2Nlc3NpYmlsaXR5RWxlbWVudEF0SW5kZXg6KE5TSW50
ZWdlcilpbmRleDsKIC0gKE5TSW50ZWdlcilpbmRleE9mQWNjZXNzaWJpbGl0eUVsZW1lbnQ6KGlk
KWVsZW1lbnQ7CistIChOU0FycmF5ICopYWNjZXNzaWJpbGl0eUVsZW1lbnRzOwogQGVuZAogCiBA
aW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIChBY2Nlc3NpYmlsaXR5UHJp
dmF0ZSkKQEAgLTQyOSw2ICs0MzAsMjkgQEAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyKiBBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IoQWNjZXNzaWJpbGl0eU8KICAgICAg
ICAgY2FjaGUtPnN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiB9CiAKKy0g
KE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5RWxlbWVudHMKK3sKKyAgICBpZiAoIVtzZWxmIF9wcmVw
YXJlQWNjZXNzaWJpbGl0eUNhbGxdKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgaWYgKFtz
ZWxmIGlzQXR0YWNobWVudF0pIHsKKyAgICAgICAgaWYgKGlkIGF0dGFjaG1lbnRWaWV3ID0gW3Nl
bGYgYXR0YWNobWVudFZpZXddKQorICAgICAgICAgICAgcmV0dXJuIFthdHRhY2htZW50VmlldyBh
Y2Nlc3NpYmlsaXR5RWxlbWVudHNdOworICAgIH0KKworICAgIGF1dG8gYXJyYXkgPSBhZG9wdE5T
KFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNo
aWxkIDogc2VsZi5heEJhY2tpbmdPYmplY3QtPmNoaWxkcmVuKCkpIHsKKyAgICAgICAgYXV0byog
d3JhcHBlciA9IGNoaWxkLT53cmFwcGVyKCk7CisgICAgICAgIGlmIChjaGlsZC0+aXNBdHRhY2ht
ZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChpZCBhdHRhY2htZW50VmlldyA9IFt3cmFwcGVyIGF0
dGFjaG1lbnRWaWV3XSkKKyAgICAgICAgICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OmF0dGFjaG1l
bnRWaWV3XTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBbYXJyYXkgYWRkT2JqZWN0Ondy
YXBwZXJdOworICAgIH0KKworICAgIHJldHVybiBhcnJheS5hdXRvcmVsZWFzZSgpOworfQorCiAt
IChOU0ludGVnZXIpYWNjZXNzaWJpbGl0eUVsZW1lbnRDb3VudAogewogICAgIGlmICghW3NlbGYg
X3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCkBAIC0xODQ0LDYgKzE4NjgsMTUgQEAgc3RhdGlj
IHZvaWQgYXBwZW5kU3RyaW5nVG9SZXN1bHQoTlNNdXRhYmxlU3RyaW5nICpyZXN1bHQsIE5TU3Ry
aW5nICpzdHJpbmcpCiAgICAgcmV0dXJuIHNlbGYuYXhCYWNraW5nT2JqZWN0LT5lbWJlZGRlZElt
YWdlRGVzY3JpcHRpb24oKTsKIH0KIAorLSAoTlNBcnJheSAqKWFjY2Vzc2liaWxpdHlJbWFnZU92
ZXJsYXlFbGVtZW50cworeworICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2Fs
bF0pCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBhdXRvIGltYWdlT3ZlcmxheUVsZW1lbnRz
ID0gc2VsZi5heEJhY2tpbmdPYmplY3QtPmltYWdlT3ZlcmxheUVsZW1lbnRzKCk7CisgICAgcmV0
dXJuIGltYWdlT3ZlcmxheUVsZW1lbnRzID8gYWNjZXNzaWJsZUVsZW1lbnRzRm9yT2JqZWN0cygq
aW1hZ2VPdmVybGF5RWxlbWVudHMpIDogbmlsOworfQorCiAtIChOU1N0cmluZyAqKWFjY2Vzc2li
aWxpdHlMaW5rUmVsYXRpb25zaGlwVHlwZQogewogICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nl
c3NpYmlsaXR5Q2FsbF0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IDFmZWJjOWMz
N2NlNzljZDM3NTNkYTk1M2Y0MDJhMjZiZTgyOWNlNDMuLjZiNGU2MzgzYWQ1NjM5MzEyZjhhOTQ5
N2FlOWVlZDdkMzUyMGYzMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0xMjU4
LDYgKzEyNTgsMTIgQEAgYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojppc0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3SW5zdGFuY2UoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBBWElz
b2xhdGVkT2JqZWN0Ojppc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEFYSXNvbGF0ZWRPYmpl
Y3Q6OmlzQWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCmluZGV4IDQxMDk3Mzk4OTg2YThkZjAwZGFh
NmFhMjFlNGUwMjU5NjNiNjZiY2EuLmUxNWI0NmJlODM2YmQ5ODk1MWMyYTYzNWZmMjRlMTRkMzk0
YjhkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTI3Miw2ICsyNzIsNyBAQCBwcml2
YXRlOgogICAgIFN0cmluZyBicmFpbGxlTGFiZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBz
dHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6QnJhaWxsZUxhYmVsKTsgfQogICAg
IFN0cmluZyBicmFpbGxlUm9sZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
c3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkJyYWlsbGVSb2xlRGVzY3JpcHRp
b24pOyB9CiAgICAgU3RyaW5nIGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpFbWJlZGRl
ZEltYWdlRGVzY3JpcHRpb24pOyB9CisgICAgc3RkOjpvcHRpb25hbDxBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3I+IGltYWdlT3ZlcmxheUVsZW1lbnRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gc3Rk
OjpudWxsb3B0OyB9CiAKICAgICBTdHJpbmcgY29tcHV0ZWRSb2xlU3RyaW5nKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkNvbXB1
dGVkUm9sZVN0cmluZyk7IH0KICAgICBib29sIGlzVmFsdWVBdXRvZmlsbGVkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc1ZhbHVl
QXV0b2ZpbGxlZCk7IH0KQEAgLTQ2NSw2ICs0NjYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0Fj
Y2Vzc2liaWxpdHlTY3JvbGxiYXIoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzQWNjZXNz
aWJpbGl0eVNjcm9sbFZpZXdJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaXNB
WEltYWdlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0
eVNWR1Jvb3QoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNWR0Vs
ZW1lbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVRhYmxlSW5z
dGFuY2UoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IDEzMGJjYmE1MTczNGE4MDRiOGEx
MzVjN2I3OTAyZDczZWVmNTFlZGIuLjkyNWRkZTlhNzUwOWE3MTc2YWY4NDk2NjU2ZWY0MTVhODIx
ZDBjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2Jq
ZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhP
YmplY3RDYWNoZU1hYy5tbQpAQCAtMzE5LDYgKzMxOSw5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlv
biBuCiAgICAgY2FzZSBBWEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkOgogICAgICAgICBtYWNOb3Rp
ZmljYXRpb24gPSBOU0FjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZE5vdGlmaWNh
dGlvbjsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWEltYWdlT3ZlcmxheUNoYW5nZWQ6Cisg
ICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IEAiQVhJbWFnZU92ZXJsYXlDaGFuZ2VkIjsKKyAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBBWExheW91dENvbXBsZXRlOgogICAgICAgICBtYWNOb3RpZmlj
YXRpb24gPSBAIkFYTGF5b3V0Q29tcGxldGUiOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggNGE3OWIzYjNmYjM3OWIxYzZiNzBhNzU3
Y2ZkYzBmNWNkYjcyNjZkOS4uM2Y4NTU3MzQ2YzhmOTIwMWJmMDUxYWM4OTYzMjEwMjM5YTEyOGIy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTU0Myw2ICs1
NDMsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eUVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbkF0dHJpYnV0ZSBAIkFYRW1iZWRkZWRJbWFnZURlc2Ny
aXB0aW9uIgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxl
bWVudHNBdHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVu
dHNBdHRyaWJ1dGUgQCJBWEltYWdlT3ZlcmxheUVsZW1lbnRzIgorI2VuZGlmCisKIGV4dGVybiAi
QyIgQVhVSUVsZW1lbnRSZWYgTlNBY2Nlc3NpYmlsaXR5Q3JlYXRlQVhVSUVsZW1lbnRSZWYoaWQg
ZWxlbWVudCk7CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
cgpAQCAtMTU2MCw4ICsxNTY0LDkgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNf
RU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVZlcnRpY2Fs
U2Nyb2xsQmFyQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCkp
OwotICAgIHN0YXRpYyBhdXRvIGltYWdlQXR0cnMgPSAgbWFrZU5ldmVyRGVzdHJveWVkKFtdIHsK
KyAgICBzdGF0aWMgYXV0byBpbWFnZUF0dHJzID0gbWFrZU5ldmVyRGVzdHJveWVkKFtdIHsKICAg
ICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRXaXRoQXJyYXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOworICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50c0F0dHJpYnV0ZV07
CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUVtYmVkZGVkSW1h
Z2VEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5T
QWNjZXNzaWJpbGl0eVVSTEF0dHJpYnV0ZV07CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CkBA
IC0yMzY2LDYgKzIzNzEsMTIgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5E
CiAgICAgICAgIHJldHVybiBbc2VsZiBwb3NpdGlvbl07CiAgICAgaWYgKFthdHRyaWJ1dGVOYW1l
IGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlQYXRoQXR0cmlidXRlXSkKICAgICAgICAg
cmV0dXJuIFtzZWxmIHBhdGhdOworCisgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0
cmluZzpOU0FjY2Vzc2liaWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50c0F0dHJpYnV0ZV0pIHsKKyAg
ICAgICAgYXV0byBpbWFnZU92ZXJsYXlFbGVtZW50cyA9IGJhY2tpbmdPYmplY3QtPmltYWdlT3Zl
cmxheUVsZW1lbnRzKCk7CisgICAgICAgIHJldHVybiBpbWFnZU92ZXJsYXlFbGVtZW50cyA/IGNv
bnZlcnRUb05TQXJyYXkoKmltYWdlT3ZlcmxheUVsZW1lbnRzKSA6IG5pbDsKKyAgICB9CisKICAg
ICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUVtYmVk
ZGVkSW1hZ2VEZXNjcmlwdGlvbkF0dHJpYnV0ZV0pCiAgICAgICAgIHJldHVybiBiYWNraW5nT2Jq
ZWN0LT5lbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU5MmQ4M2RmMjgxNDlkMzNmYzFjYThkNTk2
Nzk4YzczMzY1ODRkZTkuLmEzNDAxNGI0ZmRmZjdlYTgwMWU0MzEzZWMyYTY5NGU3MWZiYmQ5OTgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAyMS0wNi0xNyAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eSBzdXBwb3J0IGZvciBpbWFnZSB0ZXh0IHJl
Y29nbml0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI0MjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbiBj
b25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9T
Lm1tOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbiBjb25z
dCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmltYWdlT3ZlcmxheUVs
ZW1lbnRzIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbiBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmltYWdlT3ZlcmxheUVsZW1lbnRzIGNvbnN0KToKKwogMjAyMS0wNi0x
NSAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtd
IFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuIEdhcmRlbmVkIHRocmVlIEFQSSBHVEsgdGVzdCBm
YWlsdXJlcy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IDk3YTFjMmI5NWNm
ZDVmZTJiMmZlYzc4NzBhNjIxOGQ2ZTRjMmRiNDcuLjY3NGE4MGUyYzJjYzA0MGU2MDg1YmEzNzQ1
NTAyNDQ1ODU0OTg4NjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcApAQCAtMTI3
LDYgKzEyNyw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6bmV4dFNlbnRlbmNlRW5kVGV4dE1hcmtlCiBSZWZQdHI8QWNjZXNzaWJpbGl0
eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzU2VudGVuY2VTdGFy
dFRleHRNYXJrZXJGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1
cm4gbnVsbHB0cjsgfQogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6Om1pc3NwZWxsaW5nVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyUmFuZ2UqLCBib29sKSB7IHJldHVybiBudWxscHRyOyB9CiB2b2lkIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKSB7IH0KK0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiB7IH07IH0KIEpTVmFsdWVSZWYg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGV0YWlsc0VsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4g
eyB9OyB9CiBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVycm9yTWVzc2FnZUVs
ZW1lbnRzKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCBhZDYz
MTNiMDUzMzllMTVmZmE1NzVkNzFmOTI0NzhmZGYyODNmZjIwLi5lYzExMTU2ZGNiYWQ5ODRhNjUy
NmM1YmIxZDZhZjdlZDk5YzA2Y2MzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAt
ODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGRvbUlk
ZW50aWZpZXIoKSBjb25zdDsKIAogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBl
bGVtZW50QXRQb2ludChpbnQgeCwgaW50IHkpOworICAgIEpTVmFsdWVSZWYgY2hpbGRyZW4oKSBj
b25zdDsKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gY2hpbGRBdEluZGV4KHVu
c2lnbmVkKTsKICAgICB1bnNpZ25lZCBpbmRleE9mQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dCopOwogICAgIGludCBjaGlsZHJlbkNvdW50KCk7CkBAIC0xOTYsNyArMTk3LDggQEAgcHVibGlj
OgogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiB1cmwoKTsKICAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gY2xhc3NMaXN0KCkgY29uc3Q7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0OwotICAgIAorICAgIEpTVmFsdWVS
ZWYgaW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25zdDsKKwogICAgIC8vIENTUzMtc3BlZWNoIHBy
b3BlcnRpZXMuCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNwZWFrQXMoKTsKICAgICAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IDI2
MjY1YTVjODUwZjI0MWM5Y2EwOTVhYmUxZDgyYTJlZTZlZGNhOWIuLjc5Mjc5YmUyYzg4ZjU4ZWQ2
MzhkY2UwYTI3MWE4ZDJlMTY2YTYyY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmlkbApAQCAtMTEwLDYgKzExMCw3IEBACiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBhcmlhRHJvcEVmZmVjdHM7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBjbGFzc0xpc3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBl
bWJlZGRlZEltYWdlRGVzY3JpcHRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9iamVjdCBp
bWFnZU92ZXJsYXlFbGVtZW50czsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHg7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeTsKQEAgLTExOCw2ICsxMTksNyBAQAogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBsb25nIGNsaWNrUG9pbnRYOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBsb25nIGNsaWNrUG9pbnRZOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9iamVjdCBjaGls
ZHJlbjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBjaGlsZHJlbkNvdW50OwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBsb25nIHNlbGVjdGVkQ2hpbGRyZW5Db3VudDsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyByb3dDb3VudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50SU9TLm1tCmluZGV4IDY5MDAyOGRiNjBhYTVmMGZiNTUxOWQyNTIwMTYxNjE3N2E2Yzk1
MTUuLjA1Yjc3OGQ0ZGE2NTFmZjljYTFjMTZhOGVmNjU3OGU5NWI1MGI2MzYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpAQCAtMTAyLDYgKzEwMiw3IEBAIHR5
cGVkZWYgdm9pZCAoKkFYUG9zdGVkTm90aWZpY2F0aW9uQ2FsbGJhY2spKGlkIGVsZW1lbnQsIE5T
U3RyaW5nKiBub3RpZmljYXRpb24sCiAtIChpZClfYWNjZXNzaWJpbGl0eUxhbmRtYXJrQW5jZXN0
b3I7CiAtIChpZClfYWNjZXNzaWJpbGl0eUxpc3RBbmNlc3RvcjsKIC0gKGlkKV9hY2Nlc3NpYmls
aXR5UGhvdG9EZXNjcmlwdGlvbjsKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVy
bGF5RWxlbWVudHM7CiAKIC8vIFRleHRNYXJrZXIgcmVsYXRlZAogLSAoTlNBcnJheSAqKXRleHRN
YXJrZXJSYW5nZTsKQEAgLTIxNSw2ICsyMTYsMTEgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpnZXREb2N1bWVudExpbmtzKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWUK
IHsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+PihbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50c10pKTsKK30K
Kwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgTlNJbnRl
Z2VyIGNoaWxkQ291bnQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50Q291bnRdOwpA
QCAtMTEwMSw2ICsxMTA3LDExIEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zCiAgICAgcmV0dXJu
IGNvbmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlv
biIsIFttX2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlQaG90b0Rlc2NyaXB0aW9uXSk7CiB9CiAKK0pT
VmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBj
b25zdAoreworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Pj4oW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxl
bWVudHNdKSk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWQo
KSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0g
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50TWFjLm1tCmluZGV4IGRkZDhkNTgwMGJmODkzYTI2OGVmZTcyZjY3MjQ4NzBiM2Y4
MTJlYjEuLmMxMjkwZDFkNmM4ZDZkOTg0OGZhM2JkZGI2NTZmODJhZTQ3ZWNmMDIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMzQ5LDYgKzM0OSwxNSBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldFVJRWxlbWVudHNXaXRoQXR0cmlidXRl
KEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSwgVgogICAgICAgICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pih2YWx1ZSk7CiB9CiAKK0pTVmFsdWVSZWYg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4oKSBjb25zdAoreworICAgIEJFR0lOX0FY
X09CSkNfRVhDRVBUSU9OUworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oYXR0cmlidXRlVmFsdWUobV9lbGVtZW50LmdldCgp
LCBOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZSkpKTsKKyAgICBFTkRfQVhfT0JKQ19F
WENFUFRJT05TCisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgZWxlbWVudFZlY3RvciA9IG1ha2VWZWN0b3I8
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShtX2VsZW1lbnQu
Z2V0KCksIE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlKSk7CkBAIC0xNjc0LDYgKzE2
ODMsMTUgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnMKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbWFnZU92ZXJsYXlFbGVtZW50
cygpIGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgcmV0dXJuIG1h
a2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRy
aWJ1dGVWYWx1ZShtX2VsZW1lbnQuZ2V0KCksIEAiQVhJbWFnZU92ZXJsYXlFbGVtZW50cyIpKSk7
CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
IGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICBC
T09MIHJlc3VsdCA9IE5POwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFjNTc4NjA3ZjJlNzc5ODM1YzE1ZTdmYmI4OTIzMzdj
NjMzMWFiOTQuLjQ2M2MzZjkyOTg4Mzk1YmUzNGMwYmRiMDlkNjM4NjA0YzIwYjViZjQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNi0xNyAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18y
MkBhcHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eSBzdXBwb3J0IGZvciBpbWFnZSB0
ZXh0IHJlY29nbml0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI0MjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2ltYWdlLWxpbmstZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvaW1hZ2Utb3ZlcmxheS1lbGVtZW50cy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW1hZ2Utb3ZlcmxheS1lbGVtZW50cy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3Jlc291cmNlcy9ncmVlbi00MDB4NDAw
LnBuZzogQWRkZWQuCisKIDIwMjEtMDYtMTUgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVv
Y2FuaGFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBtZWRpYS92aWRlby1zZWVr
LWFmdGVyLWVuZC5odG1sIGlzIG5vIGxvbmdlciBmbGFrZXkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2UtbGluay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2ltYWdlLWxpbmstZXhwZWN0ZWQudHh0CmluZGV4IGI3MzE4NmQzMzJkMjBk
NjIwZWQzMmFmYTY4MmI3ZTBjYmQxZTQwMDkuLjA0ZDhhNjdmZWQ1MGY4MGJhMzcwZWI0MjVlZTU4
OWMxYjNkMDQwODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2Ut
bGluay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1s
aW5rLWV4cGVjdGVkLnR4dApAQCAtNjQsNiArNjQsNyBAQCBBWERPTUNsYXNzTGlzdDogPGFycmF5
IG9mIHNpemUgMD4KIEFYRm9jdXNhYmxlQW5jZXN0b3I6IDxBWEltYWdlPgogQVhFZGl0YWJsZUFu
Y2VzdG9yOiAobnVsbCkKIEFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQorQVhJbWFn
ZU92ZXJsYXlFbGVtZW50czogPGFycmF5IG9mIHNpemUgMD4KIEFYRW1iZWRkZWRJbWFnZURlc2Ny
aXB0aW9uOgogQVhVUkw6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmVzb3VyY2VzL2Nha2Uu
cG5nCiBBWEVsZW1lbnRCdXN5OiAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2ltYWdlLW92ZXJsYXktZWxlbWVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZjc4ZDgwN2EzYWY5YTRhZmRlMDBkZGEzYjhjNjhhYTdiNTk2MWZkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1BBU1MgYXhJbWFnZU92ZXJsYXlFbGVtZW50cy5s
ZW5ndGggaXMgMgoraGVsbG8KKword29ybGQKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvaW1hZ2Utb3ZlcmxheS1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBiODFiNGY5NTdj
OTJlNWIyNjFiMzY1YjM1MDNhYjU3NGY4YzFkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2Utb3ZlcmxheS1lbGVtZW50cy5odG1sCkBAIC0wLDAgKzEs
NjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7CisgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorCis8aW1nIGlkPSJpbWFnZTEiIHNyYz0iLi9yZXNvdXJjZXMv
Z3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorCis8c2NyaXB0PgorICAgIHdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Cisg
ICAgICAgIGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgICAgIGlu
dGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICB0ZXh0IDogIndvcmxkIiwKKyAgICAgICAgICAgICAgICB0
b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICB0
b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisgICAgICAgICAgICB9
LAorICAgICAgICBdKTsKKworICAgICAgICBydW5UZXN0KCk7CisgICAgfSk7CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9s
bGVyKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHsKKyAgICAgICAgICAg
ICAgICB2YXIgYXhJbWFnZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVt
ZW50QnlJZCgiaW1hZ2UxIik7CisgICAgICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7
CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5heEltYWdlT3ZlcmxheUVsZW1lbnRzID0gYXhJ
bWFnZS5pbWFnZU92ZXJsYXlFbGVtZW50czsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF4
SW1hZ2VPdmVybGF5RWxlbWVudHMubGVuZ3RoID09IDI7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoImF4SW1hZ2VPdmVybGF5RWxlbWVudHMubGVuZ3RoIiwg
IjIiKTsKKworICAgICAgICAgICAgICAgIGZvciAobGV0IGF4RWxlbWVudCBvZiBheEltYWdlT3Zl
cmxheUVsZW1lbnRzKSB7CisgICAgICAgICAgICAgICAgICAgIGxldCB0ZXh0TWFya2VyUmFuZ2Ug
PSBheEVsZW1lbnQudGV4dE1hcmtlclJhbmdlRm9yRWxlbWVudChheEVsZW1lbnQpOworICAgICAg
ICAgICAgICAgICAgICBkZWJ1ZyhheEVsZW1lbnQuc3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKHRl
eHRNYXJrZXJSYW5nZSkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSwgMCk7CisgICAgICAgIH0KKyAgICB9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI4NDk4MjQzNzFi
ODcxOThmNDdlY2QwM2VmY2RkMDEyNTU3YWVlYQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTEz
NAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVY0TUtMOTg1cUZ7PHtsajExWmh8a0h9Jk0yNXc7
eFdATU4oTSo9OXcKelVnR0tOJUtuZ0BQZ3VuJll4fHAtS3ExLThrY2JsSntNXzhzeWI+VW5meCk+
YkhMKVokTVdIO2lCdHlhNyg+RVlSCnpGT3s4dmYlJUUyaSheUXx0KyFWVWNeTWN1U1Q/ZGhePkFs
cF9TQW1adyVVZ3dFYHlXZEZxNDdLZmVqMmkrJn1gdgp6MWA9UjQ0Pnk9aWozbSh0QG1ldXozaWhC
TU0mWkthJT4rKHI2bmNyJl5vYyMkNEhyYCRUdzxEa2lnfCg5PzcxSTcKTzElYW9scFVYT0BnZUN3
ejk1SkIpCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431774</attachid>
            <date>2021-06-18 06:54:09 -0700</date>
            <delta_ts>2021-06-18 07:52:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210618095408.patch</filename>
            <type>text/plain</type>
            <size>38266</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMxZDg3ZmM2YzU3NzAx
YjU0MzcxZGQ0MDQzMzVmOGUzNTJmZWE5NS4uMzJlZTdiZjUzMTA5N2RlMzcyMmNhZjY3ODllNDUy
NTZmNDZkOTlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIxLTA2LTE4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBY2Nlc3NpYmls
aXR5IHN1cHBvcnQgZm9yIGltYWdlIHRleHQgcmVjb2duaXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODAKKyAgICAgICAgcmRhcjovLzc2
MzQ4NzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAg
VGVzdDogYWNjZXNzaWJpbGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWwKKworICAgICAg
ICBFeHBvc2VzIHRvIGFjY2Vzc2liaWxpdHkgY2xpZW50cyB0aGUgZWxlbWVudHMgY3JlYXRlZCBi
eQorICAgICAgICBXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uIGZvciBzdGF0aWMgaW1h
Z2VzLiBUaGlzIGFsbG93cyBjbGllbnRzCisgICAgICAgIHRvIHByZXNlbnQgdGhlIHJlY29nbml6
ZWQgdGV4dCBpbiBpbWFnZXMgdG8gYXNzaXN0aXZlIHRlY2hub2xvZ3kgdXNlcnMuCisgICAgICAg
IC0gQWRkZWQgYSBuZXcgQVhPYmplY3Qgc3ViY2xhc3MsIEFYSW1hZ2UsIHRvIGVuY2Fwc3VsYXRl
IHRoaXMgZnVuY3Rpb25hbGl0eS4KKyAgICAgICAgVGhpcyBjbGFzcyBjYW4gYmUgZXhwYW5kZWQg
dG8gb2ZmbG9hZCBzb21lIG9mIHRoZSBpbWFnZSBzcGVjaWZpYyBjb2RlCisgICAgICAgIGNvbnRh
aW5lZCBpbiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dCwKKyAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCBhbmQgb3RoZXJzLgorICAgICAgICAtIFNp
bmNlIHJlcXVlc3RUZXh0UmVjb2duaXRpb24gaXMgYW4gYXN5bmMgY2FsbCwgYWRkZWQgYW4gQVhO
b3RpZmljYXRpb24KKyAgICAgICAgdG8gbm90aWZ5IGNsaWVudHMgd2hlbiB0aGUgaW1hZ2Ugb3Zl
cmxheSBlbGVtZW50cyBhcmUgYXZhaWxhYmxlIGZvcgorICAgICAgICBjb25zdW1wdGlvbi4KKwor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2U6OkFYSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
QVhJbWFnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2U6OnJvbGVWYWx1ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWEltYWdlLmg6IEFkZGVkLgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmlzU2ltcGxlSW1hZ2UpOiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBnaXZlbiBlbGVtZW50
IGlzIGEgc3RhdGljCisgICAgICAgIGltYWdlLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJv
bVJlbmRlcmVyKTogSW5zdGFudGlhdGUgYW4gQVhJbWFnZSBvYmplY3Qgd2hlbgorICAgICAgICBh
cHByb3ByaWF0ZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4gY29u
c3QpOiBJbWFnZXMgY2FuCisgICAgICAgIGhhdmUgY2hpbGRyZW4uCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFtZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3Mv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW06CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlFbGVtZW50c10pOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5
RWxlbWVudHNdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmlzQVhJ
bWFnZUluc3RhbmNlIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORF0pOgorICAg
ICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlVmFsdWU6XSk6CisKIDIwMjEtMDYtMTggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXNy
Y09iamVjdC5odHRwcy5odG1sIGlzIGZhaWxpbmcgc2luY2UgcjI3MzY0NQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCBiMWJkNWNhZWNiYWUwNzc3ZjQyMjQ2NTgyZTk3YjgyM2UzY2RmOWRkLi4yYTViMTcwNDJl
NDg4M2RlNjcxNjcwOWUwYjkxNTViMDFjZTQ0MTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNDQyLDYg
KzQ0Miw3IEBAIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmNwcCBAbm8tdW5pZnkK
IE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgQG5vLXVuaWZ5CiBN
b2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgQG5vLXVuaWZ5CiBNb2R1bGVz
L3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmNwcCBAbm8tdW5pZnkKK2FjY2Vzc2liaWxpdHkvQVhJbWFn
ZS5jcHAKIGFjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwCiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3
YmFiZDUzODcwMWE3N2E4OTBmNzYxZDI0ZDg5MDNiODVlMGE3MTNmLi5mNjA4OWIyNmFiMzZjMjdk
ZjU1ODUxOTdlNDBiZGUxNmQ4NmE5ZWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDY2MSw2ICsxNDY2MSw4IEBACiAJCUJF
QTgwN0M3MEY3MTRBMDMwMDUyNDE5OSAvKiBTZWxlY3Rpb25HZW9tZXRyeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3Rpb25HZW9tZXRyeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCRUYyOUVFOTE3MTVERDA5MDBDNEI0QzkgLyogQXVkaW9UcmFja1By
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UcmFja1ByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkVGMjlFRUExNzE1REQwOTAwQzRC
NEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZGVvVHJhY2tQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMw
NDAwQzdDMjYxQ0IzREIwMEFGNDRGQSAvKiBBWEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFYSW1h
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzA0MDBDN0UyNjFDQjNEQjAwQUY0
NEZBIC8qIEFYSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVhJbWFnZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwNDZFMUFCMTIwOEE5RkUwMEJBMkNGNyAvKiBMb2Nh
bGl6ZWRTdHJpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExv
Y2FsaXplZFN0cmluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMDQ5M0VC
NzI0NDY5OUU0MDA5QUFDODAgLyogQVhMb2dnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVhMb2dnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzA3ODM3
NjAyM0RGMjUzRTAwQzlDNUM4IC8qIEFYSXNvbGF0ZWRPYmplY3RNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBBWElzb2xhdGVkT2JqZWN0TWFjLm1tOyBwYXRoID0gbWFjL0FYSXNvbGF0ZWRP
YmplY3RNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTQ2Miw2ICsxOTQ2
NCw4IEBACiAJCQkJQTkxQzlGQzAxQjY1OUE2NzAwQUZGRDU0IC8qIEFjY2Vzc2liaWxpdHlUcmVl
SXRlbS5jcHAgKi8sCiAJCQkJQTkxQzlGQzExQjY1OUE2NzAwQUZGRDU0IC8qIEFjY2Vzc2liaWxp
dHlUcmVlSXRlbS5oICovLAogCQkJCUE5RUU0NDhDMjEwRkM5QUQwMEI2RUFFNiAvKiBBcmlhQXR0
cmlidXRlcy5pZGwgKi8sCisJCQkJQzA0MDBDN0UyNjFDQjNEQjAwQUY0NEZBIC8qIEFYSW1hZ2Uu
Y3BwICovLAorCQkJCUMwNDAwQzdDMjYxQ0IzREIwMEFGNDRGQSAvKiBBWEltYWdlLmggKi8sCiAJ
CQkJQzA4RjEzQTEyNDQ3NjZEQzAwQUI5ODlGIC8qIEFYTG9nZ2VyLmNwcCAqLywKIAkJCQlDMDQ5
M0VCNzI0NDY5OUU0MDA5QUFDODAgLyogQVhMb2dnZXIuaCAqLywKIAkJCQkyOTgxQ0FBRjEzMTgy
MkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWEltYWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzFkOTE4YTkyNGM3MWQ1NjQzZTU5OThh
MWZkOWEyMDY0OTI2MGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWEltYWdlLmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUg
bmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJBWEltYWdlLmgiCisKKyNpbmNsdWRlICJBWExvZ2dlci5oIgorI2luY2x1ZGUgIkNocm9tZS5o
IgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FY
SW1hZ2U6OkFYSW1hZ2UoUmVuZGVySW1hZ2UqIHJlbmRlcmVyKQorICAgIDogQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdChyZW5kZXJlcikKK3sKK30KKworUmVmPEFYSW1hZ2U+IEFYSW1hZ2U6OmNy
ZWF0ZShSZW5kZXJJbWFnZSogcmVuZGVyZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QVhJbWFnZShyZW5kZXJlcikpOworfQorCitBY2Nlc3NpYmlsaXR5Um9sZSBBWEltYWdlOjpyb2xl
VmFsdWUoKSBjb25zdAoreworICAgIGF1dG8gYXJpYVJvbGUgPSBhcmlhUm9sZUF0dHJpYnV0ZSgp
OworICAgIGlmIChhcmlhUm9sZSAhPSBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93bikKKyAgICAg
ICAgcmV0dXJuIGFyaWFSb2xlOworCisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFn
ZTsKK30KKworc3RkOjpvcHRpb25hbDxBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3Rvcj4gQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKQoreworICAgIEFYVFJBQ0Uo
IkFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzIik7CisKKyAgICBhdXRvJiBjaGlsZHJlbiA9
IHRoaXMtPmNoaWxkcmVuKCk7CisgICAgaWYgKGNoaWxkcmVuLnNpemUoKSkKKyAgICAgICAgcmV0
dXJuIGNoaWxkcmVuOworCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIGF1dG8qIHBh
Z2UgPSB0aGlzLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkucmVxdWVzdFRleHRSZWNvZ25p
dGlvbigqZWxlbWVudCgpLCBbXSAoUmVmUHRyPEVsZW1lbnQ+JiYgaW1hZ2VPdmVybGF5SG9zdCkg
eworICAgICAgICBpZiAoIWltYWdlT3ZlcmxheUhvc3QpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgaWYgKGF1dG8qIGF4T2JqZWN0Q2FjaGUgPSBpbWFnZU92ZXJsYXlIb3N0LT5kb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgYXhPYmplY3RDYWNo
ZS0+cG9zdE5vdGlmaWNhdGlvbihpbWFnZU92ZXJsYXlIb3N0LmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWEltYWdlT3ZlcmxheUNoYW5nZWQpOworICAgIH0pOworI2VuZGlmCisKKyAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhJbWFnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMDM0ZDBmOTU0YTc0NzU3YmMyODI1
YmZiYjk2ODRlM2VhOTk4NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYSW1hZ2UuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUg
bmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQVhJbWFnZSA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEFYSW1hZ2U+IGNyZWF0ZShS
ZW5kZXJJbWFnZSopOworICAgIHZpcnR1YWwgfkFYSW1hZ2UoKSA9IGRlZmF1bHQ7CisKK3ByaXZh
dGU6CisgICAgZXhwbGljaXQgQVhJbWFnZShSZW5kZXJJbWFnZSopOworICAgIGJvb2wgaXNBWElt
YWdlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisKKyAgICBBY2Nl
c3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6Om9wdGlv
bmFsPEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcj4gaW1hZ2VPdmVybGF5RWxlbWVudHMoKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUgCisKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQUNDRVNTSUJJTElUWShBWEltYWdlLCBpc0FYSW1hZ2VJbnN0YW5jZSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAppbmRleCA0MTM5YjQzZjZlYzBm
MWEwZGJlMjQ2NzU2YmE1YTI1MjI4YzAwYWFmLi40MmVlZjdmMTkyMTliM2ZlNjA2MmExY2RiNzcz
NGY5YzNkNDFmYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
TG9nZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNw
cApAQCAtMzcyLDYgKzM3Miw5IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
c3RyZWFtLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbiBub3RpZmljCiAgICAgY2FzZSBB
WE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhJZEF0dHJpYnV0ZUNoYW5nZWQ6CiAgICAg
ICAgIHN0cmVhbSA8PCAiQVhJZEF0dHJpYnV0ZUNoYW5nZWQiOwogICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWEltYWdlT3ZlcmxheUNoYW5n
ZWQ6CisgICAgICAgIHN0cmVhbSA8PCAiQVhJbWFnZU92ZXJsYXlDaGFuZ2VkIjsKKyAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhMYW5ndWFn
ZUNoYW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAiQVhMYW5ndWFnZUNoYW5nZWQiOwogICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCmluZGV4IDA1Zjg2ZTQ3YjJjNTkxMzA1NDY0OTA2NmY5NzUzNmExMTMwNzgzNDguLmI2YzJi
NzQ1Mzg1ZWJhYWI0YzM1MDFhMTQxMTY0ZjRiMTk0ZmQwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNTExLDYgKzUxMSwyOCBAQCBi
b29sIG5vZGVIYXNSb2xlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgcm9sZSkKICAgICByZXR1
cm4gU3BhY2VTcGxpdFN0cmluZyhyb2xlVmFsdWUsIHRydWUpLmNvbnRhaW5zKHJvbGUpOwogfQog
CitzdGF0aWMgYm9vbCBpc1NpbXBsZUltYWdlKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIp
Cit7CisgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAvLyBFeGNsdWRlIEltYWdlQnV0dG9ucyBiZWNhdXNlIHRoZXkgYXJlIHRy
ZWF0ZWQgYXMgYnV0dG9ucywgbm90IGFzIGltYWdlcy4KKyAgICBhdXRvKiBub2RlID0gcmVuZGVy
ZXIubm9kZSgpOworICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgLy8gSW1hZ2VNYXBzIGFyZSBub3Qgc2ltcGxlIGltYWdlcy4K
KyAgICBpZiAoZG93bmNhc3Q8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKS5pbWFnZU1hcCgpCisgICAg
ICAgIHx8IChpczxIVE1MSW1hZ2VFbGVtZW50Pihub2RlKSAmJiBkb3duY2FzdDxIVE1MSW1hZ2VF
bGVtZW50Pihub2RlKS0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih1c2VtYXBB
dHRyKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEV4Y2x1ZGUgdmlkZW8gYW5k
IGF1ZGlvIGVsZW1lbnRzLgorICAgIGlmIChpczxIVE1MTWVkaWFFbGVtZW50Pihub2RlKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBSZWY8
QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlRnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCiB7CiAgICAgLy8gRklYTUU6IEhvdyBjb3VsZCByZW5kZXJlci0+bm9kZSgpIGV2ZXIg
bm90IGJlIGFuIEVsZW1lbnQ/CkBAIC01NTAsNiArNTcyLDkgQEAgc3RhdGljIFJlZjxBY2Nlc3Np
YmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikK
ICAgICBpZiAoaXM8U1ZHRWxlbWVudD4obm9kZSkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5U1ZHRWxlbWVudDo6Y3JlYXRlKHJlbmRlcmVyKTsKIAorICAgIGlmIChpc1NpbXBsZUltYWdl
KCpyZW5kZXJlcikpCisgICAgICAgIHJldHVybiBBWEltYWdlOjpjcmVhdGUoZG93bmNhc3Q8UmVu
ZGVySW1hZ2U+KHJlbmRlcmVyKSk7CisKICNpZiBFTkFCTEUoTUFUSE1MKQogICAgIC8vIFRoZSBt
ZmVuY2VkIGVsZW1lbnQgY3JlYXRlcyBhbm9ueW1vdXMgUmVuZGVyTWF0aE1MT3BlcmF0b3JzIHdo
aWNoIHNob3VsZCBiZSB0cmVhdGVkCiAgICAgLy8gYXMgTWF0aE1MIGVsZW1lbnRzIGFuZCBhc3Np
Z25lZCB0aGUgTWF0aEVsZW1lbnRSb2xlIHNvIHRoYXQgcGxhdGZvcm0gbG9naWMgcmVnYXJkaW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IDU2
NDcxNmNlMzRiZGRjNzZjNjQ0ZmVmMzFhODFhMGYwZTNhNDNlM2QuLmY4ZDAwNTk1MTU4MjkxZjA4
MWVmNGIwNDI3MWU0NTk4NzhhOTA2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5oCkBAIC0yODQsNiArMjg0LDcgQEAgcHVibGljOgogICAgICAgICBB
WEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkLAogICAgICAgICBBWEZyYW1lTG9hZENvbXBsZXRlLAog
ICAgICAgICBBWElkQXR0cmlidXRlQ2hhbmdlZCwKKyAgICAgICAgQVhJbWFnZU92ZXJsYXlDaGFu
Z2VkLAogICAgICAgICBBWExhbmd1YWdlQ2hhbmdlZCwKICAgICAgICAgQVhMYXlvdXRDb21wbGV0
ZSwKICAgICAgICAgQVhMb2FkQ29tcGxldGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IDc5MDI2NjA5
MTYyMDdhOGVhMzUzNDE3OTRjZGI0ZTYyMDE1NDY3ODUuLjI3MGJiZDlkOGNhOGU0NWY0NzhjNDJh
YzNmYTBmOGNlNWJkODI1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0zNzgsNyArMzc4LDYgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QKICAg
ICAKICAgICAvLyBFbGVtZW50cyB0aGF0IHNob3VsZCBub3QgaGF2ZSBjaGlsZHJlbgogICAgIHN3
aXRjaCAocm9sZVZhbHVlKCkpIHsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZToK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCdXR0b246CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6UG9wVXBCdXR0b246CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2hlY2tC
b3g6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCmluZGV4IDhlNTJjMDUwY2NiYzkxMjMwYWFiNDczOTRkOWQ1YWFiOTZlNjRkNGUuLmI4
YTFmZDdkNTQzNDU1OGY5ZTdjMjIxMjM2MzEzZDE2YWNmYTM0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC05Myw2ICs5
Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlT
Y3JvbGxiYXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNB
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZHRWxl
bWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vz
c2liaWxpdHlUYWJsZUluc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
QEAgLTM5OSw2ICs0MDAsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGJyYWlsbGVMYWJlbCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmFyaWFfYnJhaWxs
ZWxhYmVsQXR0cik7IH0KICAgICBTdHJpbmcgYnJhaWxsZVJvbGVEZXNjcmlwdGlvbigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmFyaWFfYnJhaWxsZXJv
bGVkZXNjcmlwdGlvbkF0dHIpOyB9CiAgICAgU3RyaW5nIGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlv
bigpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yPiBpbWFnZU92ZXJsYXlFbGVtZW50cygpIG92ZXJyaWRlIHsgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsgfQogCiAgICAgLy8gQWJicmV2aWF0aW9ucwogICAgIFN0cmluZyBleHBhbmRlZFRl
eHRWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFN0cmluZygpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdElu
dGVyZmFjZS5oCmluZGV4IGJjYzg2ZTM2YzkyYzNmNTQzM2JhMDA4YjRkMjRmMDYyNTVlNGZkY2Uu
Ljg5N2FkMGIyODljZDFjOWFjNjNmYzY1ZmMzYTlkYmQwMGZlZDI3NTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdElu
dGVyZmFjZS5oCkBAIC03OTEsNiArNzkxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBp
c0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29s
IGlzQWNjZXNzaWJpbGl0eVNjcm9sbGJhcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgYm9vbCBpc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
aXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNB
Y2Nlc3NpYmlsaXR5U1ZHRWxlbWVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNB
Y2Nlc3NpYmlsaXR5VGFibGVJbnN0YW5jZSgpIGNvbnN0ID0gMDsKQEAgLTEwMTQsNiArMTAxNSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBicmFpbGxlTGFiZWwoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBTdHJpbmcgYnJhaWxsZVJvbGVEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIFN0cmluZyBlbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcj4g
aW1hZ2VPdmVybGF5RWxlbWVudHMoKSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNB
UklBT3ducygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmVEZXNjZW5kYW50
T2ZGb2N1c2VkQ29udGFpbmVyKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXggNGY1NDAxZjViNzg4
NTc3NWQ4N2JjOWY1NWE1NTZjMGVjNzJjNWMzYi4uNDgyZjZjOTAxYjc0NTc4NjdiODllNTIwYmVk
NWJiZmI2ZTIyZjk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC01MSw2ICs1MSw5IEBAIFN0cmluZyBBWE9iamVj
dENhY2hlOjpub3RpZmljYXRpb25QbGF0Zm9ybU5hbWUoQVhOb3RpZmljYXRpb24gbm90aWZpY2F0
aW9uKQogICAgIGNhc2UgQVhGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZDoKICAgICAgICAgbmFtZSA9
ICJBWEZvY3VzQ2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhJbWFnZU92ZXJs
YXlDaGFuZ2VkOgorICAgICAgICBuYW1lID0gIkFYSW1hZ2VPdmVybGF5Q2hhbmdlZCI7CisgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQVhQYWdlU2Nyb2xsZWQ6CiAgICAgICAgIG5hbWUgPSAiQVhQ
YWdlU2Nyb2xsZWQiOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJJT1MubW0KaW5kZXggM2QwNWY5YzUxMGY0MzhkM2Y4YWFmZGU4YjVkNTBlNjE3NWZhNjRh
YS4uMmY1ZjYwMGVmMGI3ZTIwYjI2ZjcyZDc3MDdkMDRjYzUwZDgzMmVjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KQEAgLTcyLDYgKzcyLDcgQEAgZW51bSB7CiAt
IChOU0ludGVnZXIpYWNjZXNzaWJpbGl0eUVsZW1lbnRDb3VudDsKIC0gKGlkKWFjY2Vzc2liaWxp
dHlFbGVtZW50QXRJbmRleDooTlNJbnRlZ2VyKWluZGV4OwogLSAoTlNJbnRlZ2VyKWluZGV4T2ZB
Y2Nlc3NpYmlsaXR5RWxlbWVudDooaWQpZWxlbWVudDsKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmls
aXR5RWxlbWVudHM7CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgKEFjY2Vzc2liaWxpdHlQcml2YXRlKQpAQCAtNDI5LDYgKzQzMCwyOSBAQCBzdGF0aWMg
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIEFjY2Vzc2liaWxpdHlVbmlnbm9yZWRBbmNlc3Rv
cihBY2Nlc3NpYmlsaXR5TwogICAgICAgICBjYWNoZS0+c3RvcENhY2hpbmdDb21wdXRlZE9iamVj
dEF0dHJpYnV0ZXMoKTsKIH0KIAorLSAoTlNBcnJheSAqKWFjY2Vzc2liaWxpdHlFbGVtZW50cwor
eworICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICBpZiAoW3NlbGYgaXNBdHRhY2htZW50XSkgeworICAgICAgICBpZiAo
aWQgYXR0YWNobWVudFZpZXcgPSBbc2VsZiBhdHRhY2htZW50Vmlld10pCisgICAgICAgICAgICBy
ZXR1cm4gW2F0dGFjaG1lbnRWaWV3IGFjY2Vzc2liaWxpdHlFbGVtZW50c107CisgICAgfQorCisg
ICAgYXV0byBhcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwor
ICAgIGZvciAoY29uc3QgYXV0byYgY2hpbGQgOiBzZWxmLmF4QmFja2luZ09iamVjdC0+Y2hpbGRy
ZW4oKSkgeworICAgICAgICBhdXRvKiB3cmFwcGVyID0gY2hpbGQtPndyYXBwZXIoKTsKKyAgICAg
ICAgaWYgKGNoaWxkLT5pc0F0dGFjaG1lbnQoKSkgeworICAgICAgICAgICAgaWYgKGlkIGF0dGFj
aG1lbnRWaWV3ID0gW3dyYXBwZXIgYXR0YWNobWVudFZpZXddKQorICAgICAgICAgICAgICAgIFth
cnJheSBhZGRPYmplY3Q6YXR0YWNobWVudFZpZXddOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIFthcnJheSBhZGRPYmplY3Q6d3JhcHBlcl07CisgICAgfQorCisgICAgcmV0dXJuIGFycmF5
LmF1dG9yZWxlYXNlKCk7Cit9CisKIC0gKE5TSW50ZWdlcilhY2Nlc3NpYmlsaXR5RWxlbWVudENv
dW50CiB7CiAgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxsXSkKQEAgLTE4
NTQsNiArMTg3OCwxNSBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTdHJpbmdUb1Jlc3VsdChOU011dGFi
bGVTdHJpbmcgKnJlc3VsdCwgTlNTdHJpbmcgKnN0cmluZykKICAgICByZXR1cm4gc2VsZi5heEJh
Y2tpbmdPYmplY3QtPmVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpOwogfQogCistIChOU0FycmF5
ICopYWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzCit7CisgICAgaWYgKCFbc2VsZiBf
cHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxsXSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGF1
dG8gaW1hZ2VPdmVybGF5RWxlbWVudHMgPSBzZWxmLmF4QmFja2luZ09iamVjdC0+aW1hZ2VPdmVy
bGF5RWxlbWVudHMoKTsKKyAgICByZXR1cm4gaW1hZ2VPdmVybGF5RWxlbWVudHMgPyBhY2Nlc3Np
YmxlRWxlbWVudHNGb3JPYmplY3RzKCppbWFnZU92ZXJsYXlFbGVtZW50cykgOiBuaWw7Cit9CisK
IC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0eUxpbmtSZWxhdGlvbnNoaXBUeXBlCiB7CiAgICAg
aWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxsXSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5jcHAKaW5kZXggMTk5OTg0Y2FiYjZiNGM5NWQyMTQ1YWM1ODlmY2YzYzI4MDFlMjZlNy4u
YjcwYWRiYTY0OGVkYjcyM2U0M2YxNjA3MmVmZTRhNzFkNzg1NzljMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAKQEAgLTEyNTgsNiArMTI1OCwxMiBAQCBib29sIEFYSXNvbGF0ZWRPYmpl
Y3Q6OmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXdJbnN0YW5jZSgpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCitib29sIEFYSXNvbGF0ZWRPYmplY3Q6OmlzQVhJbWFnZUluc3RhbmNlKCkg
Y29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIGJvb2wgQVhJc29sYXRlZE9iamVjdDo6aXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5k
ZXggY2Y2N2QyNzc4ZWMyYjY5OGZlNmM2MWY3Yjc2YTdlOTAwMGY0MmYxYy4uNzI1NWYyYzRkYmYy
Y2FkYzU2YzIxNTlmNDVkZjNlZWZjNTQ2N2NmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApA
QCAtMjcyLDYgKzI3Miw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGJyYWlsbGVMYWJlbCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
OjpCcmFpbGxlTGFiZWwpOyB9CiAgICAgU3RyaW5nIGJyYWlsbGVSb2xlRGVzY3JpcHRpb24oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFt
ZTo6QnJhaWxsZVJvbGVEZXNjcmlwdGlvbik7IH0KICAgICBTdHJpbmcgZW1iZWRkZWRJbWFnZURl
c2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUo
QVhQcm9wZXJ0eU5hbWU6OkVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbik7IH0KKyAgICBzdGQ6Om9w
dGlvbmFsPEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcj4gaW1hZ2VPdmVybGF5RWxlbWVudHMo
KSBvdmVycmlkZSB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KIAogICAgIFN0cmluZyBjb21wdXRl
ZFJvbGVTdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJpbmdBdHRyaWJ1dGVWYWx1
ZShBWFByb3BlcnR5TmFtZTo6Q29tcHV0ZWRSb2xlU3RyaW5nKTsgfQogICAgIGJvb2wgaXNWYWx1
ZUF1dG9maWxsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUo
QVhQcm9wZXJ0eU5hbWU6OklzVmFsdWVBdXRvZmlsbGVkKTsgfQpAQCAtNDY1LDYgKzQ2Niw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSBjb25zdCBv
dmVycmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNjcm9sbGJhcigpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgYm9vbCBpc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJv
b2wgaXNBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
aXNBY2Nlc3NpYmlsaXR5VGFibGVJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5k
ZXggMTMwYmNiYTUxNzM0YTgwNGI4YTEzNWM3Yjc5MDJkNzNlZWY1MWVkYi4uOTI1ZGRlOWE3NTA5
YTcxNzZhZjg0OTY2NTZlZjQxNWE4MjFkMGM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC0zMTksNiArMzE5LDkg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2Jq
ZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG4KICAgICBjYXNlIEFYRm9jdXNlZFVJRWxlbWVudENo
YW5nZWQ6CiAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IE5TQWNjZXNzaWJpbGl0eUZvY3VzZWRV
SUVsZW1lbnRDaGFuZ2VkTm90aWZpY2F0aW9uOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEFY
SW1hZ2VPdmVybGF5Q2hhbmdlZDoKKyAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gQCJBWEltYWdl
T3ZlcmxheUNoYW5nZWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIEFYTGF5b3V0Q29tcGxl
dGU6CiAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IEAiQVhMYXlvdXRDb21wbGV0ZSI7CiAgICAg
ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCA0
YTc5YjNiM2ZiMzc5YjFjNmI3MGE3NTdjZmRjMGY1Y2RiNzI2NmQ5Li4zZjg1NTczNDZjOGY5MjAx
YmYwNTFhYzg5NjMyMTAyMzlhMTI4YjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbQpAQCAtNTQzLDYgKzU0MywxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
ICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uQXR0cmlidXRl
IEAiQVhFbWJlZGRlZEltYWdlRGVzY3JpcHRpb24iCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50c0F0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50c0F0dHJpYnV0ZSBAIkFYSW1hZ2VPdmVybGF5RWxlbWVu
dHMiCisjZW5kaWYKKwogZXh0ZXJuICJDIiBBWFVJRWxlbWVudFJlZiBOU0FjY2Vzc2liaWxpdHlD
cmVhdGVBWFVJRWxlbWVudFJlZihpZCBlbGVtZW50KTsKIAogQGltcGxlbWVudGF0aW9uIFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyCkBAIC0xNTYwLDggKzE1NjQsOSBAQCBBTExPV19ERVBS
RUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5VmVydGljYWxTY3JvbGxCYXJBdHRyaWJ1dGVdOwogICAgICAgICByZXR1
cm4gdGVtcEFycmF5OwogICAgIH0oKSk7Ci0gICAgc3RhdGljIGF1dG8gaW1hZ2VBdHRycyA9ICBt
YWtlTmV2ZXJEZXN0cm95ZWQoW10geworICAgIHN0YXRpYyBhdXRvIGltYWdlQXR0cnMgPSBtYWtl
TmV2ZXJEZXN0cm95ZWQoW10gewogICAgICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tO
U011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgp
XSk7CisgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUltYWdlT3Zl
cmxheUVsZW1lbnRzQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICAgICAg
W3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VVJMQXR0cmlidXRlXTsKICAgICAg
ICAgcmV0dXJuIHRlbXBBcnJheTsKQEAgLTIzNjYsNiArMjM3MSwxMiBAQCBBTExPV19ERVBSRUNB
VEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIFtzZWxmIHBvc2l0aW9uXTsK
ICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVBh
dGhBdHRyaWJ1dGVdKQogICAgICAgICByZXR1cm4gW3NlbGYgcGF0aF07CisKKyAgICBpZiAoW2F0
dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVs
ZW1lbnRzQXR0cmlidXRlXSkgeworICAgICAgICBhdXRvIGltYWdlT3ZlcmxheUVsZW1lbnRzID0g
YmFja2luZ09iamVjdC0+aW1hZ2VPdmVybGF5RWxlbWVudHMoKTsKKyAgICAgICAgcmV0dXJuIGlt
YWdlT3ZlcmxheUVsZW1lbnRzID8gY29udmVydFRvTlNBcnJheSgqaW1hZ2VPdmVybGF5RWxlbWVu
dHMpIDogbmlsOworICAgIH0KKwogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJp
bmc6TlNBY2Nlc3NpYmlsaXR5RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uQXR0cmlidXRlXSkKICAg
ICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3QtPmVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGVh
N2ViNmViOGY1ODE3ZjgxODU5M2EyYjhmZWMyMjFmNTZmY2I3MC4uOTZkNzY4MzQzZDI5MTgzNWUw
MzA0ZjRkMWM5OGE0YWQ5NWVmODM2YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA2LTE4ICBBbmRyZXMgR29u
emFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBY2Nlc3NpYmlsaXR5IHN1
cHBvcnQgZm9yIGltYWdlIHRleHQgcmVjb2duaXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuIGNvbnN0KToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVu
dHMgY29uc3QpOgorCiAyMDIxLTA2LTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBEZWZpbmUgTWFjcm9Bc3NlbWJsZXJBUk02NEU6Om51bWJlck9mUEFDQml0cyBi
YXNlZCBvbiBPU19DT05TVEFOVChFRkZFQ1RJVkVfQUREUkVTU19XSURUSCkuCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCA5N2ExYzJiOTVjZmQ1ZmUyYjJmZWM3ODcwYTYyMThk
NmU0YzJkYjQ3Li42NzRhODBlMmMyY2MwNDBlNjA4NWJhMzc0NTUwMjQ0NTg1NDk4ODY5IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTEyNyw2ICsxMjcsNyBAQCBSZWZQdHI8
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRTZW50
ZW5jZUVuZFRleHRNYXJrZQogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpwcmV2aW91c1NlbnRlbmNlU3RhcnRUZXh0TWFya2VyRm9yVGV4dE1h
cmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopIHsgcmV0dXJuIG51bGxwdHI7IH0KIFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpt
aXNzcGVsbGluZ1RleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiwg
Ym9vbCkgeyByZXR1cm4gbnVsbHB0cjsgfQogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpk
aXNtaXNzKCkgeyB9CitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVu
KCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmRldGFpbHNFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogSlNWYWx1ZVJlZiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplcnJvck1lc3NhZ2VFbGVtZW50cygpIGNvbnN0IHsgcmV0
dXJuIHsgfTsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKaW5kZXggYWQ2MzEzYjA1MzM5ZTE1ZmZhNTc1ZDcx
ZjkyNDc4ZmRmMjgzZmYyMC4uZWMxMTE1NmRjYmFkOTg0YTY1MjZjNWJiMWQ2YWY3ZWQ5OWMwNmNj
MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKQEAgLTgzLDYgKzgzLDcgQEAgcHVibGlj
OgogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBkb21JZGVudGlmaWVyKCkgY29uc3Q7CiAK
ICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gZWxlbWVudEF0UG9pbnQoaW50IHgs
IGludCB5KTsKKyAgICBKU1ZhbHVlUmVmIGNoaWxkcmVuKCkgY29uc3Q7CiAgICAgUmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGNoaWxkQXRJbmRleCh1bnNpZ25lZCk7CiAgICAgdW5zaWdu
ZWQgaW5kZXhPZkNoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKTsKICAgICBpbnQgY2hpbGRy
ZW5Db3VudCgpOwpAQCAtMTk2LDcgKzE5Nyw4IEBAIHB1YmxpYzoKICAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gdXJsKCk7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNsYXNzTGlz
dCgpIGNvbnN0OwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBlbWJlZGRlZEltYWdlRGVz
Y3JpcHRpb24oKSBjb25zdDsKLSAgICAKKyAgICBKU1ZhbHVlUmVmIGltYWdlT3ZlcmxheUVsZW1l
bnRzKCkgY29uc3Q7CisKICAgICAvLyBDU1MzLXNwZWVjaCBwcm9wZXJ0aWVzLgogICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBzcGVha0FzKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAppbmRleCAyNjI2NWE1Yzg1MGYyNDFjOWNhMDk1
YWJlMWQ4MmEyZWU2ZWRjYTliLi43OTI3OWJlMmM4OGY1OGVkNjM4ZGNlMGEyNzFhOGQyZTE2NmE2
MmNlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwK
QEAgLTExMCw2ICsxMTAsNyBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXJp
YURyb3BFZmZlY3RzOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgY2xhc3NMaXN0
OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZW1iZWRkZWRJbWFnZURlc2NyaXB0
aW9uOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBvYmplY3QgaW1hZ2VPdmVybGF5RWxlbWVudHM7
CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyB4OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBsb25nIHk7CkBAIC0xMTgsNiArMTE5LDcgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9u
ZyBjbGlja1BvaW50WDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBjbGlja1BvaW50WTsK
IAorICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBvYmplY3QgY2hpbGRyZW47CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGxvbmcgY2hpbGRyZW5Db3VudDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9u
ZyBzZWxlY3RlZENoaWxkcmVuQ291bnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgcm93
Q291bnQ7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQppbmRleCA2
OTAwMjhkYjYwYWE1ZjBmYjU1MTlkMjUyMDE2MTYxNzdhNmM5NTE1Li4wNWI3NzhkNGRhNjUxZmY5
Y2ExYzE2YThlZjY1NzhlOTViNTBiNjM2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRJT1MubW0KQEAgLTEwMiw2ICsxMDIsNyBAQCB0eXBlZGVmIHZvaWQgKCpBWFBvc3Rl
ZE5vdGlmaWNhdGlvbkNhbGxiYWNrKShpZCBlbGVtZW50LCBOU1N0cmluZyogbm90aWZpY2F0aW9u
LAogLSAoaWQpX2FjY2Vzc2liaWxpdHlMYW5kbWFya0FuY2VzdG9yOwogLSAoaWQpX2FjY2Vzc2li
aWxpdHlMaXN0QW5jZXN0b3I7CiAtIChpZClfYWNjZXNzaWJpbGl0eVBob3RvRGVzY3JpcHRpb247
CistIChOU0FycmF5ICopYWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzOwogCiAvLyBU
ZXh0TWFya2VyIHJlbGF0ZWQKIC0gKE5TQXJyYXkgKil0ZXh0TWFya2VyUmFuZ2U7CkBAIC0yMTUs
NiArMjE2LDExIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0RG9jdW1lbnRMaW5r
cyhWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lCiB7CiB9CiAKK0pTVmFsdWVSZWYg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4oKSBjb25zdAoreworICAgIHJldHVybiBt
YWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oW21f
ZWxlbWVudCBhY2Nlc3NpYmlsaXR5RWxlbWVudHNdKSk7Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiA+JiBlbGVtZW50VmVjdG9yKQogewogICAgIE5TSW50ZWdlciBjaGlsZENvdW50ID0gW21f
ZWxlbWVudCBhY2Nlc3NpYmlsaXR5RWxlbWVudENvdW50XTsKQEAgLTExMDEsNiArMTEwNywxMSBA
QCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW1iZWRk
ZWRJbWFnZURlc2NyaXB0aW9uKCkgY29ucwogICAgIHJldHVybiBjb25jYXRlbmF0ZUF0dHJpYnV0
ZUFuZFZhbHVlKEAiQVhFbWJlZGRlZEltYWdlRGVzY3JpcHRpb24iLCBbbV9lbGVtZW50IF9hY2Nl
c3NpYmlsaXR5UGhvdG9EZXNjcmlwdGlvbl0pOwogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmltYWdlT3ZlcmxheUVsZW1lbnRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bWFrZUpTQXJyYXkobWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KFtt
X2VsZW1lbnQgYWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzXSkpOworfQorCiBib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKCkgY29uc3QKIHsKICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRl
eCBkZGQ4ZDU4MDBiZjg5M2EyNjhlZmU3MmY2NzI0ODcwYjNmODEyZWIxLi5jMTI5MGQxZDZjOGQ2
ZDk4NDhmYTNiZGRiNjU2ZjgyYWU0N2VjZjAyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMubW0KQEAgLTM0OSw2ICszNDksMTUgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpnZXRVSUVsZW1lbnRzV2l0aEF0dHJpYnV0ZShKU1N0cmluZ1JlZiBhdHRyaWJ1
dGUsIFYKICAgICAgICAgZWxlbWVudHMgPSBtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Pj4odmFsdWUpOwogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNoaWxkcmVuKCkgY29uc3QKK3sKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAg
ICByZXR1cm4gbWFrZUpTQXJyYXkobWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4+KGF0dHJpYnV0ZVZhbHVlKG1fZWxlbWVudC5nZXQoKSwgTlNBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5BdHRyaWJ1dGUpKSk7CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRy
ZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+JiBlbGVtZW50VmVjdG9y
KQogewogICAgIGVsZW1lbnRWZWN0b3IgPSBtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Pj4oYXR0cmlidXRlVmFsdWUobV9lbGVtZW50LmdldCgpLCBOU0FjY2Vzc2liaWxp
dHlDaGlsZHJlbkF0dHJpYnV0ZSkpOwpAQCAtMTY3NCw2ICsxNjgzLDE1IEBAIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3Jp
cHRpb24oKSBjb25zCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0pTVmFsdWVSZWYgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25zdAoreworICAgIEJF
R0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9y
PFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oYXR0cmlidXRlVmFsdWUobV9lbGVtZW50
LmdldCgpLCBAIkFYSW1hZ2VPdmVybGF5RWxlbWVudHMiKSkpOworICAgIEVORF9BWF9PQkpDX0VY
Q0VQVElPTlMKKworICAgIHJldHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgQk9PTCByZXN1bHQgPSBOTzsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBlMDYyYjg4NDNkNzA1OTNiYmVmZTU0NWVmZDM4MWY5MmJlZTVjYWE2Li4yYjM0NmQ4Mzdh
MjhiZjgxNWYzYzM3NzI2MmIzZDIwNGJjZTVkMGQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjEtMDYtMTggIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgorCisgICAg
ICAgIEFjY2Vzc2liaWxpdHkgc3VwcG9ydCBmb3IgaW1hZ2UgdGV4dCByZWNvZ25pdGlvbi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDI4MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9pbWFnZS1saW5rLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lt
YWdlLW92ZXJsYXktZWxlbWVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2ltYWdlLW92ZXJsYXktZWxlbWVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmc6IEFkZGVkLgorCiAyMDIx
LTA2LTE4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1N0cmVhbWVyXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL01lZGlhU3RyZWFtLU1lZGlhRWxlbWVudC1zcmNPYmplY3QuaHR0cHMuaHRtbCBp
cyBmYWlsaW5nIHNpbmNlIHIyNzM2NDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvaW1hZ2UtbGluay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2ltYWdlLWxpbmstZXhwZWN0ZWQudHh0CmluZGV4IGI3MzE4NmQzMzJkMjBkNjIwZWQzMmFmYTY4
MmI3ZTBjYmQxZTQwMDkuLjA0ZDhhNjdmZWQ1MGY4MGJhMzcwZWI0MjVlZTU4OWMxYjNkMDQwODkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2UtbGluay1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1saW5rLWV4cGVjdGVk
LnR4dApAQCAtNjQsNiArNjQsNyBAQCBBWERPTUNsYXNzTGlzdDogPGFycmF5IG9mIHNpemUgMD4K
IEFYRm9jdXNhYmxlQW5jZXN0b3I6IDxBWEltYWdlPgogQVhFZGl0YWJsZUFuY2VzdG9yOiAobnVs
bCkKIEFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQorQVhJbWFnZU92ZXJsYXlFbGVt
ZW50czogPGFycmF5IG9mIHNpemUgMD4KIEFYRW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uOgogQVhV
Ukw6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmVzb3VyY2VzL2Nha2UucG5nCiBBWEVsZW1l
bnRCdXN5OiAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdlLW92
ZXJsYXktZWxlbWVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9p
bWFnZS1vdmVybGF5LWVsZW1lbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjc4ZDgwN2Ez
YWY5YTRhZmRlMDBkZGEzYjhjNjhhYTdiNTk2MWZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDkgQEAKK1BBU1MgYXhJbWFnZU92ZXJsYXlFbGVtZW50cy5sZW5ndGggaXMgMgor
aGVsbG8KKword29ybGQKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2Ut
b3ZlcmxheS1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1v
dmVybGF5LWVsZW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBiODFiNGY5NTdjOTJlNWIyNjFiMzY1
YjM1MDNhYjU3NGY4YzFkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvaW1hZ2Utb3ZlcmxheS1lbGVtZW50cy5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxp
dHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorCis8aW1nIGlkPSJpbWFnZTEiIHNyYz0iLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQw
MC5wbmciPjwvaW1nPgorCis8c2NyaXB0PgorICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgIGFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgICAgIGltYWdl
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgICAgIGludGVybmFscy5pbnN0
YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
dGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDApLAorICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMCksCisgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICB0ZXh0IDogIndvcmxkIiwKKyAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisgICAgICAgICAgICB9LAorICAgICAgICBd
KTsKKworICAgICAgICBydW5UZXN0KCk7CisgICAgfSk7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAg
ICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgICAgICB2YXIgYXhJ
bWFnZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiaW1h
Z2UxIik7CisgICAgICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIHdpbmRvdy5heEltYWdlT3ZlcmxheUVsZW1lbnRzID0gYXhJbWFnZS5pbWFnZU92
ZXJsYXlFbGVtZW50czsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF4SW1hZ2VPdmVybGF5
RWxlbWVudHMubGVuZ3RoID09IDI7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoImF4SW1hZ2VPdmVybGF5RWxlbWVudHMubGVuZ3RoIiwgIjIiKTsKKworICAg
ICAgICAgICAgICAgIGZvciAobGV0IGF4RWxlbWVudCBvZiBheEltYWdlT3ZlcmxheUVsZW1lbnRz
KSB7CisgICAgICAgICAgICAgICAgICAgIGxldCB0ZXh0TWFya2VyUmFuZ2UgPSBheEVsZW1lbnQu
dGV4dE1hcmtlclJhbmdlRm9yRWxlbWVudChheEVsZW1lbnQpOworICAgICAgICAgICAgICAgICAg
ICBkZWJ1ZyhheEVsZW1lbnQuc3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKHRleHRNYXJrZXJSYW5n
ZSkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgICAgICAgICAgfSwgMCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmVzb3Vy
Y2VzL2dyZWVuLTQwMHg0MDAucG5nIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yZXNvdXJj
ZXMvZ3JlZW4tNDAweDQwMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI4NDk4MjQzNzFiODcxOThmNDdlY2Qw
M2VmY2RkMDEyNTU3YWVlYQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTEzNAp6Y21lQVNATj8o
b2xIeWB1VkJxIWlhMHl+eVY0TUtMOTg1cUZ7PHtsajExWmh8a0h9Jk0yNXc7eFdATU4oTSo9OXcK
elVnR0tOJUtuZ0BQZ3VuJll4fHAtS3ExLThrY2JsSntNXzhzeWI+VW5meCk+YkhMKVokTVdIO2lC
dHlhNyg+RVlSCnpGT3s4dmYlJUUyaSheUXx0KyFWVWNeTWN1U1Q/ZGhePkFscF9TQW1adyVVZ3dF
YHlXZEZxNDdLZmVqMmkrJn1gdgp6MWA9UjQ0Pnk9aWozbSh0QG1ldXozaWhCTU0mWkthJT4rKHI2
bmNyJl5vYyMkNEhyYCRUdzxEa2lnfCg5PzcxSTcKTzElYW9scFVYT0BnZUN3ejk1SkIpCgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>
<flag name="commit-queue"
          id="453640"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431776</attachid>
            <date>2021-06-18 07:32:03 -0700</date>
            <delta_ts>2021-06-21 08:22:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210618103200.patch</filename>
            <type>text/plain</type>
            <size>38358</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMxZDg3ZmM2YzU3NzAx
YjU0MzcxZGQ0MDQzMzVmOGUzNTJmZWE5NS4uMzJlZTdiZjUzMTA5N2RlMzcyMmNhZjY3ODllNDUy
NTZmNDZkOTlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIxLTA2LTE4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBY2Nlc3NpYmls
aXR5IHN1cHBvcnQgZm9yIGltYWdlIHRleHQgcmVjb2duaXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODAKKyAgICAgICAgcmRhcjovLzc2
MzQ4NzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAg
VGVzdDogYWNjZXNzaWJpbGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWwKKworICAgICAg
ICBFeHBvc2VzIHRvIGFjY2Vzc2liaWxpdHkgY2xpZW50cyB0aGUgZWxlbWVudHMgY3JlYXRlZCBi
eQorICAgICAgICBXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uIGZvciBzdGF0aWMgaW1h
Z2VzLiBUaGlzIGFsbG93cyBjbGllbnRzCisgICAgICAgIHRvIHByZXNlbnQgdGhlIHJlY29nbml6
ZWQgdGV4dCBpbiBpbWFnZXMgdG8gYXNzaXN0aXZlIHRlY2hub2xvZ3kgdXNlcnMuCisgICAgICAg
IC0gQWRkZWQgYSBuZXcgQVhPYmplY3Qgc3ViY2xhc3MsIEFYSW1hZ2UsIHRvIGVuY2Fwc3VsYXRl
IHRoaXMgZnVuY3Rpb25hbGl0eS4KKyAgICAgICAgVGhpcyBjbGFzcyBjYW4gYmUgZXhwYW5kZWQg
dG8gb2ZmbG9hZCBzb21lIG9mIHRoZSBpbWFnZSBzcGVjaWZpYyBjb2RlCisgICAgICAgIGNvbnRh
aW5lZCBpbiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dCwKKyAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCBhbmQgb3RoZXJzLgorICAgICAgICAtIFNp
bmNlIHJlcXVlc3RUZXh0UmVjb2duaXRpb24gaXMgYW4gYXN5bmMgY2FsbCwgYWRkZWQgYW4gQVhO
b3RpZmljYXRpb24KKyAgICAgICAgdG8gbm90aWZ5IGNsaWVudHMgd2hlbiB0aGUgaW1hZ2Ugb3Zl
cmxheSBlbGVtZW50cyBhcmUgYXZhaWxhYmxlIGZvcgorICAgICAgICBjb25zdW1wdGlvbi4KKwor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2U6OkFYSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
QVhJbWFnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2U6OnJvbGVWYWx1ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWEltYWdlLmg6IEFkZGVkLgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmlzU2ltcGxlSW1hZ2UpOiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBnaXZlbiBlbGVtZW50
IGlzIGEgc3RhdGljCisgICAgICAgIGltYWdlLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJv
bVJlbmRlcmVyKTogSW5zdGFudGlhdGUgYW4gQVhJbWFnZSBvYmplY3Qgd2hlbgorICAgICAgICBh
cHByb3ByaWF0ZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4gY29u
c3QpOiBJbWFnZXMgY2FuCisgICAgICAgIGhhdmUgY2hpbGRyZW4uCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFtZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3Mv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW06CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlFbGVtZW50c10pOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5
RWxlbWVudHNdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmlzQVhJ
bWFnZUluc3RhbmNlIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORF0pOgorICAg
ICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlVmFsdWU6XSk6CisKIDIwMjEtMDYtMTggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXNy
Y09iamVjdC5odHRwcy5odG1sIGlzIGZhaWxpbmcgc2luY2UgcjI3MzY0NQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCBiMWJkNWNhZWNiYWUwNzc3ZjQyMjQ2NTgyZTk3YjgyM2UzY2RmOWRkLi4yYTViMTcwNDJl
NDg4M2RlNjcxNjcwOWUwYjkxNTViMDFjZTQ0MTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNDQyLDYg
KzQ0Miw3IEBAIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmNwcCBAbm8tdW5pZnkK
IE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgQG5vLXVuaWZ5CiBN
b2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgQG5vLXVuaWZ5CiBNb2R1bGVz
L3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmNwcCBAbm8tdW5pZnkKK2FjY2Vzc2liaWxpdHkvQVhJbWFn
ZS5jcHAKIGFjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwCiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3
YmFiZDUzODcwMWE3N2E4OTBmNzYxZDI0ZDg5MDNiODVlMGE3MTNmLi5mNjA4OWIyNmFiMzZjMjdk
ZjU1ODUxOTdlNDBiZGUxNmQ4NmE5ZWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDY2MSw2ICsxNDY2MSw4IEBACiAJCUJF
QTgwN0M3MEY3MTRBMDMwMDUyNDE5OSAvKiBTZWxlY3Rpb25HZW9tZXRyeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3Rpb25HZW9tZXRyeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCRUYyOUVFOTE3MTVERDA5MDBDNEI0QzkgLyogQXVkaW9UcmFja1By
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UcmFja1ByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkVGMjlFRUExNzE1REQwOTAwQzRC
NEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZGVvVHJhY2tQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMw
NDAwQzdDMjYxQ0IzREIwMEFGNDRGQSAvKiBBWEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFYSW1h
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzA0MDBDN0UyNjFDQjNEQjAwQUY0
NEZBIC8qIEFYSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVhJbWFnZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwNDZFMUFCMTIwOEE5RkUwMEJBMkNGNyAvKiBMb2Nh
bGl6ZWRTdHJpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExv
Y2FsaXplZFN0cmluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMDQ5M0VC
NzI0NDY5OUU0MDA5QUFDODAgLyogQVhMb2dnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVhMb2dnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzA3ODM3
NjAyM0RGMjUzRTAwQzlDNUM4IC8qIEFYSXNvbGF0ZWRPYmplY3RNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBBWElzb2xhdGVkT2JqZWN0TWFjLm1tOyBwYXRoID0gbWFjL0FYSXNvbGF0ZWRP
YmplY3RNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTQ2Miw2ICsxOTQ2
NCw4IEBACiAJCQkJQTkxQzlGQzAxQjY1OUE2NzAwQUZGRDU0IC8qIEFjY2Vzc2liaWxpdHlUcmVl
SXRlbS5jcHAgKi8sCiAJCQkJQTkxQzlGQzExQjY1OUE2NzAwQUZGRDU0IC8qIEFjY2Vzc2liaWxp
dHlUcmVlSXRlbS5oICovLAogCQkJCUE5RUU0NDhDMjEwRkM5QUQwMEI2RUFFNiAvKiBBcmlhQXR0
cmlidXRlcy5pZGwgKi8sCisJCQkJQzA0MDBDN0UyNjFDQjNEQjAwQUY0NEZBIC8qIEFYSW1hZ2Uu
Y3BwICovLAorCQkJCUMwNDAwQzdDMjYxQ0IzREIwMEFGNDRGQSAvKiBBWEltYWdlLmggKi8sCiAJ
CQkJQzA4RjEzQTEyNDQ3NjZEQzAwQUI5ODlGIC8qIEFYTG9nZ2VyLmNwcCAqLywKIAkJCQlDMDQ5
M0VCNzI0NDY5OUU0MDA5QUFDODAgLyogQVhMb2dnZXIuaCAqLywKIAkJCQkyOTgxQ0FBRjEzMTgy
MkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWEltYWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzFkOTE4YTkyNGM3MWQ1NjQzZTU5OThh
MWZkOWEyMDY0OTI2MGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWEltYWdlLmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUg
bmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJBWEltYWdlLmgiCisKKyNpbmNsdWRlICJBWExvZ2dlci5oIgorI2luY2x1ZGUgIkNocm9tZS5o
IgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FY
SW1hZ2U6OkFYSW1hZ2UoUmVuZGVySW1hZ2UqIHJlbmRlcmVyKQorICAgIDogQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdChyZW5kZXJlcikKK3sKK30KKworUmVmPEFYSW1hZ2U+IEFYSW1hZ2U6OmNy
ZWF0ZShSZW5kZXJJbWFnZSogcmVuZGVyZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QVhJbWFnZShyZW5kZXJlcikpOworfQorCitBY2Nlc3NpYmlsaXR5Um9sZSBBWEltYWdlOjpyb2xl
VmFsdWUoKSBjb25zdAoreworICAgIGF1dG8gYXJpYVJvbGUgPSBhcmlhUm9sZUF0dHJpYnV0ZSgp
OworICAgIGlmIChhcmlhUm9sZSAhPSBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93bikKKyAgICAg
ICAgcmV0dXJuIGFyaWFSb2xlOworCisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFn
ZTsKK30KKworc3RkOjpvcHRpb25hbDxBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3Rvcj4gQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKQoreworICAgIEFYVFJBQ0Uo
IkFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzIik7CisKKyAgICBhdXRvJiBjaGlsZHJlbiA9
IHRoaXMtPmNoaWxkcmVuKCk7CisgICAgaWYgKGNoaWxkcmVuLnNpemUoKSkKKyAgICAgICAgcmV0
dXJuIGNoaWxkcmVuOworCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIGF1dG8qIHBh
Z2UgPSB0aGlzLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkucmVxdWVzdFRleHRSZWNvZ25p
dGlvbigqZWxlbWVudCgpLCBbXSAoUmVmUHRyPEVsZW1lbnQ+JiYgaW1hZ2VPdmVybGF5SG9zdCkg
eworICAgICAgICBpZiAoIWltYWdlT3ZlcmxheUhvc3QpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgaWYgKGF1dG8qIGF4T2JqZWN0Q2FjaGUgPSBpbWFnZU92ZXJsYXlIb3N0LT5kb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgYXhPYmplY3RDYWNo
ZS0+cG9zdE5vdGlmaWNhdGlvbihpbWFnZU92ZXJsYXlIb3N0LmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWEltYWdlT3ZlcmxheUNoYW5nZWQpOworICAgIH0pOworI2VuZGlmCisKKyAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhJbWFnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMDM0ZDBmOTU0YTc0NzU3YmMyODI1
YmZiYjk2ODRlM2VhOTk4NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYSW1hZ2UuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUg
bmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQVhJbWFnZSA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEFYSW1hZ2U+IGNyZWF0ZShS
ZW5kZXJJbWFnZSopOworICAgIHZpcnR1YWwgfkFYSW1hZ2UoKSA9IGRlZmF1bHQ7CisKK3ByaXZh
dGU6CisgICAgZXhwbGljaXQgQVhJbWFnZShSZW5kZXJJbWFnZSopOworICAgIGJvb2wgaXNBWElt
YWdlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisKKyAgICBBY2Nl
c3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6Om9wdGlv
bmFsPEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcj4gaW1hZ2VPdmVybGF5RWxlbWVudHMoKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUgCisKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQUNDRVNTSUJJTElUWShBWEltYWdlLCBpc0FYSW1hZ2VJbnN0YW5jZSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAppbmRleCA0MTM5YjQzZjZlYzBm
MWEwZGJlMjQ2NzU2YmE1YTI1MjI4YzAwYWFmLi40MmVlZjdmMTkyMTliM2ZlNjA2MmExY2RiNzcz
NGY5YzNkNDFmYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
TG9nZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNw
cApAQCAtMzcyLDYgKzM3Miw5IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
c3RyZWFtLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbiBub3RpZmljCiAgICAgY2FzZSBB
WE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhJZEF0dHJpYnV0ZUNoYW5nZWQ6CiAgICAg
ICAgIHN0cmVhbSA8PCAiQVhJZEF0dHJpYnV0ZUNoYW5nZWQiOwogICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWEltYWdlT3ZlcmxheUNoYW5n
ZWQ6CisgICAgICAgIHN0cmVhbSA8PCAiQVhJbWFnZU92ZXJsYXlDaGFuZ2VkIjsKKyAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhMYW5ndWFn
ZUNoYW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAiQVhMYW5ndWFnZUNoYW5nZWQiOwogICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCmluZGV4IDA1Zjg2ZTQ3YjJjNTkxMzA1NDY0OTA2NmY5NzUzNmExMTMwNzgzNDguLmI2YzJi
NzQ1Mzg1ZWJhYWI0YzM1MDFhMTQxMTY0ZjRiMTk0ZmQwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNTExLDYgKzUxMSwyOCBAQCBi
b29sIG5vZGVIYXNSb2xlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgcm9sZSkKICAgICByZXR1
cm4gU3BhY2VTcGxpdFN0cmluZyhyb2xlVmFsdWUsIHRydWUpLmNvbnRhaW5zKHJvbGUpOwogfQog
CitzdGF0aWMgYm9vbCBpc1NpbXBsZUltYWdlKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIp
Cit7CisgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAvLyBFeGNsdWRlIEltYWdlQnV0dG9ucyBiZWNhdXNlIHRoZXkgYXJlIHRy
ZWF0ZWQgYXMgYnV0dG9ucywgbm90IGFzIGltYWdlcy4KKyAgICBhdXRvKiBub2RlID0gcmVuZGVy
ZXIubm9kZSgpOworICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgLy8gSW1hZ2VNYXBzIGFyZSBub3Qgc2ltcGxlIGltYWdlcy4K
KyAgICBpZiAoZG93bmNhc3Q8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKS5pbWFnZU1hcCgpCisgICAg
ICAgIHx8IChpczxIVE1MSW1hZ2VFbGVtZW50Pihub2RlKSAmJiBkb3duY2FzdDxIVE1MSW1hZ2VF
bGVtZW50Pihub2RlKS0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih1c2VtYXBB
dHRyKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEV4Y2x1ZGUgdmlkZW8gYW5k
IGF1ZGlvIGVsZW1lbnRzLgorICAgIGlmIChpczxIVE1MTWVkaWFFbGVtZW50Pihub2RlKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBSZWY8
QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlRnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCiB7CiAgICAgLy8gRklYTUU6IEhvdyBjb3VsZCByZW5kZXJlci0+bm9kZSgpIGV2ZXIg
bm90IGJlIGFuIEVsZW1lbnQ/CkBAIC01NTAsNiArNTcyLDkgQEAgc3RhdGljIFJlZjxBY2Nlc3Np
YmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikK
ICAgICBpZiAoaXM8U1ZHRWxlbWVudD4obm9kZSkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5U1ZHRWxlbWVudDo6Y3JlYXRlKHJlbmRlcmVyKTsKIAorICAgIGlmIChpc1NpbXBsZUltYWdl
KCpyZW5kZXJlcikpCisgICAgICAgIHJldHVybiBBWEltYWdlOjpjcmVhdGUoZG93bmNhc3Q8UmVu
ZGVySW1hZ2U+KHJlbmRlcmVyKSk7CisKICNpZiBFTkFCTEUoTUFUSE1MKQogICAgIC8vIFRoZSBt
ZmVuY2VkIGVsZW1lbnQgY3JlYXRlcyBhbm9ueW1vdXMgUmVuZGVyTWF0aE1MT3BlcmF0b3JzIHdo
aWNoIHNob3VsZCBiZSB0cmVhdGVkCiAgICAgLy8gYXMgTWF0aE1MIGVsZW1lbnRzIGFuZCBhc3Np
Z25lZCB0aGUgTWF0aEVsZW1lbnRSb2xlIHNvIHRoYXQgcGxhdGZvcm0gbG9naWMgcmVnYXJkaW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IDU2
NDcxNmNlMzRiZGRjNzZjNjQ0ZmVmMzFhODFhMGYwZTNhNDNlM2QuLmY4ZDAwNTk1MTU4MjkxZjA4
MWVmNGIwNDI3MWU0NTk4NzhhOTA2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5oCkBAIC0yODQsNiArMjg0LDcgQEAgcHVibGljOgogICAgICAgICBB
WEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkLAogICAgICAgICBBWEZyYW1lTG9hZENvbXBsZXRlLAog
ICAgICAgICBBWElkQXR0cmlidXRlQ2hhbmdlZCwKKyAgICAgICAgQVhJbWFnZU92ZXJsYXlDaGFu
Z2VkLAogICAgICAgICBBWExhbmd1YWdlQ2hhbmdlZCwKICAgICAgICAgQVhMYXlvdXRDb21wbGV0
ZSwKICAgICAgICAgQVhMb2FkQ29tcGxldGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IDc5MDI2NjA5
MTYyMDdhOGVhMzUzNDE3OTRjZGI0ZTYyMDE1NDY3ODUuLjI3MGJiZDlkOGNhOGU0NWY0NzhjNDJh
YzNmYTBmOGNlNWJkODI1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0zNzgsNyArMzc4LDYgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QKICAg
ICAKICAgICAvLyBFbGVtZW50cyB0aGF0IHNob3VsZCBub3QgaGF2ZSBjaGlsZHJlbgogICAgIHN3
aXRjaCAocm9sZVZhbHVlKCkpIHsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZToK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCdXR0b246CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6UG9wVXBCdXR0b246CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2hlY2tC
b3g6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCmluZGV4IDhlNTJjMDUwY2NiYzkxMjMwYWFiNDczOTRkOWQ1YWFiOTZlNjRkNGUuLmI4
YTFmZDdkNTQzNDU1OGY5ZTdjMjIxMjM2MzEzZDE2YWNmYTM0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC05Myw2ICs5
Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlT
Y3JvbGxiYXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNB
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZHRWxl
bWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vz
c2liaWxpdHlUYWJsZUluc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
QEAgLTM5OSw2ICs0MDAsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGJyYWlsbGVMYWJlbCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmFyaWFfYnJhaWxs
ZWxhYmVsQXR0cik7IH0KICAgICBTdHJpbmcgYnJhaWxsZVJvbGVEZXNjcmlwdGlvbigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmFyaWFfYnJhaWxsZXJv
bGVkZXNjcmlwdGlvbkF0dHIpOyB9CiAgICAgU3RyaW5nIGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlv
bigpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yPiBpbWFnZU92ZXJsYXlFbGVtZW50cygpIG92ZXJyaWRlIHsgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsgfQogCiAgICAgLy8gQWJicmV2aWF0aW9ucwogICAgIFN0cmluZyBleHBhbmRlZFRl
eHRWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFN0cmluZygpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdElu
dGVyZmFjZS5oCmluZGV4IGJjYzg2ZTM2YzkyYzNmNTQzM2JhMDA4YjRkMjRmMDYyNTVlNGZkY2Uu
Ljg5N2FkMGIyODljZDFjOWFjNjNmYzY1ZmMzYTlkYmQwMGZlZDI3NTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdElu
dGVyZmFjZS5oCkBAIC03OTEsNiArNzkxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBp
c0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29s
IGlzQWNjZXNzaWJpbGl0eVNjcm9sbGJhcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgYm9vbCBpc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
aXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNB
Y2Nlc3NpYmlsaXR5U1ZHRWxlbWVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNB
Y2Nlc3NpYmlsaXR5VGFibGVJbnN0YW5jZSgpIGNvbnN0ID0gMDsKQEAgLTEwMTQsNiArMTAxNSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBicmFpbGxlTGFiZWwoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBTdHJpbmcgYnJhaWxsZVJvbGVEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIFN0cmluZyBlbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcj4g
aW1hZ2VPdmVybGF5RWxlbWVudHMoKSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNB
UklBT3ducygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmVEZXNjZW5kYW50
T2ZGb2N1c2VkQ29udGFpbmVyKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXggNGY1NDAxZjViNzg4
NTc3NWQ4N2JjOWY1NWE1NTZjMGVjNzJjNWMzYi4uNDgyZjZjOTAxYjc0NTc4NjdiODllNTIwYmVk
NWJiZmI2ZTIyZjk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC01MSw2ICs1MSw5IEBAIFN0cmluZyBBWE9iamVj
dENhY2hlOjpub3RpZmljYXRpb25QbGF0Zm9ybU5hbWUoQVhOb3RpZmljYXRpb24gbm90aWZpY2F0
aW9uKQogICAgIGNhc2UgQVhGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZDoKICAgICAgICAgbmFtZSA9
ICJBWEZvY3VzQ2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhJbWFnZU92ZXJs
YXlDaGFuZ2VkOgorICAgICAgICBuYW1lID0gIkFYSW1hZ2VPdmVybGF5Q2hhbmdlZCI7CisgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQVhQYWdlU2Nyb2xsZWQ6CiAgICAgICAgIG5hbWUgPSAiQVhQ
YWdlU2Nyb2xsZWQiOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJJT1MubW0KaW5kZXggM2QwNWY5YzUxMGY0MzhkM2Y4YWFmZGU4YjVkNTBlNjE3NWZhNjRh
YS4uMmY1ZjYwMGVmMGI3ZTIwYjI2ZjcyZDc3MDdkMDRjYzUwZDgzMmVjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KQEAgLTcyLDYgKzcyLDcgQEAgZW51bSB7CiAt
IChOU0ludGVnZXIpYWNjZXNzaWJpbGl0eUVsZW1lbnRDb3VudDsKIC0gKGlkKWFjY2Vzc2liaWxp
dHlFbGVtZW50QXRJbmRleDooTlNJbnRlZ2VyKWluZGV4OwogLSAoTlNJbnRlZ2VyKWluZGV4T2ZB
Y2Nlc3NpYmlsaXR5RWxlbWVudDooaWQpZWxlbWVudDsKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmls
aXR5RWxlbWVudHM7CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgKEFjY2Vzc2liaWxpdHlQcml2YXRlKQpAQCAtNDI5LDYgKzQzMCwyOSBAQCBzdGF0aWMg
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIEFjY2Vzc2liaWxpdHlVbmlnbm9yZWRBbmNlc3Rv
cihBY2Nlc3NpYmlsaXR5TwogICAgICAgICBjYWNoZS0+c3RvcENhY2hpbmdDb21wdXRlZE9iamVj
dEF0dHJpYnV0ZXMoKTsKIH0KIAorLSAoTlNBcnJheSAqKWFjY2Vzc2liaWxpdHlFbGVtZW50cwor
eworICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICBpZiAoW3NlbGYgaXNBdHRhY2htZW50XSkgeworICAgICAgICBpZiAo
aWQgYXR0YWNobWVudFZpZXcgPSBbc2VsZiBhdHRhY2htZW50Vmlld10pCisgICAgICAgICAgICBy
ZXR1cm4gW2F0dGFjaG1lbnRWaWV3IGFjY2Vzc2liaWxpdHlFbGVtZW50c107CisgICAgfQorCisg
ICAgYXV0byBhcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwor
ICAgIGZvciAoY29uc3QgYXV0byYgY2hpbGQgOiBzZWxmLmF4QmFja2luZ09iamVjdC0+Y2hpbGRy
ZW4oKSkgeworICAgICAgICBhdXRvKiB3cmFwcGVyID0gY2hpbGQtPndyYXBwZXIoKTsKKyAgICAg
ICAgaWYgKGNoaWxkLT5pc0F0dGFjaG1lbnQoKSkgeworICAgICAgICAgICAgaWYgKGlkIGF0dGFj
aG1lbnRWaWV3ID0gW3dyYXBwZXIgYXR0YWNobWVudFZpZXddKQorICAgICAgICAgICAgICAgIFth
cnJheSBhZGRPYmplY3Q6YXR0YWNobWVudFZpZXddOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIFthcnJheSBhZGRPYmplY3Q6d3JhcHBlcl07CisgICAgfQorCisgICAgcmV0dXJuIGFycmF5
LmF1dG9yZWxlYXNlKCk7Cit9CisKIC0gKE5TSW50ZWdlcilhY2Nlc3NpYmlsaXR5RWxlbWVudENv
dW50CiB7CiAgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxsXSkKQEAgLTE4
NTQsNiArMTg3OCwxNSBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTdHJpbmdUb1Jlc3VsdChOU011dGFi
bGVTdHJpbmcgKnJlc3VsdCwgTlNTdHJpbmcgKnN0cmluZykKICAgICByZXR1cm4gc2VsZi5heEJh
Y2tpbmdPYmplY3QtPmVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpOwogfQogCistIChOU0FycmF5
ICopYWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzCit7CisgICAgaWYgKCFbc2VsZiBf
cHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxsXSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGF1
dG8gaW1hZ2VPdmVybGF5RWxlbWVudHMgPSBzZWxmLmF4QmFja2luZ09iamVjdC0+aW1hZ2VPdmVy
bGF5RWxlbWVudHMoKTsKKyAgICByZXR1cm4gaW1hZ2VPdmVybGF5RWxlbWVudHMgPyBhY2Nlc3Np
YmxlRWxlbWVudHNGb3JPYmplY3RzKCppbWFnZU92ZXJsYXlFbGVtZW50cykgOiBuaWw7Cit9CisK
IC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0eUxpbmtSZWxhdGlvbnNoaXBUeXBlCiB7CiAgICAg
aWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxsXSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5jcHAKaW5kZXggMTk5OTg0Y2FiYjZiNGM5NWQyMTQ1YWM1ODlmY2YzYzI4MDFlMjZlNy4u
YjcwYWRiYTY0OGVkYjcyM2U0M2YxNjA3MmVmZTRhNzFkNzg1NzljMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAKQEAgLTEyNTgsNiArMTI1OCwxMiBAQCBib29sIEFYSXNvbGF0ZWRPYmpl
Y3Q6OmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXdJbnN0YW5jZSgpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCitib29sIEFYSXNvbGF0ZWRPYmplY3Q6OmlzQVhJbWFnZUluc3RhbmNlKCkg
Y29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIGJvb2wgQVhJc29sYXRlZE9iamVjdDo6aXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5k
ZXggY2Y2N2QyNzc4ZWMyYjY5OGZlNmM2MWY3Yjc2YTdlOTAwMGY0MmYxYy4uNzI1NWYyYzRkYmYy
Y2FkYzU2YzIxNTlmNDVkZjNlZWZjNTQ2N2NmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApA
QCAtMjcyLDYgKzI3Miw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGJyYWlsbGVMYWJlbCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
OjpCcmFpbGxlTGFiZWwpOyB9CiAgICAgU3RyaW5nIGJyYWlsbGVSb2xlRGVzY3JpcHRpb24oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFt
ZTo6QnJhaWxsZVJvbGVEZXNjcmlwdGlvbik7IH0KICAgICBTdHJpbmcgZW1iZWRkZWRJbWFnZURl
c2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUo
QVhQcm9wZXJ0eU5hbWU6OkVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbik7IH0KKyAgICBzdGQ6Om9w
dGlvbmFsPEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcj4gaW1hZ2VPdmVybGF5RWxlbWVudHMo
KSBvdmVycmlkZSB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KIAogICAgIFN0cmluZyBjb21wdXRl
ZFJvbGVTdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJpbmdBdHRyaWJ1dGVWYWx1
ZShBWFByb3BlcnR5TmFtZTo6Q29tcHV0ZWRSb2xlU3RyaW5nKTsgfQogICAgIGJvb2wgaXNWYWx1
ZUF1dG9maWxsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUo
QVhQcm9wZXJ0eU5hbWU6OklzVmFsdWVBdXRvZmlsbGVkKTsgfQpAQCAtNDY1LDYgKzQ2Niw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSBjb25zdCBv
dmVycmlkZTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNjcm9sbGJhcigpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgYm9vbCBpc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJv
b2wgaXNBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
aXNBY2Nlc3NpYmlsaXR5VGFibGVJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5k
ZXggMTMwYmNiYTUxNzM0YTgwNGI4YTEzNWM3Yjc5MDJkNzNlZWY1MWVkYi4uOTI1ZGRlOWE3NTA5
YTcxNzZhZjg0OTY2NTZlZjQxNWE4MjFkMGM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC0zMTksNiArMzE5LDkg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2Jq
ZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG4KICAgICBjYXNlIEFYRm9jdXNlZFVJRWxlbWVudENo
YW5nZWQ6CiAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IE5TQWNjZXNzaWJpbGl0eUZvY3VzZWRV
SUVsZW1lbnRDaGFuZ2VkTm90aWZpY2F0aW9uOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEFY
SW1hZ2VPdmVybGF5Q2hhbmdlZDoKKyAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gQCJBWEltYWdl
T3ZlcmxheUNoYW5nZWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIEFYTGF5b3V0Q29tcGxl
dGU6CiAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IEAiQVhMYXlvdXRDb21wbGV0ZSI7CiAgICAg
ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCA0
YTc5YjNiM2ZiMzc5YjFjNmI3MGE3NTdjZmRjMGY1Y2RiNzI2NmQ5Li4zZjg1NTczNDZjOGY5MjAx
YmYwNTFhYzg5NjMyMTAyMzlhMTI4YjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbQpAQCAtNTQzLDYgKzU0MywxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
ICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uQXR0cmlidXRl
IEAiQVhFbWJlZGRlZEltYWdlRGVzY3JpcHRpb24iCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50c0F0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlJbWFnZU92ZXJsYXlFbGVtZW50c0F0dHJpYnV0ZSBAIkFYSW1hZ2VPdmVybGF5RWxlbWVu
dHMiCisjZW5kaWYKKwogZXh0ZXJuICJDIiBBWFVJRWxlbWVudFJlZiBOU0FjY2Vzc2liaWxpdHlD
cmVhdGVBWFVJRWxlbWVudFJlZihpZCBlbGVtZW50KTsKIAogQGltcGxlbWVudGF0aW9uIFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyCkBAIC0xNTYwLDggKzE1NjQsOSBAQCBBTExPV19ERVBS
RUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5VmVydGljYWxTY3JvbGxCYXJBdHRyaWJ1dGVdOwogICAgICAgICByZXR1
cm4gdGVtcEFycmF5OwogICAgIH0oKSk7Ci0gICAgc3RhdGljIGF1dG8gaW1hZ2VBdHRycyA9ICBt
YWtlTmV2ZXJEZXN0cm95ZWQoW10geworICAgIHN0YXRpYyBhdXRvIGltYWdlQXR0cnMgPSBtYWtl
TmV2ZXJEZXN0cm95ZWQoW10gewogICAgICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tO
U011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgp
XSk7CisgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUltYWdlT3Zl
cmxheUVsZW1lbnRzQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICAgICAg
W3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VVJMQXR0cmlidXRlXTsKICAgICAg
ICAgcmV0dXJuIHRlbXBBcnJheTsKQEAgLTIzNjYsNiArMjM3MSwxMiBAQCBBTExPV19ERVBSRUNB
VEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIFtzZWxmIHBvc2l0aW9uXTsK
ICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVBh
dGhBdHRyaWJ1dGVdKQogICAgICAgICByZXR1cm4gW3NlbGYgcGF0aF07CisKKyAgICBpZiAoW2F0
dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVs
ZW1lbnRzQXR0cmlidXRlXSkgeworICAgICAgICBhdXRvIGltYWdlT3ZlcmxheUVsZW1lbnRzID0g
YmFja2luZ09iamVjdC0+aW1hZ2VPdmVybGF5RWxlbWVudHMoKTsKKyAgICAgICAgcmV0dXJuIGlt
YWdlT3ZlcmxheUVsZW1lbnRzID8gY29udmVydFRvTlNBcnJheSgqaW1hZ2VPdmVybGF5RWxlbWVu
dHMpIDogbmlsOworICAgIH0KKwogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJp
bmc6TlNBY2Nlc3NpYmlsaXR5RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uQXR0cmlidXRlXSkKICAg
ICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3QtPmVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGVh
N2ViNmViOGY1ODE3ZjgxODU5M2EyYjhmZWMyMjFmNTZmY2I3MC4uOTZkNzY4MzQzZDI5MTgzNWUw
MzA0ZjRkMWM5OGE0YWQ5NWVmODM2YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA2LTE4ICBBbmRyZXMgR29u
emFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBY2Nlc3NpYmlsaXR5IHN1
cHBvcnQgZm9yIGltYWdlIHRleHQgcmVjb2duaXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuIGNvbnN0KToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVu
dHMgY29uc3QpOgorCiAyMDIxLTA2LTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBEZWZpbmUgTWFjcm9Bc3NlbWJsZXJBUk02NEU6Om51bWJlck9mUEFDQml0cyBi
YXNlZCBvbiBPU19DT05TVEFOVChFRkZFQ1RJVkVfQUREUkVTU19XSURUSCkuCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCA5N2ExYzJiOTVjZmQ1ZmUyYjJmZWM3ODcwYTYyMThk
NmU0YzJkYjQ3Li5kYWJiZjQ1OWVlMmYzOTIxZGViMzhiNTY3YWUxYzM4NDA1ZDExZTk5IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTEyNyw4ICsxMjcsMTAgQEAgUmVmUHRy
PEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0U2Vu
dGVuY2VFbmRUZXh0TWFya2UKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6cHJldmlvdXNTZW50ZW5jZVN0YXJ0VGV4dE1hcmtlckZvclRleHRN
YXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKSB7IHJldHVybiBudWxscHRyOyB9CiBSZWZQ
dHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
bWlzc3BlbGxpbmdUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSos
IGJvb2wpIHsgcmV0dXJuIG51bGxwdHI7IH0KIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
ZGlzbWlzcygpIHsgfQorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJl
bigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpkZXRhaWxzRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIEpTVmFsdWVSZWYg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZXJyb3JNZXNzYWdlRWxlbWVudHMoKSBjb25zdCB7IHJl
dHVybiB7IH07IH0KK0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVy
bGF5RWxlbWVudHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBj
b25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaAppbmRleCBhZDYzMTNiMDUzMzllMTVmZmE1NzVkNzFmOTI0NzhmZGYyODNmZjIwLi5lYzEx
MTU2ZGNiYWQ5ODRhNjUyNmM1YmIxZDZhZjdlZDk5YzA2Y2MzIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IGRvbUlkZW50aWZpZXIoKSBjb25zdDsKIAogICAgIFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBlbGVtZW50QXRQb2ludChpbnQgeCwgaW50IHkpOworICAgIEpTVmFsdWVS
ZWYgY2hpbGRyZW4oKSBjb25zdDsKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
Y2hpbGRBdEluZGV4KHVuc2lnbmVkKTsKICAgICB1bnNpZ25lZCBpbmRleE9mQ2hpbGQoQWNjZXNz
aWJpbGl0eVVJRWxlbWVudCopOwogICAgIGludCBjaGlsZHJlbkNvdW50KCk7CkBAIC0xOTYsNyAr
MTk3LDggQEAgcHVibGljOgogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiB1cmwoKTsKICAg
ICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY2xhc3NMaXN0KCkgY29uc3Q7CiAgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0OwotICAg
IAorICAgIEpTVmFsdWVSZWYgaW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25zdDsKKwogICAgIC8v
IENTUzMtc3BlZWNoIHByb3BlcnRpZXMuCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNw
ZWFrQXMoKTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaWRsCmluZGV4IDI2MjY1YTVjODUwZjI0MWM5Y2EwOTVhYmUxZDgyYTJlZTZlZGNhOWIuLjc5
Mjc5YmUyYzg4ZjU4ZWQ2MzhkY2UwYTI3MWE4ZDJlMTY2YTYyY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbApAQCAtMTEwLDYgKzExMCw3IEBACiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhcmlhRHJvcEVmZmVjdHM7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjbGFzc0xpc3Q7CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBlbWJlZGRlZEltYWdlRGVzY3JpcHRpb247CisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIG9iamVjdCBpbWFnZU92ZXJsYXlFbGVtZW50czsKIAogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nIHg7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeTsKQEAgLTExOCw2ICsx
MTksNyBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGNsaWNrUG9pbnRYOwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBsb25nIGNsaWNrUG9pbnRZOwogCisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIG9iamVjdCBjaGlsZHJlbjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBjaGlsZHJl
bkNvdW50OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHNlbGVjdGVkQ2hpbGRyZW5Db3Vu
dDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyByb3dDb3VudDsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCmluZGV4IDY5MDAyOGRiNjBhYTVmMGZiNTUxOWQy
NTIwMTYxNjE3N2E2Yzk1MTUuLjA1Yjc3OGQ0ZGE2NTFmZjljYTFjMTZhOGVmNjU3OGU5NWI1MGI2
MzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9z
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpAQCAtMTAy
LDYgKzEwMiw3IEBAIHR5cGVkZWYgdm9pZCAoKkFYUG9zdGVkTm90aWZpY2F0aW9uQ2FsbGJhY2sp
KGlkIGVsZW1lbnQsIE5TU3RyaW5nKiBub3RpZmljYXRpb24sCiAtIChpZClfYWNjZXNzaWJpbGl0
eUxhbmRtYXJrQW5jZXN0b3I7CiAtIChpZClfYWNjZXNzaWJpbGl0eUxpc3RBbmNlc3RvcjsKIC0g
KGlkKV9hY2Nlc3NpYmlsaXR5UGhvdG9EZXNjcmlwdGlvbjsKKy0gKE5TQXJyYXkgKilhY2Nlc3Np
YmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVudHM7CiAKIC8vIFRleHRNYXJrZXIgcmVsYXRlZAogLSAo
TlNBcnJheSAqKXRleHRNYXJrZXJSYW5nZTsKQEAgLTIxNSw2ICsyMTYsMTEgQEAgdm9pZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpnZXREb2N1bWVudExpbmtzKFZlY3RvcjxSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWUKIHsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpjaGlsZHJlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlF
bGVtZW50c10pKTsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJl
bihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVsZW1lbnRWZWN0b3Ip
CiB7CiAgICAgTlNJbnRlZ2VyIGNoaWxkQ291bnQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlF
bGVtZW50Q291bnRdOwpAQCAtMTEwMSw2ICsxMTA3LDExIEBAIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBj
b25zCiAgICAgcmV0dXJuIGNvbmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWEVtYmVkZGVk
SW1hZ2VEZXNjcmlwdGlvbiIsIFttX2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlQaG90b0Rlc2NyaXB0
aW9uXSk7CiB9CiAKK0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVy
bGF5RWxlbWVudHMoKSBjb25zdAoreworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9y
PFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5
SW1hZ2VPdmVybGF5RWxlbWVudHNdKSk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNDb2xsYXBzZWQoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21h
Yy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IGRkZDhkNTgwMGJmODkzYTI2OGVm
ZTcyZjY3MjQ4NzBiM2Y4MTJlYjEuLmMxMjkwZDFkNmM4ZDZkOTg0OGZhM2JkZGI2NTZmODJhZTQ3
ZWNmMDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAt
MzQ5LDYgKzM0OSwxNSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldFVJRWxlbWVu
dHNXaXRoQXR0cmlidXRlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSwgVgogICAgICAgICBlbGVtZW50
cyA9IG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pih2YWx1ZSk7CiB9
CiAKK0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4oKSBjb25zdAor
eworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAgIHJldHVybiBtYWtlSlNBcnJheSht
YWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oYXR0cmlidXRlVmFsdWUo
bV9lbGVtZW50LmdldCgpLCBOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZSkpKTsKKyAg
ICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogdm9p
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgZWxlbWVudFZlY3Rv
ciA9IG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVW
YWx1ZShtX2VsZW1lbnQuZ2V0KCksIE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlKSk7
CkBAIC0xNjc0LDYgKzE2ODMsMTUgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnMKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbWFn
ZU92ZXJsYXlFbGVtZW50cygpIGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05T
CisgICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShtX2VsZW1lbnQuZ2V0KCksIEAiQVhJbWFnZU92ZXJs
YXlFbGVtZW50cyIpKSk7CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVkKCkg
Y29uc3QKIHsKICAgICBCT09MIHJlc3VsdCA9IE5POwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUwNjJiODg0M2Q3MDU5M2Ji
ZWZlNTQ1ZWZkMzgxZjkyYmVlNWNhYTYuLjJiMzQ2ZDgzN2EyOGJmODE1ZjNjMzc3MjYyYjNkMjA0
YmNlNWQwZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNi0xOCAgQW5kcmVzIEdvbnph
bGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eSBzdXBw
b3J0IGZvciBpbWFnZSB0ZXh0IHJlY29nbml0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2ltYWdlLWxpbmstZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW1hZ2Utb3ZlcmxheS1lbGVtZW50cy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW1hZ2Utb3Zlcmxh
eS1lbGVtZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3Jlc291cmNl
cy9ncmVlbi00MDB4NDAwLnBuZzogQWRkZWQuCisKIDIwMjEtMDYtMTggIFBoaWxpcHBlIE5vcm1h
bmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0t
TWVkaWFFbGVtZW50LXNyY09iamVjdC5odHRwcy5odG1sIGlzIGZhaWxpbmcgc2luY2UgcjI3MzY0
NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1saW5rLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2UtbGluay1leHBlY3RlZC50
eHQKaW5kZXggYjczMTg2ZDMzMmQyMGQ2MjBlZDMyYWZhNjgyYjdlMGNiZDFlNDAwOS4uMDRkOGE2
N2ZlZDUwZjgwYmEzNzBlYjQyNWVlNTg5YzFiM2QwNDA4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1saW5rLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2ltYWdlLWxpbmstZXhwZWN0ZWQudHh0CkBAIC02NCw2ICs2NCw3IEBA
IEFYRE9NQ2xhc3NMaXN0OiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhGb2N1c2FibGVBbmNlc3Rvcjog
PEFYSW1hZ2U+CiBBWEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhIaWdoZXN0RWRpdGFibGVB
bmNlc3RvcjogKG51bGwpCitBWEltYWdlT3ZlcmxheUVsZW1lbnRzOiA8YXJyYXkgb2Ygc2l6ZSAw
PgogQVhFbWJlZGRlZEltYWdlRGVzY3JpcHRpb246CiBBWFVSTDogTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9yZXNvdXJjZXMvY2FrZS5wbmcKIEFYRWxlbWVudEJ1c3k6IDAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2Utb3ZlcmxheS1lbGVtZW50cy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdlLW92ZXJsYXktZWxlbWVudHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNzhkODA3YTNhZjlhNGFmZGUwMGRkYTNiOGM2OGFh
N2I1OTYxZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lt
YWdlLW92ZXJsYXktZWxlbWVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBh
eEltYWdlT3ZlcmxheUVsZW1lbnRzLmxlbmd0aCBpcyAyCitoZWxsbworCit3b3JsZAorCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdlLW92ZXJsYXktZWxlbWVudHMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMGI4MWI0Zjk1N2M5MmU1YjI2MWIzNjViMzUwM2FiNTc0ZjhjMWQ5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1vdmVybGF5LWVs
ZW1lbnRzLmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0
PgorPHN0eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOwor
ICAgIGxlZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxpbWcgaWQ9Imlt
YWdlMSIgc3JjPSIuL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+CisKKzxzY3Jp
cHQ+CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICAgICAgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCJpbWciKTsKKyAgICAgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2Us
IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAg
ICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAg
ICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAg
ICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAg
ICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRleHQgOiAid29y
bGQiLAorICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAw
LjUpLAorICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MC41KSwKKyAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDEpLAorICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAxKSwKKyAgICAgICAgICAgIH0sCisgICAgICAgIF0pOworCisgICAgICAgIHJ1blRlc3Qo
KTsKKyAgICB9KTsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5k
b3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5
bmMgKCkgPT4geworICAgICAgICAgICAgICAgIHZhciBheEltYWdlID0gYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJpbWFnZTEiKTsKKyAgICAgICAgICAgICAg
ICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmF4SW1h
Z2VPdmVybGF5RWxlbWVudHMgPSBheEltYWdlLmltYWdlT3ZlcmxheUVsZW1lbnRzOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYXhJbWFnZU92ZXJsYXlFbGVtZW50cy5sZW5ndGggPT0gMjsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgiYXhJbWFnZU92
ZXJsYXlFbGVtZW50cy5sZW5ndGgiLCAiMiIpOworCisgICAgICAgICAgICAgICAgZm9yIChsZXQg
YXhFbGVtZW50IG9mIGF4SW1hZ2VPdmVybGF5RWxlbWVudHMpIHsKKyAgICAgICAgICAgICAgICAg
ICAgbGV0IHRleHRNYXJrZXJSYW5nZSA9IGF4RWxlbWVudC50ZXh0TWFya2VyUmFuZ2VGb3JFbGVt
ZW50KGF4RWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIGRlYnVnKGF4RWxlbWVudC5zdHJp
bmdGb3JUZXh0TWFya2VyUmFuZ2UodGV4dE1hcmtlclJhbmdlKSk7CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9LCAwKTsK
KyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41Mjg0OTgyNDM3MWI4NzE5OGY0N2VjZDAzZWZjZGQwMTI1NTdhZWVhCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTM0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VjRNS0w5
ODVxRns8e2xqMTFaaHxrSH0mTTI1dzt4V0BNTihNKj05dwp6VWdHS04lS25nQFBndW4mWXh8cC1L
cTEtOGtjYmxKe01fOHN5Yj5VbmZ4KT5iSEwpWiRNV0g7aUJ0eWE3KD5FWVIKekZPezh2ZiUlRTJp
KF5RfHQrIVZVY15NY3VTVD9kaF4+QWxwX1NBbVp3JVVnd0VgeVdkRnE0N0tmZWoyaSsmfWB2Cnox
YD1SNDQ+eT1pajNtKHRAbWV1ejNpaEJNTSZaS2ElPisocjZuY3ImXm9jIyQ0SHJgJFR3PERraWd8
KDk/NzFJNwpPMSVhb2xwVVhPQGdlQ3d6OTVKQikKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431862</attachid>
            <date>2021-06-21 08:22:51 -0700</date>
            <delta_ts>2021-06-21 10:54:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210621112250.patch</filename>
            <type>text/plain</type>
            <size>38534</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMxZDg3ZmM2YzU3NzAx
YjU0MzcxZGQ0MDQzMzVmOGUzNTJmZWE5NS4uYzBkYjIyNmNkN2MwYmY5YWFiOWM0NTU4ZmNkOWYw
NDU4NTFhYjkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIxLTA2LTE4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBY2Nlc3NpYmls
aXR5IHN1cHBvcnQgZm9yIGltYWdlIHRleHQgcmVjb2duaXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODAKKyAgICAgICAgcmRhcjovLzc2
MzQ4NzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAg
VGVzdDogYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMu
aHRtbAorCisgICAgICAgIEV4cG9zZXMgdG8gYWNjZXNzaWJpbGl0eSBjbGllbnRzIHRoZSBlbGVt
ZW50cyBjcmVhdGVkIGJ5CisgICAgICAgIFdlYlBhZ2U6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24g
Zm9yIHN0YXRpYyBpbWFnZXMuIFRoaXMgYWxsb3dzIGNsaWVudHMKKyAgICAgICAgdG8gcHJlc2Vu
dCB0aGUgcmVjb2duaXplZCB0ZXh0IGluIGltYWdlcyB0byBhc3Npc3RpdmUgdGVjaG5vbG9neSB1
c2Vycy4KKyAgICAgICAgLSBBZGRlZCBhIG5ldyBBWE9iamVjdCBzdWJjbGFzcywgQVhJbWFnZSwg
dG8gZW5jYXBzdWxhdGUgdGhpcyBmdW5jdGlvbmFsaXR5LgorICAgICAgICBUaGlzIGNsYXNzIGNh
biBiZSBleHBhbmRlZCB0byBvZmZsb2FkIHNvbWUgb2YgdGhlIGltYWdlIHNwZWNpZmljIGNvZGUK
KyAgICAgICAgY29udGFpbmVkIGluIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QsIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LAorICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0IGFuZCBvdGhlcnMu
CisgICAgICAgIC0gU2luY2UgcmVxdWVzdFRleHRSZWNvZ25pdGlvbiBpcyBhbiBhc3luYyBjYWxs
LCBhZGRlZCBhbiBBWE5vdGlmaWNhdGlvbgorICAgICAgICB0byBub3RpZnkgY2xpZW50cyB3aGVu
IHRoZSBpbWFnZSBvdmVybGF5IGVsZW1lbnRzIGFyZSBhdmFpbGFibGUgZm9yCisgICAgICAgIGNv
bnN1bXB0aW9uLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFn
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6QVhJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBWEltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFn
ZTo6cm9sZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2U6OmltYWdlT3Zl
cmxheUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaDogQWRkZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aXNTaW1wbGVJbWFnZSk6IERldGVybWluZXMgd2hldGhlciBh
IGdpdmVuIGVsZW1lbnQgaXMgYSBzdGF0aWMKKyAgICAgICAgaW1hZ2UuCisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIpOiBJbnN0YW50aWF0ZSBhbiBBWEltYWdlIG9iamVjdCB3
aGVuCisgICAgICAgIGFwcHJvcHJpYXRlLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhh
dmVDaGlsZHJlbiBjb25zdCk6IEltYWdlcyBjYW4KKyAgICAgICAgaGF2ZSBjaGlsZHJlbi4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUGxhdGZvcm1OYW1lKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbToKKyAgICAg
ICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUVsZW1lbnRz
XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxp
dHlJbWFnZU92ZXJsYXlFbGVtZW50c10pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6aXNBWEltYWdlSW5zdGFuY2UgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElP
TlNfRU5EXSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vz
c2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKwogMjAyMS0wNi0xOCAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1N
ZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0dHBzLmh0bWwgaXMgZmFpbGluZyBzaW5jZSByMjczNjQ1
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IGIxYmQ1Y2FlY2JhZTA3NzdmNDIyNDY1ODJlOTdiODIzZTNjZGY5
ZGQuLjJhNWIxNzA0MmU0ODgzZGU2NzE2NzA5ZTBiOTE1NWIwMWNlNDQxMzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC00NDIsNiArNDQyLDcgQEAgTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQu
Y3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNw
cCBAbm8tdW5pZnkKIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8t
dW5pZnkKIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwIEBuby11bmlmeQorYWNjZXNz
aWJpbGl0eS9BWEltYWdlLmNwcAogYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDdiYWJkNTM4NzAxYTc3YTg5MGY3NjFkMjRkODkwM2I4NWUwYTcxM2YuLmY2
MDg5YjI2YWIzNmMyN2RmNTU4NTE5N2U0MGJkZTE2ZDg2YTllYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NjYxLDYgKzE0
NjYxLDggQEAKIAkJQkVBODA3QzcwRjcxNEEwMzAwNTI0MTk5IC8qIFNlbGVjdGlvbkdlb21ldHJ5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlbGVjdGlvbkdlb21ldHJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFRjI5RUU5MTcxNUREMDkwMEM0QjRDOSAv
KiBBdWRpb1RyYWNrUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
dWRpb1RyYWNrUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRUYyOUVF
QTE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFYSW1hZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVhJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMDQwMEM3
RTI2MUNCM0RCMDBBRjQ0RkEgLyogQVhJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBWElt
YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzA0NkUxQUIxMjA4QTlGRTAw
QkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTG9jYWxpemVkU3RyaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMwNDkzRUI3MjQ0Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBWExvZ2dlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMDc4Mzc2MDIzREYyNTNFMDBDOUM1QzggLyogQVhJc29sYXRlZE9iamVjdE1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFYSXNvbGF0ZWRPYmplY3RNYWMubW07IHBhdGggPSBt
YWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5NDYyLDYgKzE5NDY0LDggQEAKIAkJCQlBOTFDOUZDMDFCNjU5QTY3MDBBRkZENTQgLyogQWNj
ZXNzaWJpbGl0eVRyZWVJdGVtLmNwcCAqLywKIAkJCQlBOTFDOUZDMTFCNjU5QTY3MDBBRkZENTQg
LyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmggKi8sCiAJCQkJQTlFRTQ0OEMyMTBGQzlBRDAwQjZF
QUU2IC8qIEFyaWFBdHRyaWJ1dGVzLmlkbCAqLywKKwkJCQlDMDQwMEM3RTI2MUNCM0RCMDBBRjQ0
RkEgLyogQVhJbWFnZS5jcHAgKi8sCisJCQkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFY
SW1hZ2UuaCAqLywKIAkJCQlDMDhGMTNBMTI0NDc2NkRDMDBBQjk4OUYgLyogQVhMb2dnZXIuY3Bw
ICovLAogCQkJCUMwNDkzRUI3MjQ0Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICovLAogCQkJ
CTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3MWQ5MThhOTI0
YzcxZDU2NDNlNTk5OGExZmQ5YTIwNjQ5MjYwZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFYSW1hZ2UuaCIKKworI2luY2x1ZGUgIkFYTG9nZ2VyLmgiCisjaW5j
bHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworQVhJbWFnZTo6QVhJbWFnZShSZW5kZXJJbWFnZSogcmVuZGVyZXIpCisgICAg
OiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVyKQoreworfQorCitSZWY8QVhJbWFn
ZT4gQVhJbWFnZTo6Y3JlYXRlKFJlbmRlckltYWdlKiByZW5kZXJlcikKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBWEltYWdlKHJlbmRlcmVyKSk7Cit9CisKK0FjY2Vzc2liaWxpdHlSb2xl
IEFYSW1hZ2U6OnJvbGVWYWx1ZSgpIGNvbnN0Cit7CisgICAgYXV0byBhcmlhUm9sZSA9IGFyaWFS
b2xlQXR0cmlidXRlKCk7CisgICAgaWYgKGFyaWFSb2xlICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpV
bmtub3duKQorICAgICAgICByZXR1cm4gYXJpYVJvbGU7CisKKyAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eVJvbGU6OkltYWdlOworfQorCitzdGQ6Om9wdGlvbmFsPEFYQ29yZU9iamVjdDo6QWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cygpCit7
CisgICAgQVhUUkFDRSgiQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMiKTsKKworICAgIGF1
dG8mIGNoaWxkcmVuID0gdGhpcy0+Y2hpbGRyZW4oKTsKKyAgICBpZiAoY2hpbGRyZW4uc2l6ZSgp
KQorICAgICAgICByZXR1cm4gY2hpbGRyZW47CisKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
CisgICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1
ZXN0VGV4dFJlY29nbml0aW9uKCplbGVtZW50KCksIFtdIChSZWZQdHI8RWxlbWVudD4mJiBpbWFn
ZU92ZXJsYXlIb3N0KSB7CisgICAgICAgIGlmICghaW1hZ2VPdmVybGF5SG9zdCkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBpZiAoYXV0byogYXhPYmplY3RDYWNoZSA9IGltYWdlT3Zl
cmxheUhvc3QtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAg
ICBheE9iamVjdENhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKGltYWdlT3ZlcmxheUhvc3QuZ2V0KCks
IEFYT2JqZWN0Q2FjaGU6OkFYSW1hZ2VPdmVybGF5Q2hhbmdlZCk7CisgICAgfSk7CisjZW5kaWYK
KworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIwMzRkMGY5
NTRhNzQ3NTdiYzI4MjViZmJiOTY4NGUzZWE5OTg2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVy
SW1hZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBWEltYWdlIDogcHVibGlj
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QVhJ
bWFnZT4gY3JlYXRlKFJlbmRlckltYWdlKik7CisgICAgdmlydHVhbCB+QVhJbWFnZSgpID0gZGVm
YXVsdDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBWEltYWdlKFJlbmRlckltYWdlKik7Cisg
ICAgYm9vbCBpc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KKworICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBpbWFnZU92ZXJs
YXlFbGVtZW50cygpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZSAKKwor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BQ0NFU1NJQklMSVRZKEFYSW1hZ2UsIGlzQVhJbWFnZUlu
c3RhbmNlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9n
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4
IDQxMzliNDNmNmVjMGYxYTBkYmUyNDY3NTZiYTVhMjUyMjhjMDBhYWYuLjQyZWVmN2YxOTIxOWIz
ZmU2MDYyYTFjZGI3NzM0ZjljM2Q0MWZhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhMb2dnZXIuY3BwCkBAIC0zNzIsNiArMzcyLDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiBzdHJlYW0sIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uIG5vdGlm
aWMKICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWElkQXR0cmlidXRl
Q2hhbmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWElkQXR0cmlidXRlQ2hhbmdlZCI7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYSW1h
Z2VPdmVybGF5Q2hhbmdlZDoKKyAgICAgICAgc3RyZWFtIDw8ICJBWEltYWdlT3ZlcmxheUNoYW5n
ZWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0
aW9uOjpBWExhbmd1YWdlQ2hhbmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWExhbmd1YWdlQ2hh
bmdlZCI7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAKaW5kZXggMDVmODZlNDdiMmM1OTEzMDU0NjQ5MDY2Zjk3NTM2YTEx
MzA3ODM0OC4uYjZjMmI3NDUzODVlYmFhYjRjMzUwMWExNDExNjRmNGIxOTRmZDA3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC01MTEs
NiArNTExLDI4IEBAIGJvb2wgbm9kZUhhc1JvbGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBy
b2xlKQogICAgIHJldHVybiBTcGFjZVNwbGl0U3RyaW5nKHJvbGVWYWx1ZSwgdHJ1ZSkuY29udGFp
bnMocm9sZSk7CiB9CiAKK3N0YXRpYyBib29sIGlzU2ltcGxlSW1hZ2UoY29uc3QgUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlcikKK3sKKyAgICBpZiAoIWlzPFJlbmRlckltYWdlPihyZW5kZXJlcikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEV4Y2x1ZGUgSW1hZ2VCdXR0b25zIGJlY2F1
c2UgdGhleSBhcmUgdHJlYXRlZCBhcyBidXR0b25zLCBub3QgYXMgaW1hZ2VzLgorICAgIGF1dG8q
IG5vZGUgPSByZW5kZXJlci5ub2RlKCk7CisgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5v
ZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJbWFnZU1hcHMgYXJlIG5vdCBz
aW1wbGUgaW1hZ2VzLgorICAgIGlmIChkb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpLmlt
YWdlTWFwKCkKKyAgICAgICAgfHwgKGlzPEhUTUxJbWFnZUVsZW1lbnQ+KG5vZGUpICYmIGRvd25j
YXN0PEhUTUxJbWFnZUVsZW1lbnQ+KG5vZGUpLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKHVzZW1hcEF0dHIpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gRXhj
bHVkZSB2aWRlbyBhbmQgYXVkaW8gZWxlbWVudHMuCisgICAgaWYgKGlzPEhUTUxNZWRpYUVsZW1l
bnQ+KG5vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwogc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tUmVuZGVyZXIoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKICAgICAvLyBGSVhNRTogSG93IGNvdWxkIHJlbmRlcmVy
LT5ub2RlKCkgZXZlciBub3QgYmUgYW4gRWxlbWVudD8KQEAgLTU1MCw2ICs1NzIsOSBAQCBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyKQogICAgIGlmIChpczxTVkdFbGVtZW50Pihub2RlKSkKICAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50OjpjcmVhdGUocmVuZGVyZXIpOwogCisgICAgaWYg
KGlzU2ltcGxlSW1hZ2UoKnJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIEFYSW1hZ2U6OmNyZWF0
ZShkb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKTsKKwogI2lmIEVOQUJMRShNQVRITUwp
CiAgICAgLy8gVGhlIG1mZW5jZWQgZWxlbWVudCBjcmVhdGVzIGFub255bW91cyBSZW5kZXJNYXRo
TUxPcGVyYXRvcnMgd2hpY2ggc2hvdWxkIGJlIHRyZWF0ZWQKICAgICAvLyBhcyBNYXRoTUwgZWxl
bWVudHMgYW5kIGFzc2lnbmVkIHRoZSBNYXRoRWxlbWVudFJvbGUgc28gdGhhdCBwbGF0Zm9ybSBs
b2dpYyByZWdhcmRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKaW5kZXggNTY0NzE2Y2UzNGJkZGM3NmM2NDRmZWYzMWE4MWEwZjBlM2E0M2UzZC4uZjhk
MDA1OTUxNTgyOTFmMDgxZWY0YjA0MjcxZTQ1OTg3OGE5MDYzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTI4NCw2ICsyODQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIEFYRm9jdXNlZFVJRWxlbWVudENoYW5nZWQsCiAgICAgICAgIEFYRnJhbWVM
b2FkQ29tcGxldGUsCiAgICAgICAgIEFYSWRBdHRyaWJ1dGVDaGFuZ2VkLAorICAgICAgICBBWElt
YWdlT3ZlcmxheUNoYW5nZWQsCiAgICAgICAgIEFYTGFuZ3VhZ2VDaGFuZ2VkLAogICAgICAgICBB
WExheW91dENvbXBsZXRlLAogICAgICAgICBBWExvYWRDb21wbGV0ZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAK
aW5kZXggNzkwMjY2MDkxNjIwN2E4ZWEzNTM0MTc5NGNkYjRlNjIwMTU0Njc4NS4uMjcwYmJkOWQ4
Y2E4ZTQ1ZjQ3OGM0MmFjM2ZhMGY4Y2U1YmQ4MjUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTM3
OCw3ICszNzgsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRy
ZW4oKSBjb25zdAogICAgIAogICAgIC8vIEVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBoYXZlIGNo
aWxkcmVuCiAgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgewotICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkltYWdlOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQb3BVcEJ1dHRvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpDaGVja0JveDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggOGU1MmMwNTBjY2JjOTEyMzBhYWI0NzM5NGQ5ZDVh
YWI5NmU2NGQ0ZS4uYjhhMWZkN2Q1NDM0NTU4ZjllN2MyMjEyMzYzMTNkMTZhY2ZhMzQ1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKQEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlz
QWNjZXNzaWJpbGl0eVNjcm9sbGJhcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZH
Um9vdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vz
c2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBib29sIGlzQWNjZXNzaWJpbGl0eVRhYmxlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQpAQCAtMzk5LDYgKzQwMCw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgYnJh
aWxsZUxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZ2V0QXR0cmlidXRlKEhUTUxOYW1l
czo6YXJpYV9icmFpbGxlbGFiZWxBdHRyKTsgfQogICAgIFN0cmluZyBicmFpbGxlUm9sZURlc2Ny
aXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6
YXJpYV9icmFpbGxlcm9sZWRlc2NyaXB0aW9uQXR0cik7IH0KICAgICBTdHJpbmcgZW1iZWRkZWRJ
bWFnZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3I+IGltYWdlT3ZlcmxheUVsZW1lbnRzKCkgb3ZlcnJpZGUg
eyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CiAKICAgICAvLyBBYmJyZXZpYXRpb25zCiAgICAgU3Ry
aW5nIGV4cGFuZGVkVGV4dFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU3RyaW5nKCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggYmNjODZlMzZjOTJjM2Y1NDMzYmEwMDhiNGQy
NGYwNjI1NWU0ZmRjZS4uODk3YWQwYjI4OWNkMWM5YWM2M2ZjNjVmYzNhOWRiZDAwZmVkMjc1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTc5MSw2ICs3OTEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUluc3RhbmNlKCkgY29uc3QgPSAwOwpAQCAt
MTAxNCw2ICsxMDE1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGJyYWlsbGVMYWJl
bCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBicmFpbGxlUm9sZURlc2NyaXB0aW9u
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlv
bigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yPiBpbWFnZU92ZXJsYXlFbGVtZW50cygpID0gMDsKIAogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0FSSUFPd25zKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0Fj
dGl2ZURlc2NlbmRhbnRPZkZvY3VzZWRDb250YWluZXIoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRl
eCA0ZjU0MDFmNWI3ODg1Nzc1ZDg3YmM5ZjU1YTU1NmMwZWM3MmM1YzNiLi40ODJmNmM5MDFiNzQ1
Nzg2N2I4OWU1MjBiZWQ1YmJmYjZlMjJmOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTUxLDYgKzUxLDkgQEAg
U3RyaW5nIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFtZShBWE5vdGlmaWNh
dGlvbiBub3RpZmljYXRpb24pCiAgICAgY2FzZSBBWEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkOgog
ICAgICAgICBuYW1lID0gIkFYRm9jdXNDaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWEltYWdlT3ZlcmxheUNoYW5nZWQ6CisgICAgICAgIG5hbWUgPSAiQVhJbWFnZU92ZXJsYXlD
aGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBWFBhZ2VTY3JvbGxlZDoKICAgICAg
ICAgbmFtZSA9ICJBWFBhZ2VTY3JvbGxlZCI7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQppbmRleCAzZDA1ZjljNTEwZjQzOGQzZjhhYWZkZThi
NWQ1MGU2MTc1ZmE2NGFhLi4yZjVmNjAwZWYwYjdlMjBiMjZmNzJkNzcwN2QwNGNjNTBkODMyZWM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQpAQCAtNzIsNiArNzIs
NyBAQCBlbnVtIHsKIC0gKE5TSW50ZWdlcilhY2Nlc3NpYmlsaXR5RWxlbWVudENvdW50OwogLSAo
aWQpYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4OihOU0ludGVnZXIpaW5kZXg7CiAtIChOU0lu
dGVnZXIpaW5kZXhPZkFjY2Vzc2liaWxpdHlFbGVtZW50OihpZCllbGVtZW50OworLSAoTlNBcnJh
eSAqKWFjY2Vzc2liaWxpdHlFbGVtZW50czsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciAoQWNjZXNzaWJpbGl0eVByaXZhdGUpCkBAIC00MjksNiArNDMw
LDI5IEBAIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciogQWNjZXNzaWJpbGl0eVVu
aWdub3JlZEFuY2VzdG9yKEFjY2Vzc2liaWxpdHlPCiAgICAgICAgIGNhY2hlLT5zdG9wQ2FjaGlu
Z0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogfQogCistIChOU0FycmF5ICopYWNjZXNzaWJp
bGl0eUVsZW1lbnRzCit7CisgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxs
XSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGlmIChbc2VsZiBpc0F0dGFjaG1lbnRdKSB7
CisgICAgICAgIGlmIChpZCBhdHRhY2htZW50VmlldyA9IFtzZWxmIGF0dGFjaG1lbnRWaWV3XSkK
KyAgICAgICAgICAgIHJldHVybiBbYXR0YWNobWVudFZpZXcgYWNjZXNzaWJpbGl0eUVsZW1lbnRz
XTsKKyAgICB9CisKKyAgICBhdXRvIGFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0XSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IHNlbGYuYXhCYWNraW5n
T2JqZWN0LT5jaGlsZHJlbigpKSB7CisgICAgICAgIGF1dG8qIHdyYXBwZXIgPSBjaGlsZC0+d3Jh
cHBlcigpOworICAgICAgICBpZiAoY2hpbGQtPmlzQXR0YWNobWVudCgpKSB7CisgICAgICAgICAg
ICBpZiAoaWQgYXR0YWNobWVudFZpZXcgPSBbd3JhcHBlciBhdHRhY2htZW50Vmlld10pCisgICAg
ICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDphdHRhY2htZW50Vmlld107CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDp3cmFwcGVyXTsKKyAgICB9CisKKyAg
ICByZXR1cm4gYXJyYXkuYXV0b3JlbGVhc2UoKTsKK30KKwogLSAoTlNJbnRlZ2VyKWFjY2Vzc2li
aWxpdHlFbGVtZW50Q291bnQKIHsKICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0
eUNhbGxdKQpAQCAtMTg1NCw2ICsxODc4LDE1IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFN0cmluZ1Rv
UmVzdWx0KE5TTXV0YWJsZVN0cmluZyAqcmVzdWx0LCBOU1N0cmluZyAqc3RyaW5nKQogICAgIHJl
dHVybiBzZWxmLmF4QmFja2luZ09iamVjdC0+ZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKCk7CiB9
CiAKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVudHMKK3sKKyAg
ICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQorICAgICAgICByZXR1cm4g
bmlsOworCisgICAgYXV0byBpbWFnZU92ZXJsYXlFbGVtZW50cyA9IHNlbGYuYXhCYWNraW5nT2Jq
ZWN0LT5pbWFnZU92ZXJsYXlFbGVtZW50cygpOworICAgIHJldHVybiBpbWFnZU92ZXJsYXlFbGVt
ZW50cyA/IGFjY2Vzc2libGVFbGVtZW50c0Zvck9iamVjdHMoKmltYWdlT3ZlcmxheUVsZW1lbnRz
KSA6IG5pbDsKK30KKwogLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5TGlua1JlbGF0aW9uc2hp
cFR5cGUKIHsKICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCAxOTk5ODRjYWJiNmI0Yzk1ZDIxNDVhYzU4OWZj
ZjNjMjgwMWUyNmU3Li5iNzBhZGJhNjQ4ZWRiNzIzZTQzZjE2MDcyZWZlNGE3MWQ3ODU3OWMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMTI1OCw2ICsxMjU4LDEyIEBAIGJvb2wg
QVhJc29sYXRlZE9iamVjdDo6aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29u
c3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQVhJc29sYXRlZE9iamVjdDo6aXNBWElt
YWdlSW5zdGFuY2UoKSBjb25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojppc0FjY2Vzc2liaWxpdHlT
VkdSb290KCkgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaAppbmRleCBjZjY3ZDI3NzhlYzJiNjk4ZmU2YzYxZjdiNzZhN2U5MDAwZjQyZjFj
Li43MjU1ZjJjNGRiZjJjYWRjNTZjMjE1OWY0NWRmM2VlZmM1NDY3Y2Y0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5oCkBAIC0yNzIsNiArMjcyLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgYnJh
aWxsZUxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUo
QVhQcm9wZXJ0eU5hbWU6OkJyYWlsbGVMYWJlbCk7IH0KICAgICBTdHJpbmcgYnJhaWxsZVJvbGVE
ZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVl
KEFYUHJvcGVydHlOYW1lOjpCcmFpbGxlUm9sZURlc2NyaXB0aW9uKTsgfQogICAgIFN0cmluZyBl
bWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJpbmdB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKTsg
fQorICAgIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBpbWFnZU92
ZXJsYXlFbGVtZW50cygpIG92ZXJyaWRlIHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogCiAgICAg
U3RyaW5nIGNvbXB1dGVkUm9sZVN0cmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmlu
Z0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpDb21wdXRlZFJvbGVTdHJpbmcpOyB9CiAg
ICAgYm9vbCBpc1ZhbHVlQXV0b2ZpbGxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNWYWx1ZUF1dG9maWxsZWQpOyB9CkBAIC00
NjUsNiArNDY2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFy
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5z
dGFuY2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUluc3RhbmNlKCkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVj
dENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RD
YWNoZU1hYy5tbQppbmRleCAxMzBiY2JhNTE3MzRhODA0YjhhMTM1YzdiNzkwMmQ3M2VlZjUxZWRi
Li45MjVkZGU5YTc1MDlhNzE3NmFmODQ5NjY1NmVmNDE1YTgyMWQwYzhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAg
LTMxOSw2ICszMTksOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBWENvcmVPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbgogICAgIGNhc2UgQVhGb2N1
c2VkVUlFbGVtZW50Q2hhbmdlZDoKICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNBY2Nlc3Np
YmlsaXR5Rm9jdXNlZFVJRWxlbWVudENoYW5nZWROb3RpZmljYXRpb247CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhJbWFnZU92ZXJsYXlDaGFuZ2VkOgorICAgICAgICBtYWNOb3RpZmljYXRp
b24gPSBAIkFYSW1hZ2VPdmVybGF5Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QVhMYXlvdXRDb21wbGV0ZToKICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gQCJBWExheW91dENv
bXBsZXRlIjsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCmluZGV4IDRhNzliM2IzZmIzNzliMWM2YjcwYTc1N2NmZGMwZjVjZGI3MjY2ZDkuLjNm
ODU1NzM0NmM4ZjkyMDFiZjA1MWFjODk2MzIxMDIzOWExMjhiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC01NDMsNiArNTQzLDEwIEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3Jp
cHRpb25BdHRyaWJ1dGUgQCJBWEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiIKICNlbmRpZgogCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzQXR0cmlidXRlCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzQXR0cmlidXRlIEAiQVhJbWFn
ZU92ZXJsYXlFbGVtZW50cyIKKyNlbmRpZgorCiBleHRlcm4gIkMiIEFYVUlFbGVtZW50UmVmIE5T
QWNjZXNzaWJpbGl0eUNyZWF0ZUFYVUlFbGVtZW50UmVmKGlkIGVsZW1lbnQpOwogCiBAaW1wbGVt
ZW50YXRpb24gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIKQEAgLTE1NjAsOCArMTU2NCw5
IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFy
cmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlWZXJ0aWNhbFNjcm9sbEJhckF0dHJpYnV0ZV07
CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpKTsKLSAgICBzdGF0aWMgYXV0byBp
bWFnZUF0dHJzID0gIG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisgICAgc3RhdGljIGF1dG8gaW1h
Z2VBdHRycyA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CiAgICAgICAgIGF1dG8gdGVtcEFycmF5
ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0dHJpYnV0
ZXMuZ2V0KCkuZ2V0KCldKTsKKyAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3Np
YmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVudHNBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3JpcHRpb25BdHRyaWJ1
dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlVUkxBdHRy
aWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwpAQCAtMjM2Niw2ICsyMzcxLDEyIEBA
IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICByZXR1cm4gW3Nl
bGYgcG9zaXRpb25dOwogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNB
Y2Nlc3NpYmlsaXR5UGF0aEF0dHJpYnV0ZV0pCiAgICAgICAgIHJldHVybiBbc2VsZiBwYXRoXTsK
KworICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5
SW1hZ2VPdmVybGF5RWxlbWVudHNBdHRyaWJ1dGVdKSB7CisgICAgICAgIGF1dG8gaW1hZ2VPdmVy
bGF5RWxlbWVudHMgPSBiYWNraW5nT2JqZWN0LT5pbWFnZU92ZXJsYXlFbGVtZW50cygpOworICAg
ICAgICByZXR1cm4gaW1hZ2VPdmVybGF5RWxlbWVudHMgPyBjb252ZXJ0VG9OU0FycmF5KCppbWFn
ZU92ZXJsYXlFbGVtZW50cykgOiBuaWw7CisgICAgfQorCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1l
IGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3JpcHRpb25B
dHRyaWJ1dGVdKQogICAgICAgICByZXR1cm4gYmFja2luZ09iamVjdC0+ZW1iZWRkZWRJbWFnZURl
c2NyaXB0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA0ZWE3ZWI2ZWI4ZjU4MTdmODE4NTkzYTJiOGZlYzIyMWY1NmZjYjcwLi44NjEw
MjE2MjFlNGQ4OWU3NzYxYjdmMzI4NzJjNDYzZjI3YTRjYmE0IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDYt
MTggIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgorCisgICAgICAgIEFj
Y2Vzc2liaWxpdHkgc3VwcG9ydCBmb3IgaW1hZ2UgdGV4dCByZWNvZ25pdGlvbi4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDI4MAorICAgICAgICBy
ZGFyOi8vNzYzNDg3NDAKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxk
cmVuIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRJT1MubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVu
IGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVy
bGF5RWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMgY29uc3QpOgorCiAyMDIx
LTA2LTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBEZWZpbmUg
TWFjcm9Bc3NlbWJsZXJBUk02NEU6Om51bWJlck9mUEFDQml0cyBiYXNlZCBvbiBPU19DT05TVEFO
VChFRkZFQ1RJVkVfQUREUkVTU19XSURUSCkuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cAppbmRleCA5N2ExYzJiOTVjZmQ1ZmUyYjJmZWM3ODcwYTYyMThkNmU0YzJkYjQ3Li5kYWJiZjQ1
OWVlMmYzOTIxZGViMzhiNTY3YWUxYzM4NDA1ZDExZTk5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHAKQEAgLTEyNyw4ICsxMjcsMTAgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0U2VudGVuY2VFbmRUZXh0TWFya2UK
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cHJldmlvdXNTZW50ZW5jZVN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXIqKSB7IHJldHVybiBudWxscHRyOyB9CiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWlzc3BlbGxpbmdUZXh0TWFy
a2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSosIGJvb2wpIHsgcmV0dXJuIG51
bGxwdHI7IH0KIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpIHsgfQorSlNW
YWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJu
IHsgfTsgfQogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXRhaWxzRWxlbWVu
dHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6ZXJyb3JNZXNzYWdlRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KK0pTVmFs
dWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25z
dCB7IHJldHVybiB7IH07IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCBhZDYzMTNi
MDUzMzllMTVmZmE1NzVkNzFmOTI0NzhmZGYyODNmZjIwLi5lYzExMTU2ZGNiYWQ5ODRhNjUyNmM1
YmIxZDZhZjdlZDk5YzA2Y2MzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtODMs
NiArODMsNyBAQCBwdWJsaWM6CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGRvbUlkZW50
aWZpZXIoKSBjb25zdDsKIAogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBlbGVt
ZW50QXRQb2ludChpbnQgeCwgaW50IHkpOworICAgIEpTVmFsdWVSZWYgY2hpbGRyZW4oKSBjb25z
dDsKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gY2hpbGRBdEluZGV4KHVuc2ln
bmVkKTsKICAgICB1bnNpZ25lZCBpbmRleE9mQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCop
OwogICAgIGludCBjaGlsZHJlbkNvdW50KCk7CkBAIC0xOTYsNyArMTk3LDggQEAgcHVibGljOgog
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiB1cmwoKTsKICAgICBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gY2xhc3NMaXN0KCkgY29uc3Q7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0OwotICAgIAorICAgIEpTVmFsdWVSZWYg
aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25zdDsKKwogICAgIC8vIENTUzMtc3BlZWNoIHByb3Bl
cnRpZXMuCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNwZWFrQXMoKTsKICAgICAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IDI2MjY1
YTVjODUwZjI0MWM5Y2EwOTVhYmUxZDgyYTJlZTZlZGNhOWIuLjc5Mjc5YmUyYzg4ZjU4ZWQ2Mzhk
Y2UwYTI3MWE4ZDJlMTY2YTYyY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmlkbApAQCAtMTEwLDYgKzExMCw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBhcmlhRHJvcEVmZmVjdHM7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBjbGFzc0xpc3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBlbWJl
ZGRlZEltYWdlRGVzY3JpcHRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9iamVjdCBpbWFn
ZU92ZXJsYXlFbGVtZW50czsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHg7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeTsKQEAgLTExOCw2ICsxMTksNyBAQAogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIGNsaWNrUG9pbnRYOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nIGNsaWNrUG9pbnRZOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9iamVjdCBjaGlsZHJl
bjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBjaGlsZHJlbkNvdW50OwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIHNlbGVjdGVkQ2hpbGRyZW5Db3VudDsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyByb3dDb3VudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50SU9TLm1tCmluZGV4IDY5MDAyOGRiNjBhYTVmMGZiNTUxOWQyNTIwMTYxNjE3N2E2Yzk1MTUu
LjA1Yjc3OGQ0ZGE2NTFmZjljYTFjMTZhOGVmNjU3OGU5NWI1MGI2MzYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpAQCAtMTAyLDYgKzEwMiw3IEBAIHR5cGVk
ZWYgdm9pZCAoKkFYUG9zdGVkTm90aWZpY2F0aW9uQ2FsbGJhY2spKGlkIGVsZW1lbnQsIE5TU3Ry
aW5nKiBub3RpZmljYXRpb24sCiAtIChpZClfYWNjZXNzaWJpbGl0eUxhbmRtYXJrQW5jZXN0b3I7
CiAtIChpZClfYWNjZXNzaWJpbGl0eUxpc3RBbmNlc3RvcjsKIC0gKGlkKV9hY2Nlc3NpYmlsaXR5
UGhvdG9EZXNjcmlwdGlvbjsKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5
RWxlbWVudHM7CiAKIC8vIFRleHRNYXJrZXIgcmVsYXRlZAogLSAoTlNBcnJheSAqKXRleHRNYXJr
ZXJSYW5nZTsKQEAgLTIxNSw2ICsyMTYsMTEgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpnZXREb2N1bWVudExpbmtzKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWUKIHsK
IH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+PihbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50c10pKTsKK30KKwog
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgTlNJbnRlZ2Vy
IGNoaWxkQ291bnQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50Q291bnRdOwpAQCAt
MTEwMSw2ICsxMTA3LDExIEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zCiAgICAgcmV0dXJuIGNv
bmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiIs
IFttX2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlQaG90b0Rlc2NyaXB0aW9uXSk7CiB9CiAKK0pTVmFs
dWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25z
dAoreworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Pj4oW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVu
dHNdKSk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWQoKSBj
b25zdAogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tCmluZGV4IGRkZDhkNTgwMGJmODkzYTI2OGVmZTcyZjY3MjQ4NzBiM2Y4MTJl
YjEuLmMxMjkwZDFkNmM4ZDZkOTg0OGZhM2JkZGI2NTZmODJhZTQ3ZWNmMDIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMzQ5LDYgKzM0OSwxNSBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldFVJRWxlbWVudHNXaXRoQXR0cmlidXRlKEpT
U3RyaW5nUmVmIGF0dHJpYnV0ZSwgVgogICAgICAgICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8UmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pih2YWx1ZSk7CiB9CiAKK0pTVmFsdWVSZWYgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4oKSBjb25zdAoreworICAgIEJFR0lOX0FYX09C
SkNfRVhDRVBUSU9OUworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oYXR0cmlidXRlVmFsdWUobV9lbGVtZW50LmdldCgpLCBO
U0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZSkpKTsKKyAgICBFTkRfQVhfT0JKQ19FWENF
UFRJT05TCisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgZWxlbWVudFZlY3RvciA9IG1ha2VWZWN0b3I8UmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShtX2VsZW1lbnQuZ2V0
KCksIE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlKSk7CkBAIC0xNjc0LDYgKzE2ODMs
MTUgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVt
YmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnMKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAor
SlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbWFnZU92ZXJsYXlFbGVtZW50cygp
IGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgcmV0dXJuIG1ha2VK
U0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1
dGVWYWx1ZShtX2VsZW1lbnQuZ2V0KCksIEAiQVhJbWFnZU92ZXJsYXlFbGVtZW50cyIpKSk7Cisg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIGJv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICBCT09M
IHJlc3VsdCA9IE5POwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUwNjJiODg0M2Q3MDU5M2JiZWZlNTQ1ZWZkMzgxZjkyYmVl
NWNhYTYuLjRmZTIzOWU3MWQ3ODc5YjYyOWY0MWFjNmYwOWVhYzhjZWJiYTM3MjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMS0wNi0xOCAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eSBzdXBwb3J0IGZvciBpbWFnZSB0ZXh0
IHJlY29nbml0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI0MjgwCisgICAgICAgIHJkYXI6Ly83NjM0ODc0MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIEZsZWl6YWNoLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pbWFnZS1saW5r
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1h
Z2Utb3ZlcmxheS1lbGVtZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nOiBB
ZGRlZC4KKwogMjAyMS0wNi0xOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0
Lmh0dHBzLmh0bWwgaXMgZmFpbGluZyBzaW5jZSByMjczNjQ1CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdlLWxpbmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9pbWFnZS1saW5rLWV4cGVjdGVkLnR4dAppbmRleCBiNzMxODZkMzMyZDIw
ZDYyMGVkMzJhZmE2ODJiN2UwY2JkMWU0MDA5Li4wNGQ4YTY3ZmVkNTBmODBiYTM3MGViNDI1ZWU1
ODljMWIzZDA0MDg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdl
LWxpbmstZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2Ut
bGluay1leHBlY3RlZC50eHQKQEAgLTY0LDYgKzY0LDcgQEAgQVhET01DbGFzc0xpc3Q6IDxhcnJh
eSBvZiBzaXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhJbWFnZT4KIEFYRWRpdGFibGVB
bmNlc3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKK0FYSW1h
Z2VPdmVybGF5RWxlbWVudHM6IDxhcnJheSBvZiBzaXplIDA+CiBBWEVtYmVkZGVkSW1hZ2VEZXNj
cmlwdGlvbjoKIEFYVVJMOiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Jlc291cmNlcy9jYWtl
LnBuZwogQVhFbGVtZW50QnVzeTogMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9pb3Mtc2ltdWxhdG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ltYWdlLW92ZXJsYXktZWxl
bWVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNzhkODA3YTNhZjlhNGFmZGUwMGRkYTNi
OGM2OGFhN2I1OTYxZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2lvcy1zaW11bGF0b3IvaW1hZ2Utb3ZlcmxheS1lbGVtZW50cy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw5IEBACitQQVNTIGF4SW1hZ2VPdmVybGF5RWxlbWVudHMubGVuZ3RoIGlzIDIKK2hl
bGxvCisKK3dvcmxkCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11
bGF0b3IvaW1hZ2Utb3ZlcmxheS1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9pb3Mtc2ltdWxhdG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMGI4MWI0Zjk1N2M5MmU1YjI2MWIzNjViMzUwM2FiNTc0ZjhjMWQ5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ltYWdlLW92ZXJs
YXktZWxlbWVudHMuaHRtbApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6
IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGltZyBp
ZD0iaW1hZ2UxIiBzcmM9Ii4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKwor
PHNjcmlwdD4KKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBhZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgICAgICBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoImltZyIpOworICAgICAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShp
bWFnZSwgWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAor
ICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAg
ICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAg
ICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwK
KyAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41
KSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGV4dCA6
ICJ3b3JsZCIsCisgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAsIDAuNSksCisgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAwLjUpLAorICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMSksCisgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDEpLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXSk7CisKKyAgICAgICAgcnVu
VGVzdCgpOworICAgIH0pOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYg
KHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgc2V0VGltZW91
dChhc3luYyAoKSA9PiB7CisgICAgICAgICAgICAgICAgdmFyIGF4SW1hZ2UgPSBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImltYWdlMSIpOworICAgICAgICAg
ICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geworICAgICAgICAgICAgICAgICAgICB3aW5kb3cu
YXhJbWFnZU92ZXJsYXlFbGVtZW50cyA9IGF4SW1hZ2UuaW1hZ2VPdmVybGF5RWxlbWVudHM7Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBheEltYWdlT3ZlcmxheUVsZW1lbnRzLmxlbmd0aCA9
PSAyOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJheElt
YWdlT3ZlcmxheUVsZW1lbnRzLmxlbmd0aCIsICIyIik7CisKKyAgICAgICAgICAgICAgICBmb3Ig
KGxldCBheEVsZW1lbnQgb2YgYXhJbWFnZU92ZXJsYXlFbGVtZW50cykgeworICAgICAgICAgICAg
ICAgICAgICBsZXQgdGV4dE1hcmtlclJhbmdlID0gYXhFbGVtZW50LnRleHRNYXJrZXJSYW5nZUZv
ckVsZW1lbnQoYXhFbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoYXhFbGVtZW50
LnN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZSh0ZXh0TWFya2VyUmFuZ2UpKTsKKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0s
IDApOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Jlc291cmNlcy9ncmVlbi00MDB4NDAw
LnBuZyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAu
cG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUyODQ5ODI0MzcxYjg3MTk4ZjQ3ZWNkMDNlZmNkZDAxMjU1N2FlZWEK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDExMzQKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlW
NE1LTDk4NXFGezx7bGoxMVpofGtIfSZNMjV3O3hXQE1OKE0qPTl3CnpVZ0dLTiVLbmdAUGd1biZZ
eHxwLUtxMS04a2NibEp7TV84c3liPlVuZngpPmJITClaJE1XSDtpQnR5YTcoPkVZUgp6Rk97OHZm
JSVFMmkoXlF8dCshVlVjXk1jdVNUP2RoXj5BbHBfU0FtWnclVWd3RWB5V2RGcTQ3S2ZlajJpKyZ9
YHYKejFgPVI0ND55PWlqM20odEBtZXV6M2loQk1NJlpLYSU+KyhyNm5jciZeb2MjJDRIcmAkVHc8
RGtpZ3woOT83MUk3Ck8xJWFvbHBVWE9AZ2VDd3o5NUpCKQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431878</attachid>
            <date>2021-06-21 10:54:56 -0700</date>
            <delta_ts>2021-06-22 11:40:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210621135454.patch</filename>
            <type>text/plain</type>
            <size>38523</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMxZDg3ZmM2YzU3NzAx
YjU0MzcxZGQ0MDQzMzVmOGUzNTJmZWE5NS4uYzBkYjIyNmNkN2MwYmY5YWFiOWM0NTU4ZmNkOWYw
NDU4NTFhYjkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIxLTA2LTE4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBY2Nlc3NpYmls
aXR5IHN1cHBvcnQgZm9yIGltYWdlIHRleHQgcmVjb2duaXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODAKKyAgICAgICAgcmRhcjovLzc2
MzQ4NzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAg
VGVzdDogYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMu
aHRtbAorCisgICAgICAgIEV4cG9zZXMgdG8gYWNjZXNzaWJpbGl0eSBjbGllbnRzIHRoZSBlbGVt
ZW50cyBjcmVhdGVkIGJ5CisgICAgICAgIFdlYlBhZ2U6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24g
Zm9yIHN0YXRpYyBpbWFnZXMuIFRoaXMgYWxsb3dzIGNsaWVudHMKKyAgICAgICAgdG8gcHJlc2Vu
dCB0aGUgcmVjb2duaXplZCB0ZXh0IGluIGltYWdlcyB0byBhc3Npc3RpdmUgdGVjaG5vbG9neSB1
c2Vycy4KKyAgICAgICAgLSBBZGRlZCBhIG5ldyBBWE9iamVjdCBzdWJjbGFzcywgQVhJbWFnZSwg
dG8gZW5jYXBzdWxhdGUgdGhpcyBmdW5jdGlvbmFsaXR5LgorICAgICAgICBUaGlzIGNsYXNzIGNh
biBiZSBleHBhbmRlZCB0byBvZmZsb2FkIHNvbWUgb2YgdGhlIGltYWdlIHNwZWNpZmljIGNvZGUK
KyAgICAgICAgY29udGFpbmVkIGluIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QsIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LAorICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0IGFuZCBvdGhlcnMu
CisgICAgICAgIC0gU2luY2UgcmVxdWVzdFRleHRSZWNvZ25pdGlvbiBpcyBhbiBhc3luYyBjYWxs
LCBhZGRlZCBhbiBBWE5vdGlmaWNhdGlvbgorICAgICAgICB0byBub3RpZnkgY2xpZW50cyB3aGVu
IHRoZSBpbWFnZSBvdmVybGF5IGVsZW1lbnRzIGFyZSBhdmFpbGFibGUgZm9yCisgICAgICAgIGNv
bnN1bXB0aW9uLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFn
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6QVhJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBWEltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFn
ZTo6cm9sZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2U6OmltYWdlT3Zl
cmxheUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaDogQWRkZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aXNTaW1wbGVJbWFnZSk6IERldGVybWluZXMgd2hldGhlciBh
IGdpdmVuIGVsZW1lbnQgaXMgYSBzdGF0aWMKKyAgICAgICAgaW1hZ2UuCisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIpOiBJbnN0YW50aWF0ZSBhbiBBWEltYWdlIG9iamVjdCB3
aGVuCisgICAgICAgIGFwcHJvcHJpYXRlLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhh
dmVDaGlsZHJlbiBjb25zdCk6IEltYWdlcyBjYW4KKyAgICAgICAgaGF2ZSBjaGlsZHJlbi4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUGxhdGZvcm1OYW1lKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbToKKyAgICAg
ICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUVsZW1lbnRz
XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxp
dHlJbWFnZU92ZXJsYXlFbGVtZW50c10pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6aXNBWEltYWdlSW5zdGFuY2UgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElP
TlNfRU5EXSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vz
c2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKwogMjAyMS0wNi0xOCAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1N
ZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0dHBzLmh0bWwgaXMgZmFpbGluZyBzaW5jZSByMjczNjQ1
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IGIxYmQ1Y2FlY2JhZTA3NzdmNDIyNDY1ODJlOTdiODIzZTNjZGY5
ZGQuLjJhNWIxNzA0MmU0ODgzZGU2NzE2NzA5ZTBiOTE1NWIwMWNlNDQxMzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC00NDIsNiArNDQyLDcgQEAgTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQu
Y3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNw
cCBAbm8tdW5pZnkKIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8t
dW5pZnkKIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwIEBuby11bmlmeQorYWNjZXNz
aWJpbGl0eS9BWEltYWdlLmNwcAogYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDdiYWJkNTM4NzAxYTc3YTg5MGY3NjFkMjRkODkwM2I4NWUwYTcxM2YuLmY2
MDg5YjI2YWIzNmMyN2RmNTU4NTE5N2U0MGJkZTE2ZDg2YTllYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NjYxLDYgKzE0
NjYxLDggQEAKIAkJQkVBODA3QzcwRjcxNEEwMzAwNTI0MTk5IC8qIFNlbGVjdGlvbkdlb21ldHJ5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlbGVjdGlvbkdlb21ldHJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFRjI5RUU5MTcxNUREMDkwMEM0QjRDOSAv
KiBBdWRpb1RyYWNrUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
dWRpb1RyYWNrUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRUYyOUVF
QTE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFYSW1hZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVhJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMDQwMEM3
RTI2MUNCM0RCMDBBRjQ0RkEgLyogQVhJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBWElt
YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzA0NkUxQUIxMjA4QTlGRTAw
QkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTG9jYWxpemVkU3RyaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMwNDkzRUI3MjQ0Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBWExvZ2dlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMDc4Mzc2MDIzREYyNTNFMDBDOUM1QzggLyogQVhJc29sYXRlZE9iamVjdE1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFYSXNvbGF0ZWRPYmplY3RNYWMubW07IHBhdGggPSBt
YWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5NDYyLDYgKzE5NDY0LDggQEAKIAkJCQlBOTFDOUZDMDFCNjU5QTY3MDBBRkZENTQgLyogQWNj
ZXNzaWJpbGl0eVRyZWVJdGVtLmNwcCAqLywKIAkJCQlBOTFDOUZDMTFCNjU5QTY3MDBBRkZENTQg
LyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmggKi8sCiAJCQkJQTlFRTQ0OEMyMTBGQzlBRDAwQjZF
QUU2IC8qIEFyaWFBdHRyaWJ1dGVzLmlkbCAqLywKKwkJCQlDMDQwMEM3RTI2MUNCM0RCMDBBRjQ0
RkEgLyogQVhJbWFnZS5jcHAgKi8sCisJCQkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFY
SW1hZ2UuaCAqLywKIAkJCQlDMDhGMTNBMTI0NDc2NkRDMDBBQjk4OUYgLyogQVhMb2dnZXIuY3Bw
ICovLAogCQkJCUMwNDkzRUI3MjQ0Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICovLAogCQkJ
CTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3MWQ5MThhOTI0
YzcxZDU2NDNlNTk5OGExZmQ5YTIwNjQ5MjYwZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFYSW1hZ2UuaCIKKworI2luY2x1ZGUgIkFYTG9nZ2VyLmgiCisjaW5j
bHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworQVhJbWFnZTo6QVhJbWFnZShSZW5kZXJJbWFnZSogcmVuZGVyZXIpCisgICAg
OiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVyKQoreworfQorCitSZWY8QVhJbWFn
ZT4gQVhJbWFnZTo6Y3JlYXRlKFJlbmRlckltYWdlKiByZW5kZXJlcikKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBWEltYWdlKHJlbmRlcmVyKSk7Cit9CisKK0FjY2Vzc2liaWxpdHlSb2xl
IEFYSW1hZ2U6OnJvbGVWYWx1ZSgpIGNvbnN0Cit7CisgICAgYXV0byBhcmlhUm9sZSA9IGFyaWFS
b2xlQXR0cmlidXRlKCk7CisgICAgaWYgKGFyaWFSb2xlICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpV
bmtub3duKQorICAgICAgICByZXR1cm4gYXJpYVJvbGU7CisKKyAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eVJvbGU6OkltYWdlOworfQorCitzdGQ6Om9wdGlvbmFsPEFYQ29yZU9iamVjdDo6QWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cygpCit7
CisgICAgQVhUUkFDRSgiQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMiKTsKKworICAgIGF1
dG8mIGNoaWxkcmVuID0gdGhpcy0+Y2hpbGRyZW4oKTsKKyAgICBpZiAoY2hpbGRyZW4uc2l6ZSgp
KQorICAgICAgICByZXR1cm4gY2hpbGRyZW47CisKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
CisgICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1
ZXN0VGV4dFJlY29nbml0aW9uKCplbGVtZW50KCksIFtdIChSZWZQdHI8RWxlbWVudD4mJiBpbWFn
ZU92ZXJsYXlIb3N0KSB7CisgICAgICAgIGlmICghaW1hZ2VPdmVybGF5SG9zdCkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBpZiAoYXV0byogYXhPYmplY3RDYWNoZSA9IGltYWdlT3Zl
cmxheUhvc3QtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAg
ICBheE9iamVjdENhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKGltYWdlT3ZlcmxheUhvc3QuZ2V0KCks
IEFYT2JqZWN0Q2FjaGU6OkFYSW1hZ2VPdmVybGF5Q2hhbmdlZCk7CisgICAgfSk7CisjZW5kaWYK
KworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIwMzRkMGY5
NTRhNzQ3NTdiYzI4MjViZmJiOTY4NGUzZWE5OTg2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVy
SW1hZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBWEltYWdlIDogcHVibGlj
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QVhJ
bWFnZT4gY3JlYXRlKFJlbmRlckltYWdlKik7CisgICAgdmlydHVhbCB+QVhJbWFnZSgpID0gZGVm
YXVsdDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBWEltYWdlKFJlbmRlckltYWdlKik7Cisg
ICAgYm9vbCBpc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KKworICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBpbWFnZU92ZXJs
YXlFbGVtZW50cygpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZSAKKwor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BQ0NFU1NJQklMSVRZKEFYSW1hZ2UsIGlzQVhJbWFnZUlu
c3RhbmNlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9n
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4
IDQxMzliNDNmNmVjMGYxYTBkYmUyNDY3NTZiYTVhMjUyMjhjMDBhYWYuLjQyZWVmN2YxOTIxOWIz
ZmU2MDYyYTFjZGI3NzM0ZjljM2Q0MWZhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhMb2dnZXIuY3BwCkBAIC0zNzIsNiArMzcyLDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiBzdHJlYW0sIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uIG5vdGlm
aWMKICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWElkQXR0cmlidXRl
Q2hhbmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWElkQXR0cmlidXRlQ2hhbmdlZCI7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYSW1h
Z2VPdmVybGF5Q2hhbmdlZDoKKyAgICAgICAgc3RyZWFtIDw8ICJBWEltYWdlT3ZlcmxheUNoYW5n
ZWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0
aW9uOjpBWExhbmd1YWdlQ2hhbmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWExhbmd1YWdlQ2hh
bmdlZCI7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAKaW5kZXggMDVmODZlNDdiMmM1OTEzMDU0NjQ5MDY2Zjk3NTM2YTEx
MzA3ODM0OC4uYjZjMmI3NDUzODVlYmFhYjRjMzUwMWExNDExNjRmNGIxOTRmZDA3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC01MTEs
NiArNTExLDI4IEBAIGJvb2wgbm9kZUhhc1JvbGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBy
b2xlKQogICAgIHJldHVybiBTcGFjZVNwbGl0U3RyaW5nKHJvbGVWYWx1ZSwgdHJ1ZSkuY29udGFp
bnMocm9sZSk7CiB9CiAKK3N0YXRpYyBib29sIGlzU2ltcGxlSW1hZ2UoY29uc3QgUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlcikKK3sKKyAgICBpZiAoIWlzPFJlbmRlckltYWdlPihyZW5kZXJlcikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEV4Y2x1ZGUgSW1hZ2VCdXR0b25zIGJlY2F1
c2UgdGhleSBhcmUgdHJlYXRlZCBhcyBidXR0b25zLCBub3QgYXMgaW1hZ2VzLgorICAgIGF1dG8q
IG5vZGUgPSByZW5kZXJlci5ub2RlKCk7CisgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5v
ZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJbWFnZU1hcHMgYXJlIG5vdCBz
aW1wbGUgaW1hZ2VzLgorICAgIGlmIChkb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpLmlt
YWdlTWFwKCkKKyAgICAgICAgfHwgKGlzPEhUTUxJbWFnZUVsZW1lbnQ+KG5vZGUpICYmIGRvd25j
YXN0PEhUTUxJbWFnZUVsZW1lbnQ+KG5vZGUpLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKHVzZW1hcEF0dHIpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gRXhj
bHVkZSB2aWRlbyBhbmQgYXVkaW8gZWxlbWVudHMuCisgICAgaWYgKGlzPEhUTUxNZWRpYUVsZW1l
bnQ+KG5vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwogc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tUmVuZGVyZXIoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKICAgICAvLyBGSVhNRTogSG93IGNvdWxkIHJlbmRlcmVy
LT5ub2RlKCkgZXZlciBub3QgYmUgYW4gRWxlbWVudD8KQEAgLTU1MCw2ICs1NzIsOSBAQCBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyKQogICAgIGlmIChpczxTVkdFbGVtZW50Pihub2RlKSkKICAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50OjpjcmVhdGUocmVuZGVyZXIpOwogCisgICAgaWYg
KGlzU2ltcGxlSW1hZ2UoKnJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIEFYSW1hZ2U6OmNyZWF0
ZShkb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKTsKKwogI2lmIEVOQUJMRShNQVRITUwp
CiAgICAgLy8gVGhlIG1mZW5jZWQgZWxlbWVudCBjcmVhdGVzIGFub255bW91cyBSZW5kZXJNYXRo
TUxPcGVyYXRvcnMgd2hpY2ggc2hvdWxkIGJlIHRyZWF0ZWQKICAgICAvLyBhcyBNYXRoTUwgZWxl
bWVudHMgYW5kIGFzc2lnbmVkIHRoZSBNYXRoRWxlbWVudFJvbGUgc28gdGhhdCBwbGF0Zm9ybSBs
b2dpYyByZWdhcmRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKaW5kZXggNTY0NzE2Y2UzNGJkZGM3NmM2NDRmZWYzMWE4MWEwZjBlM2E0M2UzZC4uZjhk
MDA1OTUxNTgyOTFmMDgxZWY0YjA0MjcxZTQ1OTg3OGE5MDYzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTI4NCw2ICsyODQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIEFYRm9jdXNlZFVJRWxlbWVudENoYW5nZWQsCiAgICAgICAgIEFYRnJhbWVM
b2FkQ29tcGxldGUsCiAgICAgICAgIEFYSWRBdHRyaWJ1dGVDaGFuZ2VkLAorICAgICAgICBBWElt
YWdlT3ZlcmxheUNoYW5nZWQsCiAgICAgICAgIEFYTGFuZ3VhZ2VDaGFuZ2VkLAogICAgICAgICBB
WExheW91dENvbXBsZXRlLAogICAgICAgICBBWExvYWRDb21wbGV0ZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAK
aW5kZXggNzkwMjY2MDkxNjIwN2E4ZWEzNTM0MTc5NGNkYjRlNjIwMTU0Njc4NS4uMjcwYmJkOWQ4
Y2E4ZTQ1ZjQ3OGM0MmFjM2ZhMGY4Y2U1YmQ4MjUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTM3
OCw3ICszNzgsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRy
ZW4oKSBjb25zdAogICAgIAogICAgIC8vIEVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBoYXZlIGNo
aWxkcmVuCiAgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgewotICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkltYWdlOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQb3BVcEJ1dHRvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpDaGVja0JveDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggOGU1MmMwNTBjY2JjOTEyMzBhYWI0NzM5NGQ5ZDVh
YWI5NmU2NGQ0ZS4uYjhhMWZkN2Q1NDM0NTU4ZjllN2MyMjEyMzYzMTNkMTZhY2ZhMzQ1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKQEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlz
QWNjZXNzaWJpbGl0eVNjcm9sbGJhcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZH
Um9vdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vz
c2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBib29sIGlzQWNjZXNzaWJpbGl0eVRhYmxlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQpAQCAtMzk5LDYgKzQwMCw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgYnJh
aWxsZUxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZ2V0QXR0cmlidXRlKEhUTUxOYW1l
czo6YXJpYV9icmFpbGxlbGFiZWxBdHRyKTsgfQogICAgIFN0cmluZyBicmFpbGxlUm9sZURlc2Ny
aXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6
YXJpYV9icmFpbGxlcm9sZWRlc2NyaXB0aW9uQXR0cik7IH0KICAgICBTdHJpbmcgZW1iZWRkZWRJ
bWFnZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3I+IGltYWdlT3ZlcmxheUVsZW1lbnRzKCkgb3ZlcnJpZGUg
eyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CiAKICAgICAvLyBBYmJyZXZpYXRpb25zCiAgICAgU3Ry
aW5nIGV4cGFuZGVkVGV4dFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU3RyaW5nKCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggYmNjODZlMzZjOTJjM2Y1NDMzYmEwMDhiNGQy
NGYwNjI1NWU0ZmRjZS4uODk3YWQwYjI4OWNkMWM5YWM2M2ZjNjVmYzNhOWRiZDAwZmVkMjc1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTc5MSw2ICs3OTEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUluc3RhbmNlKCkgY29uc3QgPSAwOwpAQCAt
MTAxNCw2ICsxMDE1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGJyYWlsbGVMYWJl
bCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBicmFpbGxlUm9sZURlc2NyaXB0aW9u
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlv
bigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yPiBpbWFnZU92ZXJsYXlFbGVtZW50cygpID0gMDsKIAogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0FSSUFPd25zKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0Fj
dGl2ZURlc2NlbmRhbnRPZkZvY3VzZWRDb250YWluZXIoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRl
eCA0ZjU0MDFmNWI3ODg1Nzc1ZDg3YmM5ZjU1YTU1NmMwZWM3MmM1YzNiLi40ODJmNmM5MDFiNzQ1
Nzg2N2I4OWU1MjBiZWQ1YmJmYjZlMjJmOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTUxLDYgKzUxLDkgQEAg
U3RyaW5nIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFtZShBWE5vdGlmaWNh
dGlvbiBub3RpZmljYXRpb24pCiAgICAgY2FzZSBBWEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkOgog
ICAgICAgICBuYW1lID0gIkFYRm9jdXNDaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWEltYWdlT3ZlcmxheUNoYW5nZWQ6CisgICAgICAgIG5hbWUgPSAiQVhJbWFnZU92ZXJsYXlD
aGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBWFBhZ2VTY3JvbGxlZDoKICAgICAg
ICAgbmFtZSA9ICJBWFBhZ2VTY3JvbGxlZCI7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQppbmRleCAzZDA1ZjljNTEwZjQzOGQzZjhhYWZkZThi
NWQ1MGU2MTc1ZmE2NGFhLi4yZjVmNjAwZWYwYjdlMjBiMjZmNzJkNzcwN2QwNGNjNTBkODMyZWM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQpAQCAtNzIsNiArNzIs
NyBAQCBlbnVtIHsKIC0gKE5TSW50ZWdlcilhY2Nlc3NpYmlsaXR5RWxlbWVudENvdW50OwogLSAo
aWQpYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4OihOU0ludGVnZXIpaW5kZXg7CiAtIChOU0lu
dGVnZXIpaW5kZXhPZkFjY2Vzc2liaWxpdHlFbGVtZW50OihpZCllbGVtZW50OworLSAoTlNBcnJh
eSAqKWFjY2Vzc2liaWxpdHlFbGVtZW50czsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciAoQWNjZXNzaWJpbGl0eVByaXZhdGUpCkBAIC00MjksNiArNDMw
LDI5IEBAIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciogQWNjZXNzaWJpbGl0eVVu
aWdub3JlZEFuY2VzdG9yKEFjY2Vzc2liaWxpdHlPCiAgICAgICAgIGNhY2hlLT5zdG9wQ2FjaGlu
Z0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogfQogCistIChOU0FycmF5ICopYWNjZXNzaWJp
bGl0eUVsZW1lbnRzCit7CisgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxs
XSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGlmIChbc2VsZiBpc0F0dGFjaG1lbnRdKSB7
CisgICAgICAgIGlmIChpZCBhdHRhY2htZW50VmlldyA9IFtzZWxmIGF0dGFjaG1lbnRWaWV3XSkK
KyAgICAgICAgICAgIHJldHVybiBbYXR0YWNobWVudFZpZXcgYWNjZXNzaWJpbGl0eUVsZW1lbnRz
XTsKKyAgICB9CisKKyAgICBhdXRvIGFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0XSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IHNlbGYuYXhCYWNraW5n
T2JqZWN0LT5jaGlsZHJlbigpKSB7CisgICAgICAgIGF1dG8qIHdyYXBwZXIgPSBjaGlsZC0+d3Jh
cHBlcigpOworICAgICAgICBpZiAoY2hpbGQtPmlzQXR0YWNobWVudCgpKSB7CisgICAgICAgICAg
ICBpZiAoaWQgYXR0YWNobWVudFZpZXcgPSBbd3JhcHBlciBhdHRhY2htZW50Vmlld10pCisgICAg
ICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDphdHRhY2htZW50Vmlld107CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDp3cmFwcGVyXTsKKyAgICB9CisKKyAg
ICByZXR1cm4gYXJyYXkuYXV0b3JlbGVhc2UoKTsKK30KKwogLSAoTlNJbnRlZ2VyKWFjY2Vzc2li
aWxpdHlFbGVtZW50Q291bnQKIHsKICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0
eUNhbGxdKQpAQCAtMTg1NCw2ICsxODc4LDE1IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFN0cmluZ1Rv
UmVzdWx0KE5TTXV0YWJsZVN0cmluZyAqcmVzdWx0LCBOU1N0cmluZyAqc3RyaW5nKQogICAgIHJl
dHVybiBzZWxmLmF4QmFja2luZ09iamVjdC0+ZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKCk7CiB9
CiAKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVudHMKK3sKKyAg
ICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQorICAgICAgICByZXR1cm4g
bmlsOworCisgICAgYXV0byBpbWFnZU92ZXJsYXlFbGVtZW50cyA9IHNlbGYuYXhCYWNraW5nT2Jq
ZWN0LT5pbWFnZU92ZXJsYXlFbGVtZW50cygpOworICAgIHJldHVybiBpbWFnZU92ZXJsYXlFbGVt
ZW50cyA/IGFjY2Vzc2libGVFbGVtZW50c0Zvck9iamVjdHMoKmltYWdlT3ZlcmxheUVsZW1lbnRz
KSA6IG5pbDsKK30KKwogLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5TGlua1JlbGF0aW9uc2hp
cFR5cGUKIHsKICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCAxOTk5ODRjYWJiNmI0Yzk1ZDIxNDVhYzU4OWZj
ZjNjMjgwMWUyNmU3Li5iNzBhZGJhNjQ4ZWRiNzIzZTQzZjE2MDcyZWZlNGE3MWQ3ODU3OWMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMTI1OCw2ICsxMjU4LDEyIEBAIGJvb2wg
QVhJc29sYXRlZE9iamVjdDo6aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29u
c3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQVhJc29sYXRlZE9iamVjdDo6aXNBWElt
YWdlSW5zdGFuY2UoKSBjb25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojppc0FjY2Vzc2liaWxpdHlT
VkdSb290KCkgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaAppbmRleCBjZjY3ZDI3NzhlYzJiNjk4ZmU2YzYxZjdiNzZhN2U5MDAwZjQyZjFj
Li43MjU1ZjJjNGRiZjJjYWRjNTZjMjE1OWY0NWRmM2VlZmM1NDY3Y2Y0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5oCkBAIC0yNzIsNiArMjcyLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgYnJh
aWxsZUxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUo
QVhQcm9wZXJ0eU5hbWU6OkJyYWlsbGVMYWJlbCk7IH0KICAgICBTdHJpbmcgYnJhaWxsZVJvbGVE
ZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVl
KEFYUHJvcGVydHlOYW1lOjpCcmFpbGxlUm9sZURlc2NyaXB0aW9uKTsgfQogICAgIFN0cmluZyBl
bWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJpbmdB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKTsg
fQorICAgIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBpbWFnZU92
ZXJsYXlFbGVtZW50cygpIG92ZXJyaWRlIHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogCiAgICAg
U3RyaW5nIGNvbXB1dGVkUm9sZVN0cmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmlu
Z0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpDb21wdXRlZFJvbGVTdHJpbmcpOyB9CiAg
ICAgYm9vbCBpc1ZhbHVlQXV0b2ZpbGxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNWYWx1ZUF1dG9maWxsZWQpOyB9CkBAIC00
NjUsNiArNDY2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFy
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5z
dGFuY2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUluc3RhbmNlKCkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVj
dENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RD
YWNoZU1hYy5tbQppbmRleCAxMzBiY2JhNTE3MzRhODA0YjhhMTM1YzdiNzkwMmQ3M2VlZjUxZWRi
Li45MjVkZGU5YTc1MDlhNzE3NmFmODQ5NjY1NmVmNDE1YTgyMWQwYzhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAg
LTMxOSw2ICszMTksOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBWENvcmVPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbgogICAgIGNhc2UgQVhGb2N1
c2VkVUlFbGVtZW50Q2hhbmdlZDoKICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNBY2Nlc3Np
YmlsaXR5Rm9jdXNlZFVJRWxlbWVudENoYW5nZWROb3RpZmljYXRpb247CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhJbWFnZU92ZXJsYXlDaGFuZ2VkOgorICAgICAgICBtYWNOb3RpZmljYXRp
b24gPSBAIkFYSW1hZ2VPdmVybGF5Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QVhMYXlvdXRDb21wbGV0ZToKICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gQCJBWExheW91dENv
bXBsZXRlIjsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCmluZGV4IDRhNzliM2IzZmIzNzliMWM2YjcwYTc1N2NmZGMwZjVjZGI3MjY2ZDkuLjNm
ODU1NzM0NmM4ZjkyMDFiZjA1MWFjODk2MzIxMDIzOWExMjhiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC01NDMsNiArNTQzLDEwIEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3Jp
cHRpb25BdHRyaWJ1dGUgQCJBWEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiIKICNlbmRpZgogCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzQXR0cmlidXRlCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzQXR0cmlidXRlIEAiQVhJbWFn
ZU92ZXJsYXlFbGVtZW50cyIKKyNlbmRpZgorCiBleHRlcm4gIkMiIEFYVUlFbGVtZW50UmVmIE5T
QWNjZXNzaWJpbGl0eUNyZWF0ZUFYVUlFbGVtZW50UmVmKGlkIGVsZW1lbnQpOwogCiBAaW1wbGVt
ZW50YXRpb24gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIKQEAgLTE1NjAsOCArMTU2NCw5
IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFy
cmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlWZXJ0aWNhbFNjcm9sbEJhckF0dHJpYnV0ZV07
CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpKTsKLSAgICBzdGF0aWMgYXV0byBp
bWFnZUF0dHJzID0gIG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisgICAgc3RhdGljIGF1dG8gaW1h
Z2VBdHRycyA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CiAgICAgICAgIGF1dG8gdGVtcEFycmF5
ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0dHJpYnV0
ZXMuZ2V0KCkuZ2V0KCldKTsKKyAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3Np
YmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVudHNBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3JpcHRpb25BdHRyaWJ1
dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlVUkxBdHRy
aWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwpAQCAtMjM2Niw2ICsyMzcxLDEyIEBA
IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICByZXR1cm4gW3Nl
bGYgcG9zaXRpb25dOwogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNB
Y2Nlc3NpYmlsaXR5UGF0aEF0dHJpYnV0ZV0pCiAgICAgICAgIHJldHVybiBbc2VsZiBwYXRoXTsK
KworICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5
SW1hZ2VPdmVybGF5RWxlbWVudHNBdHRyaWJ1dGVdKSB7CisgICAgICAgIGF1dG8gaW1hZ2VPdmVy
bGF5RWxlbWVudHMgPSBiYWNraW5nT2JqZWN0LT5pbWFnZU92ZXJsYXlFbGVtZW50cygpOworICAg
ICAgICByZXR1cm4gaW1hZ2VPdmVybGF5RWxlbWVudHMgPyBjb252ZXJ0VG9OU0FycmF5KCppbWFn
ZU92ZXJsYXlFbGVtZW50cykgOiBuaWw7CisgICAgfQorCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1l
IGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3JpcHRpb25B
dHRyaWJ1dGVdKQogICAgICAgICByZXR1cm4gYmFja2luZ09iamVjdC0+ZW1iZWRkZWRJbWFnZURl
c2NyaXB0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA0ZWE3ZWI2ZWI4ZjU4MTdmODE4NTkzYTJiOGZlYzIyMWY1NmZjYjcwLi44NjEw
MjE2MjFlNGQ4OWU3NzYxYjdmMzI4NzJjNDYzZjI3YTRjYmE0IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDYt
MTggIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgorCisgICAgICAgIEFj
Y2Vzc2liaWxpdHkgc3VwcG9ydCBmb3IgaW1hZ2UgdGV4dCByZWNvZ25pdGlvbi4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDI4MAorICAgICAgICBy
ZGFyOi8vNzYzNDg3NDAKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxk
cmVuIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRJT1MubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVu
IGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVy
bGF5RWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMgY29uc3QpOgorCiAyMDIx
LTA2LTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBEZWZpbmUg
TWFjcm9Bc3NlbWJsZXJBUk02NEU6Om51bWJlck9mUEFDQml0cyBiYXNlZCBvbiBPU19DT05TVEFO
VChFRkZFQ1RJVkVfQUREUkVTU19XSURUSCkuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cAppbmRleCA5N2ExYzJiOTVjZmQ1ZmUyYjJmZWM3ODcwYTYyMThkNmU0YzJkYjQ3Li5kYWJiZjQ1
OWVlMmYzOTIxZGViMzhiNTY3YWUxYzM4NDA1ZDExZTk5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHAKQEAgLTEyNyw4ICsxMjcsMTAgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0U2VudGVuY2VFbmRUZXh0TWFya2UK
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cHJldmlvdXNTZW50ZW5jZVN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXIqKSB7IHJldHVybiBudWxscHRyOyB9CiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWlzc3BlbGxpbmdUZXh0TWFy
a2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSosIGJvb2wpIHsgcmV0dXJuIG51
bGxwdHI7IH0KIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpIHsgfQorSlNW
YWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJu
IHsgfTsgfQogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXRhaWxzRWxlbWVu
dHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6ZXJyb3JNZXNzYWdlRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KK0pTVmFs
dWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25z
dCB7IHJldHVybiB7IH07IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCBhZDYzMTNi
MDUzMzllMTVmZmE1NzVkNzFmOTI0NzhmZGYyODNmZjIwLi5lYzExMTU2ZGNiYWQ5ODRhNjUyNmM1
YmIxZDZhZjdlZDk5YzA2Y2MzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtODMs
NiArODMsNyBAQCBwdWJsaWM6CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGRvbUlkZW50
aWZpZXIoKSBjb25zdDsKIAogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBlbGVt
ZW50QXRQb2ludChpbnQgeCwgaW50IHkpOworICAgIEpTVmFsdWVSZWYgY2hpbGRyZW4oKSBjb25z
dDsKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gY2hpbGRBdEluZGV4KHVuc2ln
bmVkKTsKICAgICB1bnNpZ25lZCBpbmRleE9mQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCop
OwogICAgIGludCBjaGlsZHJlbkNvdW50KCk7CkBAIC0xOTYsNyArMTk3LDggQEAgcHVibGljOgog
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiB1cmwoKTsKICAgICBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gY2xhc3NMaXN0KCkgY29uc3Q7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0OwotICAgIAorICAgIEpTVmFsdWVSZWYg
aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25zdDsKKwogICAgIC8vIENTUzMtc3BlZWNoIHByb3Bl
cnRpZXMuCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNwZWFrQXMoKTsKICAgICAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IDI2MjY1
YTVjODUwZjI0MWM5Y2EwOTVhYmUxZDgyYTJlZTZlZGNhOWIuLjc5Mjc5YmUyYzg4ZjU4ZWQ2Mzhk
Y2UwYTI3MWE4ZDJlMTY2YTYyY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmlkbApAQCAtMTEwLDYgKzExMCw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBhcmlhRHJvcEVmZmVjdHM7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBjbGFzc0xpc3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBlbWJl
ZGRlZEltYWdlRGVzY3JpcHRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9iamVjdCBpbWFn
ZU92ZXJsYXlFbGVtZW50czsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHg7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeTsKQEAgLTExOCw2ICsxMTksNyBAQAogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIGNsaWNrUG9pbnRYOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nIGNsaWNrUG9pbnRZOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9iamVjdCBjaGlsZHJl
bjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBjaGlsZHJlbkNvdW50OwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIHNlbGVjdGVkQ2hpbGRyZW5Db3VudDsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyByb3dDb3VudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50SU9TLm1tCmluZGV4IDY5MDAyOGRiNjBhYTVmMGZiNTUxOWQyNTIwMTYxNjE3N2E2Yzk1MTUu
LjA1Yjc3OGQ0ZGE2NTFmZjljYTFjMTZhOGVmNjU3OGU5NWI1MGI2MzYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpAQCAtMTAyLDYgKzEwMiw3IEBAIHR5cGVk
ZWYgdm9pZCAoKkFYUG9zdGVkTm90aWZpY2F0aW9uQ2FsbGJhY2spKGlkIGVsZW1lbnQsIE5TU3Ry
aW5nKiBub3RpZmljYXRpb24sCiAtIChpZClfYWNjZXNzaWJpbGl0eUxhbmRtYXJrQW5jZXN0b3I7
CiAtIChpZClfYWNjZXNzaWJpbGl0eUxpc3RBbmNlc3RvcjsKIC0gKGlkKV9hY2Nlc3NpYmlsaXR5
UGhvdG9EZXNjcmlwdGlvbjsKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5
RWxlbWVudHM7CiAKIC8vIFRleHRNYXJrZXIgcmVsYXRlZAogLSAoTlNBcnJheSAqKXRleHRNYXJr
ZXJSYW5nZTsKQEAgLTIxNSw2ICsyMTYsMTEgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpnZXREb2N1bWVudExpbmtzKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWUKIHsK
IH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+PihbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50c10pKTsKK30KKwog
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgTlNJbnRlZ2Vy
IGNoaWxkQ291bnQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50Q291bnRdOwpAQCAt
MTEwMSw2ICsxMTA3LDExIEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zCiAgICAgcmV0dXJuIGNv
bmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiIs
IFttX2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlQaG90b0Rlc2NyaXB0aW9uXSk7CiB9CiAKK0pTVmFs
dWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25z
dAoreworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Pj4oW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVu
dHNdKSk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWQoKSBj
b25zdAogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tCmluZGV4IGRkZDhkNTgwMGJmODkzYTI2OGVmZTcyZjY3MjQ4NzBiM2Y4MTJl
YjEuLmMxMjkwZDFkNmM4ZDZkOTg0OGZhM2JkZGI2NTZmODJhZTQ3ZWNmMDIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMzQ5LDYgKzM0OSwxNSBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldFVJRWxlbWVudHNXaXRoQXR0cmlidXRlKEpT
U3RyaW5nUmVmIGF0dHJpYnV0ZSwgVgogICAgICAgICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8UmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pih2YWx1ZSk7CiB9CiAKK0pTVmFsdWVSZWYgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4oKSBjb25zdAoreworICAgIEJFR0lOX0FYX09C
SkNfRVhDRVBUSU9OUworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oYXR0cmlidXRlVmFsdWUobV9lbGVtZW50LmdldCgpLCBO
U0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZSkpKTsKKyAgICBFTkRfQVhfT0JKQ19FWENF
UFRJT05TCisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgZWxlbWVudFZlY3RvciA9IG1ha2VWZWN0b3I8UmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShtX2VsZW1lbnQuZ2V0
KCksIE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlKSk7CkBAIC0xNjc0LDYgKzE2ODMs
MTUgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVt
YmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnMKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAor
SlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbWFnZU92ZXJsYXlFbGVtZW50cygp
IGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgcmV0dXJuIG1ha2VK
U0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1
dGVWYWx1ZShtX2VsZW1lbnQuZ2V0KCksIEAiQVhJbWFnZU92ZXJsYXlFbGVtZW50cyIpKSk7Cisg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIGJv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICBCT09M
IHJlc3VsdCA9IE5POwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUwNjJiODg0M2Q3MDU5M2JiZWZlNTQ1ZWZkMzgxZjkyYmVl
NWNhYTYuLjRmZTIzOWU3MWQ3ODc5YjYyOWY0MWFjNmYwOWVhYzhjZWJiYTM3MjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMS0wNi0xOCAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eSBzdXBwb3J0IGZvciBpbWFnZSB0ZXh0
IHJlY29nbml0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI0MjgwCisgICAgICAgIHJkYXI6Ly83NjM0ODc0MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIEZsZWl6YWNoLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pbWFnZS1saW5r
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1h
Z2Utb3ZlcmxheS1lbGVtZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nOiBB
ZGRlZC4KKwogMjAyMS0wNi0xOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0
Lmh0dHBzLmh0bWwgaXMgZmFpbGluZyBzaW5jZSByMjczNjQ1CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdlLWxpbmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9pbWFnZS1saW5rLWV4cGVjdGVkLnR4dAppbmRleCBiNzMxODZkMzMyZDIw
ZDYyMGVkMzJhZmE2ODJiN2UwY2JkMWU0MDA5Li4xMWE5ZjU2ZTViNTNjYWYxMTM0NWJlOTNlMGJj
NzQ5NDE0ODhiOTdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdl
LWxpbmstZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2Ut
bGluay1leHBlY3RlZC50eHQKQEAgLTY0LDYgKzY0LDcgQEAgQVhET01DbGFzc0xpc3Q6IDxhcnJh
eSBvZiBzaXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhJbWFnZT4KIEFYRWRpdGFibGVB
bmNlc3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKK0FYSW1h
Z2VPdmVybGF5RWxlbWVudHM6IChudWxsKQogQVhFbWJlZGRlZEltYWdlRGVzY3JpcHRpb246CiBB
WFVSTDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yZXNvdXJjZXMvY2FrZS5wbmcKIEFYRWxl
bWVudEJ1c3k6IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNp
bXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZjc4ZDgwN2EzYWY5YTRhZmRlMDBkZGEzYjhjNjhhYTdiNTk2
MWZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2lt
dWxhdG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBA
QAorUEFTUyBheEltYWdlT3ZlcmxheUVsZW1lbnRzLmxlbmd0aCBpcyAyCitoZWxsbworCit3b3Js
ZAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ltYWdl
LW92ZXJsYXktZWxlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNp
bXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBiODFiNGY5
NTdjOTJlNWIyNjFiMzY1YjM1MDNhYjU3NGY4YzFkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRz
Lmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0
eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxl
ZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxpbWcgaWQ9ImltYWdlMSIg
c3JjPSIuL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+CisKKzxzY3JpcHQ+Cisg
ICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsICgpID0+IHsKKyAgICAgICAgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJp
bWciKTsKKyAgICAgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAg
ICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAg
ICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAg
ICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRleHQgOiAid29ybGQiLAor
ICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAor
ICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwK
KyAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEp
LAorICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAx
KSwKKyAgICAgICAgICAgIH0sCisgICAgICAgIF0pOworCisgICAgICAgIHJ1blRlc3QoKTsKKyAg
ICB9KTsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cuYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkg
PT4geworICAgICAgICAgICAgICAgIHZhciBheEltYWdlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJpbWFnZTEiKTsKKyAgICAgICAgICAgICAgICBhd2Fp
dCB3YWl0Rm9yKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmF4SW1hZ2VPdmVy
bGF5RWxlbWVudHMgPSBheEltYWdlLmltYWdlT3ZlcmxheUVsZW1lbnRzOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYXhJbWFnZU92ZXJsYXlFbGVtZW50cy5sZW5ndGggPT0gMjsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgiYXhJbWFnZU92ZXJsYXlF
bGVtZW50cy5sZW5ndGgiLCAiMiIpOworCisgICAgICAgICAgICAgICAgZm9yIChsZXQgYXhFbGVt
ZW50IG9mIGF4SW1hZ2VPdmVybGF5RWxlbWVudHMpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0
IHRleHRNYXJrZXJSYW5nZSA9IGF4RWxlbWVudC50ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KGF4
RWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIGRlYnVnKGF4RWxlbWVudC5zdHJpbmdGb3JU
ZXh0TWFya2VyUmFuZ2UodGV4dE1hcmtlclJhbmdlKSk7CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9LCAwKTsKKyAgICAg
ICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41Mjg0OTgyNDM3MWI4NzE5OGY0N2VjZDAzZWZjZGQwMTI1NTdhZWVhCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAxMTM0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VjRNS0w5ODVxRns8
e2xqMTFaaHxrSH0mTTI1dzt4V0BNTihNKj05dwp6VWdHS04lS25nQFBndW4mWXh8cC1LcTEtOGtj
YmxKe01fOHN5Yj5VbmZ4KT5iSEwpWiRNV0g7aUJ0eWE3KD5FWVIKekZPezh2ZiUlRTJpKF5RfHQr
IVZVY15NY3VTVD9kaF4+QWxwX1NBbVp3JVVnd0VgeVdkRnE0N0tmZWoyaSsmfWB2CnoxYD1SNDQ+
eT1pajNtKHRAbWV1ejNpaEJNTSZaS2ElPisocjZuY3ImXm9jIyQ0SHJgJFR3PERraWd8KDk/NzFJ
NwpPMSVhb2xwVVhPQGdlQ3d6OTVKQikKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431982</attachid>
            <date>2021-06-22 11:40:37 -0700</date>
            <delta_ts>2021-06-23 08:28:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210622144035.patch</filename>
            <type>text/plain</type>
            <size>39252</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMxZDg3ZmM2YzU3NzAx
YjU0MzcxZGQ0MDQzMzVmOGUzNTJmZWE5NS4uYzBkYjIyNmNkN2MwYmY5YWFiOWM0NTU4ZmNkOWYw
NDU4NTFhYjkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIxLTA2LTE4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBY2Nlc3NpYmls
aXR5IHN1cHBvcnQgZm9yIGltYWdlIHRleHQgcmVjb2duaXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODAKKyAgICAgICAgcmRhcjovLzc2
MzQ4NzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAg
VGVzdDogYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMu
aHRtbAorCisgICAgICAgIEV4cG9zZXMgdG8gYWNjZXNzaWJpbGl0eSBjbGllbnRzIHRoZSBlbGVt
ZW50cyBjcmVhdGVkIGJ5CisgICAgICAgIFdlYlBhZ2U6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24g
Zm9yIHN0YXRpYyBpbWFnZXMuIFRoaXMgYWxsb3dzIGNsaWVudHMKKyAgICAgICAgdG8gcHJlc2Vu
dCB0aGUgcmVjb2duaXplZCB0ZXh0IGluIGltYWdlcyB0byBhc3Npc3RpdmUgdGVjaG5vbG9neSB1
c2Vycy4KKyAgICAgICAgLSBBZGRlZCBhIG5ldyBBWE9iamVjdCBzdWJjbGFzcywgQVhJbWFnZSwg
dG8gZW5jYXBzdWxhdGUgdGhpcyBmdW5jdGlvbmFsaXR5LgorICAgICAgICBUaGlzIGNsYXNzIGNh
biBiZSBleHBhbmRlZCB0byBvZmZsb2FkIHNvbWUgb2YgdGhlIGltYWdlIHNwZWNpZmljIGNvZGUK
KyAgICAgICAgY29udGFpbmVkIGluIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QsIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LAorICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0IGFuZCBvdGhlcnMu
CisgICAgICAgIC0gU2luY2UgcmVxdWVzdFRleHRSZWNvZ25pdGlvbiBpcyBhbiBhc3luYyBjYWxs
LCBhZGRlZCBhbiBBWE5vdGlmaWNhdGlvbgorICAgICAgICB0byBub3RpZnkgY2xpZW50cyB3aGVu
IHRoZSBpbWFnZSBvdmVybGF5IGVsZW1lbnRzIGFyZSBhdmFpbGFibGUgZm9yCisgICAgICAgIGNv
bnN1bXB0aW9uLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFn
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6QVhJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBWEltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFn
ZTo6cm9sZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2U6OmltYWdlT3Zl
cmxheUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaDogQWRkZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aXNTaW1wbGVJbWFnZSk6IERldGVybWluZXMgd2hldGhlciBh
IGdpdmVuIGVsZW1lbnQgaXMgYSBzdGF0aWMKKyAgICAgICAgaW1hZ2UuCisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIpOiBJbnN0YW50aWF0ZSBhbiBBWEltYWdlIG9iamVjdCB3
aGVuCisgICAgICAgIGFwcHJvcHJpYXRlLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhh
dmVDaGlsZHJlbiBjb25zdCk6IEltYWdlcyBjYW4KKyAgICAgICAgaGF2ZSBjaGlsZHJlbi4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUGxhdGZvcm1OYW1lKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbToKKyAgICAg
ICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUVsZW1lbnRz
XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxp
dHlJbWFnZU92ZXJsYXlFbGVtZW50c10pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6aXNBWEltYWdlSW5zdGFuY2UgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElP
TlNfRU5EXSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vz
c2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKwogMjAyMS0wNi0xOCAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1N
ZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0dHBzLmh0bWwgaXMgZmFpbGluZyBzaW5jZSByMjczNjQ1
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IGIxYmQ1Y2FlY2JhZTA3NzdmNDIyNDY1ODJlOTdiODIzZTNjZGY5
ZGQuLjJhNWIxNzA0MmU0ODgzZGU2NzE2NzA5ZTBiOTE1NWIwMWNlNDQxMzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC00NDIsNiArNDQyLDcgQEAgTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQu
Y3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNw
cCBAbm8tdW5pZnkKIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8t
dW5pZnkKIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwIEBuby11bmlmeQorYWNjZXNz
aWJpbGl0eS9BWEltYWdlLmNwcAogYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDdiYWJkNTM4NzAxYTc3YTg5MGY3NjFkMjRkODkwM2I4NWUwYTcxM2YuLmY2
MDg5YjI2YWIzNmMyN2RmNTU4NTE5N2U0MGJkZTE2ZDg2YTllYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NjYxLDYgKzE0
NjYxLDggQEAKIAkJQkVBODA3QzcwRjcxNEEwMzAwNTI0MTk5IC8qIFNlbGVjdGlvbkdlb21ldHJ5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlbGVjdGlvbkdlb21ldHJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFRjI5RUU5MTcxNUREMDkwMEM0QjRDOSAv
KiBBdWRpb1RyYWNrUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
dWRpb1RyYWNrUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRUYyOUVF
QTE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFYSW1hZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVhJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMDQwMEM3
RTI2MUNCM0RCMDBBRjQ0RkEgLyogQVhJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBWElt
YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzA0NkUxQUIxMjA4QTlGRTAw
QkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTG9jYWxpemVkU3RyaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMwNDkzRUI3MjQ0Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBWExvZ2dlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMDc4Mzc2MDIzREYyNTNFMDBDOUM1QzggLyogQVhJc29sYXRlZE9iamVjdE1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFYSXNvbGF0ZWRPYmplY3RNYWMubW07IHBhdGggPSBt
YWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5NDYyLDYgKzE5NDY0LDggQEAKIAkJCQlBOTFDOUZDMDFCNjU5QTY3MDBBRkZENTQgLyogQWNj
ZXNzaWJpbGl0eVRyZWVJdGVtLmNwcCAqLywKIAkJCQlBOTFDOUZDMTFCNjU5QTY3MDBBRkZENTQg
LyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmggKi8sCiAJCQkJQTlFRTQ0OEMyMTBGQzlBRDAwQjZF
QUU2IC8qIEFyaWFBdHRyaWJ1dGVzLmlkbCAqLywKKwkJCQlDMDQwMEM3RTI2MUNCM0RCMDBBRjQ0
RkEgLyogQVhJbWFnZS5jcHAgKi8sCisJCQkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFY
SW1hZ2UuaCAqLywKIAkJCQlDMDhGMTNBMTI0NDc2NkRDMDBBQjk4OUYgLyogQVhMb2dnZXIuY3Bw
ICovLAogCQkJCUMwNDkzRUI3MjQ0Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICovLAogCQkJ
CTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3MWQ5MThhOTI0
YzcxZDU2NDNlNTk5OGExZmQ5YTIwNjQ5MjYwZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFYSW1hZ2UuaCIKKworI2luY2x1ZGUgIkFYTG9nZ2VyLmgiCisjaW5j
bHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworQVhJbWFnZTo6QVhJbWFnZShSZW5kZXJJbWFnZSogcmVuZGVyZXIpCisgICAg
OiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVyKQoreworfQorCitSZWY8QVhJbWFn
ZT4gQVhJbWFnZTo6Y3JlYXRlKFJlbmRlckltYWdlKiByZW5kZXJlcikKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBWEltYWdlKHJlbmRlcmVyKSk7Cit9CisKK0FjY2Vzc2liaWxpdHlSb2xl
IEFYSW1hZ2U6OnJvbGVWYWx1ZSgpIGNvbnN0Cit7CisgICAgYXV0byBhcmlhUm9sZSA9IGFyaWFS
b2xlQXR0cmlidXRlKCk7CisgICAgaWYgKGFyaWFSb2xlICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpV
bmtub3duKQorICAgICAgICByZXR1cm4gYXJpYVJvbGU7CisKKyAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eVJvbGU6OkltYWdlOworfQorCitzdGQ6Om9wdGlvbmFsPEFYQ29yZU9iamVjdDo6QWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cygpCit7
CisgICAgQVhUUkFDRSgiQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMiKTsKKworICAgIGF1
dG8mIGNoaWxkcmVuID0gdGhpcy0+Y2hpbGRyZW4oKTsKKyAgICBpZiAoY2hpbGRyZW4uc2l6ZSgp
KQorICAgICAgICByZXR1cm4gY2hpbGRyZW47CisKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
CisgICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1
ZXN0VGV4dFJlY29nbml0aW9uKCplbGVtZW50KCksIFtdIChSZWZQdHI8RWxlbWVudD4mJiBpbWFn
ZU92ZXJsYXlIb3N0KSB7CisgICAgICAgIGlmICghaW1hZ2VPdmVybGF5SG9zdCkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBpZiAoYXV0byogYXhPYmplY3RDYWNoZSA9IGltYWdlT3Zl
cmxheUhvc3QtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAg
ICBheE9iamVjdENhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKGltYWdlT3ZlcmxheUhvc3QuZ2V0KCks
IEFYT2JqZWN0Q2FjaGU6OkFYSW1hZ2VPdmVybGF5Q2hhbmdlZCk7CisgICAgfSk7CisjZW5kaWYK
KworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIwMzRkMGY5
NTRhNzQ3NTdiYzI4MjViZmJiOTY4NGUzZWE5OTg2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVy
SW1hZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBWEltYWdlIDogcHVibGlj
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QVhJ
bWFnZT4gY3JlYXRlKFJlbmRlckltYWdlKik7CisgICAgdmlydHVhbCB+QVhJbWFnZSgpID0gZGVm
YXVsdDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBWEltYWdlKFJlbmRlckltYWdlKik7Cisg
ICAgYm9vbCBpc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KKworICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBpbWFnZU92ZXJs
YXlFbGVtZW50cygpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZSAKKwor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BQ0NFU1NJQklMSVRZKEFYSW1hZ2UsIGlzQVhJbWFnZUlu
c3RhbmNlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9n
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4
IDQxMzliNDNmNmVjMGYxYTBkYmUyNDY3NTZiYTVhMjUyMjhjMDBhYWYuLjQyZWVmN2YxOTIxOWIz
ZmU2MDYyYTFjZGI3NzM0ZjljM2Q0MWZhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhMb2dnZXIuY3BwCkBAIC0zNzIsNiArMzcyLDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiBzdHJlYW0sIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uIG5vdGlm
aWMKICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWElkQXR0cmlidXRl
Q2hhbmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWElkQXR0cmlidXRlQ2hhbmdlZCI7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYSW1h
Z2VPdmVybGF5Q2hhbmdlZDoKKyAgICAgICAgc3RyZWFtIDw8ICJBWEltYWdlT3ZlcmxheUNoYW5n
ZWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0
aW9uOjpBWExhbmd1YWdlQ2hhbmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWExhbmd1YWdlQ2hh
bmdlZCI7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAKaW5kZXggMDVmODZlNDdiMmM1OTEzMDU0NjQ5MDY2Zjk3NTM2YTEx
MzA3ODM0OC4uYjZjMmI3NDUzODVlYmFhYjRjMzUwMWExNDExNjRmNGIxOTRmZDA3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC01MTEs
NiArNTExLDI4IEBAIGJvb2wgbm9kZUhhc1JvbGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBy
b2xlKQogICAgIHJldHVybiBTcGFjZVNwbGl0U3RyaW5nKHJvbGVWYWx1ZSwgdHJ1ZSkuY29udGFp
bnMocm9sZSk7CiB9CiAKK3N0YXRpYyBib29sIGlzU2ltcGxlSW1hZ2UoY29uc3QgUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlcikKK3sKKyAgICBpZiAoIWlzPFJlbmRlckltYWdlPihyZW5kZXJlcikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEV4Y2x1ZGUgSW1hZ2VCdXR0b25zIGJlY2F1
c2UgdGhleSBhcmUgdHJlYXRlZCBhcyBidXR0b25zLCBub3QgYXMgaW1hZ2VzLgorICAgIGF1dG8q
IG5vZGUgPSByZW5kZXJlci5ub2RlKCk7CisgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5v
ZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJbWFnZU1hcHMgYXJlIG5vdCBz
aW1wbGUgaW1hZ2VzLgorICAgIGlmIChkb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpLmlt
YWdlTWFwKCkKKyAgICAgICAgfHwgKGlzPEhUTUxJbWFnZUVsZW1lbnQ+KG5vZGUpICYmIGRvd25j
YXN0PEhUTUxJbWFnZUVsZW1lbnQ+KG5vZGUpLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKHVzZW1hcEF0dHIpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gRXhj
bHVkZSB2aWRlbyBhbmQgYXVkaW8gZWxlbWVudHMuCisgICAgaWYgKGlzPEhUTUxNZWRpYUVsZW1l
bnQ+KG5vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwogc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tUmVuZGVyZXIoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKICAgICAvLyBGSVhNRTogSG93IGNvdWxkIHJlbmRlcmVy
LT5ub2RlKCkgZXZlciBub3QgYmUgYW4gRWxlbWVudD8KQEAgLTU1MCw2ICs1NzIsOSBAQCBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyKQogICAgIGlmIChpczxTVkdFbGVtZW50Pihub2RlKSkKICAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50OjpjcmVhdGUocmVuZGVyZXIpOwogCisgICAgaWYg
KGlzU2ltcGxlSW1hZ2UoKnJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIEFYSW1hZ2U6OmNyZWF0
ZShkb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKTsKKwogI2lmIEVOQUJMRShNQVRITUwp
CiAgICAgLy8gVGhlIG1mZW5jZWQgZWxlbWVudCBjcmVhdGVzIGFub255bW91cyBSZW5kZXJNYXRo
TUxPcGVyYXRvcnMgd2hpY2ggc2hvdWxkIGJlIHRyZWF0ZWQKICAgICAvLyBhcyBNYXRoTUwgZWxl
bWVudHMgYW5kIGFzc2lnbmVkIHRoZSBNYXRoRWxlbWVudFJvbGUgc28gdGhhdCBwbGF0Zm9ybSBs
b2dpYyByZWdhcmRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKaW5kZXggNTY0NzE2Y2UzNGJkZGM3NmM2NDRmZWYzMWE4MWEwZjBlM2E0M2UzZC4uZjhk
MDA1OTUxNTgyOTFmMDgxZWY0YjA0MjcxZTQ1OTg3OGE5MDYzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTI4NCw2ICsyODQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIEFYRm9jdXNlZFVJRWxlbWVudENoYW5nZWQsCiAgICAgICAgIEFYRnJhbWVM
b2FkQ29tcGxldGUsCiAgICAgICAgIEFYSWRBdHRyaWJ1dGVDaGFuZ2VkLAorICAgICAgICBBWElt
YWdlT3ZlcmxheUNoYW5nZWQsCiAgICAgICAgIEFYTGFuZ3VhZ2VDaGFuZ2VkLAogICAgICAgICBB
WExheW91dENvbXBsZXRlLAogICAgICAgICBBWExvYWRDb21wbGV0ZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAK
aW5kZXggNzkwMjY2MDkxNjIwN2E4ZWEzNTM0MTc5NGNkYjRlNjIwMTU0Njc4NS4uMjcwYmJkOWQ4
Y2E4ZTQ1ZjQ3OGM0MmFjM2ZhMGY4Y2U1YmQ4MjUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTM3
OCw3ICszNzgsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRy
ZW4oKSBjb25zdAogICAgIAogICAgIC8vIEVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBoYXZlIGNo
aWxkcmVuCiAgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgewotICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkltYWdlOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQb3BVcEJ1dHRvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpDaGVja0JveDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggOGU1MmMwNTBjY2JjOTEyMzBhYWI0NzM5NGQ5ZDVh
YWI5NmU2NGQ0ZS4uYjhhMWZkN2Q1NDM0NTU4ZjllN2MyMjEyMzYzMTNkMTZhY2ZhMzQ1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKQEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlz
QWNjZXNzaWJpbGl0eVNjcm9sbGJhcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZH
Um9vdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vz
c2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBib29sIGlzQWNjZXNzaWJpbGl0eVRhYmxlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQpAQCAtMzk5LDYgKzQwMCw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgYnJh
aWxsZUxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZ2V0QXR0cmlidXRlKEhUTUxOYW1l
czo6YXJpYV9icmFpbGxlbGFiZWxBdHRyKTsgfQogICAgIFN0cmluZyBicmFpbGxlUm9sZURlc2Ny
aXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6
YXJpYV9icmFpbGxlcm9sZWRlc2NyaXB0aW9uQXR0cik7IH0KICAgICBTdHJpbmcgZW1iZWRkZWRJ
bWFnZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3I+IGltYWdlT3ZlcmxheUVsZW1lbnRzKCkgb3ZlcnJpZGUg
eyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CiAKICAgICAvLyBBYmJyZXZpYXRpb25zCiAgICAgU3Ry
aW5nIGV4cGFuZGVkVGV4dFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU3RyaW5nKCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggYmNjODZlMzZjOTJjM2Y1NDMzYmEwMDhiNGQy
NGYwNjI1NWU0ZmRjZS4uODk3YWQwYjI4OWNkMWM5YWM2M2ZjNjVmYzNhOWRiZDAwZmVkMjc1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTc5MSw2ICs3OTEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUluc3RhbmNlKCkgY29uc3QgPSAwOwpAQCAt
MTAxNCw2ICsxMDE1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGJyYWlsbGVMYWJl
bCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBicmFpbGxlUm9sZURlc2NyaXB0aW9u
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlv
bigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yPiBpbWFnZU92ZXJsYXlFbGVtZW50cygpID0gMDsKIAogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0FSSUFPd25zKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0Fj
dGl2ZURlc2NlbmRhbnRPZkZvY3VzZWRDb250YWluZXIoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRl
eCA0ZjU0MDFmNWI3ODg1Nzc1ZDg3YmM5ZjU1YTU1NmMwZWM3MmM1YzNiLi40ODJmNmM5MDFiNzQ1
Nzg2N2I4OWU1MjBiZWQ1YmJmYjZlMjJmOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTUxLDYgKzUxLDkgQEAg
U3RyaW5nIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFtZShBWE5vdGlmaWNh
dGlvbiBub3RpZmljYXRpb24pCiAgICAgY2FzZSBBWEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkOgog
ICAgICAgICBuYW1lID0gIkFYRm9jdXNDaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWEltYWdlT3ZlcmxheUNoYW5nZWQ6CisgICAgICAgIG5hbWUgPSAiQVhJbWFnZU92ZXJsYXlD
aGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBWFBhZ2VTY3JvbGxlZDoKICAgICAg
ICAgbmFtZSA9ICJBWFBhZ2VTY3JvbGxlZCI7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQppbmRleCAzZDA1ZjljNTEwZjQzOGQzZjhhYWZkZThi
NWQ1MGU2MTc1ZmE2NGFhLi4yZjVmNjAwZWYwYjdlMjBiMjZmNzJkNzcwN2QwNGNjNTBkODMyZWM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQpAQCAtNzIsNiArNzIs
NyBAQCBlbnVtIHsKIC0gKE5TSW50ZWdlcilhY2Nlc3NpYmlsaXR5RWxlbWVudENvdW50OwogLSAo
aWQpYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4OihOU0ludGVnZXIpaW5kZXg7CiAtIChOU0lu
dGVnZXIpaW5kZXhPZkFjY2Vzc2liaWxpdHlFbGVtZW50OihpZCllbGVtZW50OworLSAoTlNBcnJh
eSAqKWFjY2Vzc2liaWxpdHlFbGVtZW50czsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciAoQWNjZXNzaWJpbGl0eVByaXZhdGUpCkBAIC00MjksNiArNDMw
LDI5IEBAIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciogQWNjZXNzaWJpbGl0eVVu
aWdub3JlZEFuY2VzdG9yKEFjY2Vzc2liaWxpdHlPCiAgICAgICAgIGNhY2hlLT5zdG9wQ2FjaGlu
Z0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogfQogCistIChOU0FycmF5ICopYWNjZXNzaWJp
bGl0eUVsZW1lbnRzCit7CisgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxs
XSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGlmIChbc2VsZiBpc0F0dGFjaG1lbnRdKSB7
CisgICAgICAgIGlmIChpZCBhdHRhY2htZW50VmlldyA9IFtzZWxmIGF0dGFjaG1lbnRWaWV3XSkK
KyAgICAgICAgICAgIHJldHVybiBbYXR0YWNobWVudFZpZXcgYWNjZXNzaWJpbGl0eUVsZW1lbnRz
XTsKKyAgICB9CisKKyAgICBhdXRvIGFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0XSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IHNlbGYuYXhCYWNraW5n
T2JqZWN0LT5jaGlsZHJlbigpKSB7CisgICAgICAgIGF1dG8qIHdyYXBwZXIgPSBjaGlsZC0+d3Jh
cHBlcigpOworICAgICAgICBpZiAoY2hpbGQtPmlzQXR0YWNobWVudCgpKSB7CisgICAgICAgICAg
ICBpZiAoaWQgYXR0YWNobWVudFZpZXcgPSBbd3JhcHBlciBhdHRhY2htZW50Vmlld10pCisgICAg
ICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDphdHRhY2htZW50Vmlld107CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDp3cmFwcGVyXTsKKyAgICB9CisKKyAg
ICByZXR1cm4gYXJyYXkuYXV0b3JlbGVhc2UoKTsKK30KKwogLSAoTlNJbnRlZ2VyKWFjY2Vzc2li
aWxpdHlFbGVtZW50Q291bnQKIHsKICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0
eUNhbGxdKQpAQCAtMTg1NCw2ICsxODc4LDE1IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFN0cmluZ1Rv
UmVzdWx0KE5TTXV0YWJsZVN0cmluZyAqcmVzdWx0LCBOU1N0cmluZyAqc3RyaW5nKQogICAgIHJl
dHVybiBzZWxmLmF4QmFja2luZ09iamVjdC0+ZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKCk7CiB9
CiAKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVudHMKK3sKKyAg
ICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQorICAgICAgICByZXR1cm4g
bmlsOworCisgICAgYXV0byBpbWFnZU92ZXJsYXlFbGVtZW50cyA9IHNlbGYuYXhCYWNraW5nT2Jq
ZWN0LT5pbWFnZU92ZXJsYXlFbGVtZW50cygpOworICAgIHJldHVybiBpbWFnZU92ZXJsYXlFbGVt
ZW50cyA/IGFjY2Vzc2libGVFbGVtZW50c0Zvck9iamVjdHMoKmltYWdlT3ZlcmxheUVsZW1lbnRz
KSA6IG5pbDsKK30KKwogLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5TGlua1JlbGF0aW9uc2hp
cFR5cGUKIHsKICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCAxOTk5ODRjYWJiNmI0Yzk1ZDIxNDVhYzU4OWZj
ZjNjMjgwMWUyNmU3Li5iNzBhZGJhNjQ4ZWRiNzIzZTQzZjE2MDcyZWZlNGE3MWQ3ODU3OWMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMTI1OCw2ICsxMjU4LDEyIEBAIGJvb2wg
QVhJc29sYXRlZE9iamVjdDo6aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29u
c3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQVhJc29sYXRlZE9iamVjdDo6aXNBWElt
YWdlSW5zdGFuY2UoKSBjb25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojppc0FjY2Vzc2liaWxpdHlT
VkdSb290KCkgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaAppbmRleCBjZjY3ZDI3NzhlYzJiNjk4ZmU2YzYxZjdiNzZhN2U5MDAwZjQyZjFj
Li43MjU1ZjJjNGRiZjJjYWRjNTZjMjE1OWY0NWRmM2VlZmM1NDY3Y2Y0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5oCkBAIC0yNzIsNiArMjcyLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgYnJh
aWxsZUxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUo
QVhQcm9wZXJ0eU5hbWU6OkJyYWlsbGVMYWJlbCk7IH0KICAgICBTdHJpbmcgYnJhaWxsZVJvbGVE
ZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVl
KEFYUHJvcGVydHlOYW1lOjpCcmFpbGxlUm9sZURlc2NyaXB0aW9uKTsgfQogICAgIFN0cmluZyBl
bWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJpbmdB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKTsg
fQorICAgIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBpbWFnZU92
ZXJsYXlFbGVtZW50cygpIG92ZXJyaWRlIHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogCiAgICAg
U3RyaW5nIGNvbXB1dGVkUm9sZVN0cmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmlu
Z0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpDb21wdXRlZFJvbGVTdHJpbmcpOyB9CiAg
ICAgYm9vbCBpc1ZhbHVlQXV0b2ZpbGxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNWYWx1ZUF1dG9maWxsZWQpOyB9CkBAIC00
NjUsNiArNDY2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFy
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5z
dGFuY2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUluc3RhbmNlKCkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVj
dENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RD
YWNoZU1hYy5tbQppbmRleCAxMzBiY2JhNTE3MzRhODA0YjhhMTM1YzdiNzkwMmQ3M2VlZjUxZWRi
Li45MjVkZGU5YTc1MDlhNzE3NmFmODQ5NjY1NmVmNDE1YTgyMWQwYzhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAg
LTMxOSw2ICszMTksOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBWENvcmVPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbgogICAgIGNhc2UgQVhGb2N1
c2VkVUlFbGVtZW50Q2hhbmdlZDoKICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNBY2Nlc3Np
YmlsaXR5Rm9jdXNlZFVJRWxlbWVudENoYW5nZWROb3RpZmljYXRpb247CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhJbWFnZU92ZXJsYXlDaGFuZ2VkOgorICAgICAgICBtYWNOb3RpZmljYXRp
b24gPSBAIkFYSW1hZ2VPdmVybGF5Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QVhMYXlvdXRDb21wbGV0ZToKICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gQCJBWExheW91dENv
bXBsZXRlIjsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCmluZGV4IDRhNzliM2IzZmIzNzliMWM2YjcwYTc1N2NmZGMwZjVjZGI3MjY2ZDkuLjNm
ODU1NzM0NmM4ZjkyMDFiZjA1MWFjODk2MzIxMDIzOWExMjhiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC01NDMsNiArNTQzLDEwIEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3Jp
cHRpb25BdHRyaWJ1dGUgQCJBWEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiIKICNlbmRpZgogCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzQXR0cmlidXRlCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzQXR0cmlidXRlIEAiQVhJbWFn
ZU92ZXJsYXlFbGVtZW50cyIKKyNlbmRpZgorCiBleHRlcm4gIkMiIEFYVUlFbGVtZW50UmVmIE5T
QWNjZXNzaWJpbGl0eUNyZWF0ZUFYVUlFbGVtZW50UmVmKGlkIGVsZW1lbnQpOwogCiBAaW1wbGVt
ZW50YXRpb24gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIKQEAgLTE1NjAsOCArMTU2NCw5
IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFy
cmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlWZXJ0aWNhbFNjcm9sbEJhckF0dHJpYnV0ZV07
CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpKTsKLSAgICBzdGF0aWMgYXV0byBp
bWFnZUF0dHJzID0gIG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisgICAgc3RhdGljIGF1dG8gaW1h
Z2VBdHRycyA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CiAgICAgICAgIGF1dG8gdGVtcEFycmF5
ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0dHJpYnV0
ZXMuZ2V0KCkuZ2V0KCldKTsKKyAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3Np
YmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVudHNBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3JpcHRpb25BdHRyaWJ1
dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlVUkxBdHRy
aWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwpAQCAtMjM2Niw2ICsyMzcxLDEyIEBA
IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICByZXR1cm4gW3Nl
bGYgcG9zaXRpb25dOwogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNB
Y2Nlc3NpYmlsaXR5UGF0aEF0dHJpYnV0ZV0pCiAgICAgICAgIHJldHVybiBbc2VsZiBwYXRoXTsK
KworICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5
SW1hZ2VPdmVybGF5RWxlbWVudHNBdHRyaWJ1dGVdKSB7CisgICAgICAgIGF1dG8gaW1hZ2VPdmVy
bGF5RWxlbWVudHMgPSBiYWNraW5nT2JqZWN0LT5pbWFnZU92ZXJsYXlFbGVtZW50cygpOworICAg
ICAgICByZXR1cm4gaW1hZ2VPdmVybGF5RWxlbWVudHMgPyBjb252ZXJ0VG9OU0FycmF5KCppbWFn
ZU92ZXJsYXlFbGVtZW50cykgOiBuaWw7CisgICAgfQorCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1l
IGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3JpcHRpb25B
dHRyaWJ1dGVdKQogICAgICAgICByZXR1cm4gYmFja2luZ09iamVjdC0+ZW1iZWRkZWRJbWFnZURl
c2NyaXB0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA0ZWE3ZWI2ZWI4ZjU4MTdmODE4NTkzYTJiOGZlYzIyMWY1NmZjYjcwLi44NjEw
MjE2MjFlNGQ4OWU3NzYxYjdmMzI4NzJjNDYzZjI3YTRjYmE0IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDYt
MTggIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgorCisgICAgICAgIEFj
Y2Vzc2liaWxpdHkgc3VwcG9ydCBmb3IgaW1hZ2UgdGV4dCByZWNvZ25pdGlvbi4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDI4MAorICAgICAgICBy
ZGFyOi8vNzYzNDg3NDAKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxk
cmVuIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRJT1MubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVu
IGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVy
bGF5RWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMgY29uc3QpOgorCiAyMDIx
LTA2LTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBEZWZpbmUg
TWFjcm9Bc3NlbWJsZXJBUk02NEU6Om51bWJlck9mUEFDQml0cyBiYXNlZCBvbiBPU19DT05TVEFO
VChFRkZFQ1RJVkVfQUREUkVTU19XSURUSCkuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cAppbmRleCA5N2ExYzJiOTVjZmQ1ZmUyYjJmZWM3ODcwYTYyMThkNmU0YzJkYjQ3Li5kYWJiZjQ1
OWVlMmYzOTIxZGViMzhiNTY3YWUxYzM4NDA1ZDExZTk5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHAKQEAgLTEyNyw4ICsxMjcsMTAgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0U2VudGVuY2VFbmRUZXh0TWFya2UK
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cHJldmlvdXNTZW50ZW5jZVN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXIqKSB7IHJldHVybiBudWxscHRyOyB9CiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWlzc3BlbGxpbmdUZXh0TWFy
a2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSosIGJvb2wpIHsgcmV0dXJuIG51
bGxwdHI7IH0KIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpIHsgfQorSlNW
YWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJu
IHsgfTsgfQogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXRhaWxzRWxlbWVu
dHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6ZXJyb3JNZXNzYWdlRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KK0pTVmFs
dWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25z
dCB7IHJldHVybiB7IH07IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCBhZDYzMTNi
MDUzMzllMTVmZmE1NzVkNzFmOTI0NzhmZGYyODNmZjIwLi5lYzExMTU2ZGNiYWQ5ODRhNjUyNmM1
YmIxZDZhZjdlZDk5YzA2Y2MzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtODMs
NiArODMsNyBAQCBwdWJsaWM6CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGRvbUlkZW50
aWZpZXIoKSBjb25zdDsKIAogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBlbGVt
ZW50QXRQb2ludChpbnQgeCwgaW50IHkpOworICAgIEpTVmFsdWVSZWYgY2hpbGRyZW4oKSBjb25z
dDsKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gY2hpbGRBdEluZGV4KHVuc2ln
bmVkKTsKICAgICB1bnNpZ25lZCBpbmRleE9mQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCop
OwogICAgIGludCBjaGlsZHJlbkNvdW50KCk7CkBAIC0xOTYsNyArMTk3LDggQEAgcHVibGljOgog
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiB1cmwoKTsKICAgICBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gY2xhc3NMaXN0KCkgY29uc3Q7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0OwotICAgIAorICAgIEpTVmFsdWVSZWYg
aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25zdDsKKwogICAgIC8vIENTUzMtc3BlZWNoIHByb3Bl
cnRpZXMuCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNwZWFrQXMoKTsKICAgICAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IDI2MjY1
YTVjODUwZjI0MWM5Y2EwOTVhYmUxZDgyYTJlZTZlZGNhOWIuLjc5Mjc5YmUyYzg4ZjU4ZWQ2Mzhk
Y2UwYTI3MWE4ZDJlMTY2YTYyY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmlkbApAQCAtMTEwLDYgKzExMCw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBhcmlhRHJvcEVmZmVjdHM7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBjbGFzc0xpc3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBlbWJl
ZGRlZEltYWdlRGVzY3JpcHRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9iamVjdCBpbWFn
ZU92ZXJsYXlFbGVtZW50czsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHg7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeTsKQEAgLTExOCw2ICsxMTksNyBAQAogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIGNsaWNrUG9pbnRYOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nIGNsaWNrUG9pbnRZOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9iamVjdCBjaGlsZHJl
bjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBjaGlsZHJlbkNvdW50OwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIHNlbGVjdGVkQ2hpbGRyZW5Db3VudDsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyByb3dDb3VudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50SU9TLm1tCmluZGV4IDY5MDAyOGRiNjBhYTVmMGZiNTUxOWQyNTIwMTYxNjE3N2E2Yzk1MTUu
LjA1Yjc3OGQ0ZGE2NTFmZjljYTFjMTZhOGVmNjU3OGU5NWI1MGI2MzYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpAQCAtMTAyLDYgKzEwMiw3IEBAIHR5cGVk
ZWYgdm9pZCAoKkFYUG9zdGVkTm90aWZpY2F0aW9uQ2FsbGJhY2spKGlkIGVsZW1lbnQsIE5TU3Ry
aW5nKiBub3RpZmljYXRpb24sCiAtIChpZClfYWNjZXNzaWJpbGl0eUxhbmRtYXJrQW5jZXN0b3I7
CiAtIChpZClfYWNjZXNzaWJpbGl0eUxpc3RBbmNlc3RvcjsKIC0gKGlkKV9hY2Nlc3NpYmlsaXR5
UGhvdG9EZXNjcmlwdGlvbjsKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5
RWxlbWVudHM7CiAKIC8vIFRleHRNYXJrZXIgcmVsYXRlZAogLSAoTlNBcnJheSAqKXRleHRNYXJr
ZXJSYW5nZTsKQEAgLTIxNSw2ICsyMTYsMTEgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpnZXREb2N1bWVudExpbmtzKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWUKIHsK
IH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+PihbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50c10pKTsKK30KKwog
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgTlNJbnRlZ2Vy
IGNoaWxkQ291bnQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50Q291bnRdOwpAQCAt
MTEwMSw2ICsxMTA3LDExIEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zCiAgICAgcmV0dXJuIGNv
bmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiIs
IFttX2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlQaG90b0Rlc2NyaXB0aW9uXSk7CiB9CiAKK0pTVmFs
dWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25z
dAoreworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Pj4oW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVu
dHNdKSk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWQoKSBj
b25zdAogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tCmluZGV4IGRkZDhkNTgwMGJmODkzYTI2OGVmZTcyZjY3MjQ4NzBiM2Y4MTJl
YjEuLmMxMjkwZDFkNmM4ZDZkOTg0OGZhM2JkZGI2NTZmODJhZTQ3ZWNmMDIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMzQ5LDYgKzM0OSwxNSBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldFVJRWxlbWVudHNXaXRoQXR0cmlidXRlKEpT
U3RyaW5nUmVmIGF0dHJpYnV0ZSwgVgogICAgICAgICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8UmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pih2YWx1ZSk7CiB9CiAKK0pTVmFsdWVSZWYgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4oKSBjb25zdAoreworICAgIEJFR0lOX0FYX09C
SkNfRVhDRVBUSU9OUworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oYXR0cmlidXRlVmFsdWUobV9lbGVtZW50LmdldCgpLCBO
U0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZSkpKTsKKyAgICBFTkRfQVhfT0JKQ19FWENF
UFRJT05TCisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgZWxlbWVudFZlY3RvciA9IG1ha2VWZWN0b3I8UmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShtX2VsZW1lbnQuZ2V0
KCksIE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlKSk7CkBAIC0xNjc0LDYgKzE2ODMs
MTUgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVt
YmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnMKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAor
SlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbWFnZU92ZXJsYXlFbGVtZW50cygp
IGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgcmV0dXJuIG1ha2VK
U0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1
dGVWYWx1ZShtX2VsZW1lbnQuZ2V0KCksIEAiQVhJbWFnZU92ZXJsYXlFbGVtZW50cyIpKSk7Cisg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIGJv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICBCT09M
IHJlc3VsdCA9IE5POwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUwNjJiODg0M2Q3MDU5M2JiZWZlNTQ1ZWZkMzgxZjkyYmVl
NWNhYTYuLjRmZTIzOWU3MWQ3ODc5YjYyOWY0MWFjNmYwOWVhYzhjZWJiYTM3MjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMS0wNi0xOCAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eSBzdXBwb3J0IGZvciBpbWFnZSB0ZXh0
IHJlY29nbml0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI0MjgwCisgICAgICAgIHJkYXI6Ly83NjM0ODc0MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIEZsZWl6YWNoLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pbWFnZS1saW5r
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1h
Z2Utb3ZlcmxheS1lbGVtZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nOiBB
ZGRlZC4KKwogMjAyMS0wNi0xOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0
Lmh0dHBzLmh0bWwgaXMgZmFpbGluZyBzaW5jZSByMjczNjQ1CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdlLWxpbmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9pbWFnZS1saW5rLWV4cGVjdGVkLnR4dAppbmRleCBiNzMxODZkMzMyZDIw
ZDYyMGVkMzJhZmE2ODJiN2UwY2JkMWU0MDA5Li4xMWE5ZjU2ZTViNTNjYWYxMTM0NWJlOTNlMGJj
NzQ5NDE0ODhiOTdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdl
LWxpbmstZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2Ut
bGluay1leHBlY3RlZC50eHQKQEAgLTY0LDYgKzY0LDcgQEAgQVhET01DbGFzc0xpc3Q6IDxhcnJh
eSBvZiBzaXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhJbWFnZT4KIEFYRWRpdGFibGVB
bmNlc3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKK0FYSW1h
Z2VPdmVybGF5RWxlbWVudHM6IChudWxsKQogQVhFbWJlZGRlZEltYWdlRGVzY3JpcHRpb246CiBB
WFVSTDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yZXNvdXJjZXMvY2FrZS5wbmcKIEFYRWxl
bWVudEJ1c3k6IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNp
bXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41Y2FlNjE2ZDY2NWM1NjEyYmRjZjJiZTdmM2E0NTljNDIwYTBi
Y2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2lt
dWxhdG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBA
QAorUEFTUyBheEltYWdlT3ZlcmxheUVsZW1lbnRzLmxlbmd0aCBpcyAyCitoZWxsbword29ybGQK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1hZ2Utb3Zl
cmxheS1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxh
dG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTc5ZThjMTc3OTg2
NWViNzBmZWU0ZjFiMjU5ZGUyYTdmNzY1Y2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMuaHRt
bApAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAg
bGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGltZyBpZD0iaW1hZ2Ux
IiBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+CisKKzxzY3JpcHQ+
CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgYWRkRXZlbnRMaXN0ZW5l
cigibG9hZCIsICgpID0+IHsKKyAgICAgICAgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJpbWciKTsKKyAgICAgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MCksCisgICAgICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDEsIDApLAorICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAg
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAg
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAg
ICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisg
ICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgdGV4dCA6ICJ3b3JsZCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MSksCisgICAgICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMSksCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgfQorICAgICAgICBdKTsKKworICAgICAgICBydW5UZXN0KCk7CisgICAgfSk7
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHsK
KyAgICAgICAgICAgICAgICB2YXIgYXhJbWFnZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZCgiaW1hZ2UxIik7CisgICAgICAgICAgICAgICAgYXdhaXQgd2Fp
dEZvcigoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGF4SW1hZ2VPdmVybGF5RWxlbWVudHMg
PSBheEltYWdlLmltYWdlT3ZlcmxheUVsZW1lbnRzOworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYXhJbWFnZU92ZXJsYXlFbGVtZW50cy5sZW5ndGggPT0gMjsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgiYXhJbWFnZU92ZXJsYXlFbGVtZW50cy5sZW5n
dGgiLCAiMiIpOworCisgICAgICAgICAgICAgICAgZm9yIChsZXQgYXhFbGVtZW50IG9mIGF4SW1h
Z2VPdmVybGF5RWxlbWVudHMpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHRleHRNYXJrZXJS
YW5nZSA9IGF4RWxlbWVudC50ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KGF4RWxlbWVudCk7Cisg
ICAgICAgICAgICAgICAgICAgIGRlYnVnKGF4RWxlbWVudC5zdHJpbmdGb3JUZXh0TWFya2VyUmFu
Z2UodGV4dE1hcmtlclJhbmdlKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgfQorICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjg0OTgy
NDM3MWI4NzE5OGY0N2VjZDAzZWZjZGQwMTI1NTdhZWVhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCAxMTM0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VjRNS0w5ODVxRns8e2xqMTFaaHxrSH0m
TTI1dzt4V0BNTihNKj05dwp6VWdHS04lS25nQFBndW4mWXh8cC1LcTEtOGtjYmxKe01fOHN5Yj5V
bmZ4KT5iSEwpWiRNV0g7aUJ0eWE3KD5FWVIKekZPezh2ZiUlRTJpKF5RfHQrIVZVY15NY3VTVD9k
aF4+QWxwX1NBbVp3JVVnd0VgeVdkRnE0N0tmZWoyaSsmfWB2CnoxYD1SNDQ+eT1pajNtKHRAbWV1
ejNpaEJNTSZaS2ElPisocjZuY3ImXm9jIyQ0SHJgJFR3PERraWd8KDk/NzFJNwpPMSVhb2xwVVhP
QGdlQ3d6OTVKQikKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432045</attachid>
            <date>2021-06-23 08:28:30 -0700</date>
            <delta_ts>2021-06-23 09:59:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224280-20210623112829.patch</filename>
            <type>text/plain</type>
            <size>39931</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMxZDg3ZmM2YzU3NzAx
YjU0MzcxZGQ0MDQzMzVmOGUzNTJmZWE5NS4uYzBkYjIyNmNkN2MwYmY5YWFiOWM0NTU4ZmNkOWYw
NDU4NTFhYjkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIxLTA2LTE4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBY2Nlc3NpYmls
aXR5IHN1cHBvcnQgZm9yIGltYWdlIHRleHQgcmVjb2duaXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODAKKyAgICAgICAgcmRhcjovLzc2
MzQ4NzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAg
VGVzdDogYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMu
aHRtbAorCisgICAgICAgIEV4cG9zZXMgdG8gYWNjZXNzaWJpbGl0eSBjbGllbnRzIHRoZSBlbGVt
ZW50cyBjcmVhdGVkIGJ5CisgICAgICAgIFdlYlBhZ2U6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24g
Zm9yIHN0YXRpYyBpbWFnZXMuIFRoaXMgYWxsb3dzIGNsaWVudHMKKyAgICAgICAgdG8gcHJlc2Vu
dCB0aGUgcmVjb2duaXplZCB0ZXh0IGluIGltYWdlcyB0byBhc3Npc3RpdmUgdGVjaG5vbG9neSB1
c2Vycy4KKyAgICAgICAgLSBBZGRlZCBhIG5ldyBBWE9iamVjdCBzdWJjbGFzcywgQVhJbWFnZSwg
dG8gZW5jYXBzdWxhdGUgdGhpcyBmdW5jdGlvbmFsaXR5LgorICAgICAgICBUaGlzIGNsYXNzIGNh
biBiZSBleHBhbmRlZCB0byBvZmZsb2FkIHNvbWUgb2YgdGhlIGltYWdlIHNwZWNpZmljIGNvZGUK
KyAgICAgICAgY29udGFpbmVkIGluIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QsIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LAorICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0IGFuZCBvdGhlcnMu
CisgICAgICAgIC0gU2luY2UgcmVxdWVzdFRleHRSZWNvZ25pdGlvbiBpcyBhbiBhc3luYyBjYWxs
LCBhZGRlZCBhbiBBWE5vdGlmaWNhdGlvbgorICAgICAgICB0byBub3RpZnkgY2xpZW50cyB3aGVu
IHRoZSBpbWFnZSBvdmVybGF5IGVsZW1lbnRzIGFyZSBhdmFpbGFibGUgZm9yCisgICAgICAgIGNv
bnN1bXB0aW9uLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFn
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6QVhJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBWEltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFn
ZTo6cm9sZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2U6OmltYWdlT3Zl
cmxheUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaDogQWRkZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aXNTaW1wbGVJbWFnZSk6IERldGVybWluZXMgd2hldGhlciBh
IGdpdmVuIGVsZW1lbnQgaXMgYSBzdGF0aWMKKyAgICAgICAgaW1hZ2UuCisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIpOiBJbnN0YW50aWF0ZSBhbiBBWEltYWdlIG9iamVjdCB3
aGVuCisgICAgICAgIGFwcHJvcHJpYXRlLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhh
dmVDaGlsZHJlbiBjb25zdCk6IEltYWdlcyBjYW4KKyAgICAgICAgaGF2ZSBjaGlsZHJlbi4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUGxhdGZvcm1OYW1lKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbToKKyAgICAg
ICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUVsZW1lbnRz
XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxp
dHlJbWFnZU92ZXJsYXlFbGVtZW50c10pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6aXNBWEltYWdlSW5zdGFuY2UgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElP
TlNfRU5EXSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vz
c2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKwogMjAyMS0wNi0xOCAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1N
ZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0dHBzLmh0bWwgaXMgZmFpbGluZyBzaW5jZSByMjczNjQ1
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IGIxYmQ1Y2FlY2JhZTA3NzdmNDIyNDY1ODJlOTdiODIzZTNjZGY5
ZGQuLjJhNWIxNzA0MmU0ODgzZGU2NzE2NzA5ZTBiOTE1NWIwMWNlNDQxMzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC00NDIsNiArNDQyLDcgQEAgTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQu
Y3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNw
cCBAbm8tdW5pZnkKIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8t
dW5pZnkKIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwIEBuby11bmlmeQorYWNjZXNz
aWJpbGl0eS9BWEltYWdlLmNwcAogYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDdiYWJkNTM4NzAxYTc3YTg5MGY3NjFkMjRkODkwM2I4NWUwYTcxM2YuLmY2
MDg5YjI2YWIzNmMyN2RmNTU4NTE5N2U0MGJkZTE2ZDg2YTllYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NjYxLDYgKzE0
NjYxLDggQEAKIAkJQkVBODA3QzcwRjcxNEEwMzAwNTI0MTk5IC8qIFNlbGVjdGlvbkdlb21ldHJ5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlbGVjdGlvbkdlb21ldHJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFRjI5RUU5MTcxNUREMDkwMEM0QjRDOSAv
KiBBdWRpb1RyYWNrUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
dWRpb1RyYWNrUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRUYyOUVF
QTE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFYSW1hZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVhJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMDQwMEM3
RTI2MUNCM0RCMDBBRjQ0RkEgLyogQVhJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBWElt
YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzA0NkUxQUIxMjA4QTlGRTAw
QkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTG9jYWxpemVkU3RyaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMwNDkzRUI3MjQ0Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBWExvZ2dlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMDc4Mzc2MDIzREYyNTNFMDBDOUM1QzggLyogQVhJc29sYXRlZE9iamVjdE1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFYSXNvbGF0ZWRPYmplY3RNYWMubW07IHBhdGggPSBt
YWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5NDYyLDYgKzE5NDY0LDggQEAKIAkJCQlBOTFDOUZDMDFCNjU5QTY3MDBBRkZENTQgLyogQWNj
ZXNzaWJpbGl0eVRyZWVJdGVtLmNwcCAqLywKIAkJCQlBOTFDOUZDMTFCNjU5QTY3MDBBRkZENTQg
LyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmggKi8sCiAJCQkJQTlFRTQ0OEMyMTBGQzlBRDAwQjZF
QUU2IC8qIEFyaWFBdHRyaWJ1dGVzLmlkbCAqLywKKwkJCQlDMDQwMEM3RTI2MUNCM0RCMDBBRjQ0
RkEgLyogQVhJbWFnZS5jcHAgKi8sCisJCQkJQzA0MDBDN0MyNjFDQjNEQjAwQUY0NEZBIC8qIEFY
SW1hZ2UuaCAqLywKIAkJCQlDMDhGMTNBMTI0NDc2NkRDMDBBQjk4OUYgLyogQVhMb2dnZXIuY3Bw
ICovLAogCQkJCUMwNDkzRUI3MjQ0Njk5RTQwMDlBQUM4MCAvKiBBWExvZ2dlci5oICovLAogCQkJ
CTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3MWQ5MThhOTI0
YzcxZDU2NDNlNTk5OGExZmQ5YTIwNjQ5MjYwZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFYSW1hZ2UuaCIKKworI2luY2x1ZGUgIkFYTG9nZ2VyLmgiCisjaW5j
bHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworQVhJbWFnZTo6QVhJbWFnZShSZW5kZXJJbWFnZSogcmVuZGVyZXIpCisgICAg
OiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVyKQoreworfQorCitSZWY8QVhJbWFn
ZT4gQVhJbWFnZTo6Y3JlYXRlKFJlbmRlckltYWdlKiByZW5kZXJlcikKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBWEltYWdlKHJlbmRlcmVyKSk7Cit9CisKK0FjY2Vzc2liaWxpdHlSb2xl
IEFYSW1hZ2U6OnJvbGVWYWx1ZSgpIGNvbnN0Cit7CisgICAgYXV0byBhcmlhUm9sZSA9IGFyaWFS
b2xlQXR0cmlidXRlKCk7CisgICAgaWYgKGFyaWFSb2xlICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpV
bmtub3duKQorICAgICAgICByZXR1cm4gYXJpYVJvbGU7CisKKyAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eVJvbGU6OkltYWdlOworfQorCitzdGQ6Om9wdGlvbmFsPEFYQ29yZU9iamVjdDo6QWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cygpCit7
CisgICAgQVhUUkFDRSgiQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMiKTsKKworICAgIGF1
dG8mIGNoaWxkcmVuID0gdGhpcy0+Y2hpbGRyZW4oKTsKKyAgICBpZiAoY2hpbGRyZW4uc2l6ZSgp
KQorICAgICAgICByZXR1cm4gY2hpbGRyZW47CisKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
CisgICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1
ZXN0VGV4dFJlY29nbml0aW9uKCplbGVtZW50KCksIFtdIChSZWZQdHI8RWxlbWVudD4mJiBpbWFn
ZU92ZXJsYXlIb3N0KSB7CisgICAgICAgIGlmICghaW1hZ2VPdmVybGF5SG9zdCkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBpZiAoYXV0byogYXhPYmplY3RDYWNoZSA9IGltYWdlT3Zl
cmxheUhvc3QtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAg
ICBheE9iamVjdENhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKGltYWdlT3ZlcmxheUhvc3QuZ2V0KCks
IEFYT2JqZWN0Q2FjaGU6OkFYSW1hZ2VPdmVybGF5Q2hhbmdlZCk7CisgICAgfSk7CisjZW5kaWYK
KworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIwMzRkMGY5
NTRhNzQ3NTdiYzI4MjViZmJiOTY4NGUzZWE5OTg2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVy
SW1hZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBWEltYWdlIDogcHVibGlj
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QVhJ
bWFnZT4gY3JlYXRlKFJlbmRlckltYWdlKik7CisgICAgdmlydHVhbCB+QVhJbWFnZSgpID0gZGVm
YXVsdDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBWEltYWdlKFJlbmRlckltYWdlKik7Cisg
ICAgYm9vbCBpc0FYSW1hZ2VJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KKworICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBpbWFnZU92ZXJs
YXlFbGVtZW50cygpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZSAKKwor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BQ0NFU1NJQklMSVRZKEFYSW1hZ2UsIGlzQVhJbWFnZUlu
c3RhbmNlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9n
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4
IDQxMzliNDNmNmVjMGYxYTBkYmUyNDY3NTZiYTVhMjUyMjhjMDBhYWYuLjQyZWVmN2YxOTIxOWIz
ZmU2MDYyYTFjZGI3NzM0ZjljM2Q0MWZhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhMb2dnZXIuY3BwCkBAIC0zNzIsNiArMzcyLDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiBzdHJlYW0sIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uIG5vdGlm
aWMKICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWElkQXR0cmlidXRl
Q2hhbmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWElkQXR0cmlidXRlQ2hhbmdlZCI7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYSW1h
Z2VPdmVybGF5Q2hhbmdlZDoKKyAgICAgICAgc3RyZWFtIDw8ICJBWEltYWdlT3ZlcmxheUNoYW5n
ZWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0
aW9uOjpBWExhbmd1YWdlQ2hhbmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWExhbmd1YWdlQ2hh
bmdlZCI7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAKaW5kZXggMDVmODZlNDdiMmM1OTEzMDU0NjQ5MDY2Zjk3NTM2YTEx
MzA3ODM0OC4uYjZjMmI3NDUzODVlYmFhYjRjMzUwMWExNDExNjRmNGIxOTRmZDA3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC01MTEs
NiArNTExLDI4IEBAIGJvb2wgbm9kZUhhc1JvbGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBy
b2xlKQogICAgIHJldHVybiBTcGFjZVNwbGl0U3RyaW5nKHJvbGVWYWx1ZSwgdHJ1ZSkuY29udGFp
bnMocm9sZSk7CiB9CiAKK3N0YXRpYyBib29sIGlzU2ltcGxlSW1hZ2UoY29uc3QgUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlcikKK3sKKyAgICBpZiAoIWlzPFJlbmRlckltYWdlPihyZW5kZXJlcikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEV4Y2x1ZGUgSW1hZ2VCdXR0b25zIGJlY2F1
c2UgdGhleSBhcmUgdHJlYXRlZCBhcyBidXR0b25zLCBub3QgYXMgaW1hZ2VzLgorICAgIGF1dG8q
IG5vZGUgPSByZW5kZXJlci5ub2RlKCk7CisgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5v
ZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJbWFnZU1hcHMgYXJlIG5vdCBz
aW1wbGUgaW1hZ2VzLgorICAgIGlmIChkb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpLmlt
YWdlTWFwKCkKKyAgICAgICAgfHwgKGlzPEhUTUxJbWFnZUVsZW1lbnQ+KG5vZGUpICYmIGRvd25j
YXN0PEhUTUxJbWFnZUVsZW1lbnQ+KG5vZGUpLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKHVzZW1hcEF0dHIpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gRXhj
bHVkZSB2aWRlbyBhbmQgYXVkaW8gZWxlbWVudHMuCisgICAgaWYgKGlzPEhUTUxNZWRpYUVsZW1l
bnQ+KG5vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwogc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tUmVuZGVyZXIoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKICAgICAvLyBGSVhNRTogSG93IGNvdWxkIHJlbmRlcmVy
LT5ub2RlKCkgZXZlciBub3QgYmUgYW4gRWxlbWVudD8KQEAgLTU1MCw2ICs1NzIsOSBAQCBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyKQogICAgIGlmIChpczxTVkdFbGVtZW50Pihub2RlKSkKICAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50OjpjcmVhdGUocmVuZGVyZXIpOwogCisgICAgaWYg
KGlzU2ltcGxlSW1hZ2UoKnJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIEFYSW1hZ2U6OmNyZWF0
ZShkb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKTsKKwogI2lmIEVOQUJMRShNQVRITUwp
CiAgICAgLy8gVGhlIG1mZW5jZWQgZWxlbWVudCBjcmVhdGVzIGFub255bW91cyBSZW5kZXJNYXRo
TUxPcGVyYXRvcnMgd2hpY2ggc2hvdWxkIGJlIHRyZWF0ZWQKICAgICAvLyBhcyBNYXRoTUwgZWxl
bWVudHMgYW5kIGFzc2lnbmVkIHRoZSBNYXRoRWxlbWVudFJvbGUgc28gdGhhdCBwbGF0Zm9ybSBs
b2dpYyByZWdhcmRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKaW5kZXggNTY0NzE2Y2UzNGJkZGM3NmM2NDRmZWYzMWE4MWEwZjBlM2E0M2UzZC4uZjhk
MDA1OTUxNTgyOTFmMDgxZWY0YjA0MjcxZTQ1OTg3OGE5MDYzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTI4NCw2ICsyODQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIEFYRm9jdXNlZFVJRWxlbWVudENoYW5nZWQsCiAgICAgICAgIEFYRnJhbWVM
b2FkQ29tcGxldGUsCiAgICAgICAgIEFYSWRBdHRyaWJ1dGVDaGFuZ2VkLAorICAgICAgICBBWElt
YWdlT3ZlcmxheUNoYW5nZWQsCiAgICAgICAgIEFYTGFuZ3VhZ2VDaGFuZ2VkLAogICAgICAgICBB
WExheW91dENvbXBsZXRlLAogICAgICAgICBBWExvYWRDb21wbGV0ZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAK
aW5kZXggNzkwMjY2MDkxNjIwN2E4ZWEzNTM0MTc5NGNkYjRlNjIwMTU0Njc4NS4uMjcwYmJkOWQ4
Y2E4ZTQ1ZjQ3OGM0MmFjM2ZhMGY4Y2U1YmQ4MjUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTM3
OCw3ICszNzgsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRy
ZW4oKSBjb25zdAogICAgIAogICAgIC8vIEVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBoYXZlIGNo
aWxkcmVuCiAgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgewotICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkltYWdlOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQb3BVcEJ1dHRvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpDaGVja0JveDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggOGU1MmMwNTBjY2JjOTEyMzBhYWI0NzM5NGQ5ZDVh
YWI5NmU2NGQ0ZS4uYjhhMWZkN2Q1NDM0NTU4ZjllN2MyMjEyMzYzMTNkMTZhY2ZhMzQ1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKQEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlz
QWNjZXNzaWJpbGl0eVNjcm9sbGJhcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNBWEltYWdlSW5zdGFuY2UoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZH
Um9vdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vz
c2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBib29sIGlzQWNjZXNzaWJpbGl0eVRhYmxlSW5zdGFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQpAQCAtMzk5LDYgKzQwMCw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgYnJh
aWxsZUxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZ2V0QXR0cmlidXRlKEhUTUxOYW1l
czo6YXJpYV9icmFpbGxlbGFiZWxBdHRyKTsgfQogICAgIFN0cmluZyBicmFpbGxlUm9sZURlc2Ny
aXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6
YXJpYV9icmFpbGxlcm9sZWRlc2NyaXB0aW9uQXR0cik7IH0KICAgICBTdHJpbmcgZW1iZWRkZWRJ
bWFnZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3I+IGltYWdlT3ZlcmxheUVsZW1lbnRzKCkgb3ZlcnJpZGUg
eyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CiAKICAgICAvLyBBYmJyZXZpYXRpb25zCiAgICAgU3Ry
aW5nIGV4cGFuZGVkVGV4dFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU3RyaW5nKCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggYmNjODZlMzZjOTJjM2Y1NDMzYmEwMDhiNGQy
NGYwNjI1NWU0ZmRjZS4uODk3YWQwYjI4OWNkMWM5YWM2M2ZjNjVmYzNhOWRiZDAwZmVkMjc1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTc5MSw2ICs3OTEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUluc3RhbmNlKCkgY29uc3QgPSAwOwpAQCAt
MTAxNCw2ICsxMDE1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGJyYWlsbGVMYWJl
bCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBicmFpbGxlUm9sZURlc2NyaXB0aW9u
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlv
bigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yPiBpbWFnZU92ZXJsYXlFbGVtZW50cygpID0gMDsKIAogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0FSSUFPd25zKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0Fj
dGl2ZURlc2NlbmRhbnRPZkZvY3VzZWRDb250YWluZXIoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRl
eCA0ZjU0MDFmNWI3ODg1Nzc1ZDg3YmM5ZjU1YTU1NmMwZWM3MmM1YzNiLi40ODJmNmM5MDFiNzQ1
Nzg2N2I4OWU1MjBiZWQ1YmJmYjZlMjJmOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTUxLDYgKzUxLDkgQEAg
U3RyaW5nIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFtZShBWE5vdGlmaWNh
dGlvbiBub3RpZmljYXRpb24pCiAgICAgY2FzZSBBWEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkOgog
ICAgICAgICBuYW1lID0gIkFYRm9jdXNDaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWEltYWdlT3ZlcmxheUNoYW5nZWQ6CisgICAgICAgIG5hbWUgPSAiQVhJbWFnZU92ZXJsYXlD
aGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBWFBhZ2VTY3JvbGxlZDoKICAgICAg
ICAgbmFtZSA9ICJBWFBhZ2VTY3JvbGxlZCI7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQppbmRleCAzZDA1ZjljNTEwZjQzOGQzZjhhYWZkZThi
NWQ1MGU2MTc1ZmE2NGFhLi4yZjVmNjAwZWYwYjdlMjBiMjZmNzJkNzcwN2QwNGNjNTBkODMyZWM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQpAQCAtNzIsNiArNzIs
NyBAQCBlbnVtIHsKIC0gKE5TSW50ZWdlcilhY2Nlc3NpYmlsaXR5RWxlbWVudENvdW50OwogLSAo
aWQpYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4OihOU0ludGVnZXIpaW5kZXg7CiAtIChOU0lu
dGVnZXIpaW5kZXhPZkFjY2Vzc2liaWxpdHlFbGVtZW50OihpZCllbGVtZW50OworLSAoTlNBcnJh
eSAqKWFjY2Vzc2liaWxpdHlFbGVtZW50czsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciAoQWNjZXNzaWJpbGl0eVByaXZhdGUpCkBAIC00MjksNiArNDMw
LDI5IEBAIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciogQWNjZXNzaWJpbGl0eVVu
aWdub3JlZEFuY2VzdG9yKEFjY2Vzc2liaWxpdHlPCiAgICAgICAgIGNhY2hlLT5zdG9wQ2FjaGlu
Z0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogfQogCistIChOU0FycmF5ICopYWNjZXNzaWJp
bGl0eUVsZW1lbnRzCit7CisgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxs
XSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGlmIChbc2VsZiBpc0F0dGFjaG1lbnRdKSB7
CisgICAgICAgIGlmIChpZCBhdHRhY2htZW50VmlldyA9IFtzZWxmIGF0dGFjaG1lbnRWaWV3XSkK
KyAgICAgICAgICAgIHJldHVybiBbYXR0YWNobWVudFZpZXcgYWNjZXNzaWJpbGl0eUVsZW1lbnRz
XTsKKyAgICB9CisKKyAgICBhdXRvIGFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0XSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IHNlbGYuYXhCYWNraW5n
T2JqZWN0LT5jaGlsZHJlbigpKSB7CisgICAgICAgIGF1dG8qIHdyYXBwZXIgPSBjaGlsZC0+d3Jh
cHBlcigpOworICAgICAgICBpZiAoY2hpbGQtPmlzQXR0YWNobWVudCgpKSB7CisgICAgICAgICAg
ICBpZiAoaWQgYXR0YWNobWVudFZpZXcgPSBbd3JhcHBlciBhdHRhY2htZW50Vmlld10pCisgICAg
ICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDphdHRhY2htZW50Vmlld107CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDp3cmFwcGVyXTsKKyAgICB9CisKKyAg
ICByZXR1cm4gYXJyYXkuYXV0b3JlbGVhc2UoKTsKK30KKwogLSAoTlNJbnRlZ2VyKWFjY2Vzc2li
aWxpdHlFbGVtZW50Q291bnQKIHsKICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0
eUNhbGxdKQpAQCAtMTg1NCw2ICsxODc4LDE1IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFN0cmluZ1Rv
UmVzdWx0KE5TTXV0YWJsZVN0cmluZyAqcmVzdWx0LCBOU1N0cmluZyAqc3RyaW5nKQogICAgIHJl
dHVybiBzZWxmLmF4QmFja2luZ09iamVjdC0+ZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKCk7CiB9
CiAKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVudHMKK3sKKyAg
ICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQorICAgICAgICByZXR1cm4g
bmlsOworCisgICAgYXV0byBpbWFnZU92ZXJsYXlFbGVtZW50cyA9IHNlbGYuYXhCYWNraW5nT2Jq
ZWN0LT5pbWFnZU92ZXJsYXlFbGVtZW50cygpOworICAgIHJldHVybiBpbWFnZU92ZXJsYXlFbGVt
ZW50cyA/IGFjY2Vzc2libGVFbGVtZW50c0Zvck9iamVjdHMoKmltYWdlT3ZlcmxheUVsZW1lbnRz
KSA6IG5pbDsKK30KKwogLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5TGlua1JlbGF0aW9uc2hp
cFR5cGUKIHsKICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCAxOTk5ODRjYWJiNmI0Yzk1ZDIxNDVhYzU4OWZj
ZjNjMjgwMWUyNmU3Li5iNzBhZGJhNjQ4ZWRiNzIzZTQzZjE2MDcyZWZlNGE3MWQ3ODU3OWMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMTI1OCw2ICsxMjU4LDEyIEBAIGJvb2wg
QVhJc29sYXRlZE9iamVjdDo6aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlld0luc3RhbmNlKCkgY29u
c3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQVhJc29sYXRlZE9iamVjdDo6aXNBWElt
YWdlSW5zdGFuY2UoKSBjb25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojppc0FjY2Vzc2liaWxpdHlT
VkdSb290KCkgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaAppbmRleCBjZjY3ZDI3NzhlYzJiNjk4ZmU2YzYxZjdiNzZhN2U5MDAwZjQyZjFj
Li43MjU1ZjJjNGRiZjJjYWRjNTZjMjE1OWY0NWRmM2VlZmM1NDY3Y2Y0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5oCkBAIC0yNzIsNiArMjcyLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgYnJh
aWxsZUxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUo
QVhQcm9wZXJ0eU5hbWU6OkJyYWlsbGVMYWJlbCk7IH0KICAgICBTdHJpbmcgYnJhaWxsZVJvbGVE
ZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVl
KEFYUHJvcGVydHlOYW1lOjpCcmFpbGxlUm9sZURlc2NyaXB0aW9uKTsgfQogICAgIFN0cmluZyBl
bWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJpbmdB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKTsg
fQorICAgIHN0ZDo6b3B0aW9uYWw8QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBpbWFnZU92
ZXJsYXlFbGVtZW50cygpIG92ZXJyaWRlIHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogCiAgICAg
U3RyaW5nIGNvbXB1dGVkUm9sZVN0cmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmlu
Z0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpDb21wdXRlZFJvbGVTdHJpbmcpOyB9CiAg
ICAgYm9vbCBpc1ZhbHVlQXV0b2ZpbGxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNWYWx1ZUF1dG9maWxsZWQpOyB9CkBAIC00
NjUsNiArNDY2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFy
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5z
dGFuY2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGlzQVhJbWFnZUluc3RhbmNlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUluc3RhbmNlKCkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVj
dENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RD
YWNoZU1hYy5tbQppbmRleCAxMzBiY2JhNTE3MzRhODA0YjhhMTM1YzdiNzkwMmQ3M2VlZjUxZWRi
Li45MjVkZGU5YTc1MDlhNzE3NmFmODQ5NjY1NmVmNDE1YTgyMWQwYzhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAg
LTMxOSw2ICszMTksOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBWENvcmVPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbgogICAgIGNhc2UgQVhGb2N1
c2VkVUlFbGVtZW50Q2hhbmdlZDoKICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNBY2Nlc3Np
YmlsaXR5Rm9jdXNlZFVJRWxlbWVudENoYW5nZWROb3RpZmljYXRpb247CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhJbWFnZU92ZXJsYXlDaGFuZ2VkOgorICAgICAgICBtYWNOb3RpZmljYXRp
b24gPSBAIkFYSW1hZ2VPdmVybGF5Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QVhMYXlvdXRDb21wbGV0ZToKICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gQCJBWExheW91dENv
bXBsZXRlIjsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCmluZGV4IDRhNzliM2IzZmIzNzliMWM2YjcwYTc1N2NmZGMwZjVjZGI3MjY2ZDkuLjNm
ODU1NzM0NmM4ZjkyMDFiZjA1MWFjODk2MzIxMDIzOWExMjhiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC01NDMsNiArNTQzLDEwIEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3Jp
cHRpb25BdHRyaWJ1dGUgQCJBWEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiIKICNlbmRpZgogCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzQXR0cmlidXRlCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eUltYWdlT3ZlcmxheUVsZW1lbnRzQXR0cmlidXRlIEAiQVhJbWFn
ZU92ZXJsYXlFbGVtZW50cyIKKyNlbmRpZgorCiBleHRlcm4gIkMiIEFYVUlFbGVtZW50UmVmIE5T
QWNjZXNzaWJpbGl0eUNyZWF0ZUFYVUlFbGVtZW50UmVmKGlkIGVsZW1lbnQpOwogCiBAaW1wbGVt
ZW50YXRpb24gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIKQEAgLTE1NjAsOCArMTU2NCw5
IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFy
cmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlWZXJ0aWNhbFNjcm9sbEJhckF0dHJpYnV0ZV07
CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpKTsKLSAgICBzdGF0aWMgYXV0byBp
bWFnZUF0dHJzID0gIG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisgICAgc3RhdGljIGF1dG8gaW1h
Z2VBdHRycyA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CiAgICAgICAgIGF1dG8gdGVtcEFycmF5
ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0dHJpYnV0
ZXMuZ2V0KCkuZ2V0KCldKTsKKyAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3Np
YmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVudHNBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3JpcHRpb25BdHRyaWJ1
dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlVUkxBdHRy
aWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwpAQCAtMjM2Niw2ICsyMzcxLDEyIEBA
IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICByZXR1cm4gW3Nl
bGYgcG9zaXRpb25dOwogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNB
Y2Nlc3NpYmlsaXR5UGF0aEF0dHJpYnV0ZV0pCiAgICAgICAgIHJldHVybiBbc2VsZiBwYXRoXTsK
KworICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5
SW1hZ2VPdmVybGF5RWxlbWVudHNBdHRyaWJ1dGVdKSB7CisgICAgICAgIGF1dG8gaW1hZ2VPdmVy
bGF5RWxlbWVudHMgPSBiYWNraW5nT2JqZWN0LT5pbWFnZU92ZXJsYXlFbGVtZW50cygpOworICAg
ICAgICByZXR1cm4gaW1hZ2VPdmVybGF5RWxlbWVudHMgPyBjb252ZXJ0VG9OU0FycmF5KCppbWFn
ZU92ZXJsYXlFbGVtZW50cykgOiBuaWw7CisgICAgfQorCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1l
IGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlFbWJlZGRlZEltYWdlRGVzY3JpcHRpb25B
dHRyaWJ1dGVdKQogICAgICAgICByZXR1cm4gYmFja2luZ09iamVjdC0+ZW1iZWRkZWRJbWFnZURl
c2NyaXB0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA0ZWE3ZWI2ZWI4ZjU4MTdmODE4NTkzYTJiOGZlYzIyMWY1NmZjYjcwLi44NjEw
MjE2MjFlNGQ4OWU3NzYxYjdmMzI4NzJjNDYzZjI3YTRjYmE0IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDYt
MTggIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgorCisgICAgICAgIEFj
Y2Vzc2liaWxpdHkgc3VwcG9ydCBmb3IgaW1hZ2UgdGV4dCByZWNvZ25pdGlvbi4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDI4MAorICAgICAgICBy
ZGFyOi8vNzYzNDg3NDAKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxk
cmVuIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRJT1MubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVu
IGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVy
bGF5RWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMgY29uc3QpOgorCiAyMDIx
LTA2LTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBEZWZpbmUg
TWFjcm9Bc3NlbWJsZXJBUk02NEU6Om51bWJlck9mUEFDQml0cyBiYXNlZCBvbiBPU19DT05TVEFO
VChFRkZFQ1RJVkVfQUREUkVTU19XSURUSCkuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cAppbmRleCA5N2ExYzJiOTVjZmQ1ZmUyYjJmZWM3ODcwYTYyMThkNmU0YzJkYjQ3Li5kYWJiZjQ1
OWVlMmYzOTIxZGViMzhiNTY3YWUxYzM4NDA1ZDExZTk5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHAKQEAgLTEyNyw4ICsxMjcsMTAgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0U2VudGVuY2VFbmRUZXh0TWFya2UK
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cHJldmlvdXNTZW50ZW5jZVN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXIqKSB7IHJldHVybiBudWxscHRyOyB9CiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWlzc3BlbGxpbmdUZXh0TWFy
a2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSosIGJvb2wpIHsgcmV0dXJuIG51
bGxwdHI7IH0KIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpIHsgfQorSlNW
YWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJu
IHsgfTsgfQogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXRhaWxzRWxlbWVu
dHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6ZXJyb3JNZXNzYWdlRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KK0pTVmFs
dWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25z
dCB7IHJldHVybiB7IH07IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCBhZDYzMTNi
MDUzMzllMTVmZmE1NzVkNzFmOTI0NzhmZGYyODNmZjIwLi5lYzExMTU2ZGNiYWQ5ODRhNjUyNmM1
YmIxZDZhZjdlZDk5YzA2Y2MzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtODMs
NiArODMsNyBAQCBwdWJsaWM6CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGRvbUlkZW50
aWZpZXIoKSBjb25zdDsKIAogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBlbGVt
ZW50QXRQb2ludChpbnQgeCwgaW50IHkpOworICAgIEpTVmFsdWVSZWYgY2hpbGRyZW4oKSBjb25z
dDsKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gY2hpbGRBdEluZGV4KHVuc2ln
bmVkKTsKICAgICB1bnNpZ25lZCBpbmRleE9mQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCop
OwogICAgIGludCBjaGlsZHJlbkNvdW50KCk7CkBAIC0xOTYsNyArMTk3LDggQEAgcHVibGljOgog
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiB1cmwoKTsKICAgICBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gY2xhc3NMaXN0KCkgY29uc3Q7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IGVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnN0OwotICAgIAorICAgIEpTVmFsdWVSZWYg
aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25zdDsKKwogICAgIC8vIENTUzMtc3BlZWNoIHByb3Bl
cnRpZXMuCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNwZWFrQXMoKTsKICAgICAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IDI2MjY1
YTVjODUwZjI0MWM5Y2EwOTVhYmUxZDgyYTJlZTZlZGNhOWIuLjc5Mjc5YmUyYzg4ZjU4ZWQ2Mzhk
Y2UwYTI3MWE4ZDJlMTY2YTYyY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmlkbApAQCAtMTEwLDYgKzExMCw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBhcmlhRHJvcEVmZmVjdHM7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBjbGFzc0xpc3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBlbWJl
ZGRlZEltYWdlRGVzY3JpcHRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9iamVjdCBpbWFn
ZU92ZXJsYXlFbGVtZW50czsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHg7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeTsKQEAgLTExOCw2ICsxMTksNyBAQAogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIGNsaWNrUG9pbnRYOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nIGNsaWNrUG9pbnRZOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIG9iamVjdCBjaGlsZHJl
bjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBjaGlsZHJlbkNvdW50OwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIHNlbGVjdGVkQ2hpbGRyZW5Db3VudDsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyByb3dDb3VudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50SU9TLm1tCmluZGV4IDY5MDAyOGRiNjBhYTVmMGZiNTUxOWQyNTIwMTYxNjE3N2E2Yzk1MTUu
LjA1Yjc3OGQ0ZGE2NTFmZjljYTFjMTZhOGVmNjU3OGU5NWI1MGI2MzYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpAQCAtMTAyLDYgKzEwMiw3IEBAIHR5cGVk
ZWYgdm9pZCAoKkFYUG9zdGVkTm90aWZpY2F0aW9uQ2FsbGJhY2spKGlkIGVsZW1lbnQsIE5TU3Ry
aW5nKiBub3RpZmljYXRpb24sCiAtIChpZClfYWNjZXNzaWJpbGl0eUxhbmRtYXJrQW5jZXN0b3I7
CiAtIChpZClfYWNjZXNzaWJpbGl0eUxpc3RBbmNlc3RvcjsKIC0gKGlkKV9hY2Nlc3NpYmlsaXR5
UGhvdG9EZXNjcmlwdGlvbjsKKy0gKE5TQXJyYXkgKilhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5
RWxlbWVudHM7CiAKIC8vIFRleHRNYXJrZXIgcmVsYXRlZAogLSAoTlNBcnJheSAqKXRleHRNYXJr
ZXJSYW5nZTsKQEAgLTIxNSw2ICsyMTYsMTEgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpnZXREb2N1bWVudExpbmtzKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWUKIHsK
IH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+PihbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50c10pKTsKK30KKwog
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgTlNJbnRlZ2Vy
IGNoaWxkQ291bnQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50Q291bnRdOwpAQCAt
MTEwMSw2ICsxMTA3LDExIEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKSBjb25zCiAgICAgcmV0dXJuIGNv
bmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiIs
IFttX2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlQaG90b0Rlc2NyaXB0aW9uXSk7CiB9CiAKK0pTVmFs
dWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKSBjb25z
dAoreworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Pj4oW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5SW1hZ2VPdmVybGF5RWxlbWVu
dHNdKSk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWQoKSBj
b25zdAogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tCmluZGV4IGRkZDhkNTgwMGJmODkzYTI2OGVmZTcyZjY3MjQ4NzBiM2Y4MTJl
YjEuLmMxMjkwZDFkNmM4ZDZkOTg0OGZhM2JkZGI2NTZmODJhZTQ3ZWNmMDIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMzQ5LDYgKzM0OSwxNSBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldFVJRWxlbWVudHNXaXRoQXR0cmlidXRlKEpT
U3RyaW5nUmVmIGF0dHJpYnV0ZSwgVgogICAgICAgICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8UmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pih2YWx1ZSk7CiB9CiAKK0pTVmFsdWVSZWYgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4oKSBjb25zdAoreworICAgIEJFR0lOX0FYX09C
SkNfRVhDRVBUSU9OUworICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oYXR0cmlidXRlVmFsdWUobV9lbGVtZW50LmdldCgpLCBO
U0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZSkpKTsKKyAgICBFTkRfQVhfT0JKQ19FWENF
UFRJT05TCisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgZWxlbWVudFZlY3RvciA9IG1ha2VWZWN0b3I8UmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShtX2VsZW1lbnQuZ2V0
KCksIE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlKSk7CkBAIC0xNjc0LDYgKzE2ODMs
MTUgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVt
YmVkZGVkSW1hZ2VEZXNjcmlwdGlvbigpIGNvbnMKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAor
SlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbWFnZU92ZXJsYXlFbGVtZW50cygp
IGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgcmV0dXJuIG1ha2VK
U0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1
dGVWYWx1ZShtX2VsZW1lbnQuZ2V0KCksIEAiQVhJbWFnZU92ZXJsYXlFbGVtZW50cyIpKSk7Cisg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIGJv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICBCT09M
IHJlc3VsdCA9IE5POwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUwNjJiODg0M2Q3MDU5M2JiZWZlNTQ1ZWZkMzgxZjkyYmVl
NWNhYTYuLjRmZTIzOWU3MWQ3ODc5YjYyOWY0MWFjNmYwOWVhYzhjZWJiYTM3MjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMS0wNi0xOCAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eSBzdXBwb3J0IGZvciBpbWFnZSB0ZXh0
IHJlY29nbml0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI0MjgwCisgICAgICAgIHJkYXI6Ly83NjM0ODc0MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIEZsZWl6YWNoLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pbWFnZS1saW5r
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1h
Z2Utb3ZlcmxheS1lbGVtZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nOiBB
ZGRlZC4KKwogMjAyMS0wNi0xOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0
Lmh0dHBzLmh0bWwgaXMgZmFpbGluZyBzaW5jZSByMjczNjQ1CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdlLWxpbmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9pbWFnZS1saW5rLWV4cGVjdGVkLnR4dAppbmRleCBiNzMxODZkMzMyZDIw
ZDYyMGVkMzJhZmE2ODJiN2UwY2JkMWU0MDA5Li4xMWE5ZjU2ZTViNTNjYWYxMTM0NWJlOTNlMGJj
NzQ5NDE0ODhiOTdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdl
LWxpbmstZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2Ut
bGluay1leHBlY3RlZC50eHQKQEAgLTY0LDYgKzY0LDcgQEAgQVhET01DbGFzc0xpc3Q6IDxhcnJh
eSBvZiBzaXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhJbWFnZT4KIEFYRWRpdGFibGVB
bmNlc3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKK0FYSW1h
Z2VPdmVybGF5RWxlbWVudHM6IChudWxsKQogQVhFbWJlZGRlZEltYWdlRGVzY3JpcHRpb246CiBB
WFVSTDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yZXNvdXJjZXMvY2FrZS5wbmcKIEFYRWxl
bWVudEJ1c3k6IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNp
bXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41Y2FlNjE2ZDY2NWM1NjEyYmRjZjJiZTdmM2E0NTljNDIwYTBi
Y2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2lt
dWxhdG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBA
QAorUEFTUyBheEltYWdlT3ZlcmxheUVsZW1lbnRzLmxlbmd0aCBpcyAyCitoZWxsbword29ybGQK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1hZ2Utb3Zl
cmxheS1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxh
dG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTc5ZThjMTc3OTg2
NWViNzBmZWU0ZjFiMjU5ZGUyYTdmNzY1Y2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ltYWdlLW92ZXJsYXktZWxlbWVudHMuaHRt
bApAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAg
bGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGltZyBpZD0iaW1hZ2Ux
IiBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+CisKKzxzY3JpcHQ+
CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgYWRkRXZlbnRMaXN0ZW5l
cigibG9hZCIsICgpID0+IHsKKyAgICAgICAgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJpbWciKTsKKyAgICAgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MCksCisgICAgICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDEsIDApLAorICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAg
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAg
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAg
ICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisg
ICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgdGV4dCA6ICJ3b3JsZCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MSksCisgICAgICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMSksCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgfQorICAgICAgICBdKTsKKworICAgICAgICBydW5UZXN0KCk7CisgICAgfSk7
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHsK
KyAgICAgICAgICAgICAgICB2YXIgYXhJbWFnZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZCgiaW1hZ2UxIik7CisgICAgICAgICAgICAgICAgYXdhaXQgd2Fp
dEZvcigoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGF4SW1hZ2VPdmVybGF5RWxlbWVudHMg
PSBheEltYWdlLmltYWdlT3ZlcmxheUVsZW1lbnRzOworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYXhJbWFnZU92ZXJsYXlFbGVtZW50cy5sZW5ndGggPT0gMjsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgiYXhJbWFnZU92ZXJsYXlFbGVtZW50cy5sZW5n
dGgiLCAiMiIpOworCisgICAgICAgICAgICAgICAgZm9yIChsZXQgYXhFbGVtZW50IG9mIGF4SW1h
Z2VPdmVybGF5RWxlbWVudHMpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHRleHRNYXJrZXJS
YW5nZSA9IGF4RWxlbWVudC50ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KGF4RWxlbWVudCk7Cisg
ICAgICAgICAgICAgICAgICAgIGRlYnVnKGF4RWxlbWVudC5zdHJpbmdGb3JUZXh0TWFya2VyUmFu
Z2UodGV4dE1hcmtlclJhbmdlKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgfQorICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjg0OTgy
NDM3MWI4NzE5OGY0N2VjZDAzZWZjZGQwMTI1NTdhZWVhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCAxMTM0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VjRNS0w5ODVxRns8e2xqMTFaaHxrSH0m
TTI1dzt4V0BNTihNKj05dwp6VWdHS04lS25nQFBndW4mWXh8cC1LcTEtOGtjYmxKe01fOHN5Yj5V
bmZ4KT5iSEwpWiRNV0g7aUJ0eWE3KD5FWVIKekZPezh2ZiUlRTJpKF5RfHQrIVZVY15NY3VTVD9k
aF4+QWxwX1NBbVp3JVVnd0VgeVdkRnE0N0tmZWoyaSsmfWB2CnoxYD1SNDQ+eT1pajNtKHRAbWV1
ejNpaEJNTSZaS2ElPisocjZuY3ImXm9jIyQ0SHJgJFR3PERraWd8KDk/NzFJNwpPMSVhb2xwVVhP
QGdlQ3d6OTVKQikKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDIyZTBkNGNhOWIzZGQwNjk4N2Q1M2ZjMTk1OTdj
MDAwYTMyODM2ZC4uZjdkMDU4MjZlZTQ4ODY3NjBiNDk5YzE0NTkyN2NiZTYwMzI5Zjg0MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIxMTksNiArMjEx
OSw5IEBAIGFjY2Vzc2liaWxpdHkvYXR0YWNobWVudC1lbGVtZW50Lmh0bWwgWyBQYXNzIF0KICMg
RW5hYmxlIFRleHQgbWFya2VyIHRlc3RzIGZvciBpT1MKIHdlYmtpdC5vcmcvYi8xNTMyOTIgYWNj
ZXNzaWJpbGl0eS90ZXh0LW1hcmtlciBbIFBhc3MgXQogCisjIFNraXAgYWNjZXNzaWJpbGl0eSB0
ZXh0IHJlY29nbml0aW9uIHRlc3RzIG9uIGlPUyAxNCBhbmQgZWFybGllci4KK2FjY2Vzc2liaWxp
dHkvaW9zLXNpbXVsYXRvci9pbWFnZS1vdmVybGF5LWVsZW1lbnRzLmh0bWwKKwogIyBNb3JlIGZs
YWt5IHRlc3RzIChTZXB0IDE4LCAyMDE1KQogCiBmYXN0L2Zvcm1zL3NlbGVjdC1lbGVtZW50LWZv
Y3VzLXJpbmcuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>