<?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>225727</bug_id>
          
          <creation_ts>2021-05-12 18:32:32 -0700</creation_ts>
          <short_desc>Add textIndicator bounce for AppHighlights on scroll.</short_desc>
          <delta_ts>2021-05-13 14:58:47 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759493</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-12 18:32:32 -0700</bug_when>
    <thetext>Add textIndicator to bounce for AppHighlights on scroll.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759496</commentid>
    <comment_count>1</comment_count>
      <attachid>428446</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-12 18:46:58 -0700</bug_when>
    <thetext>Created attachment 428446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759497</commentid>
    <comment_count>2</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-12 18:47:40 -0700</bug_when>
    <thetext>rdar://76158572</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759498</commentid>
    <comment_count>3</comment_count>
      <attachid>428447</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-12 19:05:24 -0700</bug_when>
    <thetext>Created attachment 428447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759499</commentid>
    <comment_count>4</comment_count>
      <attachid>428446</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-12 19:10:56 -0700</bug_when>
    <thetext>Comment on attachment 428446
Patch

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

&gt; Source/WebCore/page/cocoa/WebTextIndicatorLayer.h:38
&gt; +constexpr CGFloat dropShadowBlurRadius = 2;
&gt; +constexpr CGFloat rimShadowBlurRadius = 1;
&gt; +constexpr CFTimeInterval bounceAnimationDuration = 0.12;
&gt; +constexpr CFTimeInterval timeBeforeFadeStarts = bounceAnimationDuration + 0.2;
&gt; +constexpr CGFloat midBounceScale = 1.25;

These should either be static methods on WebTextIndicatorLayer or in the WebCore C++ namespace, but not floating here at the toplevel.

&gt; Source/WebCore/page/cocoa/WebTextIndicatorLayer.mm:131
&gt; +    self.anchorPoint = CGPointZero;

Please double-check macOS with this change.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:687
&gt; +

weird newline balance problem

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:9601
&gt; +    CGRect frame = _textIndicator.get()-&gt;textBoundingRectInRootViewCoordinates();

definitely don&apos;t need this .get()

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:9610
&gt; +    [self performSelector:@selector(startFadeOut) withObject:self afterDelay:timeBeforeFadeStarts];

Later (not in this patch) we should factor this out into the layer (or some other shared place).

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:9615
&gt; +

Weird newline

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:9621
&gt; +    if (textIndicator &amp;&amp; [_textIndicatorLayer indicatorWantsManualAnimation:*textIndicator] &amp;&amp; [_textIndicatorLayer hasCompletedAnimation] &amp;&amp; animation == WebCore::TextIndicatorWindowDismissalAnimation::FadeOut) {

This is technically dead code on iOS, but I guess it&apos;s also fine to handle it?

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:9639
&gt; +    [_textIndicatorLayer removeFromSuperlayer];

Surely this should also nil out _textIndicatorLayer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759500</commentid>
    <comment_count>5</comment_count>
      <attachid>428447</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-12 19:27:13 -0700</bug_when>
    <thetext>Comment on attachment 428447
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:9647
&gt; +    [_textIndicatorLayer hideWithCompletionHandler:[self] {
&gt; +        [self teardownTextIndicatorLayer];
&gt; +    }];

This should probably weakly capture self</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759502</commentid>
    <comment_count>6</comment_count>
      <attachid>428449</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-12 19:29:45 -0700</bug_when>
    <thetext>Created attachment 428449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759587</commentid>
    <comment_count>7</comment_count>
      <attachid>428472</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 02:39:16 -0700</bug_when>
    <thetext>Created attachment 428472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759589</commentid>
    <comment_count>8</comment_count>
      <attachid>428473</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 02:44:16 -0700</bug_when>
    <thetext>Created attachment 428473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759590</commentid>
    <comment_count>9</comment_count>
      <attachid>428474</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 02:47:10 -0700</bug_when>
    <thetext>Created attachment 428474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759595</commentid>
    <comment_count>10</comment_count>
      <attachid>428474</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-13 02:49:38 -0700</bug_when>
    <thetext>Comment on attachment 428474
Patch

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

&gt; Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:484
&gt; +#if ENABLE(APP_HIGHLIGHTS)

What! Why is this guarded?

&gt; Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:493
&gt; +#if ENABLE(APP_HIGHLIGHTS)

No

&gt; Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:502
&gt; +#if ENABLE(APP_HIGHLIGHTS)

No

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:136
&gt; +#if ENABLE(APP_HIGHLIGHTS)

Stop all of this madness :)

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:9590
&gt; +#if ENABLE(APP_HIGHLIGHTS)

All of it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759601</commentid>
    <comment_count>11</comment_count>
      <attachid>428474</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-13 02:57:45 -0700</bug_when>
    <thetext>Comment on attachment 428474
Patch

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

&gt; Source/WebCore/page/TextIndicator.h:42
&gt; +#if PLATFORM(MAC) || PLATFORM(IOS)

PLATFORM(COCOA) and a fixme to adopt WebCore types here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759604</commentid>
    <comment_count>12</comment_count>
      <attachid>428479</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 03:00:56 -0700</bug_when>
    <thetext>Created attachment 428479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759605</commentid>
    <comment_count>13</comment_count>
      <attachid>428480</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 03:02:55 -0700</bug_when>
    <thetext>Created attachment 428480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759607</commentid>
    <comment_count>14</comment_count>
      <attachid>428482</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 03:11:22 -0700</bug_when>
    <thetext>Created attachment 428482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759609</commentid>
    <comment_count>15</comment_count>
      <attachid>428483</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 03:22:42 -0700</bug_when>
    <thetext>Created attachment 428483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759611</commentid>
    <comment_count>16</comment_count>
      <attachid>428484</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 03:31:14 -0700</bug_when>
    <thetext>Created attachment 428484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759652</commentid>
    <comment_count>17</comment_count>
      <attachid>428492</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-13 05:32:09 -0700</bug_when>
    <thetext>Created attachment 428492
a modest proposal

without all the ifdefs, for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759654</commentid>
    <comment_count>18</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-13 05:33:02 -0700</bug_when>
    <thetext>Sorry, forgot --no-obsolete. I put yours back. But please consider the ifdefless version, if it builds!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759658</commentid>
    <comment_count>19</comment_count>
      <attachid>428497</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-13 05:39:07 -0700</bug_when>
    <thetext>Created attachment 428497
a modest proposal

without all the ifdefs, for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759729</commentid>
    <comment_count>20</comment_count>
      <attachid>428527</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 10:27:04 -0700</bug_when>
    <thetext>Created attachment 428527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759740</commentid>
    <comment_count>21</comment_count>
      <attachid>428531</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 10:50:15 -0700</bug_when>
    <thetext>Created attachment 428531
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759751</commentid>
    <comment_count>22</comment_count>
      <attachid>428531</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-13 11:11:23 -0700</bug_when>
    <thetext>Comment on attachment 428531
Patch

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

&gt; Source/WebCore/loader/EmptyClients.cpp:556
&gt; +void EmptyChromeClient::setTextIndicator(const TextIndicatorData&amp;) const

My version of the patch fixes all these things but: 

Shouldn&apos;t be in the ifdef

&gt; Source/WebCore/loader/EmptyClients.h:150
&gt; +    void setTextIndicator(const TextIndicatorData&amp;) const final;

Shouldn&apos;t be in the ifdef

&gt; Source/WebCore/page/ChromeClient.h:317
&gt; +    virtual void setTextIndicator(const TextIndicatorData&amp;) const = 0;

Shouldn&apos;t be in the ifdef

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:1273
&gt; +}

This is misplaced

&gt; Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h:156
&gt; +    void setTextIndicator(const WebCore::TextIndicatorData&amp;) const final;

Shouldn&apos;t be in the ifdef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759757</commentid>
    <comment_count>23</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-13 11:15:07 -0700</bug_when>
    <thetext>(And needs a empty implementation in the windows chrome client)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759792</commentid>
    <comment_count>24</comment_count>
      <attachid>428549</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 12:51:50 -0700</bug_when>
    <thetext>Created attachment 428549
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759803</commentid>
    <comment_count>25</comment_count>
      <attachid>428553</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 13:13:30 -0700</bug_when>
    <thetext>Created attachment 428553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759814</commentid>
    <comment_count>26</comment_count>
      <attachid>428556</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-13 13:36:15 -0700</bug_when>
    <thetext>Created attachment 428556
a modest proposal

without all the ifdefs, for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759816</commentid>
    <comment_count>27</comment_count>
      <attachid>428558</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 13:38:54 -0700</bug_when>
    <thetext>Created attachment 428558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759842</commentid>
    <comment_count>28</comment_count>
      <attachid>428563</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 14:43:10 -0700</bug_when>
    <thetext>Created attachment 428563
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759848</commentid>
    <comment_count>29</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-13 14:58:47 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/277453/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428446</attachid>
            <date>2021-05-12 18:46:58 -0700</date>
            <delta_ts>2021-05-12 19:55:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210512184657.patch</filename>
            <type>text/plain</type>
            <size>19413</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uNGM3NmNhZGE0MjQzNDAzOTU5NzkwODdlNjVkZDkx
OTAxY2M4YjYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsOCBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgorI2luY2x1ZGUgIlRleHRJbmRpY2F0
b3JXaW5kb3cuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMjYwLDggKzI2MywxMyBAQCBib29sIEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVt
cHRUb1Jlc3RvcmVIaWdobGlnaHRBbmRTY3JvbGwoQXBwSGlnaGxpZ2h0UmFuZ2VEYQogICAgIAog
ICAgIHN0cm9uZ0RvY3VtZW50LT5hcHBIaWdobGlnaHRSZWdpc3RlcigpLmFkZEFwcEhpZ2hsaWdo
dChTdGF0aWNSYW5nZTo6Y3JlYXRlKCpyYW5nZSkpOwogICAgIAotICAgIGlmIChzY3JvbGwgPT0g
U2Nyb2xsVG9IaWdobGlnaHQ6OlllcykKKyAgICBpZiAoc2Nyb2xsID09IFNjcm9sbFRvSGlnaGxp
Z2h0OjpZZXMpIHsKKyAgICAgICAgYXV0byB0ZXh0SW5kaWNhdG9yID0gVGV4dEluZGljYXRvcjo6
Y3JlYXRlV2l0aFJhbmdlKHJhbmdlLnZhbHVlKCksIHsgVGV4dEluZGljYXRvck9wdGlvbjo6RG9O
b3RDbGlwVG9WaXNpYmxlUmVjdCB9LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9u
VHJhbnNpdGlvbjo6Qm91bmNlKTsKKyAgICAgICAgaWYgKHRleHRJbmRpY2F0b3IpCisgICAgICAg
ICAgICBtX2RvY3VtZW50LT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldFRleHRJbmRpY2F0
b3IodGV4dEluZGljYXRvci0+ZGF0YSgpKTsKKyAgICAgICAgCiAgICAgICAgIFRlbXBvcmFyeVNl
bGVjdGlvbkNoYW5nZSBzZWxlY3Rpb25DaGFuZ2UoKnN0cm9uZ0RvY3VtZW50LCB7IHJhbmdlLnZh
bHVlKCkgfSwgeyBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlJldmVhbFNlbGVjdGlvbiwgVGVt
cG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpTbW9vdGhTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9w
dGlvbjo6T3ZlcnJpZGVTbW9vdGhTY3JvbGxGZWF0dXJlRW5hYmxtZW50IH0pOworICAgIH0KIAog
ICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApp
bmRleCBkOWUwMzg3Yzk2YjI4ZDM4N2FiY2I4YjE3NzNiMDEwYmIyMDY3MzVlLi4xOTA3OGI4ODNj
NDYyYmY1NjdiMTE0M2JkNGFjMTU4NTBjZjQwYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtNTUzLDYgKzU1Myw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxEYXRlVGlt
ZUNob29zZXI+IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVEYXRlVGltZUNob29zZXIoRGF0ZVRp
CiB2b2lkIEVtcHR5Q2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChBcHBIaWdobGlnaHQm
JikgY29uc3QKIHsKIH0KK3ZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRpY2F0b3Io
Y29uc3QgVGV4dEluZGljYXRvckRhdGEmKSBjb25zdAoreworfQogI2VuZGlmCiAKIERpc3BsYXlS
ZWZyZXNoTW9uaXRvckZhY3RvcnkqIEVtcHR5Q2hyb21lQ2xpZW50OjpkaXNwbGF5UmVmcmVzaE1v
bml0b3JGYWN0b3J5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRl
eCBkYjE1YjA5OGE0OTBhZTAzMzBlNTJjODBlMDAyOTQyMmZhNTRhZmJmLi5jNGFkYjI0ZDI4YWVk
MTBjNzY4N2I3MGE3N2QzZGIyOTA1NTJkZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCkBAIC0xNDcsNiArMTQ3LDcgQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJs
aWMgQ2hyb21lQ2xpZW50IHsKIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICB2b2lk
IHN0b3JlQXBwSGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lk
IHNldFRleHRJbmRpY2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRhdGEmKSBjb25zdCBmaW5hbDsK
ICNlbmRpZgogCiAgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogZGlzcGxheVJlZnJl
c2hNb25pdG9yRmFjdG9yeSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKaW5kZXggMjU5YmFlOWFlMGQzYmY0MzIzZTMyNDJmYzg4NmE1MWEzNzhmMmQ3ZC4uMzVjZjI5
ZDRkNzNhYzJlOGVlMzk3ZGIyYTQzZmFjYzVmMGI3N2VkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCkBAIC0xMjUsNiArMTI1LDcgQEAgc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFt
ZXRlcnM7CiBzdHJ1Y3QgR3JhcGhpY3NEZXZpY2VBZGFwdGVyOwogc3RydWN0IE1vY2tXZWJBdXRo
ZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsK
K3N0cnVjdCBUZXh0SW5kaWNhdG9yRGF0YTsKIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50czsKIHN0
cnVjdCBXaW5kb3dGZWF0dXJlczsKIApAQCAtMzEzLDYgKzMxNCw3IEBAIHB1YmxpYzoKIAogI2lm
IEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICB2aXJ0dWFsIHZvaWQgc3RvcmVBcHBIaWdobGln
aHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0ID0gMDsKICNl
bmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2Vy
JikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5k
aWNhdG9yTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRv
ckxheWVyLmgKaW5kZXggZmQxM2QwNDBlZmZiNzViMGVhMDA0ZWE1NTFlMzIyMTU0YWUxOGZhZi4u
YjQ4Yzc1Yjc3MjU3M2IzMTZmOGU2MGIyZTQ4NDAyMzYyYjQ3NGRkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oCkBAIC0zMSw3ICsz
MSwxMyBAQAogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3Au
aD4KIAotQGludGVyZmFjZSBXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgOiBDQUxheWVyIHsKK2NvbnN0
ZXhwciBDR0Zsb2F0IGRyb3BTaGFkb3dCbHVyUmFkaXVzID0gMjsKK2NvbnN0ZXhwciBDR0Zsb2F0
IHJpbVNoYWRvd0JsdXJSYWRpdXMgPSAxOworY29uc3RleHByIENGVGltZUludGVydmFsIGJvdW5j
ZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKK2NvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCB0aW1l
QmVmb3JlRmFkZVN0YXJ0cyA9IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4yOworY29uc3Rl
eHByIENHRmxvYXQgbWlkQm91bmNlU2NhbGUgPSAxLjI1OworCitXRUJDT1JFX0VYUE9SVCBAaW50
ZXJmYWNlIFdlYlRleHRJbmRpY2F0b3JMYXllciA6IENBTGF5ZXIgewogICAgIFJlZlB0cjxXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yPiBfdGV4dEluZGljYXRvcjsKICAgICBSZXRhaW5QdHI8TlNBcnJh
eT4gX2JvdW5jZUxheWVyczsKICAgICBDR1NpemUgX21hcmdpbjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1tIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KaW5kZXggYjhjNGQ4ZjA2
N2JhY2VkMDlhODExODA4NzEwMzA2YzU3YTc5NDMwMC4uYzZhZmNiYTEzMmJkZmIwNGI4MmRlNWI1
ZTM3NWU3NzY3ZmU2YzcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9X
ZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9X
ZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KQEAgLTM4LDE5ICszOCwxNSBAQAogI2ltcG9ydCA8cGFs
L3NwaS9jb2NvYS9OU0NvbG9yU1BJLmg+CiAjZW5kaWYKIAotY29uc3RleHByIENGVGltZUludGVy
dmFsIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKKwogY29uc3RleHByIENGVGltZUlu
dGVydmFsIGJvdW5jZVdpdGhDcm9zc2ZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIGNvbnN0
ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlSW5BbmltYXRpb25EdXJhdGlvbiA9IDAuMTU7Ci1jb25z
dGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRp
b25EdXJhdGlvbiArIDAuMjsKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlT3V0QW5pbWF0
aW9uRHVyYXRpb24gPSAwLjM7CiAKLWNvbnN0ZXhwciBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxlID0g
MS4yNTsKIGNvbnN0ZXhwciBDR0Zsb2F0IGJvcmRlcldpZHRoID0gMDsKIGNvbnN0ZXhwciBDR0Zs
b2F0IGNvcm5lclJhZGl1cyA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0
WCA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WSA9IDE7Ci1jb25zdGV4
cHIgQ0dGbG9hdCBkcm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Ci1jb25zdGV4cHIgQ0dGbG9hdCBy
aW1TaGFkb3dCbHVyUmFkaXVzID0gMTsKIAogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgdGV4
dExheWVyS2V5ID0gQCJUZXh0TGF5ZXIiOwogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgZHJv
cFNoYWRvd0xheWVyS2V5ID0gQCJEcm9wU2hhZG93TGF5ZXIiOwpAQCAtMTMyLDEzICsxMjgsMTIg
QEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNh
dG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRd
KSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAKKyAgICBzZWxmLmFuY2hvclBvaW50ID0gQ0dQ
b2ludFplcm87CiAgICAgc2VsZi5mcmFtZSA9IGZyYW1lOwogCiAgICAgX3RleHRJbmRpY2F0b3Ig
PSAmdGV4dEluZGljYXRvcjsKICAgICBfbWFyZ2luID0gbWFyZ2luOwogCi0gICAgc2VsZi5hbmNo
b3JQb2ludCA9IENHUG9pbnRaZXJvOwotCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdl
PiBjb250ZW50c0ltYWdlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBjb250ZW50c0ltYWdlTG9n
aWNhbFNpemUgeyAxLCAxIH07CiAgICAgaWYgKGF1dG8qIGNvbnRlbnRJbWFnZSA9IF90ZXh0SW5k
aWNhdG9yLT5jb250ZW50SW1hZ2UoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW0KaW5kZXggZjg1ZmE1M2IzYjRhOWY0NTk2OTc3NmExMmNjNDEx
Zjc5MjJkZjc3Yy4uMGE0OTcyNTcyNGM5YjRiZjk1MjA1ZTVkYWZiYzZhZDY4ZDlhNzlhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCkBAIC0z
OCwxMiArMzgsNiBAQAogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0NvbG9yU1BJLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KIAotY29uc3QgQ0ZUaW1lSW50ZXJ2
YWwgYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjEyOwotY29uc3QgQ0ZUaW1lSW50ZXJ2YWwg
dGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25EdXJhdGlvbiArIDAuMjsKLQot
Y29uc3QgQ0dGbG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEuMjU7Ci1jb25zdCBDR0Zsb2F0IGRyb3BT
aGFkb3dCbHVyUmFkaXVzID0gMjsKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbQppbmRleCA0MGI3NjIzNjM5ZmZhZDQxYjQ0MjQ2OGViMmUxODFhYTM0ZjAx
NjUzLi5iOGFlOTc3NTdiYTBkNjBkN2E4YjU0Nzk3ZThkZGMwY2RhOGEyYzJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00ODEs
MTQgKzQ4MSwxNyBAQCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBUZXh0
SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpCiB7CisgICAgW21fY29udGVudFZpZXcgc2V0VXBUZXh0
SW5kaWNhdG9yOnRleHRJbmRpY2F0b3JdOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVh
clRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikKK3Zv
aWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKIHsKKyAgICBbbV9jb250ZW50
VmlldyBjbGVhclRleHRJbmRpY2F0b3I6ZGlzbWlzc2FsQW5pbWF0aW9uXTsKIH0KIAotdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KQor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZs
b2F0IGFuaW1hdGlvblByb2dyZXNzKQogeworICAgIFttX2NvbnRlbnRWaWV3IHNldFRleHRJbmRp
Y2F0b3JBbmltYXRpb25Qcm9ncmVzczphbmltYXRpb25Qcm9ncmVzc107CiB9CiAKIHZvaWQgUGFn
ZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA4ODZhZTc1ZTY3
YjU2YWViMzgzNzg0ZjU5NmM5ZDhmNzI5MTI1NmU3Li43OGI1OGM4NjA2NjM1M2RlNjdmODExOGE3
ZDc4MjZlOGI5ZTZmNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC04OSw2ICs4OSw3IEBAIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
IDogdWludDhfdDsKIGVudW0gY2xhc3MgTW91c2VFdmVudFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90OwogCiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKIHN0cnVjdCBEcmFnSXRlbTsKQEAgLTEzMiw2ICsxMzMsMTAgQEAgY2xhc3Mg
V2ViUGFnZVByb3h5OwogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hU
UykKK0BjbGFzcyBXZWJUZXh0SW5kaWNhdG9yTGF5ZXI7CisjZW5kaWYKKwogI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uQWRkaXRpb25zQmVmb3JlLmg+CiAjZW5kaWYKQEAgLTMzMCw2ICszMzUsMTEgQEAg
ZW51bSBjbGFzcyBQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbiA6IGJvb2wgewogI2VuZGlmCiAg
ICAgUmV0YWluUHRyPFVJUHJldmlld0l0ZW1Db250cm9sbGVyPiBfcHJldmlld0l0ZW1Db250cm9s
bGVyOwogI2VuZGlmCisgICAgCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIFJlZlB0
cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiBfdGV4dEluZGljYXRvcjsKKyAgICBSZXRhaW5QdHI8
V2ViVGV4dEluZGljYXRvckxheWVyPiBfdGV4dEluZGljYXRvckxheWVyOworI2VuZGlmCiAKICNp
ZiBVU0UoVUlDT05URVhUTUVOVSkKICAgICBSZXRhaW5QdHI8VUlUYXJnZXRlZFByZXZpZXc+IF9j
b250ZXh0TWVudUludGVyYWN0aW9uVGFyZ2V0ZWRQcmV2aWV3OwpAQCAtNjcwLDYgKzY4MCwxMyBA
QCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5U
VklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JNYWluRnJhbWU7CiAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lOwogCisj
aWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorLSAodm9pZClzZXRVcFRleHRJbmRpY2F0b3I6KFJl
ZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yOworLSAodm9pZClzZXRUZXh0
SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6KGZsb2F0KU5TQW5pbWF0aW9uUHJvZ3Jlc3M7Cist
ICh2b2lkKWNsZWFyVGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbilhbmltYXRpb247CisKKyNlbmRpZgorCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZFVzZUNvbnRleHRNZW51czsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkQXZvaWRSZXNpemluZ1doZW5JbnB1dFZp
ZXdCb3VuZHNDaGFuZ2U7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3No
b3VsZEF2b2lkU2Nyb2xsaW5nV2hlbkZvY3VzZWRDb250ZW50SXNWaXNpYmxlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KaW5kZXggYTYwODY5YTc3ZjkyNTcwYjIwYzlmNzE5M2RhY2QxMDExMjFmYTE3YS4uNzMxZjEx
NTUxY2MzYTQ0YmFjZDY5MjJhMjJjYWQxZTZmMzE4MTUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0x
NzIsNiArMTcyLDExIEBACiAjaW1wb3J0ICJQZXBwZXJVSUNvcmVTUEkuaCIKICNlbmRpZgogCisj
aWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9y
V2luZG93Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYlRleHRJbmRpY2F0b3JMYXllci5oPgorI2Vu
ZGlmCisKICNpbXBvcnQgPHBhbC9pb3MvTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oPgog
CiAjaWYgSEFWRShMSU5LX1BSRVZJRVcpICYmIFVTRShVSUNPTlRFWFRNRU5VKQpAQCAtOTU4Miw2
ICs5NTg3LDY3IEBAIC0gKHZvaWQpX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRp
bmdJbWFnZUV4dHJhY3Rpb246KFdlYktpdDo6UHJvY2VlZFdpCiAKICNlbmRpZiAvLyBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKy0gKHZvaWQp
c2V0VXBUZXh0SW5kaWNhdG9yOihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4pdGV4dEluZGlj
YXRvcgoreworICAgIGlmIChfdGV4dEluZGljYXRvciA9PSB0ZXh0SW5kaWNhdG9yLnB0cigpKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgW3NlbGYgdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5
ZXJdOworICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1SZXF1ZXN0c1dpdGhUYXJn
ZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Ioc3RhcnRGYWRlT3V0KSBvYmplY3Q6bmlsXTsKKyAg
ICAKKyAgICBfdGV4dEluZGljYXRvciA9IHRleHRJbmRpY2F0b3IucHRyKCk7CisKKyAgICBDR1Jl
Y3QgZnJhbWUgPSBfdGV4dEluZGljYXRvci5nZXQoKS0+dGV4dEJvdW5kaW5nUmVjdEluUm9vdFZp
ZXdDb29yZGluYXRlcygpOworICAgIF90ZXh0SW5kaWNhdG9yTGF5ZXIgPSBhZG9wdE5TKFtbV2Vi
VGV4dEluZGljYXRvckxheWVyIGFsbG9jXSBpbml0V2l0aEZyYW1lOmZyYW1lCisgICAgICAgIHRl
eHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciBtYXJnaW46Q0dTaXplWmVybyBvZmZzZXQ6Q0dQb2lu
dFplcm9dKTsKKyAgICAKKyAgICBbW3NlbGYgbGF5ZXJdIGFkZFN1YmxheWVyOl90ZXh0SW5kaWNh
dG9yTGF5ZXIuZ2V0KCldOworCisgICAgaWYgKF90ZXh0SW5kaWNhdG9yLT5wcmVzZW50YXRpb25U
cmFuc2l0aW9uKCkgIT0gV2ViQ29yZTo6VGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRp
b246Ok5vbmUpCisgICAgICAgIFtfdGV4dEluZGljYXRvckxheWVyIHByZXNlbnRdOworICAgIAor
ICAgIFtzZWxmIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3Ioc3RhcnRGYWRlT3V0KSB3aXRoT2Jq
ZWN0OnNlbGYgYWZ0ZXJEZWxheTp0aW1lQmVmb3JlRmFkZVN0YXJ0c107Cit9CisKKy0gKHZvaWQp
Y2xlYXJUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uKWFuaW1hdGlvbgoreworCisgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJbmRpY2F0
b3I+IHRleHRJbmRpY2F0b3IgPSBXVEZNb3ZlKF90ZXh0SW5kaWNhdG9yKTsKKyAgICAKKyAgICBp
ZiAoW190ZXh0SW5kaWNhdG9yTGF5ZXIgaXNGYWRpbmdPdXRdKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAodGV4dEluZGljYXRvciAmJiBbX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JX
YW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYgW190ZXh0SW5kaWNhdG9yTGF5
ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9uXSAmJiBhbmltYXRpb24gPT0gV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCkgeworICAgICAgICBbc2Vs
ZiBzdGFydEZhZGVPdXRdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW3NlbGYgdGVh
cmRvd25UZXh0SW5kaWNhdG9yTGF5ZXJdOworfQorCistICh2b2lkKXNldFRleHRJbmRpY2F0b3JB
bmltYXRpb25Qcm9ncmVzczooZmxvYXQpYW5pbWF0aW9uUHJvZ3Jlc3MKK3sKKyAgICBpZiAoIV90
ZXh0SW5kaWNhdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBbX3RleHRJbmRpY2F0b3JMYXll
ciBzZXRBbmltYXRpb25Qcm9ncmVzczphbmltYXRpb25Qcm9ncmVzc107Cit9CisKKy0gKHZvaWQp
dGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXIKK3sKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciBy
ZW1vdmVGcm9tU3VwZXJsYXllcl07Cit9CisKKy0gKHZvaWQpc3RhcnRGYWRlT3V0Cit7CisgICAg
W190ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0RmFkaW5nT3V0OllFU107CisgICAgW190ZXh0SW5kaWNh
dG9yTGF5ZXIgaGlkZVdpdGhDb21wbGV0aW9uSGFuZGxlcjpbc2VsZl0geworICAgICAgICBbc2Vs
ZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07CisgICAgfV07Cit9CisjZW5kaWYgLy8gRU5B
QkxFKEFQUF9ISUdITElHSFRTKQorCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBv
cnQgPFdlYktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnNBZnRl
ci5tbT4KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzZjJlOWQ1MGZmYjAwMWMy
NDZkNDE3MTBlMDNiNDQ5YmRjNTg2Nzg0Li5hZTc2MTkwYmVjNTA5Njg0MTAzZDBlN2EyZTM4NGY5
YmNjY2Q5ODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODgsNiArODgsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3Vy
aXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkp
CiAjaW5jbHVkZSAiUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIgpAQCAtMTI2OSw2ICsxMjcwLDEx
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBI
aWdobGlnaHQmJiBoaWdobGlnaHQpIGNvbnN0CiAgICAgaGlnaGxpZ2h0LnJlcXVlc3RPcmlnaW5h
dGVkSW5BcHAgPSBtX3BhZ2UuaGlnaGxpZ2h0UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCgpOwogICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0b3JlQXBwSGlnaGxpZ2h0KGhp
Z2hsaWdodCkpOwogfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvcihj
b25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSkgY29uc3QKK3sK
KyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9y
KGluZGljYXRvckRhdGEsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKK30KICNlbmRpZgogCiBTdHJpbmcgV2Vi
Q2hyb21lQ2xpZW50OjpzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQg
a2V5U2l6ZUluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZVN0cmluZywgY29uc3QgVVJMJiB1
cmwpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNGVlZjFmOGFkMWM1MmFjMDUxNjU4MmJh
MTYxNTVjYWQwMWExNTU3Mi4uZDdlZmIwODg1OWRkMDU5NDA2NmU4NDNjYTI2MGIwMWE0NGU2M2Zl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzUxLDYgKzM1MSw3IEBAIHByaXZhdGU6CiAKICNp
ZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJD
b3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJikgY29uc3QgZmluYWw7CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShXRUJfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBmM2Q0NzE2
YTg5MzNkOWYyNDJmOGVmMTIxNWE4NjYyMzQwZjg5N2E1Li42ZTE4ZjJiMjQyMTcxM2EyYzQwZDc0
NDE4ZDUyNGI4NTM2NDExNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTUzLDYgKzE1Myw3IEBA
IHByaXZhdGU6CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgdm9pZCBzdG9yZUFw
cEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QgZmluYWw7CisgICAgdm9p
ZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJikgY29u
c3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KaW5kZXggNDUzOWNlNmY2NGQwMGIwYmIwMDI4M2VhYzgxNTMyOTc5MDA0YzRlOC4uNDdl
NzExYTY4MmIzMjkzMzA1ZDc3MjA3YTg0NzEzMzc5MmYwN2NmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQpAQCAtNzE4LDYgKzcxOCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxEYXRlVGltZUNob29zZXI+IFdl
YkNocm9tZUNsaWVudDo6Y3JlYXRlRGF0ZVRpbWVDaG9vc2VyKERhdGVUaW1lCiB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYpIGNv
bnN0CiB7CiB9Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSkgY29uc3QKK3sKK30KICNl
bmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
</data>
<flag name="commit-queue"
          id="449373"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428447</attachid>
            <date>2021-05-12 19:05:24 -0700</date>
            <delta_ts>2021-05-12 19:30:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210512190524.patch</filename>
            <type>text/plain</type>
            <size>19379</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaAppbmRleCBmZDEzZDA0MGVmZmI3NWIwZWEw
MDRlYTU1MWUzMjIxNTRhZTE4ZmFmLi5iNDhjNzViNzcyNTczYjMxNmY4ZTYwYjJlNDg0MDIzNjJi
NDc0ZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRp
Y2F0b3JMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGlj
YXRvckxheWVyLmgKQEAgLTMxLDcgKzMxLDEzIEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCi1AaW50ZXJmYWNlIFdlYlRleHRJbmRpY2F0b3JM
YXllciA6IENBTGF5ZXIgeworY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMg
PSAyOworY29uc3RleHByIENHRmxvYXQgcmltU2hhZG93Qmx1clJhZGl1cyA9IDE7Citjb25zdGV4
cHIgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjEyOworY29uc3Rl
eHByIENGVGltZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5pbWF0aW9u
RHVyYXRpb24gKyAwLjI7Citjb25zdGV4cHIgQ0dGbG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEuMjU7
CisKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViVGV4dEluZGljYXRvckxheWVyIDogQ0FM
YXllciB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+IF90ZXh0SW5kaWNhdG9y
OwogICAgIFJldGFpblB0cjxOU0FycmF5PiBfYm91bmNlTGF5ZXJzOwogICAgIENHU2l6ZSBfbWFy
Z2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNh
dG9yTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JM
YXllci5tbQppbmRleCBiOGM0ZDhmMDY3YmFjZWQwOWE4MTE4MDg3MTAzMDZjNTdhNzk0MzAwLi5j
NmFmY2JhMTMyYmRmYjA0YjgyZGU1YjVlMzc1ZTc3NjdmZTZjNzIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQpAQCAtMzgsMTkg
KzM4LDE1IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KICNlbmRpZgog
Ci1jb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjEy
OworCiBjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFuaW1hdGlv
bkR1cmF0aW9uID0gMC4zOwogY29uc3RleHByIENGVGltZUludGVydmFsIGZhZGVJbkFuaW1hdGlv
bkR1cmF0aW9uID0gMC4xNTsKLWNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCB0aW1lQmVmb3JlRmFk
ZVN0YXJ0cyA9IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4yOwogY29uc3RleHByIENGVGlt
ZUludGVydmFsIGZhZGVPdXRBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIAotY29uc3RleHByIENH
RmxvYXQgbWlkQm91bmNlU2NhbGUgPSAxLjI1OwogY29uc3RleHByIENHRmxvYXQgYm9yZGVyV2lk
dGggPSAwOwogY29uc3RleHByIENHRmxvYXQgY29ybmVyUmFkaXVzID0gMDsKIGNvbnN0ZXhwciBD
R0Zsb2F0IGRyb3BTaGFkb3dPZmZzZXRYID0gMDsKIGNvbnN0ZXhwciBDR0Zsb2F0IGRyb3BTaGFk
b3dPZmZzZXRZID0gMTsKLWNvbnN0ZXhwciBDR0Zsb2F0IGRyb3BTaGFkb3dCbHVyUmFkaXVzID0g
MjsKLWNvbnN0ZXhwciBDR0Zsb2F0IHJpbVNoYWRvd0JsdXJSYWRpdXMgPSAxOwogCiBjb25zdGV4
cHIgTlNTdHJpbmcgKiBjb25zdCB0ZXh0TGF5ZXJLZXkgPSBAIlRleHRMYXllciI7CiBjb25zdGV4
cHIgTlNTdHJpbmcgKiBjb25zdCBkcm9wU2hhZG93TGF5ZXJLZXkgPSBAIkRyb3BTaGFkb3dMYXll
ciI7CkBAIC0xMzIsMTMgKzEyOCwxMiBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZToo
Q0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0bwogICAgIGlm
ICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIAorICAg
IHNlbGYuYW5jaG9yUG9pbnQgPSBDR1BvaW50WmVybzsKICAgICBzZWxmLmZyYW1lID0gZnJhbWU7
CiAKICAgICBfdGV4dEluZGljYXRvciA9ICZ0ZXh0SW5kaWNhdG9yOwogICAgIF9tYXJnaW4gPSBt
YXJnaW47CiAKLSAgICBzZWxmLmFuY2hvclBvaW50ID0gQ0dQb2ludFplcm87Ci0KICAgICBSZWZQ
dHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IGNvbnRlbnRzSW1hZ2U7CiAgICAgV2ViQ29yZTo6Rmxv
YXRTaXplIGNvbnRlbnRzSW1hZ2VMb2dpY2FsU2l6ZSB7IDEsIDEgfTsKICAgICBpZiAoYXV0byog
Y29udGVudEltYWdlID0gX3RleHRJbmRpY2F0b3ItPmNvbnRlbnRJbWFnZSgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRleCBmODVmYTUz
YjNiNGE5ZjQ1OTY5Nzc2YTEyY2M0MTFmNzkyMmRmNzdjLi4wYTQ5NzI1NzI0YzliNGJmOTUyMDVl
NWRhZmJjNmFkNjhkOWE3OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9U
ZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KQEAgLTM4LDEyICszOCw2IEBACiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL05TQ29sb3JTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5o
PgogCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlvbiA9IDAuMTI7
Ci1jb25zdCBDRlRpbWVJbnRlcnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJvdW5jZUFuaW1h
dGlvbkR1cmF0aW9uICsgMC4yOwotCi1jb25zdCBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4y
NTsKLWNvbnN0IENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDQwYjc2MjM2MzlmZmFk
NDFiNDQyNDY4ZWIyZTE4MWFhMzRmMDE2NTMuLmI4YWU5Nzc1N2JhMGQ2MGQ3YThiNTQ3OTdlOGRk
YzBjZGE4YTJjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KQEAgLTQ4MSwxNCArNDgxLDE3IEBAIFJlZlB0cjxXZWJQb3B1cE1lbnVQ
cm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYp
CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0
b3I+IHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkKIHsKKyAgICBb
bV9jb250ZW50VmlldyBzZXRVcFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvcl07CiB9CiAKLXZv
aWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0SW5kaWNh
dG9yKFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gZGlzbWlzc2FsQW5pbWF0
aW9uKQogeworICAgIFttX2NvbnRlbnRWaWV3IGNsZWFyVGV4dEluZGljYXRvcjpkaXNtaXNzYWxB
bmltYXRpb25dOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3MoZmxvYXQpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNh
dG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgYW5pbWF0aW9uUHJvZ3Jlc3MpCiB7CisgICAgW21f
Y29udGVudFZpZXcgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOmFuaW1hdGlvblBy
b2dyZXNzXTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCmluZGV4IDg4NmFlNzVlNjdiNTZhZWIzODM3ODRmNTk2YzlkOGY3MjkxMjU2ZTcuLjc4
YjU4Yzg2MDY2MzUzZGU2N2Y4MTE4YTdkNzgyNmU4YjllNmY0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAg
LTg5LDYgKzg5LDcgQEAgc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiBlbnVtIGNsYXNz
IERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBNb3VzZUV2ZW50
UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhf
dDsKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiA6IHVp
bnQ4X3Q7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogc3RydWN0IERyYWdJdGVtOwpAQCAt
MTMyLDYgKzEzMywxMCBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAjZW5kaWYKICNlbmRpZgogCisj
aWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorQGNsYXNzIFdlYlRleHRJbmRpY2F0b3JMYXllcjsK
KyNlbmRpZgorCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFk
ZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnNCZWZvcmUuaD4KICNlbmRp
ZgpAQCAtMzMwLDYgKzMzNSwxMSBAQCBlbnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0
aW9uIDogYm9vbCB7CiAjZW5kaWYKICAgICBSZXRhaW5QdHI8VUlQcmV2aWV3SXRlbUNvbnRyb2xs
ZXI+IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI7CiAjZW5kaWYKKyAgICAKKyNpZiBFTkFCTEUoQVBQ
X0hJR0hMSUdIVFMpCisgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+IF90ZXh0SW5k
aWNhdG9yOworICAgIFJldGFpblB0cjxXZWJUZXh0SW5kaWNhdG9yTGF5ZXI+IF90ZXh0SW5kaWNh
dG9yTGF5ZXI7CisjZW5kaWYKIAogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFJldGFpblB0
cjxVSVRhcmdldGVkUHJldmlldz4gX2NvbnRleHRNZW51SW50ZXJhY3Rpb25UYXJnZXRlZFByZXZp
ZXc7CkBAIC02NzAsNiArNjgwLDEzIEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19B
Q1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lk
KV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZTsKIC0gKHZvaWQpX2RpZENvbW1p
dExvYWRGb3JNYWluRnJhbWU7CiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCistICh2b2lk
KXNldFVwVGV4dEluZGljYXRvcjooUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+KXRleHRJbmRp
Y2F0b3I7CistICh2b2lkKXNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQp
TlNBbmltYXRpb25Qcm9ncmVzczsKKy0gKHZvaWQpY2xlYXJUZXh0SW5kaWNhdG9yOihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKKworI2Vu
ZGlmCisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkVXNlQ29u
dGV4dE1lbnVzOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRB
dm9pZFJlc2l6aW5nV2hlbklucHV0Vmlld0JvdW5kc0NoYW5nZTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkQXZvaWRTY3JvbGxpbmdXaGVuRm9jdXNlZENvbnRl
bnRJc1Zpc2libGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBhNjA4NjlhNzdmOTI1NzBiMjBjOWY3MTkz
ZGFjZDEwMTEyMWZhMTdhLi43MzFmMTE1NTFjYzNhNDRiYWNkNjkyMmEyMmNhZDFlNmYzMTgxNTJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE3Miw2ICsxNzIsMTEgQEAKICNpbXBvcnQgIlBlcHBlclVJ
Q29yZVNQSS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisjaW1wb3J0
IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViVGV4
dEluZGljYXRvckxheWVyLmg+CisjZW5kaWYKKwogI2ltcG9ydCA8cGFsL2lvcy9NYW5hZ2VkQ29u
ZmlndXJhdGlvblNvZnRMaW5rLmg+CiAKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJ
Q09OVEVYVE1FTlUpCkBAIC05NTgyLDYgKzk1ODcsNjcgQEAgLSAodm9pZClfaW52b2tlQWxsQWN0
aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjooV2ViS2l0OjpQcm9jZWVk
V2kKIAogI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogCisjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQorLSAodm9pZClzZXRVcFRleHRJbmRpY2F0b3I6KFJlZjxXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yCit7CisgICAgaWYgKF90ZXh0SW5kaWNhdG9yID09
IHRleHRJbmRpY2F0b3IucHRyKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBbc2VsZiB0
ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07CisgICAgW05TT2JqZWN0IGNhbmNlbFByZXZpb3Vz
UGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihzdGFydEZh
ZGVPdXQpIG9iamVjdDpuaWxdOworICAgIAorICAgIF90ZXh0SW5kaWNhdG9yID0gdGV4dEluZGlj
YXRvci5wdHIoKTsKKworICAgIENHUmVjdCBmcmFtZSA9IF90ZXh0SW5kaWNhdG9yLmdldCgpLT50
ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CisgICAgX3RleHRJbmRpY2F0
b3JMYXllciA9IGFkb3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgYWxsb2NdIGluaXRXaXRo
RnJhbWU6ZnJhbWUKKyAgICAgICAgdGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIG1hcmdpbjpD
R1NpemVaZXJvIG9mZnNldDpDR1BvaW50WmVyb10pOworICAgIAorICAgIFtbc2VsZiBsYXllcl0g
YWRkU3VibGF5ZXI6X3RleHRJbmRpY2F0b3JMYXllci5nZXQoKV07CisKKyAgICBpZiAoX3RleHRJ
bmRpY2F0b3ItPnByZXNlbnRhdGlvblRyYW5zaXRpb24oKSAhPSBXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSkKKyAgICAgICAgW190ZXh0SW5kaWNhdG9y
TGF5ZXIgcHJlc2VudF07CisgICAgCisgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3Rv
cihzdGFydEZhZGVPdXQpIHdpdGhPYmplY3Q6c2VsZiBhZnRlckRlbGF5OnRpbWVCZWZvcmVGYWRl
U3RhcnRzXTsKK30KKworLSAodm9pZCljbGVhclRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uCit7CisKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9IFdURk1vdmUoX3RleHRJ
bmRpY2F0b3IpOworICAgIAorICAgIGlmIChbX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091
dF0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFtfdGV4dElu
ZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5kaWNhdG9y
XSAmJiBbX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1h
dGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpG
YWRlT3V0KSB7CisgICAgICAgIFtzZWxmIHN0YXJ0RmFkZU91dF07CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07Cit9CisKKy0g
KHZvaWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClhbmltYXRpb25Q
cm9ncmVzcworeworICAgIGlmICghX3RleHRJbmRpY2F0b3IpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFtfdGV4dEluZGljYXRvckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNzOmFuaW1hdGlvblBy
b2dyZXNzXTsKK30KKworLSAodm9pZCl0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcgoreworICAg
IFtfdGV4dEluZGljYXRvckxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKK30KKworLSAodm9p
ZClzdGFydEZhZGVPdXQKK3sKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciBzZXRGYWRpbmdPdXQ6
WUVTXTsKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciBoaWRlV2l0aENvbXBsZXRpb25IYW5kbGVy
OltzZWxmXSB7CisgICAgICAgIFtzZWxmIHRlYXJkb3duVGV4dEluZGljYXRvckxheWVyXTsKKyAg
ICB9XTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisKICNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbkFkZGl0aW9uc0FmdGVyLm1tPgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CmluZGV4IDNmMmU5ZDUwZmZiMDAxYzI0NmQ0MTcxMGUwM2I0NDliZGM1ODY3ODQuLmFlNzYxOTBi
ZWM1MDk2ODQxMDNkMGU3YTJlMzg0ZjliY2NjZDk4ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CkBAIC04OCw2ICs4OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgog
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICNpbmNsdWRlICJQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
LmgiCkBAIC0xMjY5LDYgKzEyNzAsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmIGhpZ2hsaWdodCkgY29uc3QKICAgICBo
aWdobGlnaHQucmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA9IG1fcGFnZS5oaWdobGlnaHRSZXF1ZXN0
T3JpZ2luYXRlZEluQXBwKCk7CiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6U3RvcmVBcHBIaWdobGlnaHQoaGlnaGxpZ2h0KSk7CiB9CisKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJiBp
bmRpY2F0b3JEYXRhKSBjb25zdAoreworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yRGF0YSwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6VGVtcG9yYXJ5KSkpOwor
fQogI2VuZGlmCiAKIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OnNpZ25lZFB1YmxpY0tleUFuZENo
YWxsZW5nZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplSW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxl
bmdlU3RyaW5nLCBjb25zdCBVUkwmIHVybCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA0
ZWVmMWY4YWQxYzUyYWMwNTE2NTgyYmExNjE1NWNhZDAxYTE1NTcyLi5kN2VmYjA4ODU5ZGQwNTk0
MDY2ZTg0M2NhMjYwYjAxYTQ0ZTYzZmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNTEsNiAr
MzUxLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICB2b2lk
IHN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsK
KyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRh
dGEmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCmluZGV4IGYzZDQ3MTZhODkzM2Q5ZjI0MmY4ZWYxMjE1YTg2NjIzNDBmODk3YTUu
LjZlMThmMmIyNDIxNzEzYTJjNDBkNzQ0MThkNTI0Yjg1MzY0MTE2NWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYm
KSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6
VGV4dEluZGljYXRvckRhdGEmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA0NTM5Y2U2ZjY0ZDAwYjBiYjAwMjgz
ZWFjODE1MzI5NzkwMDRjNGU4Li40N2U3MTFhNjgyYjMyOTMzMDVkNzcyMDdhODQ3MTMzNzkyZjA3
Y2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03MTgsNiArNzE4LDkgQEAgc3RkOjp1bmlxdWVf
cHRyPERhdGVUaW1lQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEYXRlVGltZUNob29z
ZXIoRGF0ZVRpbWUKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChXZWJD
b3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QKIHsKIH0KK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpz
ZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJiBpbmRpY2F0
b3JEYXRhKSBjb25zdAoreworfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQo=
</data>
<flag name="commit-queue"
          id="449370"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428449</attachid>
            <date>2021-05-12 19:29:45 -0700</date>
            <delta_ts>2021-05-13 02:39:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210512192944.patch</filename>
            <type>text/plain</type>
            <size>19619</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaAppbmRleCBmZDEzZDA0MGVmZmI3NWIwZWEw
MDRlYTU1MWUzMjIxNTRhZTE4ZmFmLi5iNDhjNzViNzcyNTczYjMxNmY4ZTYwYjJlNDg0MDIzNjJi
NDc0ZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRp
Y2F0b3JMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGlj
YXRvckxheWVyLmgKQEAgLTMxLDcgKzMxLDEzIEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCi1AaW50ZXJmYWNlIFdlYlRleHRJbmRpY2F0b3JM
YXllciA6IENBTGF5ZXIgeworY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMg
PSAyOworY29uc3RleHByIENHRmxvYXQgcmltU2hhZG93Qmx1clJhZGl1cyA9IDE7Citjb25zdGV4
cHIgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjEyOworY29uc3Rl
eHByIENGVGltZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5pbWF0aW9u
RHVyYXRpb24gKyAwLjI7Citjb25zdGV4cHIgQ0dGbG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEuMjU7
CisKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViVGV4dEluZGljYXRvckxheWVyIDogQ0FM
YXllciB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+IF90ZXh0SW5kaWNhdG9y
OwogICAgIFJldGFpblB0cjxOU0FycmF5PiBfYm91bmNlTGF5ZXJzOwogICAgIENHU2l6ZSBfbWFy
Z2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNh
dG9yTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JM
YXllci5tbQppbmRleCBiOGM0ZDhmMDY3YmFjZWQwOWE4MTE4MDg3MTAzMDZjNTdhNzk0MzAwLi5j
NmFmY2JhMTMyYmRmYjA0YjgyZGU1YjVlMzc1ZTc3NjdmZTZjNzIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQpAQCAtMzgsMTkg
KzM4LDE1IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KICNlbmRpZgog
Ci1jb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjEy
OworCiBjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFuaW1hdGlv
bkR1cmF0aW9uID0gMC4zOwogY29uc3RleHByIENGVGltZUludGVydmFsIGZhZGVJbkFuaW1hdGlv
bkR1cmF0aW9uID0gMC4xNTsKLWNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCB0aW1lQmVmb3JlRmFk
ZVN0YXJ0cyA9IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4yOwogY29uc3RleHByIENGVGlt
ZUludGVydmFsIGZhZGVPdXRBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIAotY29uc3RleHByIENH
RmxvYXQgbWlkQm91bmNlU2NhbGUgPSAxLjI1OwogY29uc3RleHByIENHRmxvYXQgYm9yZGVyV2lk
dGggPSAwOwogY29uc3RleHByIENHRmxvYXQgY29ybmVyUmFkaXVzID0gMDsKIGNvbnN0ZXhwciBD
R0Zsb2F0IGRyb3BTaGFkb3dPZmZzZXRYID0gMDsKIGNvbnN0ZXhwciBDR0Zsb2F0IGRyb3BTaGFk
b3dPZmZzZXRZID0gMTsKLWNvbnN0ZXhwciBDR0Zsb2F0IGRyb3BTaGFkb3dCbHVyUmFkaXVzID0g
MjsKLWNvbnN0ZXhwciBDR0Zsb2F0IHJpbVNoYWRvd0JsdXJSYWRpdXMgPSAxOwogCiBjb25zdGV4
cHIgTlNTdHJpbmcgKiBjb25zdCB0ZXh0TGF5ZXJLZXkgPSBAIlRleHRMYXllciI7CiBjb25zdGV4
cHIgTlNTdHJpbmcgKiBjb25zdCBkcm9wU2hhZG93TGF5ZXJLZXkgPSBAIkRyb3BTaGFkb3dMYXll
ciI7CkBAIC0xMzIsMTMgKzEyOCwxMiBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZToo
Q0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0bwogICAgIGlm
ICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIAorICAg
IHNlbGYuYW5jaG9yUG9pbnQgPSBDR1BvaW50WmVybzsKICAgICBzZWxmLmZyYW1lID0gZnJhbWU7
CiAKICAgICBfdGV4dEluZGljYXRvciA9ICZ0ZXh0SW5kaWNhdG9yOwogICAgIF9tYXJnaW4gPSBt
YXJnaW47CiAKLSAgICBzZWxmLmFuY2hvclBvaW50ID0gQ0dQb2ludFplcm87Ci0KICAgICBSZWZQ
dHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IGNvbnRlbnRzSW1hZ2U7CiAgICAgV2ViQ29yZTo6Rmxv
YXRTaXplIGNvbnRlbnRzSW1hZ2VMb2dpY2FsU2l6ZSB7IDEsIDEgfTsKICAgICBpZiAoYXV0byog
Y29udGVudEltYWdlID0gX3RleHRJbmRpY2F0b3ItPmNvbnRlbnRJbWFnZSgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRleCBmODVmYTUz
YjNiNGE5ZjQ1OTY5Nzc2YTEyY2M0MTFmNzkyMmRmNzdjLi4wYTQ5NzI1NzI0YzliNGJmOTUyMDVl
NWRhZmJjNmFkNjhkOWE3OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9U
ZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KQEAgLTM4LDEyICszOCw2IEBACiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL05TQ29sb3JTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5o
PgogCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlvbiA9IDAuMTI7
Ci1jb25zdCBDRlRpbWVJbnRlcnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJvdW5jZUFuaW1h
dGlvbkR1cmF0aW9uICsgMC4yOwotCi1jb25zdCBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4y
NTsKLWNvbnN0IENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDQwYjc2MjM2MzlmZmFk
NDFiNDQyNDY4ZWIyZTE4MWFhMzRmMDE2NTMuLjJmODhiMjQ1MDdiZmFhMmEzNGM5YzRkNjhjNTEy
N2Y1OWRmYzU5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KQEAgLTQ4MSwxNCArNDgxLDI5IEBAIFJlZlB0cjxXZWJQb3B1cE1lbnVQ
cm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYp
CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0
b3I+IHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkKIHsKKyNpZiBF
TkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgW21fY29udGVudFZpZXcgc2V0VXBUZXh0SW5kaWNh
dG9yOnRleHRJbmRpY2F0b3JdOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odGV4dEluZGljYXRv
cik7CisjZW5kaWYKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9y
KFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbiBkaXNtaXNzYWxBbmltYXRpb24pCiB7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQor
ICAgIFttX2NvbnRlbnRWaWV3IGNsZWFyVGV4dEluZGljYXRvcjpkaXNtaXNzYWxBbmltYXRpb25d
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGlzbWlzc2FsQW5pbWF0aW9uKTsKKyNlbmRpZgog
fQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jl
c3MoZmxvYXQpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9u
UHJvZ3Jlc3MoZmxvYXQgYW5pbWF0aW9uUHJvZ3Jlc3MpCiB7CisjaWYgRU5BQkxFKEFQUF9ISUdI
TElHSFRTKQorICAgIFttX2NvbnRlbnRWaWV3IHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9n
cmVzczphbmltYXRpb25Qcm9ncmVzc107CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShhbmltYXRp
b25Qcm9ncmVzcyk7CisjZW5kaWYKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZW50ZXJBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVD
b250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDg4NmFlNzVlNjdiNTZhZWIzODM3ODRmNTk2YzlkOGY3
MjkxMjU2ZTcuLjc4YjU4Yzg2MDY2MzUzZGU2N2Y4MTE4YTdkNzgyNmU4YjllNmY0ODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgKQEAgLTg5LDYgKzg5LDcgQEAgc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7
CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFz
cyBNb3VzZUV2ZW50UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9s
aWN5IDogdWludDhfdDsKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbiA6IHVpbnQ4X3Q7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogc3RydWN0IERy
YWdJdGVtOwpAQCAtMTMyLDYgKzEzMywxMCBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAjZW5kaWYK
ICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorQGNsYXNzIFdlYlRleHRJbmRp
Y2F0b3JMYXllcjsKKyNlbmRpZgorCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBv
cnQgPFdlYktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnNCZWZv
cmUuaD4KICNlbmRpZgpAQCAtMzMwLDYgKzMzNSwxMSBAQCBlbnVtIGNsYXNzIFByb2NlZWRXaXRo
SW1hZ2VFeHRyYWN0aW9uIDogYm9vbCB7CiAjZW5kaWYKICAgICBSZXRhaW5QdHI8VUlQcmV2aWV3
SXRlbUNvbnRyb2xsZXI+IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI7CiAjZW5kaWYKKyAgICAKKyNp
ZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJbmRpY2F0
b3I+IF90ZXh0SW5kaWNhdG9yOworICAgIFJldGFpblB0cjxXZWJUZXh0SW5kaWNhdG9yTGF5ZXI+
IF90ZXh0SW5kaWNhdG9yTGF5ZXI7CisjZW5kaWYKIAogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQog
ICAgIFJldGFpblB0cjxVSVRhcmdldGVkUHJldmlldz4gX2NvbnRleHRNZW51SW50ZXJhY3Rpb25U
YXJnZXRlZFByZXZpZXc7CkBAIC02NzAsNiArNjgwLDEzIEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tD
T05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJ
RVcpCiAtICh2b2lkKV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZTsKIC0gKHZv
aWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWU7CiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdI
VFMpCistICh2b2lkKXNldFVwVGV4dEluZGljYXRvcjooUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0
b3I+KXRleHRJbmRpY2F0b3I7CistICh2b2lkKXNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9n
cmVzczooZmxvYXQpTlNBbmltYXRpb25Qcm9ncmVzczsKKy0gKHZvaWQpY2xlYXJUZXh0SW5kaWNh
dG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1h
dGlvbjsKKworI2VuZGlmCisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBf
c2hvdWxkVXNlQ29udGV4dE1lbnVzOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIF9zaG91bGRBdm9pZFJlc2l6aW5nV2hlbklucHV0Vmlld0JvdW5kc0NoYW5nZTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkQXZvaWRTY3JvbGxpbmdXaGVu
Rm9jdXNlZENvbnRlbnRJc1Zpc2libGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBhNjA4NjlhNzdmOTI1
NzBiMjBjOWY3MTkzZGFjZDEwMTEyMWZhMTdhLi43MzFmMTE1NTFjYzNhNDRiYWNkNjkyMmEyMmNh
ZDFlNmYzMTgxNTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE3Miw2ICsxNzIsMTEgQEAKICNpbXBv
cnQgIlBlcHBlclVJQ29yZVNQSS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdI
VFMpCisjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvV2ViVGV4dEluZGljYXRvckxheWVyLmg+CisjZW5kaWYKKwogI2ltcG9ydCA8cGFsL2lv
cy9NYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg+CiAKICNpZiBIQVZFKExJTktfUFJFVklF
VykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCkBAIC05NTgyLDYgKzk1ODcsNjcgQEAgLSAodm9pZClf
aW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjooV2Vi
S2l0OjpQcm9jZWVkV2kKIAogI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogCisj
aWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorLSAodm9pZClzZXRVcFRleHRJbmRpY2F0b3I6KFJl
ZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yCit7CisgICAgaWYgKF90ZXh0
SW5kaWNhdG9yID09IHRleHRJbmRpY2F0b3IucHRyKCkpCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07CisgICAgW05TT2JqZWN0IGNh
bmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3RvcihzdGFydEZhZGVPdXQpIG9iamVjdDpuaWxdOworICAgIAorICAgIF90ZXh0SW5kaWNhdG9y
ID0gdGV4dEluZGljYXRvci5wdHIoKTsKKworICAgIENHUmVjdCBmcmFtZSA9IF90ZXh0SW5kaWNh
dG9yLmdldCgpLT50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CisgICAg
X3RleHRJbmRpY2F0b3JMYXllciA9IGFkb3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgYWxs
b2NdIGluaXRXaXRoRnJhbWU6ZnJhbWUKKyAgICAgICAgdGV4dEluZGljYXRvcjp0ZXh0SW5kaWNh
dG9yIG1hcmdpbjpDR1NpemVaZXJvIG9mZnNldDpDR1BvaW50WmVyb10pOworICAgIAorICAgIFtb
c2VsZiBsYXllcl0gYWRkU3VibGF5ZXI6X3RleHRJbmRpY2F0b3JMYXllci5nZXQoKV07CisKKyAg
ICBpZiAoX3RleHRJbmRpY2F0b3ItPnByZXNlbnRhdGlvblRyYW5zaXRpb24oKSAhPSBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSkKKyAgICAgICAgW190
ZXh0SW5kaWNhdG9yTGF5ZXIgcHJlc2VudF07CisgICAgCisgICAgW3NlbGYgcGVyZm9ybVNlbGVj
dG9yOkBzZWxlY3RvcihzdGFydEZhZGVPdXQpIHdpdGhPYmplY3Q6c2VsZiBhZnRlckRlbGF5OnRp
bWVCZWZvcmVGYWRlU3RhcnRzXTsKK30KKworLSAodm9pZCljbGVhclRleHRJbmRpY2F0b3I6KFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uCit7
CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9IFdU
Rk1vdmUoX3RleHRJbmRpY2F0b3IpOworICAgIAorICAgIGlmIChbX3RleHRJbmRpY2F0b3JMYXll
ciBpc0ZhZGluZ091dF0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0ZXh0SW5kaWNhdG9y
ICYmIFtfdGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0
ZXh0SW5kaWNhdG9yXSAmJiBbX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmltYXRp
b25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0KSB7CisgICAgICAgIFtzZWxmIHN0YXJ0RmFkZU91dF07CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXll
cl07Cit9CisKKy0gKHZvaWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9h
dClhbmltYXRpb25Qcm9ncmVzcworeworICAgIGlmICghX3RleHRJbmRpY2F0b3IpCisgICAgICAg
IHJldHVybjsKKworICAgIFtfdGV4dEluZGljYXRvckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNz
OmFuaW1hdGlvblByb2dyZXNzXTsKK30KKworLSAodm9pZCl0ZWFyZG93blRleHRJbmRpY2F0b3JM
YXllcgoreworICAgIFtfdGV4dEluZGljYXRvckxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsK
K30KKworLSAodm9pZClzdGFydEZhZGVPdXQKK3sKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciBz
ZXRGYWRpbmdPdXQ6WUVTXTsKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciBoaWRlV2l0aENvbXBs
ZXRpb25IYW5kbGVyOltzZWxmXSB7CisgICAgICAgIFtzZWxmIHRlYXJkb3duVGV4dEluZGljYXRv
ckxheWVyXTsKKyAgICB9XTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisK
ICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9uc0FmdGVyLm1tPgogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCmluZGV4IDNmMmU5ZDUwZmZiMDAxYzI0NmQ0MTcxMGUwM2I0NDliZGM1ODY3
ODQuLmFlNzYxOTBiZWM1MDk2ODQxMDNkMGU3YTJlMzg0ZjliY2NjZDk4ODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCkBAIC04OCw2ICs4OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0
eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRv
cldpbmRvdy5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykg
JiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICNpbmNsdWRlICJQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyLmgiCkBAIC0xMjY5LDYgKzEyNzAsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmIGhpZ2hsaWdodCkg
Y29uc3QKICAgICBoaWdobGlnaHQucmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA9IG1fcGFnZS5oaWdo
bGlnaHRSZXF1ZXN0T3JpZ2luYXRlZEluQXBwKCk7CiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U3RvcmVBcHBIaWdobGlnaHQoaGlnaGxpZ2h0KSk7CiB9CisKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEYXRhJiBpbmRpY2F0b3JEYXRhKSBjb25zdAoreworICAgIG1fcGFnZS5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yRGF0YSwgc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6VGVt
cG9yYXJ5KSkpOworfQogI2VuZGlmCiAKIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OnNpZ25lZFB1
YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplSW5kZXgsIGNvbnN0IFN0
cmluZyYgY2hhbGxlbmdlU3RyaW5nLCBjb25zdCBVUkwmIHVybCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCA0ZWVmMWY4YWQxYzUyYWMwNTE2NTgyYmExNjE1NWNhZDAxYTE1NTcyLi5kN2Vm
YjA4ODU5ZGQwNTk0MDY2ZTg0M2NhMjYwYjAxYTQ0ZTYzZmUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC0zNTEsNiArMzUxLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hU
UykKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmKSBj
b25zdCBmaW5hbDsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4
dEluZGljYXRvckRhdGEmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9D
UllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGYzZDQ3MTZhODkzM2Q5ZjI0MmY4ZWYxMjE1YTg2
NjIzNDBmODk3YTUuLjZlMThmMmIyNDIxNzEzYTJjNDBkNzQ0MThkNTI0Yjg1MzY0MTE2NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJM
RShBUFBfSElHSExJR0hUUykKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFw
cEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29u
c3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAj
aWYgRU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA0NTM5Y2U2ZjY0
ZDAwYjBiYjAwMjgzZWFjODE1MzI5NzkwMDRjNGU4Li40N2U3MTFhNjgyYjMyOTMzMDVkNzcyMDdh
ODQ3MTMzNzkyZjA3Y2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03MTgsNiArNzE4LDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVE
YXRlVGltZUNob29zZXIoRGF0ZVRpbWUKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFwcEhp
Z2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QKIHsKIH0KK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JE
YXRhJiBpbmRpY2F0b3JEYXRhKSBjb25zdAoreworfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9J
TlRFUl9MT0NLKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428472</attachid>
            <date>2021-05-13 02:39:16 -0700</date>
            <delta_ts>2021-05-13 02:49:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513023915.patch</filename>
            <type>text/plain</type>
            <size>52304</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRv
ci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLmY5ZTg2
MDhmMWFlNTQ1NDUzNWVhMDY3MThlMDc5N2Y2NjkyYzAzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCkBAIC0zOSw2ICszOSwyNiBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIAorY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd0JsdXJS
YWRpdXMgPSAyOworY29uc3RleHByIENHRmxvYXQgcmltU2hhZG93Qmx1clJhZGl1cyA9IDE7Citj
b25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjEyOwor
Y29uc3RleHByIENGVGltZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5p
bWF0aW9uRHVyYXRpb24gKyAwLjI7Citjb25zdGV4cHIgQ0dGbG9hdCBtaWRCb3VuY2VTY2FsZSA9
IDEuMjU7CisKKworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgOiB1aW50OF90IHsK
KyAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgaW5kaWNhdGUgdGhlIHRleHQgdW50aWwg
ZGlzbWlzc2VkLgorICAgIFBlcm1hbmVudCwKKworICAgIC8vIFRoZSBUZXh0SW5kaWNhdG9yIHNo
b3VsZCBicmllZmx5IGluZGljYXRlIHRoZSB0ZXh0IGFuZCB0aGVuIGF1dG9tYXRpY2FsbHkgZGlz
bWlzcy4KKyAgICBUZW1wb3JhcnkKK307CisKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21p
c3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3QgeworICAgIE5vbmUsCisgICAgRmFkZU91dAorfTsKKwog
Ly8gRklYTUU6IE1vdmUgUHJlc2VudGF0aW9uVHJhbnNpdGlvbiB0byBUZXh0SW5kaWNhdG9yV2lu
ZG93LCBiZWNhdXNlIGl0J3MgYWJvdXQgcHJlc2VudGF0aW9uLgogZW51bSBjbGFzcyBUZXh0SW5k
aWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4X3QgewogICAgIE5vbmUsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaAppbmRl
eCBmZDEzZDA0MGVmZmI3NWIwZWEwMDRlYTU1MWUzMjIxNTRhZTE4ZmFmLi5iZWJmOTNhMzZlZDcw
ZTZiMzA5ZGU4OTU4MWExODM2NjVlMzhjMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKLUBpbnRlcmZh
Y2UgV2ViVGV4dEluZGljYXRvckxheWVyIDogQ0FMYXllciB7CitXRUJDT1JFX0VYUE9SVCBAaW50
ZXJmYWNlIFdlYlRleHRJbmRpY2F0b3JMYXllciA6IENBTGF5ZXIgewogICAgIFJlZlB0cjxXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yPiBfdGV4dEluZGljYXRvcjsKICAgICBSZXRhaW5QdHI8TlNBcnJh
eT4gX2JvdW5jZUxheWVyczsKICAgICBDR1NpemUgX21hcmdpbjsKQEAgLTUzLDMgKzUzLDQgQEAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNGYWRpbmdPdXQpIEJPT0wgZmFkaW5nT3V0
OwogCiBAZW5kCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4
dEluZGljYXRvckxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5k
aWNhdG9yTGF5ZXIubW0KaW5kZXggYjhjNGQ4ZjA2N2JhY2VkMDlhODExODA4NzEwMzA2YzU3YTc5
NDMwMC4uYjZiYzExYmJiMGNjZDIxNDVkMmI3ZjJkNjg3YmI2ZWU0YmY2MjM0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KQEAg
LTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiUGF0
aFV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgorI2ltcG9ydCAiVGV4dElu
ZGljYXRvcldpbmRvdy5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVn
YXRlLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CkBAIC0zOCwxOSArMzksMTUgQEAKICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvTlNDb2xvclNQSS5oPgogI2VuZGlmCiAKLWNvbnN0ZXhwciBDRlRp
bWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlvbiA9IDAuMTI7CisKIGNvbnN0ZXhwciBD
RlRpbWVJbnRlcnZhbCBib3VuY2VXaXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjM7
CiBjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgZmFkZUluQW5pbWF0aW9uRHVyYXRpb24gPSAwLjE1
OwotY29uc3RleHByIENGVGltZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNl
QW5pbWF0aW9uRHVyYXRpb24gKyAwLjI7CiBjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgZmFkZU91
dEFuaW1hdGlvbkR1cmF0aW9uID0gMC4zOwogCi1jb25zdGV4cHIgQ0dGbG9hdCBtaWRCb3VuY2VT
Y2FsZSA9IDEuMjU7CiBjb25zdGV4cHIgQ0dGbG9hdCBib3JkZXJXaWR0aCA9IDA7CiBjb25zdGV4
cHIgQ0dGbG9hdCBjb3JuZXJSYWRpdXMgPSAwOwogY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRv
d09mZnNldFggPSAwOwogY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09mZnNldFkgPSAxOwot
Y29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotY29uc3RleHByIENH
RmxvYXQgcmltU2hhZG93Qmx1clJhZGl1cyA9IDE7CiAKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNv
bnN0IHRleHRMYXllcktleSA9IEAiVGV4dExheWVyIjsKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNv
bnN0IGRyb3BTaGFkb3dMYXllcktleSA9IEAiRHJvcFNoYWRvd0xheWVyIjsKQEAgLTEzMiwxMyAr
MTI5LDEyIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4
dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgCisgICAgc2VsZi5hbmNob3JQb2lu
dCA9IENHUG9pbnRaZXJvOwogICAgIHNlbGYuZnJhbWUgPSBmcmFtZTsKIAogICAgIF90ZXh0SW5k
aWNhdG9yID0gJnRleHRJbmRpY2F0b3I7CiAgICAgX21hcmdpbiA9IG1hcmdpbjsKIAotICAgIHNl
bGYuYW5jaG9yUG9pbnQgPSBDR1BvaW50WmVybzsKLQogICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRp
dmVJbWFnZT4gY29udGVudHNJbWFnZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgY29udGVudHNJ
bWFnZUxvZ2ljYWxTaXplIHsgMSwgMSB9OwogICAgIGlmIChhdXRvKiBjb250ZW50SW1hZ2UgPSBf
dGV4dEluZGljYXRvci0+Y29udGVudEltYWdlKCkpIHsKQEAgLTE5Miw3ICsxODgsNyBAQCAtIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdl
YkNvcmU6OlRleHRJbmRpY2F0bwogICAgICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gZHJvcFNoYWRv
d0xheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW2Ryb3BT
aGFkb3dMYXllciBzZXREZWxlZ2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRl
IHNoYXJlZF1dOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd0NvbG9yOmRyb3BT
aGFkb3dDb2xvci5nZXQoKV07Ci0gICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UmFk
aXVzOmRyb3BTaGFkb3dCbHVyUmFkaXVzXTsKKyAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRT
aGFkb3dSYWRpdXM6V2ViQ29yZTo6ZHJvcFNoYWRvd0JsdXJSYWRpdXNdOwogICAgICAgICBbZHJv
cFNoYWRvd0xheWVyIHNldFNoYWRvd09mZnNldDpDR1NpemVNYWtlKGRyb3BTaGFkb3dPZmZzZXRY
LCBkcm9wU2hhZG93T2Zmc2V0WSldOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRv
d1BhdGg6dHJhbnNsYXRlZFBhdGgucGxhdGZvcm1QYXRoKCldOwogICAgICAgICBbZHJvcFNoYWRv
d0xheWVyIHNldFNoYWRvd09wYWNpdHk6MV07CkBAIC0yMDQsNyArMjAwLDcgQEAgLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG8KICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldERlbGVnYXRlOltXZWJB
Y3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07CiAgICAgICAgIFtyaW1TaGFk
b3dMYXllciBzZXRGcmFtZTp5ZWxsb3dIaWdobGlnaHRSZWN0XTsKICAgICAgICAgW3JpbVNoYWRv
d0xheWVyIHNldFNoYWRvd0NvbG9yOnJpbVNoYWRvd0NvbG9yLmdldCgpXTsKLSAgICAgICAgW3Jp
bVNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1czpyaW1TaGFkb3dCbHVyUmFkaXVzXTsKKyAgICAg
ICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1czpXZWJDb3JlOjpyaW1TaGFkb3dCbHVy
UmFkaXVzXTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRl
ZFBhdGgucGxhdGZvcm1QYXRoKCldOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93
T2Zmc2V0OkNHU2l6ZVplcm9dOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93T3Bh
Y2l0eToxXTsKQEAgLTI0NSw3ICsyNDEsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENBS2V5ZnJhbWVB
bmltYXRpb24+IGNyZWF0ZUJvdW5jZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZhbCBkdXJhdAogICAg
IFJldGFpblB0cjxDQUtleWZyYW1lQW5pbWF0aW9uPiBib3VuY2VBbmltYXRpb24gPSBbQ0FLZXlm
cmFtZUFuaW1hdGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDpAInRyYW5zZm9ybSJdOwogICAgIFti
b3VuY2VBbmltYXRpb24gc2V0VmFsdWVzOkBbCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENB
VHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XSwKLSAgICAgICAgW05TVmFsdWUgdmFs
dWVXaXRoQ0FUcmFuc2Zvcm0zRDpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKG1pZEJvdW5jZVNjYWxl
LCBtaWRCb3VuY2VTY2FsZSwgMSldLAorICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5z
Zm9ybTNEOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUoV2ViQ29yZTo6bWlkQm91bmNlU2NhbGUsIFdl
YkNvcmU6Om1pZEJvdW5jZVNjYWxlLCAxKV0sCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENB
VHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XQogICAgICAgICBdXTsKICAgICBbYm91
bmNlQW5pbWF0aW9uIHNldER1cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTI5NCw3ICsyOTAsNyBAQCAt
IChDRlRpbWVJbnRlcnZhbClfYW5pbWF0aW9uRHVyYXRpb24KICAgICBpZiAoW3NlbGYgaW5kaWNh
dG9yV2FudHNCb3VuY2U6Kl90ZXh0SW5kaWNhdG9yXSkgewogICAgICAgICBpZiAoaW5kaWNhdG9y
V2FudHNDb250ZW50Q3Jvc3NmYWRlKCpfdGV4dEluZGljYXRvcikpCiAgICAgICAgICAgICByZXR1
cm4gYm91bmNlV2l0aENyb3NzZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwotICAgICAgICByZXR1cm4g
Ym91bmNlQW5pbWF0aW9uRHVyYXRpb247CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpib3VuY2VB
bmltYXRpb25EdXJhdGlvbjsKICAgICB9CiAKICAgICByZXR1cm4gZmFkZUluQW5pbWF0aW9uRHVy
YXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9y
V2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93LmgK
aW5kZXggYzNiMzNlYmEyYzhiYzBkNzU0NTlkZDIxNTA4OWI2NTI5YzVkMzE1ZC4uZjdmZmY3Yzcz
YTFkMmZmNzU0YjI3ODdjYTIyOTk1MjM4MDMxMzM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaApAQCAtMzYsMTkgKzM2LDYgQEAgT0JKQ19DTEFT
UyBXZWJUZXh0SW5kaWNhdG9yTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgOiB1aW50OF90IHsKLSAgICAvLyBUaGUg
VGV4dEluZGljYXRvciBzaG91bGQgaW5kaWNhdGUgdGhlIHRleHQgdW50aWwgZGlzbWlzc2VkLgot
ICAgIFBlcm1hbmVudCwKLQotICAgIC8vIFRoZSBUZXh0SW5kaWNhdG9yIHNob3VsZCBicmllZmx5
IGluZGljYXRlIHRoZSB0ZXh0IGFuZCB0aGVuIGF1dG9tYXRpY2FsbHkgZGlzbWlzcy4KLSAgICBU
ZW1wb3JhcnkKLX07Ci0KLWVudW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbiA6IHVpbnQ4X3QgewotICAgIE5vbmUsCi0gICAgRmFkZU91dAotfTsKLQogI2lmIFBM
QVRGT1JNKE1BQykKIAogY2xhc3MgVGV4dEluZGljYXRvcldpbmRvdyB7CkBAIC01OSw4ICs0Niw4
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBUZXh0SW5kaWNhdG9yV2lu
ZG93KE5TVmlldyAqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+VGV4dEluZGljYXRvcldpbmRvdygp
OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5k
aWNhdG9yPiwgQ0dSZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUp
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4sIENHUmVjdCBjb250ZW50UmVjdCwgVGV4
dEluZGljYXRvckxpZmV0aW1lKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyVGV4dElu
ZGljYXRvcihUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogCkBAIC04MSwzICs2OCw1
IEBAIHByaXZhdGU6CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5k
b3cubW0KaW5kZXggZjg1ZmE1M2IzYjRhOWY0NTk2OTc3NmExMmNjNDExZjc5MjJkZjc3Yy4uNWU2
MjNkMjRiNTU5ZTgxNTFhNTBlOTQ2ODY5NWNlMGNjYTU4M2NkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCkBAIC0zOCwxNiArMzgsOCBAQAog
I2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0NvbG9yU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL1F1YXJ0ekNvcmVTUEkuaD4KIAotY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0
aW9uRHVyYXRpb24gPSAwLjEyOwotY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVT
dGFydHMgPSBib3VuY2VBbmltYXRpb25EdXJhdGlvbiArIDAuMjsKLQotY29uc3QgQ0dGbG9hdCBt
aWRCb3VuY2VTY2FsZSA9IDEuMjU7Ci1jb25zdCBDR0Zsb2F0IGRyb3BTaGFkb3dCbHVyUmFkaXVz
ID0gMjsKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQogVGV4dEluZGljYXRvcldpbmRvdzo6VGV4dEluZGljYXRvcldpbmRvdyhOU1ZpZXcgKnRhcmdl
dFZpZXcpCiAgICAgOiBtX3RhcmdldFZpZXcodGFyZ2V0VmlldykKICAgICAsIG1fdGVtcG9yYXJ5
VGV4dEluZGljYXRvclRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRleHRJbmRpY2F0b3JX
aW5kb3c6OnN0YXJ0RmFkZU91dCkKQEAgLTU2LDcgKzQ4LDcgQEAgVGV4dEluZGljYXRvcldpbmRv
dzo6VGV4dEluZGljYXRvcldpbmRvdyhOU1ZpZXcgKnRhcmdldFZpZXcpCiAKIFRleHRJbmRpY2F0
b3JXaW5kb3c6On5UZXh0SW5kaWNhdG9yV2luZG93KCkKIHsKLSAgICBjbGVhclRleHRJbmRpY2F0
b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAg
Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRp
b246OkZhZGVPdXQpOwogfQogCiB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldEFuaW1hdGlv
blByb2dyZXNzKGZsb2F0IHByb2dyZXNzKQpAQCAtNjcsMTQgKzU5LDE0IEBAIHZvaWQgVGV4dElu
ZGljYXRvcldpbmRvdzo6c2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCiAgICAg
W21fdGV4dEluZGljYXRvckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNzOnByb2dyZXNzXTsKIH0K
IAotdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGlj
YXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCit2b2lkIFRleHRJbmRpY2F0
b3JXaW5kb3c6OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlz
c2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKIHsKICAgICBSZWZQdHI8VGV4dEluZGljYXRvcj4gdGV4
dEluZGljYXRvciA9IFdURk1vdmUobV90ZXh0SW5kaWNhdG9yKTsKIAogICAgIGlmIChbbV90ZXh0
SW5kaWNhdG9yTGF5ZXIgaXNGYWRpbmdPdXRdKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
dGV4dEluZGljYXRvciAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2FudHNNYW51
YWxBbmltYXRpb246KnRleHRJbmRpY2F0b3JdICYmIFttX3RleHRJbmRpY2F0b3JMYXllciBoYXND
b21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7CisgICAgaWYgKHRleHRJbmRpY2F0b3IgJiYgW21f
dGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5k
aWNhdG9yXSAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9uXSAm
JiBhbmltYXRpb24gPT0gV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6
RmFkZU91dCkgewogICAgICAgICBzdGFydEZhZGVPdXQoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTgyLDcgKzc0LDcgQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpjbGVhclRleHRJ
bmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGkKICAgICBjbG9zZVdp
bmRvdygpOwogfQogCi12b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3Io
UmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUmVjdCB0ZXh0Qm91bmRpbmdSZWN0
SW5TY3JlZW5Db29yZGluYXRlcywgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIGxpZmV0aW1l
KQordm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5k
aWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBDR1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29v
cmRpbmF0ZXMsIFRleHRJbmRpY2F0b3JMaWZldGltZSBsaWZldGltZSkKIHsKICAgICBpZiAobV90
ZXh0SW5kaWNhdG9yID09IHRleHRJbmRpY2F0b3IucHRyKCkpCiAgICAgICAgIHJldHVybjsKQEAg
LTk1LDggKzg3LDggQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9y
KFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBDR1IKICAgICBDR0Zsb2F0IHZlcnRp
Y2FsTWFyZ2luID0gZHJvcFNoYWRvd0JsdXJSYWRpdXMgKiAyICsgVGV4dEluZGljYXRvcjo6ZGVm
YXVsdFZlcnRpY2FsTWFyZ2luOwogICAgIAogICAgIGlmIChbbV90ZXh0SW5kaWNhdG9yTGF5ZXIg
aW5kaWNhdG9yV2FudHNCb3VuY2U6Km1fdGV4dEluZGljYXRvcl0pIHsKLSAgICAgICAgaG9yaXpv
bnRhbE1hcmdpbiA9IHN0ZDo6bWF4KGhvcml6b250YWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJ
blNjcmVlbkNvb3JkaW5hdGVzLnNpemUud2lkdGggKiAobWlkQm91bmNlU2NhbGUgLSAxKSArIGhv
cml6b250YWxNYXJnaW4pOwotICAgICAgICB2ZXJ0aWNhbE1hcmdpbiA9IHN0ZDo6bWF4KHZlcnRp
Y2FsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLmhlaWdo
dCAqIChtaWRCb3VuY2VTY2FsZSAtIDEpICsgdmVydGljYWxNYXJnaW4pOworICAgICAgICBob3Jp
em9udGFsTWFyZ2luID0gc3RkOjptYXgoaG9yaXpvbnRhbE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVj
dEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS53aWR0aCAqIChXZWJDb3JlOjptaWRCb3VuY2VTY2Fs
ZSAtIDEpICsgaG9yaXpvbnRhbE1hcmdpbik7CisgICAgICAgIHZlcnRpY2FsTWFyZ2luID0gc3Rk
OjptYXgodmVydGljYWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVz
LnNpemUuaGVpZ2h0ICogKFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxlIC0gMSkgKyB2ZXJ0aWNhbE1h
cmdpbik7CiAgICAgfQogCiAgICAgaG9yaXpvbnRhbE1hcmdpbiA9IENHQ2VpbGluZyhob3Jpem9u
dGFsTWFyZ2luKTsKQEAgLTEyNSw4ICsxMTcsOCBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6
OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUgog
ICAgIGlmIChtX3RleHRJbmRpY2F0b3ItPnByZXNlbnRhdGlvblRyYW5zaXRpb24oKSAhPSBUZXh0
SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSkKICAgICAgICAgW21fdGV4dElu
ZGljYXRvckxheWVyIHByZXNlbnRdOwogCi0gICAgaWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0
b3JXaW5kb3dMaWZldGltZTo6VGVtcG9yYXJ5KQotICAgICAgICBtX3RlbXBvcmFyeVRleHRJbmRp
Y2F0b3JUaW1lci5zdGFydE9uZVNob3QoMV9zICogdGltZUJlZm9yZUZhZGVTdGFydHMpOworICAg
IGlmIChsaWZldGltZSA9PSBUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkKKyAgICAg
ICAgbV90ZW1wb3JhcnlUZXh0SW5kaWNhdG9yVGltZXIuc3RhcnRPbmVTaG90KDFfcyAqIFdlYkNv
cmU6OnRpbWVCZWZvcmVGYWRlU3RhcnRzKTsKIH0KIAogdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93
OjpjbG9zZVdpbmRvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaAppbmRleCAzYWQ1MTQyY2QxNzdhYWRhZTVjMzg1MzJkNTdmY2E0MzgwYWNkNGI2Li5jNWM0
NjYyMGJhY2Q1NTU5YjQ5M2UwMzFlNTRiOWMwY2M3MWVhYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTQxMSw4ICs0MTEsOCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7CiAKLSAgICB2b2lkIHNldFRleHRJ
bmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dMaWZldGltZSA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVy
bWFuZW50KTsKLSAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29y
ZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbik7CisgICAgdm9pZCBzZXRU
ZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImLCBUZXh0SW5kaWNhdG9yTGlmZXRp
bWUgPSBUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudCk7CisgICAgdm9pZCBjbGVhclRl
eHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxB
bmltYXRpb24pOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZs
b2F0KTsKICAgICB2b2lkIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmll
d09ubHkoKTsKICAgICB2b2lkIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRo
QW5pbWF0aW9uKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbQppbmRleCAyM2E1MDQ2ODExNDEzMzUxOWYyZWQxYmRjZDgyNGNkOTJhNjViNDFmLi4x
NWFlZWEzNTYzOWQyNDYzNWEwNmEyZjQ4ZWQ0MDg3YWQ1ZDBiMzY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtNDIzLDcgKzQyMyw3IEBAIC0g
KHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0
OihpZClvYmplY3QgY2hhbmdlOihOCiAjaWYgIUVOQUJMRShSRVZFQUwpCiAtICh2b2lkKV9kaWN0
aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRp
b24KIHsKLSAgICBfaW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICBfaW1w
bC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKIH0KICNlbmRpZgogCkBAIC0zNDk1LDcgKzM0OTUs
NyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCiAgICAgICAgIHVw
ZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c2V0VGV4
dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFdlYlZpZXdJbXBs
OjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3Is
IFRleHRJbmRpY2F0b3JMaWZldGltZSBsaWZldGltZSkKIHsKICAgICBpZiAoIW1fdGV4dEluZGlj
YXRvcldpbmRvdykKICAgICAgICAgbV90ZXh0SW5kaWNhdG9yV2luZG93ID0gbWFrZVVuaXF1ZTxX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93PihtX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkpOwpA
QCAtMzUwNCw3ICszNTA0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0VGV4dEluZGljYXRvcihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3IKICAgICBtX3RleHRJ
bmRpY2F0b3JXaW5kb3ctPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgTlNSZWN0VG9D
R1JlY3QodGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMpLCBsaWZldGltZSk7CiB9
CiAKLXZvaWQgV2ViVmlld0ltcGw6OmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCit2
b2lkIFdlYlZpZXdJbXBsOjpjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQogewogICAgIGlmICht
X3RleHRJbmRpY2F0b3JXaW5kb3cpCiAgICAgICAgIG1fdGV4dEluZGljYXRvcldpbmRvdy0+Y2xl
YXJUZXh0SW5kaWNhdG9yKGFuaW1hdGlvbik7CkBAIC0zNTI3LDcgKzM1MjcsNyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlv
bkZyb21WaWV3T25seShibwogICAgIC8vIENhbGxpbmcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb24gaGVyZSB3aWxsIHdpbiBvdXQgb3ZlciB0aGUgYW5pbWF0ZWQgY2xlYXIgaW4gZGlz
bWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seS4KICAgICAvLyBXZSBj
YW4ndCBpbnZlcnQgdGhlc2UgYmVjYXVzZSBjbGllbnRzIGNhbiBvdmVycmlkZSAoYW5kIGhhdmUg
b3ZlcnJpZGRlbikgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3MsIHNvIGl0IG5l
ZWRzIHRvIGJlIGNhbGxlZC4KICAgICAvLyBGb3IgdGhpcyBzYW1lIHJlYXNvbiwgdGhpcyBjYW4n
dCBiZSBtb3ZlZCB0byBXZWJWaWV3SW1wbCB3aXRob3V0IGNhcmUuCi0gICAgY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbihhbmltYXRlID8gV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCA6IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb24oYW5pbWF0ZSA/IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRp
b246OkZhZGVPdXQgOiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpO
b25lKTsKICAgICBbbV92aWV3IF93ZWJfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93
c107CiB9CiAKQEAgLTM1NDQsNyArMzU0NCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpc21pc3ND
b250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkoKQogICAgICAgICAgICAgW1tn
ZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSByZXF1ZXN0QnViYmxlQ2xv
c3VyZVVuYW5jaG9yT25GYWlsdXJlOllFU107CiAgICAgfQogCi0gICAgY2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5p
bWF0aW9uOjpGYWRlT3V0KTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogCiAgICAg
W21faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRX
aW5kb3dzXTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDQxN2UxMWQ0
OTY2MDdhMzAwY2ZiNjVmZWQ2YzdmNGNhY2UwYzkyNmQuLmEzNTczMWVjMDFkOWU1ZTE1MDJlNjA1
ZTUyODJmZWYwYjA0NWQ2ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAg
LTEwNiw4ICsxMDYsOCBAQCBjbGFzcyBTZWxlY3Rpb25EYXRhOwogZW51bSBjbGFzcyBNb3VzZUV2
ZW50UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgU2Nyb2xsYmFyU3R5bGUgOiB1aW50OF90OwotZW51bSBjbGFzcyBU
ZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgOiB1aW50OF90OwotZW51bSBjbGFzcyBUZXh0SW5k
aWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdDsKK2VudW0gY2xhc3MgVGV4
dEluZGljYXRvckxpZmV0aW1lIDogdWludDhfdDsKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckRp
c21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVz
cG9uc2UgOiB1aW50OF90OwogCiBzdHJ1Y3QgQXBwSGlnaGxpZ2h0OwpAQCAtMzg1LDggKzM4NSw4
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdmlydHVhbCB2
b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xl
YXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmlt
YXRpb24pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29y
ZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpID0gMDsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVw
SW5mbyYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IGVhNWMzNDkwNzMzYzJiMGU5MWRlODQ4ODhlMzAwNGFlOWJhYjg0NWQuLmViMWRhMGE4M2VkYTU4
YjQ3ZTdlY2M1OWY2ODA2MzJjMTYwNzBmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtMjE4LDcgKzIxOCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BdHRy
aWJ1dGVkU3RyaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wT2JzZXJ2ZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1RleHRJ
bmRpY2F0b3JXaW5kb3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNp
bmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogI2luY2x1ZGUgPHd0Zi9jb2NvYS9FbnRpdGxl
bWVudHMuaD4KQEAgLTY1MTEsNyArNjUxMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRUZXh0
SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0b3JEYXRhJiBpbmRpY2F0b3JEYXRhLCB1aW50CiB7
CiAgICAgLy8gRklYTUU6IE1ha2UgVGV4dEluZGljYXRvcldpbmRvdyBhIHBsYXRmb3JtLWluZGVw
ZW5kZW50IHByZXNlbnRhdGlvbmFsIHRoaW5nICgiVGV4dEluZGljYXRvclByZXNlbnRhdGlvbiI/
KS4KICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBwYWdlQ2xpZW50KCkuc2V0VGV4dEluZGljYXRv
cihUZXh0SW5kaWNhdG9yOjpjcmVhdGUoaW5kaWNhdG9yRGF0YSksIHN0YXRpY19jYXN0PFRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZT4obGlmZXRpbWUpKTsKKyAgICBwYWdlQ2xpZW50KCkuc2V0
VGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yOjpjcmVhdGUoaW5kaWNhdG9yRGF0YSksIHN0YXRp
Y19jYXN0PFRleHRJbmRpY2F0b3JMaWZldGltZT4obGlmZXRpbWUpKTsKICNlbHNlCiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKQEAgLTY1MjAsNyArNjUxOSw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0b3JEYXRhJiBpbmRp
Y2F0b3JEYXRhLCB1aW50CiB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJUZXh0SW5kaWNhdG9yKCkK
IHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBwYWdlQ2xpZW50KCkuY2xlYXJUZXh0SW5kaWNh
dG9yKFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAg
IHBhZ2VDbGllbnQoKS5jbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRp
c21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiAjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDVi
NDU3ZGZiNjAzMWVmNjM5YWQzYWUzZmNiZmZmYWU2YTZkODU3MDIuLmQyZGJlMTliM2RiOTVhNzgz
MTYyNTI3NDQxZjE4NDNkMWVkMjFlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC0xMTQ5LDcgKzExNDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb3VudFN0cmlu
Z01hdGNoZXMoY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0PEZpbmRPcHRpb25zPiwgdW5zaWduZWQg
bWF4TWF0Y2hDb3VudCk7CiAgICAgdm9pZCByZXBsYWNlTWF0Y2hlcyhWZWN0b3I8dWludDMyX3Q+
JiYgbWF0Y2hJbmRpY2VzLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCwgYm9vbCBzZWxl
Y3Rpb25Pbmx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAgICAgdm9p
ZCBkaWRDb3VudFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiwgdWludDMyX3QgbWF0Y2hDb3Vu
dCk7Ci0gICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JEYXRhJiwgdWludDY0X3QgLyogV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1l
ICovIGxpZmV0aW1lID0gMCAvKiBQZXJtYW5lbnQgKi8pOworICAgIHZvaWQgc2V0VGV4dEluZGlj
YXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYsIHVpbnQ2NF90IC8qIFRleHRJ
bmRpY2F0b3JMaWZldGltZSAqLyBsaWZldGltZSA9IDAgLyogUGVybWFuZW50ICovKTsKICAgICB2
b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAgICAgdm9pZCBj
bGVhclRleHRJbmRpY2F0b3IoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaAppbmRleCAzZmJlMWIxN2ZmNjYwNDQ5ZTk5M2VmN2U4YWZjMGJh
MDAyNGZkODdhLi44MWZiMDE4MzNjZWU5ZTVkOTE1OTU0MThkMmI1YTBhZTRiODQ0Y2NkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAt
MTM4LDggKzEzOCw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkRhdGVUaW1lUGlja2VyPiBj
cmVhdGVEYXRlVGltZVBpY2tlcihXZWJQYWdlUHJveHkmKSBmaW5hbDsKICNlbmRpZgogCi0gICAg
dm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29y
ZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFy
VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNz
YWxBbmltYXRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlv
blByb2dyZXNzKGZsb2F0KSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2hvd1NhZmVCcm93c2luZ1dh
cm5pbmcoY29uc3QgU2FmZUJyb3dzaW5nV2FybmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
VmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJikgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
aW5kZXggNDBiNzYyMzYzOWZmYWQ0MWI0NDI0NjhlYjJlMTgxYWEzNGYwMTY1My4uYTJiMWQyYjQy
MjgzNGQ1ZmM0MzAyMTljNDhjOTMwMDZhNzVjODhiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNDc5LDE2ICs0NzksMzEgQEAg
UmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51
UHJveHkoV2ViUGFnZVByb3h5JikKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBQYWdl
Q2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGlj
YXRvciwgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6
c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgVGV4dElu
ZGljYXRvckxpZmV0aW1lKQogeworI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBbbV9j
b250ZW50VmlldyBzZXRVcFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvcl07CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTSh0ZXh0SW5kaWNhdG9yKTsKKyNlbmRpZgogfQogCi12b2lkIFBhZ2VDbGll
bnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKIHsK
KyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgW21fY29udGVudFZpZXcgY2xlYXJUZXh0
SW5kaWNhdG9yOmRpc21pc3NhbEFuaW1hdGlvbl07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShk
aXNtaXNzYWxBbmltYXRpb24pOworI2VuZGlmCiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNl
dFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkKK3ZvaWQgUGFnZUNsaWVudElt
cGw6OnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCBhbmltYXRpb25Qcm9n
cmVzcykKIHsKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgW21fY29udGVudFZpZXcg
c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOmFuaW1hdGlvblByb2dyZXNzXTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGFuaW1hdGlvblByb2dyZXNzKTsKKyNlbmRpZgogfQogCiB2
b2lkIFBhZ2VDbGllbnRJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0
IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggODg2
YWU3NWU2N2I1NmFlYjM4Mzc4NGY1OTZjOWQ4ZjcyOTEyNTZlNy4uZDI0NTJmY2FkZDU0ZThhZGI0
NTNmNjBjYTBjOGFmYjk4OTljYWUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtODksNiArODksNyBAQCBz
dHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90
OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OworZW51bSBjbGFzcyBU
ZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdDsKIAogI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCiBzdHJ1Y3QgRHJhZ0l0ZW07CkBAIC0xMzIsNiArMTMzLDEwIEBAIGNsYXNz
IFdlYlBhZ2VQcm94eTsKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdI
VFMpCitAY2xhc3MgV2ViVGV4dEluZGljYXRvckxheWVyOworI2VuZGlmCisKICNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbkFkZGl0aW9uc0JlZm9yZS5oPgogI2VuZGlmCkBAIC0zMzAsNiArMzM1LDExIEBA
IGVudW0gY2xhc3MgUHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24gOiBib29sIHsKICNlbmRpZgog
ICAgIFJldGFpblB0cjxVSVByZXZpZXdJdGVtQ29udHJvbGxlcj4gX3ByZXZpZXdJdGVtQ29udHJv
bGxlcjsKICNlbmRpZgorICAgIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gX3RleHRJbmRpY2F0b3I7CisgICAgUmV0YWluUHRy
PFdlYlRleHRJbmRpY2F0b3JMYXllcj4gX3RleHRJbmRpY2F0b3JMYXllcjsKKyNlbmRpZgogCiAj
aWYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQcmV2aWV3PiBf
Y29udGV4dE1lbnVJbnRlcmFjdGlvblRhcmdldGVkUHJldmlldzsKQEAgLTY3MCw2ICs2ODAsMTIg
QEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVO
VFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX2RpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yTWFpbkZyYW1lOwogLSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZTsKIAor
I2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKy0gKHZvaWQpc2V0VXBUZXh0SW5kaWNhdG9yOihS
ZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4pdGV4dEluZGljYXRvcjsKKy0gKHZvaWQpc2V0VGV4
dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClOU0FuaW1hdGlvblByb2dyZXNzOwor
LSAodm9pZCljbGVhclRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNz
YWxBbmltYXRpb24pYW5pbWF0aW9uOworI2VuZGlmCisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgQk9PTCBfc2hvdWxkVXNlQ29udGV4dE1lbnVzOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRBdm9pZFJlc2l6aW5nV2hlbklucHV0Vmlld0JvdW5k
c0NoYW5nZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkQXZv
aWRTY3JvbGxpbmdXaGVuRm9jdXNlZENvbnRlbnRJc1Zpc2libGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRl
eCBhNjA4NjlhNzdmOTI1NzBiMjBjOWY3MTkzZGFjZDEwMTEyMWZhMTdhLi5mN2MzZGI1YjIwYjNm
MzdiNzJjNzg4ODI4NjM4ZGY0YjdlNzM2MjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE3Miw2ICsx
NzIsMTEgQEAKICNpbXBvcnQgIlBlcHBlclVJQ29yZVNQSS5oIgogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoQVBQX0hJR0hMSUdIVFMpCisjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViVGV4dEluZGljYXRvckxheWVyLmg+CisjZW5kaWYKKwog
I2ltcG9ydCA8cGFsL2lvcy9NYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg+CiAKICNpZiBI
QVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCkBAIC05NTgyLDYgKzk1ODcs
NjkgQEAgLSAodm9pZClfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdl
RXh0cmFjdGlvbjooV2ViS2l0OjpQcm9jZWVkV2kKIAogI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorLSAodm9pZClzZXRVcFRl
eHRJbmRpY2F0b3I6KFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yCit7
CisgICAgaWYgKF90ZXh0SW5kaWNhdG9yID09IHRleHRJbmRpY2F0b3IucHRyKCkpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07Cisg
ICAgW05TT2JqZWN0IGNhbmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxm
IHNlbGVjdG9yOkBzZWxlY3RvcihzdGFydEZhZGVPdXQpIG9iamVjdDpuaWxdOworICAgIAorICAg
IF90ZXh0SW5kaWNhdG9yID0gdGV4dEluZGljYXRvci5wdHIoKTsKKworICAgIENHUmVjdCBmcmFt
ZSA9IF90ZXh0SW5kaWNhdG9yLT50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVz
KCk7CisgICAgX3RleHRJbmRpY2F0b3JMYXllciA9IGFkb3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9y
TGF5ZXIgYWxsb2NdIGluaXRXaXRoRnJhbWU6ZnJhbWUKKyAgICAgICAgdGV4dEluZGljYXRvcjp0
ZXh0SW5kaWNhdG9yIG1hcmdpbjpDR1NpemVaZXJvIG9mZnNldDpDR1BvaW50WmVyb10pOworICAg
IAorICAgIFtbc2VsZiBsYXllcl0gYWRkU3VibGF5ZXI6X3RleHRJbmRpY2F0b3JMYXllci5nZXQo
KV07CisKKyAgICBpZiAoX3RleHRJbmRpY2F0b3ItPnByZXNlbnRhdGlvblRyYW5zaXRpb24oKSAh
PSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSkKKyAg
ICAgICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIgcHJlc2VudF07CisgICAgCisgICAgW3NlbGYgcGVy
Zm9ybVNlbGVjdG9yOkBzZWxlY3RvcihzdGFydEZhZGVPdXQpIHdpdGhPYmplY3Q6c2VsZiBhZnRl
ckRlbGF5OldlYkNvcmU6OnRpbWVCZWZvcmVGYWRlU3RhcnRzXTsKK30KKworLSAodm9pZCljbGVh
clRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24p
YW5pbWF0aW9uCit7CisgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+IHRleHRJbmRp
Y2F0b3IgPSBXVEZNb3ZlKF90ZXh0SW5kaWNhdG9yKTsKKyAgICAKKyAgICBpZiAoW190ZXh0SW5k
aWNhdG9yTGF5ZXIgaXNGYWRpbmdPdXRdKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAodGV4
dEluZGljYXRvciAmJiBbX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50c01hbnVhbEFu
aW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYgW190ZXh0SW5kaWNhdG9yTGF5ZXIgaGFzQ29tcGxl
dGVkQW5pbWF0aW9uXSAmJiBhbmltYXRpb24gPT0gV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21p
c3NhbEFuaW1hdGlvbjo6RmFkZU91dCkgeworICAgICAgICBbc2VsZiBzdGFydEZhZGVPdXRdOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW3NlbGYgdGVhcmRvd25UZXh0SW5kaWNhdG9y
TGF5ZXJdOworfQorCistICh2b2lkKXNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczoo
ZmxvYXQpYW5pbWF0aW9uUHJvZ3Jlc3MKK3sKKyAgICBpZiAoIV90ZXh0SW5kaWNhdG9yKQorICAg
ICAgICByZXR1cm47CisKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciBzZXRBbmltYXRpb25Qcm9n
cmVzczphbmltYXRpb25Qcm9ncmVzc107Cit9CisKKy0gKHZvaWQpdGVhcmRvd25UZXh0SW5kaWNh
dG9yTGF5ZXIKK3sKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciByZW1vdmVGcm9tU3VwZXJsYXll
cl07CisgICAgX3RleHRJbmRpY2F0b3JMYXllciA9IG5pbDsKK30KKworLSAodm9pZClzdGFydEZh
ZGVPdXQKK3sKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciBzZXRGYWRpbmdPdXQ6WUVTXTsKKyAg
ICAgICAgCisgICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIgaGlkZVdpdGhDb21wbGV0aW9uSGFuZGxl
cjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0geworICAgICAg
ICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgW3N0cm9uZ1NlbGYg
dGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXJdOworICAgIH1dOworfQorI2VuZGlmIC8vIEVOQUJM
RShBUFBfSElHSExJR0hUUykKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0
IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQWZ0ZXIu
bW0+CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsTWFjLmgKaW5kZXggNThiZTRhMmNhZTQ1MzdlNTQ2M2JkZDFiNmI1YmUxNjhiYTY5Mjc2Yy4u
ZTIyMzA4MmRkODAyYTY2MjEwYmJiYTNkMWM4MDBiMzQ4YjZjOTI2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTE1Niw4ICsxNTYs
OCBAQCBwcml2YXRlOgogCiAgICAgUmVmPFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU+IGNyZWF0
ZVZhbGlkYXRpb25CdWJibGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpW
YWxpZGF0aW9uQnViYmxlOjpTZXR0aW5ncyYpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRUZXh0SW5k
aWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsK
KyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBU
ZXh0SW5kaWNhdG9yTGlmZXRpbWUpIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNh
dG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOwog
ICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXll
clRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggNzg4YTI3OTZkYmIxY2Y0NTllZmUxMjRjNmYw
ZDdkMGE2OThiN2U5Yi4uZGI3M2ZlMjhiNTM1YTA1M2I2ZjNjZmVlNzJhNWFmOTNjMTc1MjhkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5t
bQpAQCAtNTY5LDEyICs1NjksMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJTYWZlQnJv
d3NpbmdXYXJuaW5nSWZGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKCkKICAgICBtX2ltcGwtPmNsZWFy
U2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFpbkZyYW1lTmF2aWdhdGlvbigpOwogfQogCi12b2lk
IFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0
SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUp
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9y
PiB0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgbGlmZXRpbWUpCiB7CiAgICAg
bV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IuZ2V0KCksIGxpZmV0aW1lKTsK
IH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gZGlzbWlzc2FsQW5pbWF0aW9uKQor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEaXNtaXNzYWxBbmltYXRpb24gZGlzbWlzc2FsQW5pbWF0aW9uKQogewogICAgIG1faW1w
bC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihkaXNtaXNzYWxBbmltYXRpb24pOwog
fQpAQCAtNjcyLDkgKzY3Miw5IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0
aW9uYXJ5TG9va3VwKGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3RpCiAgICAgbV9pbXBs
LT5wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cCgpOwogCiAgICAgRGljdGlvbmFyeUxvb2t1cDo6
c2hvd1BvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIG1fdmlldywgW3RoaXNdKFRleHRJbmRpY2F0
b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRl
eHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50KTsKKyAg
ICAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0
b3JMaWZldGltZTo6UGVybWFuZW50KTsKICAgICB9LCBudWxscHRyLCBbdGhpc10oKSB7Ci0gICAg
ICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICAgICAgbV9pbXBs
LT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JE
aXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5t
bQppbmRleCA5YmFhOGJlMjRjNzdjNzQ2ZTc5M2Y0MTM3OGRjZDAwYjNjZjRjNGZlLi4zMzlmZjk3
ZDMwNjAyOWE2YjAwOGUxMTg2NmUzY2E0ZjY5MWI5NmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0K
QEAgLTQ5MCw5ICs0OTAsOSBAQCAtIChpZDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRy
b2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yVGV4dAogICAgIF92aWV3SW1wbC0+cHJlcGFy
ZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKIAogICAgIHJldHVybiBXZWJDb3JlOjpEaWN0aW9uYXJ5
TG9va3VwOjphbmltYXRpb25Db250cm9sbGVyRm9yUG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywg
X3ZpZXcsIFtzZWxmXShXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0g
ICAgICAgIF92aWV3SW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7CisgICAgICAgIF92aWV3
SW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yTGlmZXRp
bWU6OlBlcm1hbmVudCk7CiAgICAgfSwgbnVsbHB0ciwgW3NlbGZdKCkgewotICAgICAgICBfdmll
d0ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGlj
YXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgICAgIF92aWV3SW1wbC0+
Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlz
bWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAppbmRleCAzZjJlOWQ1MGZmYjAwMWMyNDZkNDE3MTBlMDNiNDQ5YmRjNTg2Nzg0Li5iNmIwOGMy
ZmM0ZDQ1OWFjMDZhYTE1YTE4ZjI3ZWEyZjI2M2UyMjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cApAQCAtODgsNiArODgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkpCiAjaW5jbHVkZSAiUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIgpA
QCAtMTI2OSw2ICsxMjcwLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hs
aWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJiBoaWdobGlnaHQpIGNvbnN0CiAgICAgaGlnaGxp
Z2h0LnJlcXVlc3RPcmlnaW5hdGVkSW5BcHAgPSBtX3BhZ2UuaGlnaGxpZ2h0UmVxdWVzdE9yaWdp
bmF0ZWRJbkFwcCgpOwogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0
b3JlQXBwSGlnaGxpZ2h0KGhpZ2hsaWdodCkpOwogfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
c2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNh
dG9yRGF0YSkgY29uc3QKK3sKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTZXRUZXh0SW5kaWNhdG9yKGluZGljYXRvckRhdGEsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKK30KICNlbmRpZgog
CiBTdHJpbmcgV2ViQ2hyb21lQ2xpZW50OjpzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJp
bmcodW5zaWduZWQga2V5U2l6ZUluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZVN0cmluZywg
Y29uc3QgVVJMJiB1cmwpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNGVlZjFmOGFkMWM1
MmFjMDUxNjU4MmJhMTYxNTVjYWQwMWExNTU3Mi4uZDdlZmIwODg1OWRkMDU5NDA2NmU4NDNjYTI2
MGIwMWE0NGU2M2ZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzUxLDYgKzM1MSw3IEBAIHBy
aXZhdGU6CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgdm9pZCBzdG9yZUFwcEhp
Z2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBz
ZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJikgY29uc3Qg
ZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IDAwOTAx
NGE1MzZiZjlkNjhkZmJlNWRhMTQwZGRiNTE3YWVhY2QyMDcuLmVlM2JjMjM2YjJjNGFkMjI4NDYz
N2VkZmMxM2JjZTJiNGNhM2FiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTM4MCw3ICszODAsNyBAQCBib29sIEZp
bmRDb250cm9sbGVyOjp1cGRhdGVGaW5kSW5kaWNhdG9yKEZyYW1lJiBzZWxlY3RlZEZyYW1lLCBi
b29sIGlzU2hvd2luZ092ZQogCiAgICAgbV9maW5kSW5kaWNhdG9yUmVjdCA9IGVuY2xvc2luZ0lu
dFJlY3QoaW5kaWNhdG9yLT5zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkpOwog
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9yKGluZGljYXRvci0+ZGF0YSgpLCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4oaXNTaG93aW5nT3ZlcmxheSA/IFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6
UGVybWFuZW50IDogVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpKSk7Cisg
ICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRleHRJbmRpY2F0
b3IoaW5kaWNhdG9yLT5kYXRhKCksIHN0YXRpY19jYXN0PHVpbnQ2NF90Pihpc1Nob3dpbmdPdmVy
bGF5ID8gVGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnQgOiBUZXh0SW5kaWNhdG9yTGlm
ZXRpbWU6OlRlbXBvcmFyeSkpKTsKICNlbmRpZgogICAgIG1faXNTaG93aW5nRmluZEluZGljYXRv
ciA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjNkNDcxNmE4OTMzZDlmMjQyZjhlZjEy
MTVhODY2MjM0MGY4OTdhNS4uNmUxOGYyYjI0MjE3MTNhMmM0MGQ3NDQxOGQ1MjRiODUzNjQxMTY1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE1Myw2ICsxNTMsNyBAQCBwcml2YXRlOgogCiAjaWYg
RU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoV2ViQ29y
ZTo6QXBwSGlnaGxpZ2h0JiYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRv
cihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlm
CiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDQ1Mzlj
ZTZmNjRkMDBiMGJiMDAyODNlYWM4MTUzMjk3OTAwNGM0ZTguLjQ3ZTcxMWE2ODJiMzI5MzMwNWQ3
NzIwN2E4NDcxMzM3OTJmMDdjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTcxOCw2ICs3MTgs
OSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNy
ZWF0ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGltZQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnN0b3Jl
QXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRhdGEmIGluZGljYXRvckRhdGEpIGNvbnN0Cit7Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJI
VE1MVmlldy5tbQppbmRleCAwZmUyYTUwOTZjN2UyNmYzMjAzMjVlMzY4YmZmMGRiYjlmMDcyYzc2
Li42MWQ2ZjRlODY1OTRkY2FiN2U2MTc5MDcwNGI3MDllZjVjY2MyYmUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTU5NTMsNyArNTk1
Myw3IEBAIC0gKHZvaWQpX2xvb2tVcEluRGljdGlvbmFyeUZyb21NZW51OihpZClzZW5kZXIKIAog
LSAodm9pZClxdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIFtbc2Vs
ZiBfd2ViVmlld10gX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW1tzZWxm
IF93ZWJWaWV3XSBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICBbc3VwZXIgcXVpY2tM
b29rV2l0aEV2ZW50OmV2ZW50XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmlu
ZGV4IGNlNjJiZmE1MTYxNzdjOGMzNmFlZGQ3YmE1ZmE0YzI3NTEwZDZmNzEuLmMzYzM2NzJiZmNj
ZmNkMTM2ZTYyZjNkZmMzNDExYmRlZTliYWU0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJW
aWV3IGRpZEhhbmRsZVNjcm9sbFdoZWVsOihOU0V2ZW50ICopZXZlbnQKIHsKICAgICBbX2N1cnJl
bnRRTFByZXZpZXdNZW51SXRlbSBjbG9zZV07CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0
aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlv
bjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsK
KyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6
VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07CiB9CiAKIC0gKE5TSW1tZWRp
YXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCkBA
IC0xMzksNyArMTM5LDcgQEAgLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uCiAgICAgfQog
CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBf
Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFu
aW1hdGlvbjo6RmFkZU91dF07CiB9CiAKIC0gKHZvaWQpX2NsZWFySW1tZWRpYXRlQWN0aW9uU3Rh
dGUKQEAgLTI1MSw3ICsyNTEsNyBAQCAtICh2b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJE
aWRDYW5jZWxBbmltYXRpb246KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlYwogCiAgICAgW193
ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6MF07CiAgICAgW3NlbGYg
X2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpOb25lXTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07
CiAgICAgW193ZWJWaWV3IF9zZXRNYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbjpOT107CiB9CiAK
QEAgLTI5Myw3ICsyOTMsNyBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250
cm9sbGVyPilfZGVmYXVsdEFuaW1hdGlvbkNvbnRyb2xsZXIKICAgICAgICAgICAgIGF1dG8gbGlu
a1JhbmdlID0gbWFrZVJhbmdlU2VsZWN0aW5nTm9kZUNvbnRlbnRzKCpfaGl0VGVzdFJlc3VsdC5V
UkxFbGVtZW50KCkpOwogICAgICAgICAgICAgYXV0byBpbmRpY2F0b3IgPSBXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UobGlua1JhbmdlLCB7IFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JPcHRpb246OlVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29udGVudEZvckNvbXBsZXhS
YW5nZXMgfSwgV2ViQ29yZTo6VGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246OkZh
ZGVJbik7CiAgICAgICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgICAgIFtfd2Vi
VmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgICAgICAgICAg
W193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJ
bmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKIAogICAgICAgICAgICAgUUxQcmV2aWV3TWVu
dUl0ZW0gKml0ZW0gPSBbTlNNZW51SXRlbSBzdGFuZGFyZFF1aWNrTG9va01lbnVJdGVtXTsKICAg
ICAgICAgICAgIGl0ZW0ucHJldmlld1N0eWxlID0gUUxQcmV2aWV3U3R5bGVQb3BvdmVyOwpAQCAt
Mzc5LDcgKzM3OSw3IEBAIC0gKE5TUmVjdEVkZ2UpbWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51
SXRlbSBwcmVmZXJyZWRFZGdlRm9yUG9pbnQ6KE5TUG9pbnQpcG9pCiAtICh2b2lkKW1lbnVJdGVt
RGlkQ2xvc2U6KE5TTWVudUl0ZW0gKiltZW51SXRlbQogewogICAgIFtzZWxmIF9jbGVhckltbWVk
aWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6
RmFkZU91dF07CisgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9u
OldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogfQog
CiBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3Jk
aW5hdGVzRnJvbU5vZGUoV2ViQ29yZTo6Tm9kZSogbm9kZSkKQEAgLTQ2NCw5ICs0NjQsOSBAQCAt
IChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29u
dHJvbGxlckZvckRhdGFEZXRlY3RlZAogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFtkZXRl
Y3RlZEl0ZW0tPmFjdGlvbkNvbnRleHQgY29udGV4dEZvclZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZ
RVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFu
Z2VkSGFuZGxlcjpeKCkgewogICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgW193
ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgICAgIFtf
d2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5k
aWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5k
bGVyOl4oKSB7Ci0gICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRl
T3V0XTsKKyAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9u
OldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAg
IH1dOwogCiAgICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dl
YlZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46ZGV0ZWN0ZWRJdGVtLT5ib3VuZGluZ0Jv
eF1dOwpAQCAtNDk3LDkgKzQ5Nyw5IEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlv
bkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkCiAgICAgX2N1
cnJlbnRBY3Rpb25Db250ZXh0ID0gW2FjdGlvbkNvbnRleHQgY29udGV4dEZvclZpZXc6X3dlYlZp
ZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgewogICAgIH0gaW50
ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkgewogICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAg
ICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0
aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAg
ICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZl
dGltZTpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSBpbnRlcmFjdGlv
blN0b3BwZWRIYW5kbGVyOl4oKSB7Ci0gICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5p
bWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXRdOwogICAgIH1dOwogCiAgICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGln
aHRGcmFtZTpbX3dlYlZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46ZWxlbWVudEJvdW5k
aW5nQm94SW5XaW5kb3dDb29yZGluYXRlc0Zyb21Ob2RlKF9oaXRUZXN0UmVzdWx0LlVSTEVsZW1l
bnQoKSldXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRl
eCA3MjY0YmZkY2Q3MmRlMTM2OTYwYTMyMzhjYjAwMjE2ZmI4OTJmZjdjLi41ZTBlZDE1YzkyMWIw
NmJhMzJjZTdmM2EzZDczMWI3MWE0NTczZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCkBAIC05MTAwLDExICs5MTAwLDExIEBAIC0gKGlkKV9hbmltYXRp
b25Db250cm9sbGVyRm9yRGljdGlvbmFyeUxvb2t1cFBvcHVwSW5mbzooY29uc3QgV2ViQ29yZTo6
RGljdGlvbmFyCiAgICAgW3NlbGYgX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAogICAg
IHJldHVybiBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVyRm9y
UG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgc2VsZiwgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6
dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xp
ZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0
SW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07
CiAgICAgfSwgW3NlbGZdKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5h
dGVzKSB7CiAgICAgICAgIHJldHVybiBbc2VsZiBfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6cmVj
dEluUm9vdFZpZXdDb29yZGluYXRlc107CiAgICAgfSwgW3NlbGZdKCkgewotICAgICAgICBbc2Vs
ZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW3NlbGYgX2NsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfSk7CiB9CiAKQEAgLTkxMjAsMTAgKzkxMjAsMTAg
QEAgLSAodm9pZClfc2V0UHJlc3N1cmVFdmVudDooTlNFdmVudCAqKWV2ZW50CiAKIC0gKHZvaWQp
X3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IK
IHsKLSAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGlt
ZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAg
W3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dElu
ZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwogfQogCi0tICh2b2lkKV9zZXRUZXh0SW5kaWNh
dG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZToo
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKWxpZmV0aW1lCistICh2b2lkKV9z
ZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdp
dGhMaWZldGltZTooVGV4dEluZGljYXRvckxpZmV0aW1lKWxpZmV0aW1lCiB7CiAgICAgaWYgKCFf
cHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdykKICAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRp
Y2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+KHNl
bGYpOwpAQCAtOTEzMywxMCArOTEzMywxMCBAQCAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooVwogICAg
IF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRp
Y2F0b3IsIE5TUmVjdFRvQ0dSZWN0KHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVz
KSwgbGlmZXRpbWUpOwogfQogCi0tICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1h
dGlvbgorLSAodm9pZClfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6
VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb24KIHsKICAgICBpZiAoX3By
aXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cpCi0gICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNh
dG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAgICAgIF9wcml2YXRlLT50ZXh0SW5k
aWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRp
c21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JX
aW5kb3cgPSBudWxscHRyOwogfQogCkBAIC05MTY4LDE4ICs5MTY4LDE4IEBAIC0gKHZvaWQpX3No
b3dEaWN0aW9uYXJ5TG9va3VwUG9wdXA6KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cElu
Zm8mKWRpY3Rpb25hCiAgICAgW3NlbGYgX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAog
ICAgIFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJ
bmZvLCBzZWxmLCBbc2VsZl0oV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikg
ewotICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZl
dGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07Cisg
ICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1l
OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKICAgICB9LCBbc2VsZl0oV2ViQ29y
ZTo6RmxvYXRSZWN0IHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMpIHsKICAgICAgICAgcmV0dXJu
IFtzZWxmIF9jb252ZXJ0UmVjdEZyb21Sb290VmlldzpyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVz
XTsKICAgICB9LCBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXZWJWaWV3PihzZWxmKV0oKSB7Ci0g
ICAgICAgIFt3ZWFrU2VsZi5nZXQoKSBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsK
KyAgICAgICAgW3dlYWtTZWxmLmdldCgpIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9u
OldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAg
IH0pOwogfQogCiAjaWYgIUVOQUJMRShSRVZFQUwpCiAtICh2b2lkKV9kaWN0aW9uYXJ5TG9va3Vw
UG9wb3ZlcldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBb
c2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbc2VsZiBfY2xlYXJU
ZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0XTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoUkVWRUFMKQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRl
eCA3MzM3MmEwYmRhMTUzYmZhMzc2MTAyM2NmNDk1ZDc5NmZhNzE4Y2MxLi5iMmNhMGQ2YzRmZmZi
NDYxOTE4N2NmMjY3MjljZWJhMmQzZDRlZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTMxOSw4ICszMTksOCBAQCBXZWJM
YXlvdXRNaWxlc3RvbmVzIGtpdExheW91dE1pbGVzdG9uZXMoT3B0aW9uU2V0PFdlYkNvcmU6Okxh
eW91dE1pbGVzdG9uZT4pOwogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVkKF9fY3BsdXNw
bHVzKQogLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYp
dGV4dEluZGljYXRvcjsKLS0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWUpbGlmZXRpbWU7Ci0tICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uKWFuaW1hdGlvbjsKKy0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihUZXh0SW5kaWNhdG9yTGlmZXRp
bWUpbGlmZXRpbWU7CistICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKIC0gKHZv
aWQpX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQpcHJvZ3Jlc3M7CiAt
ICh2b2lkKV9zaG93RGljdGlvbmFyeUxvb2t1cFBvcHVwOihjb25zdCBXZWJDb3JlOjpEaWN0aW9u
YXJ5UG9wdXBJbmZvJilkaWN0aW9uYXJ5UG9wdXBJbmZvOwogLSAoaWQpX2FuaW1hdGlvbkNvbnRy
b2xsZXJGb3JEaWN0aW9uYXJ5TG9va3VwUG9wdXBJbmZvOihjb25zdCBXZWJDb3JlOjpEaWN0aW9u
YXJ5UG9wdXBJbmZvJilkaWN0aW9uYXJ5UG9wdXBJbmZvOwo=
</data>
<flag name="commit-queue"
          id="449407"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428473</attachid>
            <date>2021-05-13 02:44:16 -0700</date>
            <delta_ts>2021-05-13 02:54:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513024415.patch</filename>
            <type>text/plain</type>
            <size>52112</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRv
ci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLmY5ZTg2
MDhmMWFlNTQ1NDUzNWVhMDY3MThlMDc5N2Y2NjkyYzAzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCkBAIC0zOSw2ICszOSwyNiBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIAorY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd0JsdXJS
YWRpdXMgPSAyOworY29uc3RleHByIENHRmxvYXQgcmltU2hhZG93Qmx1clJhZGl1cyA9IDE7Citj
b25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjEyOwor
Y29uc3RleHByIENGVGltZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5p
bWF0aW9uRHVyYXRpb24gKyAwLjI7Citjb25zdGV4cHIgQ0dGbG9hdCBtaWRCb3VuY2VTY2FsZSA9
IDEuMjU7CisKKworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgOiB1aW50OF90IHsK
KyAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgaW5kaWNhdGUgdGhlIHRleHQgdW50aWwg
ZGlzbWlzc2VkLgorICAgIFBlcm1hbmVudCwKKworICAgIC8vIFRoZSBUZXh0SW5kaWNhdG9yIHNo
b3VsZCBicmllZmx5IGluZGljYXRlIHRoZSB0ZXh0IGFuZCB0aGVuIGF1dG9tYXRpY2FsbHkgZGlz
bWlzcy4KKyAgICBUZW1wb3JhcnkKK307CisKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21p
c3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3QgeworICAgIE5vbmUsCisgICAgRmFkZU91dAorfTsKKwog
Ly8gRklYTUU6IE1vdmUgUHJlc2VudGF0aW9uVHJhbnNpdGlvbiB0byBUZXh0SW5kaWNhdG9yV2lu
ZG93LCBiZWNhdXNlIGl0J3MgYWJvdXQgcHJlc2VudGF0aW9uLgogZW51bSBjbGFzcyBUZXh0SW5k
aWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4X3QgewogICAgIE5vbmUsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaAppbmRl
eCBmZDEzZDA0MGVmZmI3NWIwZWEwMDRlYTU1MWUzMjIxNTRhZTE4ZmFmLi5iZWJmOTNhMzZlZDcw
ZTZiMzA5ZGU4OTU4MWExODM2NjVlMzhjMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKLUBpbnRlcmZh
Y2UgV2ViVGV4dEluZGljYXRvckxheWVyIDogQ0FMYXllciB7CitXRUJDT1JFX0VYUE9SVCBAaW50
ZXJmYWNlIFdlYlRleHRJbmRpY2F0b3JMYXllciA6IENBTGF5ZXIgewogICAgIFJlZlB0cjxXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yPiBfdGV4dEluZGljYXRvcjsKICAgICBSZXRhaW5QdHI8TlNBcnJh
eT4gX2JvdW5jZUxheWVyczsKICAgICBDR1NpemUgX21hcmdpbjsKQEAgLTUzLDMgKzUzLDQgQEAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNGYWRpbmdPdXQpIEJPT0wgZmFkaW5nT3V0
OwogCiBAZW5kCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4
dEluZGljYXRvckxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5k
aWNhdG9yTGF5ZXIubW0KaW5kZXggYjhjNGQ4ZjA2N2JhY2VkMDlhODExODA4NzEwMzA2YzU3YTc5
NDMwMC4uYjZiYzExYmJiMGNjZDIxNDVkMmI3ZjJkNjg3YmI2ZWU0YmY2MjM0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KQEAg
LTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiUGF0
aFV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgorI2ltcG9ydCAiVGV4dElu
ZGljYXRvcldpbmRvdy5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVn
YXRlLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CkBAIC0zOCwxOSArMzksMTUgQEAKICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvTlNDb2xvclNQSS5oPgogI2VuZGlmCiAKLWNvbnN0ZXhwciBDRlRp
bWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlvbiA9IDAuMTI7CisKIGNvbnN0ZXhwciBD
RlRpbWVJbnRlcnZhbCBib3VuY2VXaXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjM7
CiBjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgZmFkZUluQW5pbWF0aW9uRHVyYXRpb24gPSAwLjE1
OwotY29uc3RleHByIENGVGltZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNl
QW5pbWF0aW9uRHVyYXRpb24gKyAwLjI7CiBjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgZmFkZU91
dEFuaW1hdGlvbkR1cmF0aW9uID0gMC4zOwogCi1jb25zdGV4cHIgQ0dGbG9hdCBtaWRCb3VuY2VT
Y2FsZSA9IDEuMjU7CiBjb25zdGV4cHIgQ0dGbG9hdCBib3JkZXJXaWR0aCA9IDA7CiBjb25zdGV4
cHIgQ0dGbG9hdCBjb3JuZXJSYWRpdXMgPSAwOwogY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRv
d09mZnNldFggPSAwOwogY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09mZnNldFkgPSAxOwot
Y29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotY29uc3RleHByIENH
RmxvYXQgcmltU2hhZG93Qmx1clJhZGl1cyA9IDE7CiAKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNv
bnN0IHRleHRMYXllcktleSA9IEAiVGV4dExheWVyIjsKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNv
bnN0IGRyb3BTaGFkb3dMYXllcktleSA9IEAiRHJvcFNoYWRvd0xheWVyIjsKQEAgLTEzMiwxMyAr
MTI5LDEyIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4
dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgCisgICAgc2VsZi5hbmNob3JQb2lu
dCA9IENHUG9pbnRaZXJvOwogICAgIHNlbGYuZnJhbWUgPSBmcmFtZTsKIAogICAgIF90ZXh0SW5k
aWNhdG9yID0gJnRleHRJbmRpY2F0b3I7CiAgICAgX21hcmdpbiA9IG1hcmdpbjsKIAotICAgIHNl
bGYuYW5jaG9yUG9pbnQgPSBDR1BvaW50WmVybzsKLQogICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRp
dmVJbWFnZT4gY29udGVudHNJbWFnZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgY29udGVudHNJ
bWFnZUxvZ2ljYWxTaXplIHsgMSwgMSB9OwogICAgIGlmIChhdXRvKiBjb250ZW50SW1hZ2UgPSBf
dGV4dEluZGljYXRvci0+Y29udGVudEltYWdlKCkpIHsKQEAgLTE5Miw3ICsxODgsNyBAQCAtIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdl
YkNvcmU6OlRleHRJbmRpY2F0bwogICAgICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gZHJvcFNoYWRv
d0xheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW2Ryb3BT
aGFkb3dMYXllciBzZXREZWxlZ2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRl
IHNoYXJlZF1dOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd0NvbG9yOmRyb3BT
aGFkb3dDb2xvci5nZXQoKV07Ci0gICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UmFk
aXVzOmRyb3BTaGFkb3dCbHVyUmFkaXVzXTsKKyAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRT
aGFkb3dSYWRpdXM6V2ViQ29yZTo6ZHJvcFNoYWRvd0JsdXJSYWRpdXNdOwogICAgICAgICBbZHJv
cFNoYWRvd0xheWVyIHNldFNoYWRvd09mZnNldDpDR1NpemVNYWtlKGRyb3BTaGFkb3dPZmZzZXRY
LCBkcm9wU2hhZG93T2Zmc2V0WSldOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRv
d1BhdGg6dHJhbnNsYXRlZFBhdGgucGxhdGZvcm1QYXRoKCldOwogICAgICAgICBbZHJvcFNoYWRv
d0xheWVyIHNldFNoYWRvd09wYWNpdHk6MV07CkBAIC0yMDQsNyArMjAwLDcgQEAgLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG8KICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldERlbGVnYXRlOltXZWJB
Y3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07CiAgICAgICAgIFtyaW1TaGFk
b3dMYXllciBzZXRGcmFtZTp5ZWxsb3dIaWdobGlnaHRSZWN0XTsKICAgICAgICAgW3JpbVNoYWRv
d0xheWVyIHNldFNoYWRvd0NvbG9yOnJpbVNoYWRvd0NvbG9yLmdldCgpXTsKLSAgICAgICAgW3Jp
bVNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1czpyaW1TaGFkb3dCbHVyUmFkaXVzXTsKKyAgICAg
ICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1czpXZWJDb3JlOjpyaW1TaGFkb3dCbHVy
UmFkaXVzXTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRl
ZFBhdGgucGxhdGZvcm1QYXRoKCldOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93
T2Zmc2V0OkNHU2l6ZVplcm9dOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93T3Bh
Y2l0eToxXTsKQEAgLTI0NSw3ICsyNDEsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENBS2V5ZnJhbWVB
bmltYXRpb24+IGNyZWF0ZUJvdW5jZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZhbCBkdXJhdAogICAg
IFJldGFpblB0cjxDQUtleWZyYW1lQW5pbWF0aW9uPiBib3VuY2VBbmltYXRpb24gPSBbQ0FLZXlm
cmFtZUFuaW1hdGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDpAInRyYW5zZm9ybSJdOwogICAgIFti
b3VuY2VBbmltYXRpb24gc2V0VmFsdWVzOkBbCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENB
VHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XSwKLSAgICAgICAgW05TVmFsdWUgdmFs
dWVXaXRoQ0FUcmFuc2Zvcm0zRDpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKG1pZEJvdW5jZVNjYWxl
LCBtaWRCb3VuY2VTY2FsZSwgMSldLAorICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5z
Zm9ybTNEOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUoV2ViQ29yZTo6bWlkQm91bmNlU2NhbGUsIFdl
YkNvcmU6Om1pZEJvdW5jZVNjYWxlLCAxKV0sCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENB
VHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XQogICAgICAgICBdXTsKICAgICBbYm91
bmNlQW5pbWF0aW9uIHNldER1cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTI5NCw3ICsyOTAsNyBAQCAt
IChDRlRpbWVJbnRlcnZhbClfYW5pbWF0aW9uRHVyYXRpb24KICAgICBpZiAoW3NlbGYgaW5kaWNh
dG9yV2FudHNCb3VuY2U6Kl90ZXh0SW5kaWNhdG9yXSkgewogICAgICAgICBpZiAoaW5kaWNhdG9y
V2FudHNDb250ZW50Q3Jvc3NmYWRlKCpfdGV4dEluZGljYXRvcikpCiAgICAgICAgICAgICByZXR1
cm4gYm91bmNlV2l0aENyb3NzZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwotICAgICAgICByZXR1cm4g
Ym91bmNlQW5pbWF0aW9uRHVyYXRpb247CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpib3VuY2VB
bmltYXRpb25EdXJhdGlvbjsKICAgICB9CiAKICAgICByZXR1cm4gZmFkZUluQW5pbWF0aW9uRHVy
YXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9y
V2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93LmgK
aW5kZXggYzNiMzNlYmEyYzhiYzBkNzU0NTlkZDIxNTA4OWI2NTI5YzVkMzE1ZC4uZjdmZmY3Yzcz
YTFkMmZmNzU0YjI3ODdjYTIyOTk1MjM4MDMxMzM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaApAQCAtMzYsMTkgKzM2LDYgQEAgT0JKQ19DTEFT
UyBXZWJUZXh0SW5kaWNhdG9yTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgOiB1aW50OF90IHsKLSAgICAvLyBUaGUg
VGV4dEluZGljYXRvciBzaG91bGQgaW5kaWNhdGUgdGhlIHRleHQgdW50aWwgZGlzbWlzc2VkLgot
ICAgIFBlcm1hbmVudCwKLQotICAgIC8vIFRoZSBUZXh0SW5kaWNhdG9yIHNob3VsZCBicmllZmx5
IGluZGljYXRlIHRoZSB0ZXh0IGFuZCB0aGVuIGF1dG9tYXRpY2FsbHkgZGlzbWlzcy4KLSAgICBU
ZW1wb3JhcnkKLX07Ci0KLWVudW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbiA6IHVpbnQ4X3QgewotICAgIE5vbmUsCi0gICAgRmFkZU91dAotfTsKLQogI2lmIFBM
QVRGT1JNKE1BQykKIAogY2xhc3MgVGV4dEluZGljYXRvcldpbmRvdyB7CkBAIC01OSw4ICs0Niw4
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBUZXh0SW5kaWNhdG9yV2lu
ZG93KE5TVmlldyAqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+VGV4dEluZGljYXRvcldpbmRvdygp
OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5k
aWNhdG9yPiwgQ0dSZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUp
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4sIENHUmVjdCBjb250ZW50UmVjdCwgVGV4
dEluZGljYXRvckxpZmV0aW1lKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyVGV4dElu
ZGljYXRvcihUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogCkBAIC04MSwzICs2OCw1
IEBAIHByaXZhdGU6CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5k
b3cubW0KaW5kZXggZjg1ZmE1M2IzYjRhOWY0NTk2OTc3NmExMmNjNDExZjc5MjJkZjc3Yy4uMDFh
NzhkMTNjNzUwZjQ2MWM1NWQ3ZjFjNGYwNjczNDNlNTE5MDc5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCkBAIC0zOCwxMiArMzgsNiBAQAog
I2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0NvbG9yU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL1F1YXJ0ekNvcmVTUEkuaD4KIAotY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0
aW9uRHVyYXRpb24gPSAwLjEyOwotY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVT
dGFydHMgPSBib3VuY2VBbmltYXRpb25EdXJhdGlvbiArIDAuMjsKLQotY29uc3QgQ0dGbG9hdCBt
aWRCb3VuY2VTY2FsZSA9IDEuMjU7Ci1jb25zdCBDR0Zsb2F0IGRyb3BTaGFkb3dCbHVyUmFkaXVz
ID0gMjsKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTU2LDcgKzUwLDcgQEAgVGV4dEluZGljYXRvcldpbmRvdzo6VGV4dEluZGljYXRvcldpbmRv
dyhOU1ZpZXcgKnRhcmdldFZpZXcpCiAKIFRleHRJbmRpY2F0b3JXaW5kb3c6On5UZXh0SW5kaWNh
dG9yV2luZG93KCkKIHsKLSAgICBjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAgY2xlYXJUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogfQogCiB2
b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldEFuaW1hdGlvblByb2dyZXNzKGZsb2F0IHByb2dy
ZXNzKQpAQCAtNjcsMTQgKzYxLDE0IEBAIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0QW5p
bWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCiAgICAgW21fdGV4dEluZGljYXRvckxheWVy
IHNldEFuaW1hdGlvblByb2dyZXNzOnByb2dyZXNzXTsKIH0KIAotdm9pZCBUZXh0SW5kaWNhdG9y
V2luZG93OjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbiBhbmltYXRpb24pCit2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsZWFyVGV4dElu
ZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlv
bikKIHsKICAgICBSZWZQdHI8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9IFdURk1vdmUo
bV90ZXh0SW5kaWNhdG9yKTsKIAogICAgIGlmIChbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaXNGYWRp
bmdPdXRdKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAodGV4dEluZGljYXRvciAmJiBbbV90
ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2FudHNNYW51YWxBbmltYXRpb246KnRleHRJbmRp
Y2F0b3JdICYmIFttX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYm
IGFuaW1hdGlvbiA9PSBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRl
T3V0KSB7CisgICAgaWYgKHRleHRJbmRpY2F0b3IgJiYgW21fdGV4dEluZGljYXRvckxheWVyIGlu
ZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5kaWNhdG9yXSAmJiBbbV90ZXh0SW5k
aWNhdG9yTGF5ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9uXSAmJiBhbmltYXRpb24gPT0gV2ViQ29y
ZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCkgewogICAgICAgICBz
dGFydEZhZGVPdXQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTgyLDcgKzc2LDcgQEAg
dm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRv
cldpbmRvd0Rpc21pc3NhbEFuaW1hdGkKICAgICBjbG9zZVdpbmRvdygpOwogfQogCi12b2lkIFRl
eHRJbmRpY2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRl
eHRJbmRpY2F0b3IsIENHUmVjdCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcywg
VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIGxpZmV0aW1lKQordm9pZCBUZXh0SW5kaWNhdG9y
V2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9y
LCBDR1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMsIFRleHRJbmRpY2F0
b3JMaWZldGltZSBsaWZldGltZSkKIHsKICAgICBpZiAobV90ZXh0SW5kaWNhdG9yID09IHRleHRJ
bmRpY2F0b3IucHRyKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTk1LDggKzg5LDggQEAgdm9pZCBU
ZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0
ZXh0SW5kaWNhdG9yLCBDR1IKICAgICBDR0Zsb2F0IHZlcnRpY2FsTWFyZ2luID0gZHJvcFNoYWRv
d0JsdXJSYWRpdXMgKiAyICsgVGV4dEluZGljYXRvcjo6ZGVmYXVsdFZlcnRpY2FsTWFyZ2luOwog
ICAgIAogICAgIGlmIChbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2FudHNCb3VuY2U6
Km1fdGV4dEluZGljYXRvcl0pIHsKLSAgICAgICAgaG9yaXpvbnRhbE1hcmdpbiA9IHN0ZDo6bWF4
KGhvcml6b250YWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLnNp
emUud2lkdGggKiAobWlkQm91bmNlU2NhbGUgLSAxKSArIGhvcml6b250YWxNYXJnaW4pOwotICAg
ICAgICB2ZXJ0aWNhbE1hcmdpbiA9IHN0ZDo6bWF4KHZlcnRpY2FsTWFyZ2luLCB0ZXh0Qm91bmRp
bmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLmhlaWdodCAqIChtaWRCb3VuY2VTY2FsZSAt
IDEpICsgdmVydGljYWxNYXJnaW4pOworICAgICAgICBob3Jpem9udGFsTWFyZ2luID0gc3RkOjpt
YXgoaG9yaXpvbnRhbE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMu
c2l6ZS53aWR0aCAqIChXZWJDb3JlOjptaWRCb3VuY2VTY2FsZSAtIDEpICsgaG9yaXpvbnRhbE1h
cmdpbik7CisgICAgICAgIHZlcnRpY2FsTWFyZ2luID0gc3RkOjptYXgodmVydGljYWxNYXJnaW4s
IHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLnNpemUuaGVpZ2h0ICogKFdlYkNv
cmU6Om1pZEJvdW5jZVNjYWxlIC0gMSkgKyB2ZXJ0aWNhbE1hcmdpbik7CiAgICAgfQogCiAgICAg
aG9yaXpvbnRhbE1hcmdpbiA9IENHQ2VpbGluZyhob3Jpem9udGFsTWFyZ2luKTsKQEAgLTEyNSw4
ICsxMTksOCBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVm
PFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUgogICAgIGlmIChtX3RleHRJbmRpY2F0
b3ItPnByZXNlbnRhdGlvblRyYW5zaXRpb24oKSAhPSBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9u
VHJhbnNpdGlvbjo6Tm9uZSkKICAgICAgICAgW21fdGV4dEluZGljYXRvckxheWVyIHByZXNlbnRd
OwogCi0gICAgaWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6VGVt
cG9yYXJ5KQotICAgICAgICBtX3RlbXBvcmFyeVRleHRJbmRpY2F0b3JUaW1lci5zdGFydE9uZVNo
b3QoMV9zICogdGltZUJlZm9yZUZhZGVTdGFydHMpOworICAgIGlmIChsaWZldGltZSA9PSBUZXh0
SW5kaWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkKKyAgICAgICAgbV90ZW1wb3JhcnlUZXh0SW5k
aWNhdG9yVGltZXIuc3RhcnRPbmVTaG90KDFfcyAqIFdlYkNvcmU6OnRpbWVCZWZvcmVGYWRlU3Rh
cnRzKTsKIH0KIAogdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpjbG9zZVdpbmRvdygpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCAzYWQ1MTQyY2Qx
NzdhYWRhZTVjMzg1MzJkNTdmY2E0MzgwYWNkNGI2Li5jNWM0NjYyMGJhY2Q1NTU5YjQ5M2UwMzFl
NTRiOWMwY2M3MWVhYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLmgKQEAgLTQxMSw4ICs0MTEsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHByZWZlcmVu
Y2VzRGlkQ2hhbmdlKCk7CiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvciYsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSA9IFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50KTsKLSAgICB2b2lkIGNs
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbik7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6
OlRleHRJbmRpY2F0b3ImLCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgPSBUZXh0SW5kaWNhdG9yTGlm
ZXRpbWU6OlBlcm1hbmVudCk7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pOwogICAgIHZvaWQg
c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsKICAgICB2b2lkIGRpc21p
c3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkoKTsKICAgICB2b2lkIGRp
c21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uKGJvb2wpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCAyM2E1MDQ2
ODExNDEzMzUxOWYyZWQxYmRjZDgyNGNkOTJhNjViNDFmLi4xNWFlZWEzNTYzOWQyNDYzNWEwNmEy
ZjQ4ZWQ0MDg3YWQ1ZDBiMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQpAQCAtNDIzLDcgKzQyMyw3IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9y
S2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihO
CiAjaWYgIUVOQUJMRShSRVZFQUwpCiAtICh2b2lkKV9kaWN0aW9uYXJ5TG9va3VwUG9wb3Zlcldp
bGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBfaW1wbC0+Y2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICBfaW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpO
b25lKTsKIH0KICNlbmRpZgogCkBAIC0zNDk1LDcgKzM0OTUsNyBAQCB2b2lkIFdlYlZpZXdJbXBs
OjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCiAgICAgICAgIHVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFt
ZXMoKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JMaWZldGlt
ZSBsaWZldGltZSkKIHsKICAgICBpZiAoIW1fdGV4dEluZGljYXRvcldpbmRvdykKICAgICAgICAg
bV90ZXh0SW5kaWNhdG9yV2luZG93ID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93PihtX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkpOwpAQCAtMzUwNCw3ICszNTA0LDcgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6c2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
JiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3IKICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3ctPnNldFRl
eHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgTlNSZWN0VG9DR1JlY3QodGV4dEJvdW5kaW5nUmVj
dEluU2NyZWVuQ29vcmRpbmF0ZXMpLCBsaWZldGltZSk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6
OmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCit2b2lkIFdlYlZpZXdJbXBsOjpjbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNz
YWxBbmltYXRpb24gYW5pbWF0aW9uKQogewogICAgIGlmIChtX3RleHRJbmRpY2F0b3JXaW5kb3cp
CiAgICAgICAgIG1fdGV4dEluZGljYXRvcldpbmRvdy0+Y2xlYXJUZXh0SW5kaWNhdG9yKGFuaW1h
dGlvbik7CkBAIC0zNTI3LDcgKzM1MjcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaXNtaXNzQ29u
dGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbkZyb21WaWV3T25seShibwogICAg
IC8vIENhbGxpbmcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24gaGVyZSB3aWxsIHdp
biBvdXQgb3ZlciB0aGUgYW5pbWF0ZWQgY2xlYXIgaW4gZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNo
aWxkV2luZG93c0Zyb21WaWV3T25seS4KICAgICAvLyBXZSBjYW4ndCBpbnZlcnQgdGhlc2UgYmVj
YXVzZSBjbGllbnRzIGNhbiBvdmVycmlkZSAoYW5kIGhhdmUgb3ZlcnJpZGRlbikgX2Rpc21pc3ND
b250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3MsIHNvIGl0IG5lZWRzIHRvIGJlIGNhbGxlZC4KICAg
ICAvLyBGb3IgdGhpcyBzYW1lIHJlYXNvbiwgdGhpcyBjYW4ndCBiZSBtb3ZlZCB0byBXZWJWaWV3
SW1wbCB3aXRob3V0IGNhcmUuCi0gICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihh
bmltYXRlID8gV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6
RmFkZU91dCA6IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246
Ok5vbmUpOworICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oYW5pbWF0ZSA/IFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQgOiBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKICAgICBbbV92aWV3IF93
ZWJfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107CiB9CiAKQEAgLTM1NDQsNyAr
MzU0NCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3NGcm9tVmlld09ubHkoKQogICAgICAgICAgICAgW1tnZXREREFjdGlvbnNNYW5hZ2VyQ2xh
c3MoKSBzaGFyZWRNYW5hZ2VyXSByZXF1ZXN0QnViYmxlQ2xvc3VyZVVuYW5jaG9yT25GYWlsdXJl
OllFU107CiAgICAgfQogCi0gICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAg
ICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JE
aXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogCiAgICAgW21faW1tZWRpYXRlQWN0aW9uQ29u
dHJvbGxlciBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDQxN2UxMWQ0OTY2MDdhMzAwY2ZiNjVmZWQ2Yzdm
NGNhY2UwYzkyNmQuLmEzNTczMWVjMDFkOWU1ZTE1MDJlNjA1ZTUyODJmZWYwYjA0NWQ2ODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTEwNiw4ICsxMDYsOCBAQCBjbGFz
cyBTZWxlY3Rpb25EYXRhOwogZW51bSBjbGFzcyBNb3VzZUV2ZW50UG9saWN5IDogdWludDhfdDsK
IGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2Ny
b2xsYmFyU3R5bGUgOiB1aW50OF90OwotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93TGlm
ZXRpbWUgOiB1aW50OF90OwotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uIDogdWludDhfdDsKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckxpZmV0aW1lIDog
dWludDhfdDsKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogCiBz
dHJ1Y3QgQXBwSGlnaGxpZ2h0OwpAQCAtMzg1LDggKzM4NSw4IEBAIHB1YmxpYzoKICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3Io
UmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
TGlmZXRpbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVh
clRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3Mo
ZmxvYXQpID0gMDsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlM
b29rdXAoY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGVhNWMzNDkwNzMzYzJiMGU5MWRl
ODQ4ODhlMzAwNGFlOWJhYjg0NWQuLmViMWRhMGE4M2VkYTU4YjQ3ZTdlY2M1OWY2ODA2MzJjMTYw
NzBmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjE4
LDcgKzIxOCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BdHRyaWJ1dGVkU3RyaW5nLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SdW5Mb29wT2JzZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N5c3Rl
bUJhdHRlcnkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRS
aWdodC5oPgogI2luY2x1ZGUgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KQEAgLTY1MTEsNyAr
NjUxMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJ
bmRpY2F0b3JEYXRhJiBpbmRpY2F0b3JEYXRhLCB1aW50CiB7CiAgICAgLy8gRklYTUU6IE1ha2Ug
VGV4dEluZGljYXRvcldpbmRvdyBhIHBsYXRmb3JtLWluZGVwZW5kZW50IHByZXNlbnRhdGlvbmFs
IHRoaW5nICgiVGV4dEluZGljYXRvclByZXNlbnRhdGlvbiI/KS4KICNpZiBQTEFURk9STShDT0NP
QSkKLSAgICBwYWdlQ2xpZW50KCkuc2V0VGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yOjpjcmVh
dGUoaW5kaWNhdG9yRGF0YSksIHN0YXRpY19jYXN0PFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGlt
ZT4obGlmZXRpbWUpKTsKKyAgICBwYWdlQ2xpZW50KCkuc2V0VGV4dEluZGljYXRvcihUZXh0SW5k
aWNhdG9yOjpjcmVhdGUoaW5kaWNhdG9yRGF0YSksIHN0YXRpY19jYXN0PFRleHRJbmRpY2F0b3JM
aWZldGltZT4obGlmZXRpbWUpKTsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAj
ZW5kaWYKQEAgLTY1MjAsNyArNjUxOSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRUZXh0SW5k
aWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0b3JEYXRhJiBpbmRpY2F0b3JEYXRhLCB1aW50CiB2b2lk
IFdlYlBhZ2VQcm94eTo6Y2xlYXJUZXh0SW5kaWNhdG9yKCkKIHsKICNpZiBQTEFURk9STShDT0NP
QSkKLSAgICBwYWdlQ2xpZW50KCkuY2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAgIHBhZ2VDbGllbnQoKS5jbGVhclRl
eHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFk
ZU91dCk7CiAjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDViNDU3ZGZiNjAzMWVmNjM5YWQzYWUz
ZmNiZmZmYWU2YTZkODU3MDIuLmQyZGJlMTliM2RiOTVhNzgzMTYyNTI3NDQxZjE4NDNkMWVkMjFl
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMTQ5LDcgKzEx
NDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb3VudFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5n
JiwgT3B0aW9uU2V0PEZpbmRPcHRpb25zPiwgdW5zaWduZWQgbWF4TWF0Y2hDb3VudCk7CiAgICAg
dm9pZCByZXBsYWNlTWF0Y2hlcyhWZWN0b3I8dWludDMyX3Q+JiYgbWF0Y2hJbmRpY2VzLCBjb25z
dCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCwgYm9vbCBzZWxlY3Rpb25Pbmx5LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAgICAgdm9pZCBkaWRDb3VudFN0cmluZ01hdGNo
ZXMoY29uc3QgU3RyaW5nJiwgdWludDMyX3QgbWF0Y2hDb3VudCk7Ci0gICAgdm9pZCBzZXRUZXh0
SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJiwgdWludDY0X3QgLyog
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lICovIGxpZmV0aW1lID0gMCAvKiBQ
ZXJtYW5lbnQgKi8pOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yRGF0YSYsIHVpbnQ2NF90IC8qIFRleHRJbmRpY2F0b3JMaWZldGltZSAqLyBs
aWZldGltZSA9IDAgLyogUGVybWFuZW50ICovKTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JB
bmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApp
bmRleCAzZmJlMWIxN2ZmNjYwNDQ5ZTk5M2VmN2U4YWZjMGJhMDAyNGZkODdhLi44MWZiMDE4MzNj
ZWU5ZTVkOTE1OTU0MThkMmI1YTBhZTRiODQ0Y2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTM4LDggKzEzOCw4IEBAIHByaXZh
dGU6CiAgICAgUmVmUHRyPFdlYkRhdGVUaW1lUGlja2VyPiBjcmVhdGVEYXRlVGltZVBpY2tlcihX
ZWJQYWdlUHJveHkmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9y
KFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0xpZmV0aW1lKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJUZXh0SW5k
aWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRl
OwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgc2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoY29uc3QgU2FmZUJyb3dz
aW5nV2FybmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmFyaWFudDxXZWJLaXQ6OkNvbnRp
bnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggNDBiNzYyMzYzOWZmYWQ0
MWI0NDI0NjhlYjJlMTgxYWEzNGYwMTY1My4uYTJiMWQyYjQyMjgzNGQ1ZmM0MzAyMTljNDhjOTMw
MDZhNzVjODhiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbQpAQCAtNDc5LDE2ICs0NzksMzEgQEAgUmVmUHRyPFdlYlBvcHVwTWVudVBy
b3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5JikK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dElu
ZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvcldp
bmRvd0xpZmV0aW1lKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8
VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvckxpZmV0aW1lKQogewor
I2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBbbV9jb250ZW50VmlldyBzZXRVcFRleHRJ
bmRpY2F0b3I6dGV4dEluZGljYXRvcl07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0ZXh0SW5k
aWNhdG9yKTsKKyNlbmRpZgogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRp
Y2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlz
c2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKIHsKKyNpZiBFTkFCTEUoQVBQX0hJR0hM
SUdIVFMpCisgICAgW21fY29udGVudFZpZXcgY2xlYXJUZXh0SW5kaWNhdG9yOmRpc21pc3NhbEFu
aW1hdGlvbl07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkaXNtaXNzYWxBbmltYXRpb24pOwor
I2VuZGlmCiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3JBbmltYXRp
b25Qcm9ncmVzcyhmbG9hdCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3JB
bmltYXRpb25Qcm9ncmVzcyhmbG9hdCBhbmltYXRpb25Qcm9ncmVzcykKIHsKKyNpZiBFTkFCTEUo
QVBQX0hJR0hMSUdIVFMpCisgICAgW21fY29udGVudFZpZXcgc2V0VGV4dEluZGljYXRvckFuaW1h
dGlvblByb2dyZXNzOmFuaW1hdGlvblByb2dyZXNzXTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGFuaW1hdGlvblByb2dyZXNzKTsKKyNlbmRpZgogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpl
bnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxh
eWVyVHJlZUNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggODg2YWU3NWU2N2I1NmFlYjM4Mzc4NGY1
OTZjOWQ4ZjcyOTEyNTZlNy4uZDI0NTJmY2FkZDU0ZThhZGI0NTNmNjBjYTBjOGFmYjk4OTljYWUw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaApAQCAtODksNiArODksNyBAQCBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBh
cnNlZFVSTDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBl
bnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNo
YXJpbmdQb2xpY3kgOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uIDogdWludDhfdDsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBzdHJ1Y3Qg
RHJhZ0l0ZW07CkBAIC0xMzIsNiArMTMzLDEwIEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKICNlbmRp
ZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCitAY2xhc3MgV2ViVGV4dElu
ZGljYXRvckxheWVyOworI2VuZGlmCisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2lt
cG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9uc0Jl
Zm9yZS5oPgogI2VuZGlmCkBAIC0zMzAsNiArMzM1LDExIEBAIGVudW0gY2xhc3MgUHJvY2VlZFdp
dGhJbWFnZUV4dHJhY3Rpb24gOiBib29sIHsKICNlbmRpZgogICAgIFJldGFpblB0cjxVSVByZXZp
ZXdJdGVtQ29udHJvbGxlcj4gX3ByZXZpZXdJdGVtQ29udHJvbGxlcjsKICNlbmRpZgorICAgIAor
I2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dEluZGlj
YXRvcj4gX3RleHRJbmRpY2F0b3I7CisgICAgUmV0YWluUHRyPFdlYlRleHRJbmRpY2F0b3JMYXll
cj4gX3RleHRJbmRpY2F0b3JMYXllcjsKKyNlbmRpZgogCiAjaWYgVVNFKFVJQ09OVEVYVE1FTlUp
CiAgICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQcmV2aWV3PiBfY29udGV4dE1lbnVJbnRlcmFjdGlv
blRhcmdldGVkUHJldmlldzsKQEAgLTY3MCw2ICs2ODAsMTIgQEAgRk9SX0VBQ0hfUFJJVkFURV9X
S0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJf
VklFVykKIC0gKHZvaWQpX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lOwogLSAo
dm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZTsKIAorI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKKy0gKHZvaWQpc2V0VXBUZXh0SW5kaWNhdG9yOihSZWY8V2ViQ29yZTo6VGV4dEluZGlj
YXRvcj4pdGV4dEluZGljYXRvcjsKKy0gKHZvaWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzOihmbG9hdClOU0FuaW1hdGlvblByb2dyZXNzOworLSAodm9pZCljbGVhclRleHRJbmRp
Y2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9u
OworI2VuZGlmCisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxk
VXNlQ29udGV4dE1lbnVzOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9z
aG91bGRBdm9pZFJlc2l6aW5nV2hlbklucHV0Vmlld0JvdW5kc0NoYW5nZTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkQXZvaWRTY3JvbGxpbmdXaGVuRm9jdXNl
ZENvbnRlbnRJc1Zpc2libGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBhNjA4NjlhNzdmOTI1NzBiMjBj
OWY3MTkzZGFjZDEwMTEyMWZhMTdhLi5mN2MzZGI1YjIwYjNmMzdiNzJjNzg4ODI4NjM4ZGY0Yjdl
NzM2MjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE3Miw2ICsxNzIsMTEgQEAKICNpbXBvcnQgIlBl
cHBlclVJQ29yZVNQSS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisj
aW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
V2ViVGV4dEluZGljYXRvckxheWVyLmg+CisjZW5kaWYKKwogI2ltcG9ydCA8cGFsL2lvcy9NYW5h
Z2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg+CiAKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYg
VVNFKFVJQ09OVEVYVE1FTlUpCkBAIC05NTgyLDYgKzk1ODcsNjkgQEAgLSAodm9pZClfaW52b2tl
QWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjooV2ViS2l0OjpQ
cm9jZWVkV2kKIAogI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogCisjaWYgRU5B
QkxFKEFQUF9ISUdITElHSFRTKQorLSAodm9pZClzZXRVcFRleHRJbmRpY2F0b3I6KFJlZjxXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yCit7CisgICAgaWYgKF90ZXh0SW5kaWNh
dG9yID09IHRleHRJbmRpY2F0b3IucHRyKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBb
c2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07CisgICAgW05TT2JqZWN0IGNhbmNlbFBy
ZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihz
dGFydEZhZGVPdXQpIG9iamVjdDpuaWxdOworICAgIAorICAgIF90ZXh0SW5kaWNhdG9yID0gdGV4
dEluZGljYXRvci5wdHIoKTsKKworICAgIENHUmVjdCBmcmFtZSA9IF90ZXh0SW5kaWNhdG9yLT50
ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CisgICAgX3RleHRJbmRpY2F0
b3JMYXllciA9IGFkb3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgYWxsb2NdIGluaXRXaXRo
RnJhbWU6ZnJhbWUKKyAgICAgICAgdGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIG1hcmdpbjpD
R1NpemVaZXJvIG9mZnNldDpDR1BvaW50WmVyb10pOworICAgIAorICAgIFtbc2VsZiBsYXllcl0g
YWRkU3VibGF5ZXI6X3RleHRJbmRpY2F0b3JMYXllci5nZXQoKV07CisKKyAgICBpZiAoX3RleHRJ
bmRpY2F0b3ItPnByZXNlbnRhdGlvblRyYW5zaXRpb24oKSAhPSBXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSkKKyAgICAgICAgW190ZXh0SW5kaWNhdG9y
TGF5ZXIgcHJlc2VudF07CisgICAgCisgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3Rv
cihzdGFydEZhZGVPdXQpIHdpdGhPYmplY3Q6c2VsZiBhZnRlckRlbGF5OldlYkNvcmU6OnRpbWVC
ZWZvcmVGYWRlU3RhcnRzXTsKK30KKworLSAodm9pZCljbGVhclRleHRJbmRpY2F0b3I6KFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uCit7CisgICAgUmVm
UHRyPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IgPSBXVEZNb3ZlKF90ZXh0
SW5kaWNhdG9yKTsKKyAgICAKKyAgICBpZiAoW190ZXh0SW5kaWNhdG9yTGF5ZXIgaXNGYWRpbmdP
dXRdKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAodGV4dEluZGljYXRvciAmJiBbX3RleHRJ
bmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRv
cl0gJiYgW190ZXh0SW5kaWNhdG9yTGF5ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9uXSAmJiBhbmlt
YXRpb24gPT0gV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91
dCkgeworICAgICAgICBbc2VsZiBzdGFydEZhZGVPdXRdOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgW3NlbGYgdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXJdOworfQorCistICh2b2lk
KXNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQpYW5pbWF0aW9uUHJvZ3Jl
c3MKK3sKKyAgICBpZiAoIV90ZXh0SW5kaWNhdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBb
X3RleHRJbmRpY2F0b3JMYXllciBzZXRBbmltYXRpb25Qcm9ncmVzczphbmltYXRpb25Qcm9ncmVz
c107Cit9CisKKy0gKHZvaWQpdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXIKK3sKKyAgICBbX3Rl
eHRJbmRpY2F0b3JMYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CisgICAgX3RleHRJbmRpY2F0
b3JMYXllciA9IG5pbDsKK30KKworLSAodm9pZClzdGFydEZhZGVPdXQKK3sKKyAgICBbX3RleHRJ
bmRpY2F0b3JMYXllciBzZXRGYWRpbmdPdXQ6WUVTXTsKKyAgICAgICAgCisgICAgW190ZXh0SW5k
aWNhdG9yTGF5ZXIgaGlkZVdpdGhDb21wbGV0aW9uSGFuZGxlcjpbd2Vha1NlbGYgPSBXZWFrT2Jq
Q1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0geworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3
ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgW3N0cm9uZ1NlbGYgdGVhcmRvd25UZXh0SW5kaWNhdG9y
TGF5ZXJdOworICAgIH1dOworfQorI2VuZGlmIC8vIEVOQUJMRShBUFBfSElHSExJR0hUUykKKwog
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQWZ0ZXIubW0+CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggNThiZTRh
MmNhZTQ1MzdlNTQ2M2JkZDFiNmI1YmUxNjhiYTY5Mjc2Yy4uZTIyMzA4MmRkODAyYTY2MjEwYmJi
YTNkMWM4MDBiMzQ4YjZjOTI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTE1Niw4ICsxNTYsOCBAQCBwcml2YXRlOgogCiAgICAg
UmVmPFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU+IGNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpTZXR0
aW5ncyYpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFRleHRJbmRp
Y2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUp
IG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEaXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VGV4dEluZGlj
YXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KSBvdmVycmlkZTsKIAogICAgIHZvaWQgZW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMu
bW0KaW5kZXggNzg4YTI3OTZkYmIxY2Y0NTllZmUxMjRjNmYwZDdkMGE2OThiN2U5Yi4uZGI3M2Zl
MjhiNTM1YTA1M2I2ZjNjZmVlNzJhNWFmOTNjMTc1MjhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtNTY5LDEyICs1NjksMTIg
QEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZGb3JNYWlu
RnJhbWVOYXZpZ2F0aW9uKCkKICAgICBtX2ltcGwtPmNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lm
Rm9yTWFpbkZyYW1lTmF2aWdhdGlvbigpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRU
ZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFBhZ2VDbGllbnRJbXBs
OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBUZXh0
SW5kaWNhdG9yTGlmZXRpbWUgbGlmZXRpbWUpCiB7CiAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNh
dG9yKHRleHRJbmRpY2F0b3IuZ2V0KCksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50
SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNt
aXNzYWxBbmltYXRpb24gZGlzbWlzc2FsQW5pbWF0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6
Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRp
b24gZGlzbWlzc2FsQW5pbWF0aW9uKQogewogICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbihkaXNtaXNzYWxBbmltYXRpb24pOwogfQpAQCAtNjcyLDkgKzY3Miw5IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0IERp
Y3Rpb25hcnlQb3B1cEluZm8mIGRpY3RpCiAgICAgbV9pbXBsLT5wcmVwYXJlRm9yRGljdGlvbmFy
eUxvb2t1cCgpOwogCiAgICAgRGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVwKGRpY3Rpb25hcnlQ
b3B1cEluZm8sIG1fdmlldywgW3RoaXNdKFRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsK
LSAgICAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFRleHRJbmRp
Y2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50KTsKKyAgICAgICAgbV9pbXBsLT5zZXRUZXh0
SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50
KTsKICAgICB9LCBudWxscHRyLCBbdGhpc10oKSB7Ci0gICAgICAgIG1faW1wbC0+Y2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlz
c2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICAgICAgbV9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5v
bmUpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQppbmRleCA5YmFhOGJlMjRjNzdj
NzQ2ZTc5M2Y0MTM3OGRjZDAwYjNjZjRjNGZlLi4zMzlmZjk3ZDMwNjAyOWE2YjAwOGUxMTg2NmUz
Y2E0ZjY5MWI5NmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTQ5MCw5ICs0OTAsOSBAQCAt
IChpZDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250
cm9sbGVyRm9yVGV4dAogICAgIF92aWV3SW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAo
KTsKIAogICAgIHJldHVybiBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250
cm9sbGVyRm9yUG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgX3ZpZXcsIFtzZWxmXShXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIF92aWV3SW1wbC0+c2V0
VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
TGlmZXRpbWU6OlBlcm1hbmVudCk7CisgICAgICAgIF92aWV3SW1wbC0+c2V0VGV4dEluZGljYXRv
cih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudCk7CiAgICAg
fSwgbnVsbHB0ciwgW3NlbGZdKCkgewotICAgICAgICBfdmlld0ltcGwtPmNsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbjo6Tm9uZSk7CisgICAgICAgIF92aWV3SW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0
aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25l
KTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzZjJlOWQ1MGZmYjAw
MWMyNDZkNDE3MTBlMDNiNDQ5YmRjNTg2Nzg0Li5iNmIwOGMyZmM0ZDQ1OWFjMDZhYTE1YTE4ZjI3
ZWEyZjI2M2UyMjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODgsNiArODgsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
Y3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
IHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAj
aW5jbHVkZSAiUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIgpAQCAtMTI2OSw2ICsxMjcwLDExIEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdo
bGlnaHQmJiBoaWdobGlnaHQpIGNvbnN0CiAgICAgaGlnaGxpZ2h0LnJlcXVlc3RPcmlnaW5hdGVk
SW5BcHAgPSBtX3BhZ2UuaGlnaGxpZ2h0UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCgpOwogICAgIG1f
cGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0b3JlQXBwSGlnaGxpZ2h0KGhpZ2hs
aWdodCkpOwogfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvcihjb25z
dCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSkgY29uc3QKK3sKKyAg
ICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9yKGlu
ZGljYXRvckRhdGEsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
TGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKK30KICNlbmRpZgogCiBTdHJpbmcgV2ViQ2hyb21lQ2xp
ZW50OjpzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZUlu
ZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZVN0cmluZywgY29uc3QgVVJMJiB1cmwpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNGVlZjFmOGFkMWM1MmFjMDUxNjU4MmJhMTYxNTVjYWQw
MWExNTU3Mi4uZDdlZmIwODg1OWRkMDU5NDA2NmU4NDNjYTI2MGIwMWE0NGU2M2ZlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaApAQCAtMzUxLDYgKzM1MSw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUo
QVBQX0hJR0hMSUdIVFMpCiAgICAgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBI
aWdobGlnaHQmJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0
IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShXRUJfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IDAwOTAxNGE1MzZiZjlkNjhkZmJlNWRhMTQw
ZGRiNTE3YWVhY2QyMDcuLmVlM2JjMjM2YjJjNGFkMjI4NDYzN2VkZmMxM2JjZTJiNGNhM2FiOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJv
bGxlci5jcHAKQEAgLTM4MCw3ICszODAsNyBAQCBib29sIEZpbmRDb250cm9sbGVyOjp1cGRhdGVG
aW5kSW5kaWNhdG9yKEZyYW1lJiBzZWxlY3RlZEZyYW1lLCBib29sIGlzU2hvd2luZ092ZQogCiAg
ICAgbV9maW5kSW5kaWNhdG9yUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoaW5kaWNhdG9yLT5zZWxl
Y3Rpb25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkpOwogI2lmIFBMQVRGT1JNKENPQ09BKQot
ICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0SW5kaWNh
dG9yKGluZGljYXRvci0+ZGF0YSgpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaXNTaG93aW5nT3Zl
cmxheSA/IFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50IDogVGV4dEluZGlj
YXRvcldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpKSk7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yLT5kYXRhKCks
IHN0YXRpY19jYXN0PHVpbnQ2NF90Pihpc1Nob3dpbmdPdmVybGF5ID8gVGV4dEluZGljYXRvckxp
ZmV0aW1lOjpQZXJtYW5lbnQgOiBUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsK
ICNlbmRpZgogICAgIG1faXNTaG93aW5nRmluZEluZGljYXRvciA9IHRydWU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKaW5kZXggZjNkNDcxNmE4OTMzZDlmMjQyZjhlZjEyMTVhODY2MjM0MGY4OTdhNS4uNmUx
OGYyYjI0MjE3MTNhMmM0MGQ3NDQxOGQ1MjRiODUzNjQxMTY1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
QEAgLTE1Myw2ICsxNTMsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRT
KQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDQ1MzljZTZmNjRkMDBiMGJiMDAyODNlYWM4
MTUzMjk3OTAwNGM0ZTguLjQ3ZTcxMWE2ODJiMzI5MzMwNWQ3NzIwN2E4NDcxMzM3OTJmMDdjZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTcxOCw2ICs3MTgsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8
RGF0ZVRpbWVDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGVUaW1lQ2hvb3NlcihE
YXRlVGltZQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6
OkFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRl
eHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRh
dGEpIGNvbnN0Cit7Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAwZmUy
YTUwOTZjN2UyNmYzMjAzMjVlMzY4YmZmMGRiYjlmMDcyYzc2Li42MWQ2ZjRlODY1OTRkY2FiN2U2
MTc5MDcwNGI3MDllZjVjY2MyYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTU5NTMsNyArNTk1Myw3IEBAIC0gKHZvaWQpX2xvb2tV
cEluRGljdGlvbmFyeUZyb21NZW51OihpZClzZW5kZXIKIAogLSAodm9pZClxdWlja0xvb2tXaXRo
RXZlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIFtbc2VsZiBfd2ViVmlld10gX2NsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21p
c3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW1tzZWxmIF93ZWJWaWV3XSBfY2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uOjpGYWRlT3V0XTsKICAgICBbc3VwZXIgcXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IGNlNjJiZmE1MTYxNzdjOGMz
NmFlZGQ3YmE1ZmE0YzI3NTEwZDZmNzEuLmMzYzM2NzJiZmNjZmNkMTM2ZTYyZjNkZmMzNDExYmRl
ZTliYWU0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTEyMiw3ICsxMjIs
NyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRpZEhhbmRsZVNjcm9sbFdo
ZWVsOihOU0V2ZW50ICopZXZlbnQKIHsKICAgICBbX2N1cnJlbnRRTFByZXZpZXdNZW51SXRlbSBj
bG9zZV07CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2Vi
VmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKKyAgICBbX3dlYlZpZXcgX2NsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbjo6Tm9uZV07CiB9CiAKIC0gKE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCkBAIC0xMzksNyArMTM5LDcgQEAgLSAo
dm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uCiAgICAgfQogCiAgICAgW3NlbGYgX2NsZWFySW1t
ZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0
aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9u
OjpGYWRlT3V0XTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRp
b246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiB9
CiAKIC0gKHZvaWQpX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGUKQEAgLTI1MSw3ICsyNTEsNyBA
QCAtICh2b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJEaWRDYW5jZWxBbmltYXRpb246KE5T
SW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlYwogCiAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNh
dG9yQW5pbWF0aW9uUHJvZ3Jlc3M6MF07CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9u
U3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKKyAg
ICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07CiAgICAgW193ZWJWaWV3IF9zZXRN
YWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbjpOT107CiB9CiAKQEAgLTI5Myw3ICsyOTMsNyBAQCAt
IChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfZGVmYXVsdEFuaW1h
dGlvbkNvbnRyb2xsZXIKICAgICAgICAgICAgIGF1dG8gbGlua1JhbmdlID0gbWFrZVJhbmdlU2Vs
ZWN0aW5nTm9kZUNvbnRlbnRzKCpfaGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50KCkpOwogICAgICAg
ICAgICAgYXV0byBpbmRpY2F0b3IgPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRo
UmFuZ2UobGlua1JhbmdlLCB7IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JPcHRpb246OlVzZUJvdW5k
aW5nUmVjdEFuZFBhaW50QWxsQ29udGVudEZvckNvbXBsZXhSYW5nZXMgfSwgV2ViQ29yZTo6VGV4
dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246OkZhZGVJbik7CiAgICAgICAgICAgICBp
ZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRv
cjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlm
ZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5k
aWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVy
bWFuZW50XTsKIAogICAgICAgICAgICAgUUxQcmV2aWV3TWVudUl0ZW0gKml0ZW0gPSBbTlNNZW51
SXRlbSBzdGFuZGFyZFF1aWNrTG9va01lbnVJdGVtXTsKICAgICAgICAgICAgIGl0ZW0ucHJldmll
d1N0eWxlID0gUUxQcmV2aWV3U3R5bGVQb3BvdmVyOwpAQCAtMzc5LDcgKzM3OSw3IEBAIC0gKE5T
UmVjdEVkZ2UpbWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSBwcmVmZXJyZWRFZGdlRm9y
UG9pbnQ6KE5TUG9pbnQpcG9pCiAtICh2b2lkKW1lbnVJdGVtRGlkQ2xvc2U6KE5TTWVudUl0ZW0g
KiltZW51SXRlbQogewogICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAg
ICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW193ZWJW
aWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0
b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogfQogCiBzdGF0aWMgV2ViQ29yZTo6SW50
UmVjdCBlbGVtZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzRnJvbU5vZGUoV2ViQ29y
ZTo6Tm9kZSogbm9kZSkKQEAgLTQ2NCw5ICs0NjQsOSBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3Rl
ZAogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFtkZXRlY3RlZEl0ZW0tPmFjdGlvbkNvbnRl
eHQgY29udGV4dEZvclZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVk
SGFuZGxlcjpeKCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkgewogICAg
ICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNh
dG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dM
aWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGlj
YXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1h
bmVudF07CiAgICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5kbGVyOl4oKSB7Ci0gICAgICAgIFtf
d2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW193ZWJW
aWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0
b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwogCiAgICAgW19jdXJyZW50
QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcud2luZG93IGNvbnZlcnRS
ZWN0VG9TY3JlZW46ZGV0ZWN0ZWRJdGVtLT5ib3VuZGluZ0JveF1dOwpAQCAtNDk3LDkgKzQ5Nyw5
IEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRp
b25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkCiAgICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0g
W2FjdGlvbkNvbnRleHQgY29udGV4dEZvclZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJh
Y3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxl
cjpeKCkgewogICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgW193ZWJWaWV3IF9z
ZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgICAgIFtfd2ViVmlldyBf
c2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5kaWNhdG9yTGlm
ZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5kbGVyOl4oKSB7
Ci0gICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAg
ICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6
OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwogCiAg
ICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcud2lu
ZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46ZWxlbWVudEJvdW5kaW5nQm94SW5XaW5kb3dDb29yZGlu
YXRlc0Zyb21Ob2RlKF9oaXRUZXN0UmVzdWx0LlVSTEVsZW1lbnQoKSldXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3MjY0YmZkY2Q3MmRlMTM2OTYw
YTMyMzhjYjAwMjE2ZmI4OTJmZjdjLi41ZTBlZDE1YzkyMWIwNmJhMzJjZTdmM2EzZDczMWI3MWE0
NTczZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBA
IC05MTAwLDExICs5MTAwLDExIEBAIC0gKGlkKV9hbmltYXRpb25Db250cm9sbGVyRm9yRGljdGlv
bmFyeUxvb2t1cFBvcHVwSW5mbzooY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyCiAgICAgW3NlbGYg
X3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAogICAgIHJldHVybiBXZWJDb3JlOjpEaWN0
aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVyRm9yUG9wdXAoZGljdGlvbmFyeVBvcHVw
SW5mbywgc2VsZiwgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3Ip
IHsKLSAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlm
ZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOwor
ICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGlt
ZTpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSwgW3NlbGZdKFdlYkNv
cmU6OkZsb2F0UmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSB7CiAgICAgICAgIHJldHVy
biBbc2VsZiBfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6cmVjdEluUm9vdFZpZXdDb29yZGluYXRl
c107CiAgICAgfSwgW3NlbGZdKCkgewotICAgICAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmlt
YXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07
CiAgICAgfSk7CiB9CiAKQEAgLTkxMjAsMTAgKzkxMjAsMTAgQEAgLSAodm9pZClfc2V0UHJlc3N1
cmVFdmVudDooTlNFdmVudCAqKWV2ZW50CiAKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdl
YkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IKIHsKLSAgICBbc2VsZiBfc2V0VGV4
dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0
b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJt
YW5lbnRdOwogfQogCi0tICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lKWxpZmV0aW1lCistICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooVGV4dEluZGlj
YXRvckxpZmV0aW1lKWxpZmV0aW1lCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+dGV4dEluZGljYXRv
cldpbmRvdykKICAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cgPSBtYWtlVW5p
cXVlPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+KHNlbGYpOwpAQCAtOTEzMywxMCArOTEz
MywxMCBAQCAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
Jil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooVwogICAgIF9wcml2YXRlLT50ZXh0SW5kaWNh
dG9yV2luZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIE5TUmVjdFRvQ0dSZWN0
KHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzKSwgbGlmZXRpbWUpOwogfQogCi0t
ICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbgorLSAodm9pZClfY2xlYXJU
ZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbilhbmltYXRpb24KIHsKICAgICBpZiAoX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JX
aW5kb3cpCi0gICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJ
bmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6
RmFkZU91dCk7CisgICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRl
eHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFk
ZU91dCk7CiAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cgPSBudWxscHRyOwogfQog
CkBAIC05MTY4LDE4ICs5MTY4LDE4IEBAIC0gKHZvaWQpX3Nob3dEaWN0aW9uYXJ5TG9va3VwUG9w
dXA6KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKWRpY3Rpb25hCiAgICAgW3Nl
bGYgX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAogICAgIFdlYkNvcmU6OkRpY3Rpb25h
cnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBzZWxmLCBbc2VsZl0oV2Vi
Q29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBbc2VsZiBfc2V0
VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgIFtzZWxmIF9zZXRUZXh0
SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRpY2F0b3JMaWZldGlt
ZTo6UGVybWFuZW50XTsKICAgICB9LCBbc2VsZl0oV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RJblJv
b3RWaWV3Q29vcmRpbmF0ZXMpIHsKICAgICAgICAgcmV0dXJuIFtzZWxmIF9jb252ZXJ0UmVjdEZy
b21Sb290VmlldzpyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICB9LCBbd2Vha1NlbGYg
PSBXZWFrT2JqQ1B0cjxXZWJWaWV3PihzZWxmKV0oKSB7Ci0gICAgICAgIFt3ZWFrU2VsZi5nZXQo
KSBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW3dlYWtTZWxmLmdl
dCgpIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0
b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH0pOwogfQogCiAjaWYgIUVOQUJM
RShSRVZFQUwpCiAtICh2b2lkKV9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTooTlNO
b3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5p
bWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsK
IH0KICNlbmRpZiAvLyBFTkFCTEUoUkVWRUFMKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCA3MzM3MmEwYmRhMTUzYmZhMzc2
MTAyM2NmNDk1ZDc5NmZhNzE4Y2MxLi5iMmNhMGQ2YzRmZmZiNDYxOTE4N2NmMjY3MjljZWJhMmQz
ZDRlZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
d0ludGVybmFsLmgKQEAgLTMxOSw4ICszMTksOCBAQCBXZWJMYXlvdXRNaWxlc3RvbmVzIGtpdExh
eW91dE1pbGVzdG9uZXMoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pOwogCiAj
aWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogLSAodm9pZClfc2V0VGV4
dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvcjsKLS0gKHZv
aWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0
b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpbGlm
ZXRpbWU7Ci0tICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKKy0gKHZv
aWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0
b3Igd2l0aExpZmV0aW1lOihUZXh0SW5kaWNhdG9yTGlmZXRpbWUpbGlmZXRpbWU7CistICh2b2lk
KV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3JB
bmltYXRpb25Qcm9ncmVzczooZmxvYXQpcHJvZ3Jlc3M7CiAtICh2b2lkKV9zaG93RGljdGlvbmFy
eUxvb2t1cFBvcHVwOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9u
YXJ5UG9wdXBJbmZvOwogLSAoaWQpX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEaWN0aW9uYXJ5TG9v
a3VwUG9wdXBJbmZvOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9u
YXJ5UG9wdXBJbmZvOwo=
</data>
<flag name="commit-queue"
          id="449408"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428474</attachid>
            <date>2021-05-13 02:47:10 -0700</date>
            <delta_ts>2021-05-13 05:32:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513024709.patch</filename>
            <type>text/plain</type>
            <size>52160</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRv
ci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLmJlNmI3
ZTE3MDZkZmZhOGFkYmNmMTY4M2E1Y2JmZjkzMjVmOTM2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCkBAIC0zOSw2ICszOSwzMCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIAorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9T
KQorCitjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Citjb25zdGV4
cHIgQ0dGbG9hdCByaW1TaGFkb3dCbHVyUmFkaXVzID0gMTsKK2NvbnN0ZXhwciBDRlRpbWVJbnRl
cnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlvbiA9IDAuMTI7Citjb25zdGV4cHIgQ0ZUaW1lSW50
ZXJ2YWwgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25EdXJhdGlvbiArIDAu
MjsKK2NvbnN0ZXhwciBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4yNTsKKworCitlbnVtIGNs
YXNzIFRleHRJbmRpY2F0b3JMaWZldGltZSA6IHVpbnQ4X3QgeworICAgIC8vIFRoZSBUZXh0SW5k
aWNhdG9yIHNob3VsZCBpbmRpY2F0ZSB0aGUgdGV4dCB1bnRpbCBkaXNtaXNzZWQuCisgICAgUGVy
bWFuZW50LAorCisgICAgLy8gVGhlIFRleHRJbmRpY2F0b3Igc2hvdWxkIGJyaWVmbHkgaW5kaWNh
dGUgdGhlIHRleHQgYW5kIHRoZW4gYXV0b21hdGljYWxseSBkaXNtaXNzLgorICAgIFRlbXBvcmFy
eQorfTsKKworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIDogdWlu
dDhfdCB7CisgICAgTm9uZSwKKyAgICBGYWRlT3V0Cit9OworCisjZW5kaWYKKwogLy8gRklYTUU6
IE1vdmUgUHJlc2VudGF0aW9uVHJhbnNpdGlvbiB0byBUZXh0SW5kaWNhdG9yV2luZG93LCBiZWNh
dXNlIGl0J3MgYWJvdXQgcHJlc2VudGF0aW9uLgogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJl
c2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4X3QgewogICAgIE5vbmUsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaAppbmRleCBmZDEzZDA0
MGVmZmI3NWIwZWEwMDRlYTU1MWUzMjIxNTRhZTE4ZmFmLi5iZWJmOTNhMzZlZDcwZTZiMzA5ZGU4
OTU4MWExODM2NjVlMzhjMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29h
L1dlYlRleHRJbmRpY2F0b3JMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2Ev
V2ViVGV4dEluZGljYXRvckxheWVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKLUBpbnRlcmZhY2UgV2ViVGV4
dEluZGljYXRvckxheWVyIDogQ0FMYXllciB7CitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdl
YlRleHRJbmRpY2F0b3JMYXllciA6IENBTGF5ZXIgewogICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yPiBfdGV4dEluZGljYXRvcjsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2JvdW5j
ZUxheWVyczsKICAgICBDR1NpemUgX21hcmdpbjsKQEAgLTUzLDMgKzUzLDQgQEAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNGYWRpbmdPdXQpIEJPT0wgZmFkaW5nT3V0OwogCiBAZW5k
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRv
ckxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5
ZXIubW0KaW5kZXggYjhjNGQ4ZjA2N2JhY2VkMDlhODExODA4NzEwMzA2YzU3YTc5NDMwMC4uYjZi
YzExYmJiMGNjZDIxNDVkMmI3ZjJkNjg3YmI2ZWU0YmY2MjM0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KQEAgLTMwLDYgKzMw
LDcgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiUGF0aFV0aWxpdGll
cy5oIgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgorI2ltcG9ydCAiVGV4dEluZGljYXRvcldp
bmRvdy5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmgiCiAj
aW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmg+CkBAIC0zOCwxOSArMzksMTUgQEAKICNpbXBvcnQgPHBhbC9z
cGkvY29jb2EvTlNDb2xvclNQSS5oPgogI2VuZGlmCiAKLWNvbnN0ZXhwciBDRlRpbWVJbnRlcnZh
bCBib3VuY2VBbmltYXRpb25EdXJhdGlvbiA9IDAuMTI7CisKIGNvbnN0ZXhwciBDRlRpbWVJbnRl
cnZhbCBib3VuY2VXaXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjM7CiBjb25zdGV4
cHIgQ0ZUaW1lSW50ZXJ2YWwgZmFkZUluQW5pbWF0aW9uRHVyYXRpb24gPSAwLjE1OwotY29uc3Rl
eHByIENGVGltZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5pbWF0aW9u
RHVyYXRpb24gKyAwLjI7CiBjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgZmFkZU91dEFuaW1hdGlv
bkR1cmF0aW9uID0gMC4zOwogCi1jb25zdGV4cHIgQ0dGbG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEu
MjU7CiBjb25zdGV4cHIgQ0dGbG9hdCBib3JkZXJXaWR0aCA9IDA7CiBjb25zdGV4cHIgQ0dGbG9h
dCBjb3JuZXJSYWRpdXMgPSAwOwogY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09mZnNldFgg
PSAwOwogY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09mZnNldFkgPSAxOwotY29uc3RleHBy
IENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotY29uc3RleHByIENHRmxvYXQgcmlt
U2hhZG93Qmx1clJhZGl1cyA9IDE7CiAKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IHRleHRM
YXllcktleSA9IEAiVGV4dExheWVyIjsKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IGRyb3BT
aGFkb3dMYXllcktleSA9IEAiRHJvcFNoYWRvd0xheWVyIjsKQEAgLTEzMiwxMyArMTI5LDEyIEBA
IC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRv
cjooV2ViQ29yZTo6VGV4dEluZGljYXRvCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkp
CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgCisgICAgc2VsZi5hbmNob3JQb2ludCA9IENHUG9p
bnRaZXJvOwogICAgIHNlbGYuZnJhbWUgPSBmcmFtZTsKIAogICAgIF90ZXh0SW5kaWNhdG9yID0g
JnRleHRJbmRpY2F0b3I7CiAgICAgX21hcmdpbiA9IG1hcmdpbjsKIAotICAgIHNlbGYuYW5jaG9y
UG9pbnQgPSBDR1BvaW50WmVybzsKLQogICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4g
Y29udGVudHNJbWFnZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgY29udGVudHNJbWFnZUxvZ2lj
YWxTaXplIHsgMSwgMSB9OwogICAgIGlmIChhdXRvKiBjb250ZW50SW1hZ2UgPSBfdGV4dEluZGlj
YXRvci0+Y29udGVudEltYWdlKCkpIHsKQEAgLTE5Miw3ICsxODgsNyBAQCAtIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRl
eHRJbmRpY2F0bwogICAgICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gZHJvcFNoYWRvd0xheWVyID0g
YWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW2Ryb3BTaGFkb3dMYXll
ciBzZXREZWxlZ2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlIHNoYXJlZF1d
OwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd0NvbG9yOmRyb3BTaGFkb3dDb2xv
ci5nZXQoKV07Ci0gICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UmFkaXVzOmRyb3BT
aGFkb3dCbHVyUmFkaXVzXTsKKyAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRp
dXM6V2ViQ29yZTo6ZHJvcFNoYWRvd0JsdXJSYWRpdXNdOwogICAgICAgICBbZHJvcFNoYWRvd0xh
eWVyIHNldFNoYWRvd09mZnNldDpDR1NpemVNYWtlKGRyb3BTaGFkb3dPZmZzZXRYLCBkcm9wU2hh
ZG93T2Zmc2V0WSldOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd1BhdGg6dHJh
bnNsYXRlZFBhdGgucGxhdGZvcm1QYXRoKCldOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNl
dFNoYWRvd09wYWNpdHk6MV07CkBAIC0yMDQsNyArMjAwLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5k
aWNhdG8KICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNh
YmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBz
ZXRGcmFtZTp5ZWxsb3dIaWdobGlnaHRSZWN0XTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNl
dFNoYWRvd0NvbG9yOnJpbVNoYWRvd0NvbG9yLmdldCgpXTsKLSAgICAgICAgW3JpbVNoYWRvd0xh
eWVyIHNldFNoYWRvd1JhZGl1czpyaW1TaGFkb3dCbHVyUmFkaXVzXTsKKyAgICAgICAgW3JpbVNo
YWRvd0xheWVyIHNldFNoYWRvd1JhZGl1czpXZWJDb3JlOjpyaW1TaGFkb3dCbHVyUmFkaXVzXTsK
ICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRlZFBhdGgucGxh
dGZvcm1QYXRoKCldOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93T2Zmc2V0OkNH
U2l6ZVplcm9dOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93T3BhY2l0eToxXTsK
QEAgLTI0NSw3ICsyNDEsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENBS2V5ZnJhbWVBbmltYXRpb24+
IGNyZWF0ZUJvdW5jZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZhbCBkdXJhdAogICAgIFJldGFpblB0
cjxDQUtleWZyYW1lQW5pbWF0aW9uPiBib3VuY2VBbmltYXRpb24gPSBbQ0FLZXlmcmFtZUFuaW1h
dGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDpAInRyYW5zZm9ybSJdOwogICAgIFtib3VuY2VBbmlt
YXRpb24gc2V0VmFsdWVzOkBbCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3Jt
M0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XSwKLSAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FU
cmFuc2Zvcm0zRDpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKG1pZEJvdW5jZVNjYWxlLCBtaWRCb3Vu
Y2VTY2FsZSwgMSldLAorICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOkNB
VHJhbnNmb3JtM0RNYWtlU2NhbGUoV2ViQ29yZTo6bWlkQm91bmNlU2NhbGUsIFdlYkNvcmU6Om1p
ZEJvdW5jZVNjYWxlLCAxKV0sCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3Jt
M0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XQogICAgICAgICBdXTsKICAgICBbYm91bmNlQW5pbWF0
aW9uIHNldER1cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTI5NCw3ICsyOTAsNyBAQCAtIChDRlRpbWVJ
bnRlcnZhbClfYW5pbWF0aW9uRHVyYXRpb24KICAgICBpZiAoW3NlbGYgaW5kaWNhdG9yV2FudHNC
b3VuY2U6Kl90ZXh0SW5kaWNhdG9yXSkgewogICAgICAgICBpZiAoaW5kaWNhdG9yV2FudHNDb250
ZW50Q3Jvc3NmYWRlKCpfdGV4dEluZGljYXRvcikpCiAgICAgICAgICAgICByZXR1cm4gYm91bmNl
V2l0aENyb3NzZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwotICAgICAgICByZXR1cm4gYm91bmNlQW5p
bWF0aW9uRHVyYXRpb247CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpib3VuY2VBbmltYXRpb25E
dXJhdGlvbjsKICAgICB9CiAKICAgICByZXR1cm4gZmFkZUluQW5pbWF0aW9uRHVyYXRpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93LmgKaW5kZXggYzNi
MzNlYmEyYzhiYzBkNzU0NTlkZDIxNTA4OWI2NTI5YzVkMzE1ZC4uZjdmZmY3YzczYTFkMmZmNzU0
YjI3ODdjYTIyOTk1MjM4MDMxMzM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvVGV4dEluZGljYXRvcldpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cuaApAQCAtMzYsMTkgKzM2LDYgQEAgT0JKQ19DTEFTUyBXZWJUZXh0
SW5kaWNhdG9yTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBUZXh0
SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgOiB1aW50OF90IHsKLSAgICAvLyBUaGUgVGV4dEluZGlj
YXRvciBzaG91bGQgaW5kaWNhdGUgdGhlIHRleHQgdW50aWwgZGlzbWlzc2VkLgotICAgIFBlcm1h
bmVudCwKLQotICAgIC8vIFRoZSBUZXh0SW5kaWNhdG9yIHNob3VsZCBicmllZmx5IGluZGljYXRl
IHRoZSB0ZXh0IGFuZCB0aGVuIGF1dG9tYXRpY2FsbHkgZGlzbWlzcy4KLSAgICBUZW1wb3JhcnkK
LX07Ci0KLWVudW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiA6
IHVpbnQ4X3QgewotICAgIE5vbmUsCi0gICAgRmFkZU91dAotfTsKLQogI2lmIFBMQVRGT1JNKE1B
QykKIAogY2xhc3MgVGV4dEluZGljYXRvcldpbmRvdyB7CkBAIC01OSw4ICs0Niw4IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBUZXh0SW5kaWNhdG9yV2luZG93KE5TVmll
dyAqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+VGV4dEluZGljYXRvcldpbmRvdygpOwogCi0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiwg
Q0dSZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JXaW5kb3dE
aXNtaXNzYWxBbmltYXRpb24pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGV4dEluZGlj
YXRvcihSZWY8VGV4dEluZGljYXRvcj4sIENHUmVjdCBjb250ZW50UmVjdCwgVGV4dEluZGljYXRv
ckxpZmV0aW1lKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihU
ZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogCkBAIC04MSwzICs2OCw1IEBAIHByaXZh
dGU6CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRv
dy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KaW5k
ZXggZjg1ZmE1M2IzYjRhOWY0NTk2OTc3NmExMmNjNDExZjc5MjJkZjc3Yy4uMDFhNzhkMTNjNzUw
ZjQ2MWM1NWQ3ZjFjNGYwNjczNDNlNTE5MDc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCkBAIC0zOCwxMiArMzgsNiBAQAogI2ltcG9ydCA8
cGFsL3NwaS9jb2NvYS9OU0NvbG9yU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0
ekNvcmVTUEkuaD4KIAotY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVyYXRp
b24gPSAwLjEyOwotY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBi
b3VuY2VBbmltYXRpb25EdXJhdGlvbiArIDAuMjsKLQotY29uc3QgQ0dGbG9hdCBtaWRCb3VuY2VT
Y2FsZSA9IDEuMjU7Ci1jb25zdCBDR0Zsb2F0IGRyb3BTaGFkb3dCbHVyUmFkaXVzID0gMjsKLQog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU2LDcg
KzUwLDcgQEAgVGV4dEluZGljYXRvcldpbmRvdzo6VGV4dEluZGljYXRvcldpbmRvdyhOU1ZpZXcg
KnRhcmdldFZpZXcpCiAKIFRleHRJbmRpY2F0b3JXaW5kb3c6On5UZXh0SW5kaWNhdG9yV2luZG93
KCkKIHsKLSAgICBjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogfQogCiB2b2lkIFRleHRJ
bmRpY2F0b3JXaW5kb3c6OnNldEFuaW1hdGlvblByb2dyZXNzKGZsb2F0IHByb2dyZXNzKQpAQCAt
NjcsMTQgKzYxLDE0IEBAIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0QW5pbWF0aW9uUHJv
Z3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCiAgICAgW21fdGV4dEluZGljYXRvckxheWVyIHNldEFuaW1h
dGlvblByb2dyZXNzOnByb2dyZXNzXTsKIH0KIAotdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93Ojpj
bGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiBh
bmltYXRpb24pCit2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsZWFyVGV4dEluZGljYXRvcihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKIHsKICAg
ICBSZWZQdHI8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9IFdURk1vdmUobV90ZXh0SW5k
aWNhdG9yKTsKIAogICAgIGlmIChbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaXNGYWRpbmdPdXRdKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAodGV4dEluZGljYXRvciAmJiBbbV90ZXh0SW5kaWNh
dG9yTGF5ZXIgaW5kaWNhdG9yV2FudHNNYW51YWxBbmltYXRpb246KnRleHRJbmRpY2F0b3JdICYm
IFttX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlv
biA9PSBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7Cisg
ICAgaWYgKHRleHRJbmRpY2F0b3IgJiYgW21fdGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldh
bnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5kaWNhdG9yXSAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5
ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9uXSAmJiBhbmltYXRpb24gPT0gV2ViQ29yZTo6VGV4dElu
ZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCkgewogICAgICAgICBzdGFydEZhZGVP
dXQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTgyLDcgKzc2LDcgQEAgdm9pZCBUZXh0
SW5kaWNhdG9yV2luZG93OjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGkKICAgICBjbG9zZVdpbmRvdygpOwogfQogCi12b2lkIFRleHRJbmRpY2F0
b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0
b3IsIENHUmVjdCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcywgVGV4dEluZGlj
YXRvcldpbmRvd0xpZmV0aW1lIGxpZmV0aW1lKQordm9pZCBUZXh0SW5kaWNhdG9yV2luZG93Ojpz
ZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBDR1JlY3Qg
dGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMsIFRleHRJbmRpY2F0b3JMaWZldGlt
ZSBsaWZldGltZSkKIHsKICAgICBpZiAobV90ZXh0SW5kaWNhdG9yID09IHRleHRJbmRpY2F0b3Iu
cHRyKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTk1LDggKzg5LDggQEAgdm9pZCBUZXh0SW5kaWNh
dG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNh
dG9yLCBDR1IKICAgICBDR0Zsb2F0IHZlcnRpY2FsTWFyZ2luID0gZHJvcFNoYWRvd0JsdXJSYWRp
dXMgKiAyICsgVGV4dEluZGljYXRvcjo6ZGVmYXVsdFZlcnRpY2FsTWFyZ2luOwogICAgIAogICAg
IGlmIChbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2FudHNCb3VuY2U6Km1fdGV4dElu
ZGljYXRvcl0pIHsKLSAgICAgICAgaG9yaXpvbnRhbE1hcmdpbiA9IHN0ZDo6bWF4KGhvcml6b250
YWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLnNpemUud2lkdGgg
KiAobWlkQm91bmNlU2NhbGUgLSAxKSArIGhvcml6b250YWxNYXJnaW4pOwotICAgICAgICB2ZXJ0
aWNhbE1hcmdpbiA9IHN0ZDo6bWF4KHZlcnRpY2FsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5T
Y3JlZW5Db29yZGluYXRlcy5zaXplLmhlaWdodCAqIChtaWRCb3VuY2VTY2FsZSAtIDEpICsgdmVy
dGljYWxNYXJnaW4pOworICAgICAgICBob3Jpem9udGFsTWFyZ2luID0gc3RkOjptYXgoaG9yaXpv
bnRhbE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS53aWR0
aCAqIChXZWJDb3JlOjptaWRCb3VuY2VTY2FsZSAtIDEpICsgaG9yaXpvbnRhbE1hcmdpbik7Cisg
ICAgICAgIHZlcnRpY2FsTWFyZ2luID0gc3RkOjptYXgodmVydGljYWxNYXJnaW4sIHRleHRCb3Vu
ZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLnNpemUuaGVpZ2h0ICogKFdlYkNvcmU6Om1pZEJv
dW5jZVNjYWxlIC0gMSkgKyB2ZXJ0aWNhbE1hcmdpbik7CiAgICAgfQogCiAgICAgaG9yaXpvbnRh
bE1hcmdpbiA9IENHQ2VpbGluZyhob3Jpem9udGFsTWFyZ2luKTsKQEAgLTEyNSw4ICsxMTksOCBA
QCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRp
Y2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUgogICAgIGlmIChtX3RleHRJbmRpY2F0b3ItPnByZXNl
bnRhdGlvblRyYW5zaXRpb24oKSAhPSBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlv
bjo6Tm9uZSkKICAgICAgICAgW21fdGV4dEluZGljYXRvckxheWVyIHByZXNlbnRdOwogCi0gICAg
aWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6VGVtcG9yYXJ5KQot
ICAgICAgICBtX3RlbXBvcmFyeVRleHRJbmRpY2F0b3JUaW1lci5zdGFydE9uZVNob3QoMV9zICog
dGltZUJlZm9yZUZhZGVTdGFydHMpOworICAgIGlmIChsaWZldGltZSA9PSBUZXh0SW5kaWNhdG9y
TGlmZXRpbWU6OlRlbXBvcmFyeSkKKyAgICAgICAgbV90ZW1wb3JhcnlUZXh0SW5kaWNhdG9yVGlt
ZXIuc3RhcnRPbmVTaG90KDFfcyAqIFdlYkNvcmU6OnRpbWVCZWZvcmVGYWRlU3RhcnRzKTsKIH0K
IAogdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpjbG9zZVdpbmRvdygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCAzYWQ1MTQyY2QxNzdhYWRhZTVj
Mzg1MzJkNTdmY2E0MzgwYWNkNGI2Li5jNWM0NjYyMGJhY2Q1NTU5YjQ5M2UwMzFlNTRiOWMwY2M3
MWVhYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgK
QEAgLTQxMSw4ICs0MTEsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHByZWZlcmVuY2VzRGlkQ2hh
bmdlKCk7CiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRv
ciYsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSA9IFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50KTsKLSAgICB2b2lkIGNsZWFyVGV4dElu
ZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbik7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3ImLCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgPSBUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBl
cm1hbmVudCk7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pOwogICAgIHZvaWQgc2V0VGV4dElu
ZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsKICAgICB2b2lkIGRpc21pc3NDb250ZW50
UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkoKTsKICAgICB2b2lkIGRpc21pc3NDb250
ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uKGJvb2wpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCAyM2E1MDQ2ODExNDEzMzUx
OWYyZWQxYmRjZDgyNGNkOTJhNjViNDFmLi4xNWFlZWEzNTYzOWQyNDYzNWEwNmEyZjQ4ZWQ0MDg3
YWQ1ZDBiMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQpAQCAtNDIzLDcgKzQyMyw3IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDoo
TlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOCiAjaWYgIUVO
QUJMRShSRVZFQUwpCiAtICh2b2lkKV9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZToo
TlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBfaW1wbC0+Y2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpOb25lKTsKKyAgICBfaW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKIH0K
ICNlbmRpZgogCkBAIC0zNDk1LDcgKzM0OTUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpwcmVmZXJl
bmNlc0RpZENoYW5nZSgpCiAgICAgICAgIHVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsKIH0K
IAotdm9pZCBXZWJWaWV3SW1wbDo6c2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yJiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUg
bGlmZXRpbWUpCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JMaWZldGltZSBsaWZldGlt
ZSkKIHsKICAgICBpZiAoIW1fdGV4dEluZGljYXRvcldpbmRvdykKICAgICAgICAgbV90ZXh0SW5k
aWNhdG9yV2luZG93ID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93Piht
X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkpOwpAQCAtMzUwNCw3ICszNTA0LDcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6c2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5k
aWNhdG9yLCBXZWJDb3IKICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3ctPnNldFRleHRJbmRpY2F0
b3IodGV4dEluZGljYXRvciwgTlNSZWN0VG9DR1JlY3QodGV4dEJvdW5kaW5nUmVjdEluU2NyZWVu
Q29vcmRpbmF0ZXMpLCBsaWZldGltZSk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OmNsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21p
c3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCit2b2lkIFdlYlZpZXdJbXBsOjpjbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRp
b24gYW5pbWF0aW9uKQogewogICAgIGlmIChtX3RleHRJbmRpY2F0b3JXaW5kb3cpCiAgICAgICAg
IG1fdGV4dEluZGljYXRvcldpbmRvdy0+Y2xlYXJUZXh0SW5kaWNhdG9yKGFuaW1hdGlvbik7CkBA
IC0zNTI3LDcgKzM1MjcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaXNtaXNzQ29udGVudFJlbGF0
aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbkZyb21WaWV3T25seShibwogICAgIC8vIENhbGxp
bmcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24gaGVyZSB3aWxsIHdpbiBvdXQgb3Zl
ciB0aGUgYW5pbWF0ZWQgY2xlYXIgaW4gZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93
c0Zyb21WaWV3T25seS4KICAgICAvLyBXZSBjYW4ndCBpbnZlcnQgdGhlc2UgYmVjYXVzZSBjbGll
bnRzIGNhbiBvdmVycmlkZSAoYW5kIGhhdmUgb3ZlcnJpZGRlbikgX2Rpc21pc3NDb250ZW50UmVs
YXRpdmVDaGlsZFdpbmRvd3MsIHNvIGl0IG5lZWRzIHRvIGJlIGNhbGxlZC4KICAgICAvLyBGb3Ig
dGhpcyBzYW1lIHJlYXNvbiwgdGhpcyBjYW4ndCBiZSBtb3ZlZCB0byBXZWJWaWV3SW1wbCB3aXRo
b3V0IGNhcmUuCi0gICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihhbmltYXRlID8g
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCA6
IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwor
ICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oYW5pbWF0ZSA/IFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQgOiBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKICAgICBbbV92aWV3IF93ZWJfZGlzbWlz
c0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107CiB9CiAKQEAgLTM1NDQsNyArMzU0NCw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9t
Vmlld09ubHkoKQogICAgICAgICAgICAgW1tnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFy
ZWRNYW5hZ2VyXSByZXF1ZXN0QnViYmxlQ2xvc3VyZVVuYW5jaG9yT25GYWlsdXJlOllFU107CiAg
ICAgfQogCi0gICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICBjbGVhclRl
eHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxB
bmltYXRpb246OkZhZGVPdXQpOwogCiAgICAgW21faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBk
aXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCmluZGV4IDQxN2UxMWQ0OTY2MDdhMzAwY2ZiNjVmZWQ2YzdmNGNhY2UwYzky
NmQuLmEzNTczMWVjMDFkOWU1ZTE1MDJlNjA1ZTUyODJmZWYwYjA0NWQ2ODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTEwNiw4ICsxMDYsOCBAQCBjbGFzcyBTZWxlY3Rp
b25EYXRhOwogZW51bSBjbGFzcyBNb3VzZUV2ZW50UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xh
c3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2Nyb2xsYmFyU3R5
bGUgOiB1aW50OF90OwotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgOiB1
aW50OF90OwotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9u
IDogdWludDhfdDsKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckxpZmV0aW1lIDogdWludDhfdDsK
K2VudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7CiBl
bnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogCiBzdHJ1Y3QgQXBw
SGlnaGxpZ2h0OwpAQCAtMzg1LDggKzM4NSw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JMaWZldGltZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRp
Y2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpID0g
MDsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29u
c3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGVhNWMzNDkwNzMzYzJiMGU5MWRlODQ4ODhlMzAw
NGFlOWJhYjg0NWQuLmViMWRhMGE4M2VkYTU4YjQ3ZTdlY2M1OWY2ODA2MzJjMTYwNzBmNmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjE4LDcgKzIxOCw2
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BdHRyaWJ1dGVkU3RyaW5nLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wT2JzZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N5c3RlbUJhdHRlcnku
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgog
I2luY2x1ZGUgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KQEAgLTY1MTEsNyArNjUxMCw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0b3JE
YXRhJiBpbmRpY2F0b3JEYXRhLCB1aW50CiB7CiAgICAgLy8gRklYTUU6IE1ha2UgVGV4dEluZGlj
YXRvcldpbmRvdyBhIHBsYXRmb3JtLWluZGVwZW5kZW50IHByZXNlbnRhdGlvbmFsIHRoaW5nICgi
VGV4dEluZGljYXRvclByZXNlbnRhdGlvbiI/KS4KICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBw
YWdlQ2xpZW50KCkuc2V0VGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yOjpjcmVhdGUoaW5kaWNh
dG9yRGF0YSksIHN0YXRpY19jYXN0PFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZT4obGlmZXRp
bWUpKTsKKyAgICBwYWdlQ2xpZW50KCkuc2V0VGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yOjpj
cmVhdGUoaW5kaWNhdG9yRGF0YSksIHN0YXRpY19jYXN0PFRleHRJbmRpY2F0b3JMaWZldGltZT4o
bGlmZXRpbWUpKTsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKQEAg
LTY1MjAsNyArNjUxOSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRUZXh0SW5kaWNhdG9yKGNv
bnN0IFRleHRJbmRpY2F0b3JEYXRhJiBpbmRpY2F0b3JEYXRhLCB1aW50CiB2b2lkIFdlYlBhZ2VQ
cm94eTo6Y2xlYXJUZXh0SW5kaWNhdG9yKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBw
YWdlQ2xpZW50KCkuY2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb246OkZhZGVPdXQpOworICAgIHBhZ2VDbGllbnQoKS5jbGVhclRleHRJbmRpY2F0
b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiAj
ZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDViNDU3ZGZiNjAzMWVmNjM5YWQzYWUzZmNiZmZmYWU2
YTZkODU3MDIuLmQyZGJlMTliM2RiOTVhNzgzMTYyNTI3NDQxZjE4NDNkMWVkMjFlMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMTQ5LDcgKzExNDksNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjb3VudFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiwgT3B0aW9u
U2V0PEZpbmRPcHRpb25zPiwgdW5zaWduZWQgbWF4TWF0Y2hDb3VudCk7CiAgICAgdm9pZCByZXBs
YWNlTWF0Y2hlcyhWZWN0b3I8dWludDMyX3Q+JiYgbWF0Y2hJbmRpY2VzLCBjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50VGV4dCwgYm9vbCBzZWxlY3Rpb25Pbmx5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHVpbnQ2NF90KT4mJik7CiAgICAgdm9pZCBkaWRDb3VudFN0cmluZ01hdGNoZXMoY29uc3Qg
U3RyaW5nJiwgdWludDMyX3QgbWF0Y2hDb3VudCk7Ci0gICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9y
KGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJiwgdWludDY0X3QgLyogV2ViQ29yZTo6
VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lICovIGxpZmV0aW1lID0gMCAvKiBQZXJtYW5lbnQg
Ki8pOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yRGF0YSYsIHVpbnQ2NF90IC8qIFRleHRJbmRpY2F0b3JMaWZldGltZSAqLyBsaWZldGltZSA9
IDAgLyogUGVybWFuZW50ICovKTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Q
cm9ncmVzcyhmbG9hdCk7CiAgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCAzZmJl
MWIxN2ZmNjYwNDQ5ZTk5M2VmN2U4YWZjMGJhMDAyNGZkODdhLi44MWZiMDE4MzNjZWU5ZTVkOTE1
OTU0MThkMmI1YTBhZTRiODQ0Y2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTM4LDggKzEzOCw4IEBAIHByaXZhdGU6CiAgICAg
UmVmUHRyPFdlYkRhdGVUaW1lUGlja2VyPiBjcmVhdGVEYXRlVGltZVBpY2tlcihXZWJQYWdlUHJv
eHkmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1l
KSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFRl
eHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yTGlmZXRpbWUpIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOwogICAgIHZv
aWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgc2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoY29uc3QgU2FmZUJyb3dzaW5nV2Fybmlu
ZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZl
TG9hZCwgVVJMPiYmKT4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggNDBiNzYyMzYzOWZmYWQ0MWI0NDI0Njhl
YjJlMTgxYWEzNGYwMTY1My4uYTJiMWQyYjQyMjgzNGQ1ZmM0MzAyMTljNDhjOTMwMDZhNzVjODhi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbQpAQCAtNDc5LDE2ICs0NzksMzEgQEAgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBQYWdl
Q2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5JikKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihS
ZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0
aW1lKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGlj
YXRvcj4gdGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvckxpZmV0aW1lKQogeworI2lmIEVOQUJM
RShBUFBfSElHSExJR0hUUykKKyAgICBbbV9jb250ZW50VmlldyBzZXRVcFRleHRJbmRpY2F0b3I6
dGV4dEluZGljYXRvcl07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0ZXh0SW5kaWNhdG9yKTsK
KyNlbmRpZgogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IoVGV4
dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKIHsKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisg
ICAgW21fY29udGVudFZpZXcgY2xlYXJUZXh0SW5kaWNhdG9yOmRpc21pc3NhbEFuaW1hdGlvbl07
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkaXNtaXNzYWxBbmltYXRpb24pOworI2VuZGlmCiB9
CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVz
cyhmbG9hdCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Q
cm9ncmVzcyhmbG9hdCBhbmltYXRpb25Qcm9ncmVzcykKIHsKKyNpZiBFTkFCTEUoQVBQX0hJR0hM
SUdIVFMpCisgICAgW21fY29udGVudFZpZXcgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzOmFuaW1hdGlvblByb2dyZXNzXTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGFuaW1hdGlv
blByb2dyZXNzKTsKKyNlbmRpZgogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjplbnRlckFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNv
bnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggODg2YWU3NWU2N2I1NmFlYjM4Mzc4NGY1OTZjOWQ4Zjcy
OTEyNTZlNy4uZDI0NTJmY2FkZDU0ZThhZGI0NTNmNjBjYTBjOGFmYjk4OTljYWUwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaApAQCAtODksNiArODksNyBAQCBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsK
IGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xp
Y3kgOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9u
IDogdWludDhfdDsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBzdHJ1Y3QgRHJhZ0l0ZW07
CkBAIC0xMzIsNiArMTMzLDEwIEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKICNlbmRpZgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCitAY2xhc3MgV2ViVGV4dEluZGljYXRvckxh
eWVyOworI2VuZGlmCisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2Vi
S2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9uc0JlZm9yZS5oPgog
I2VuZGlmCkBAIC0zMzAsNiArMzM1LDExIEBAIGVudW0gY2xhc3MgUHJvY2VlZFdpdGhJbWFnZUV4
dHJhY3Rpb24gOiBib29sIHsKICNlbmRpZgogICAgIFJldGFpblB0cjxVSVByZXZpZXdJdGVtQ29u
dHJvbGxlcj4gX3ByZXZpZXdJdGVtQ29udHJvbGxlcjsKICNlbmRpZgorICAgIAorI2lmIEVOQUJM
RShBUFBfSElHSExJR0hUUykKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gX3Rl
eHRJbmRpY2F0b3I7CisgICAgUmV0YWluUHRyPFdlYlRleHRJbmRpY2F0b3JMYXllcj4gX3RleHRJ
bmRpY2F0b3JMYXllcjsKKyNlbmRpZgogCiAjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgUmV0
YWluUHRyPFVJVGFyZ2V0ZWRQcmV2aWV3PiBfY29udGV4dE1lbnVJbnRlcmFjdGlvblRhcmdldGVk
UHJldmlldzsKQEAgLTY3MCw2ICs2ODAsMTIgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRW
SUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0g
KHZvaWQpX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lOwogLSAodm9pZClfZGlk
Q29tbWl0TG9hZEZvck1haW5GcmFtZTsKIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKy0g
KHZvaWQpc2V0VXBUZXh0SW5kaWNhdG9yOihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4pdGV4
dEluZGljYXRvcjsKKy0gKHZvaWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihm
bG9hdClOU0FuaW1hdGlvblByb2dyZXNzOworLSAodm9pZCljbGVhclRleHRJbmRpY2F0b3I6KFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOworI2VuZGlm
CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkVXNlQ29udGV4
dE1lbnVzOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRBdm9p
ZFJlc2l6aW5nV2hlbklucHV0Vmlld0JvdW5kc0NoYW5nZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgQk9PTCBfc2hvdWxkQXZvaWRTY3JvbGxpbmdXaGVuRm9jdXNlZENvbnRlbnRJ
c1Zpc2libGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBhNjA4NjlhNzdmOTI1NzBiMjBjOWY3MTkzZGFj
ZDEwMTEyMWZhMTdhLi5mN2MzZGI1YjIwYjNmMzdiNzJjNzg4ODI4NjM4ZGY0YjdlNzM2MjgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KQEAgLTE3Miw2ICsxNzIsMTEgQEAKICNpbXBvcnQgIlBlcHBlclVJQ29y
ZVNQSS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisjaW1wb3J0IDxX
ZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViVGV4dElu
ZGljYXRvckxheWVyLmg+CisjZW5kaWYKKwogI2ltcG9ydCA8cGFsL2lvcy9NYW5hZ2VkQ29uZmln
dXJhdGlvblNvZnRMaW5rLmg+CiAKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09O
VEVYVE1FTlUpCkBAIC05NTgyLDYgKzk1ODcsNjkgQEAgLSAodm9pZClfaW52b2tlQWxsQWN0aW9u
c1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjooV2ViS2l0OjpQcm9jZWVkV2kK
IAogI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogCisjaWYgRU5BQkxFKEFQUF9I
SUdITElHSFRTKQorLSAodm9pZClzZXRVcFRleHRJbmRpY2F0b3I6KFJlZjxXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yCit7CisgICAgaWYgKF90ZXh0SW5kaWNhdG9yID09IHRl
eHRJbmRpY2F0b3IucHRyKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBbc2VsZiB0ZWFy
ZG93blRleHRJbmRpY2F0b3JMYXllcl07CisgICAgW05TT2JqZWN0IGNhbmNlbFByZXZpb3VzUGVy
Zm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihzdGFydEZhZGVP
dXQpIG9iamVjdDpuaWxdOworICAgIAorICAgIF90ZXh0SW5kaWNhdG9yID0gdGV4dEluZGljYXRv
ci5wdHIoKTsKKworICAgIENHUmVjdCBmcmFtZSA9IF90ZXh0SW5kaWNhdG9yLT50ZXh0Qm91bmRp
bmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CisgICAgX3RleHRJbmRpY2F0b3JMYXllciA9
IGFkb3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgYWxsb2NdIGluaXRXaXRoRnJhbWU6ZnJh
bWUKKyAgICAgICAgdGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIG1hcmdpbjpDR1NpemVaZXJv
IG9mZnNldDpDR1BvaW50WmVyb10pOworICAgIAorICAgIFtbc2VsZiBsYXllcl0gYWRkU3VibGF5
ZXI6X3RleHRJbmRpY2F0b3JMYXllci5nZXQoKV07CisKKyAgICBpZiAoX3RleHRJbmRpY2F0b3It
PnByZXNlbnRhdGlvblRyYW5zaXRpb24oKSAhPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yUHJlc2Vu
dGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSkKKyAgICAgICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIgcHJl
c2VudF07CisgICAgCisgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihzdGFydEZh
ZGVPdXQpIHdpdGhPYmplY3Q6c2VsZiBhZnRlckRlbGF5OldlYkNvcmU6OnRpbWVCZWZvcmVGYWRl
U3RhcnRzXTsKK30KKworLSAodm9pZCljbGVhclRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uCit7CisgICAgUmVmUHRyPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IgPSBXVEZNb3ZlKF90ZXh0SW5kaWNhdG9y
KTsKKyAgICAKKyAgICBpZiAoW190ZXh0SW5kaWNhdG9yTGF5ZXIgaXNGYWRpbmdPdXRdKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAodGV4dEluZGljYXRvciAmJiBbX3RleHRJbmRpY2F0b3JM
YXllciBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYgW190
ZXh0SW5kaWNhdG9yTGF5ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9uXSAmJiBhbmltYXRpb24gPT0g
V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCkgeworICAg
ICAgICBbc2VsZiBzdGFydEZhZGVPdXRdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
W3NlbGYgdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXJdOworfQorCistICh2b2lkKXNldFRleHRJ
bmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQpYW5pbWF0aW9uUHJvZ3Jlc3MKK3sKKyAg
ICBpZiAoIV90ZXh0SW5kaWNhdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBbX3RleHRJbmRp
Y2F0b3JMYXllciBzZXRBbmltYXRpb25Qcm9ncmVzczphbmltYXRpb25Qcm9ncmVzc107Cit9CisK
Ky0gKHZvaWQpdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXIKK3sKKyAgICBbX3RleHRJbmRpY2F0
b3JMYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CisgICAgX3RleHRJbmRpY2F0b3JMYXllciA9
IG5pbDsKK30KKworLSAodm9pZClzdGFydEZhZGVPdXQKK3sKKyAgICBbX3RleHRJbmRpY2F0b3JM
YXllciBzZXRGYWRpbmdPdXQ6WUVTXTsKKyAgICAgICAgCisgICAgW190ZXh0SW5kaWNhdG9yTGF5
ZXIgaGlkZVdpdGhDb21wbGV0aW9uSGFuZGxlcjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0Nv
bnRlbnRWaWV3PihzZWxmKV0geworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5n
ZXQoKTsKKyAgICAgICAgW3N0cm9uZ1NlbGYgdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXJdOwor
ICAgIH1dOworfQorI2VuZGlmIC8vIEVOQUJMRShBUFBfSElHSExJR0hUUykKKwogI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uQWRkaXRpb25zQWZ0ZXIubW0+CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggNThiZTRhMmNhZTQ1Mzdl
NTQ2M2JkZDFiNmI1YmUxNjhiYTY5Mjc2Yy4uZTIyMzA4MmRkODAyYTY2MjEwYmJiYTNkMWM4MDBi
MzQ4YjZjOTI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLmgKQEAgLTE1Niw4ICsxNTYsOCBAQCBwcml2YXRlOgogCiAgICAgUmVmPFdlYkNv
cmU6OlZhbGlkYXRpb25CdWJibGU+IGNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpTZXR0aW5ncyYpIGZp
bmFsOwogCi0gICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVm
PFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUpIG92ZXJyaWRl
OworICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNt
aXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1h
dGlvblByb2dyZXNzKGZsb2F0KSBvdmVycmlkZTsKIAogICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXgg
Nzg4YTI3OTZkYmIxY2Y0NTllZmUxMjRjNmYwZDdkMGE2OThiN2U5Yi4uZGI3M2ZlMjhiNTM1YTA1
M2I2ZjNjZmVlNzJhNWFmOTNjMTc1MjhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtNTY5LDEyICs1NjksMTIgQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6Y2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZGb3JNYWluRnJhbWVOYXZp
Z2F0aW9uKCkKICAgICBtX2ltcGwtPmNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFpbkZy
YW1lTmF2aWdhdGlvbigpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNh
dG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0
SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUgbGlmZXRpbWUpCiB7CiAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJ
bmRpY2F0b3IuZ2V0KCksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xl
YXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmlt
YXRpb24gZGlzbWlzc2FsQW5pbWF0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0
SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gZGlzbWlz
c2FsQW5pbWF0aW9uKQogewogICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbihkaXNtaXNzYWxBbmltYXRpb24pOwogfQpAQCAtNjcyLDkgKzY3Miw5IEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0IERpY3Rpb25hcnlQ
b3B1cEluZm8mIGRpY3RpCiAgICAgbV9pbXBsLT5wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cCgp
OwogCiAgICAgRGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8s
IG1fdmlldywgW3RoaXNdKFRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAg
bV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZTo6UGVybWFuZW50KTsKKyAgICAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9y
KHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50KTsKICAgICB9
LCBudWxscHRyLCBbdGhpc10oKSB7Ci0gICAgICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uOjpOb25lKTsKKyAgICAgICAgbV9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAg
IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQppbmRleCA5YmFhOGJlMjRjNzdjNzQ2ZTc5M2Y0
MTM3OGRjZDAwYjNjZjRjNGZlLi4zMzlmZjk3ZDMwNjAyOWE2YjAwOGUxMTg2NmUzY2E0ZjY5MWI5
NmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0lt
bWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTQ5MCw5ICs0OTAsOSBAQCAtIChpZDxOU0lt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9y
VGV4dAogICAgIF92aWV3SW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKIAogICAg
IHJldHVybiBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVyRm9y
UG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgX3ZpZXcsIFtzZWxmXShXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIF92aWV3SW1wbC0+c2V0VGV4dEluZGlj
YXRvcih0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6
OlBlcm1hbmVudCk7CisgICAgICAgIF92aWV3SW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5k
aWNhdG9yLCBUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudCk7CiAgICAgfSwgbnVsbHB0
ciwgW3NlbGZdKCkgewotICAgICAgICBfdmlld0ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6
Tm9uZSk7CisgICAgICAgIF92aWV3SW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlv
bihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKICAgICB9
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzZjJlOWQ1MGZmYjAwMWMyNDZkNDE3
MTBlMDNiNDQ5YmRjNTg2Nzg0Li5iNmIwOGMyZmM0ZDQ1OWFjMDZhYTE1YTE4ZjI3ZWEyZjI2M2Uy
MjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODgsNiArODgsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1RleHRJbmRpY2F0b3IuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFU
Rk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAjaW5jbHVkZSAi
UGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIgpAQCAtMTI2OSw2ICsxMjcwLDExIEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJiBo
aWdobGlnaHQpIGNvbnN0CiAgICAgaGlnaGxpZ2h0LnJlcXVlc3RPcmlnaW5hdGVkSW5BcHAgPSBt
X3BhZ2UuaGlnaGxpZ2h0UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCgpOwogICAgIG1fcGFnZS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0b3JlQXBwSGlnaGxpZ2h0KGhpZ2hsaWdodCkpOwog
fQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSkgY29uc3QKK3sKKyAgICBtX3BhZ2Uu
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9yKGluZGljYXRvckRh
dGEsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6
OlRlbXBvcmFyeSkpKTsKK30KICNlbmRpZgogCiBTdHJpbmcgV2ViQ2hyb21lQ2xpZW50OjpzaWdu
ZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZUluZGV4LCBjb25z
dCBTdHJpbmcmIGNoYWxsZW5nZVN0cmluZywgY29uc3QgVVJMJiB1cmwpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKaW5kZXggNGVlZjFmOGFkMWM1MmFjMDUxNjU4MmJhMTYxNTVjYWQwMWExNTU3Mi4u
ZDdlZmIwODg1OWRkMDU5NDA2NmU4NDNjYTI2MGIwMWE0NGU2M2ZlMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtMzUxLDYgKzM1MSw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hM
SUdIVFMpCiAgICAgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQm
JikgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JEYXRhJikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShX
RUJfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmlu
ZENvbnRyb2xsZXIuY3BwCmluZGV4IDAwOTAxNGE1MzZiZjlkNjhkZmJlNWRhMTQwZGRiNTE3YWVh
Y2QyMDcuLmVlM2JjMjM2YjJjNGFkMjI4NDYzN2VkZmMxM2JjZTJiNGNhM2FiOWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAK
QEAgLTM4MCw3ICszODAsNyBAQCBib29sIEZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kSW5kaWNh
dG9yKEZyYW1lJiBzZWxlY3RlZEZyYW1lLCBib29sIGlzU2hvd2luZ092ZQogCiAgICAgbV9maW5k
SW5kaWNhdG9yUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoaW5kaWNhdG9yLT5zZWxlY3Rpb25SZWN0
SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkpOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIG1fd2Vi
UGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9yKGluZGlj
YXRvci0+ZGF0YSgpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaXNTaG93aW5nT3ZlcmxheSA/IFRl
eHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50IDogVGV4dEluZGljYXRvcldpbmRv
d0xpZmV0aW1lOjpUZW1wb3JhcnkpKSk7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yLT5kYXRhKCksIHN0YXRpY19j
YXN0PHVpbnQ2NF90Pihpc1Nob3dpbmdPdmVybGF5ID8gVGV4dEluZGljYXRvckxpZmV0aW1lOjpQ
ZXJtYW5lbnQgOiBUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKICNlbmRpZgog
ICAgIG1faXNTaG93aW5nRmluZEluZGljYXRvciA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggZjNkNDcxNmE4OTMzZDlmMjQyZjhlZjEyMTVhODY2MjM0MGY4OTdhNS4uNmUxOGYyYjI0MjE3
MTNhMmM0MGQ3NDQxOGQ1MjRiODUzNjQxMTY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE1Myw2
ICsxNTMsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZv
aWQgc3RvcmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYpIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tCmluZGV4IDQ1MzljZTZmNjRkMDBiMGJiMDAyODNlYWM4MTUzMjk3OTAw
NGM0ZTguLjQ3ZTcxMWE2ODJiMzI5MzMwNWQ3NzIwN2E4NDcxMzM3OTJmMDdjZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0KQEAgLTcxOCw2ICs3MTgsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVD
aG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGltZQog
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hs
aWdodCYmKSBjb25zdAogewogfQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRpY2F0
b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEpIGNvbnN0
Cit7Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAwZmUyYTUwOTZjN2Uy
NmYzMjAzMjVlMzY4YmZmMGRiYjlmMDcyYzc2Li42MWQ2ZjRlODY1OTRkY2FiN2U2MTc5MDcwNGI3
MDllZjVjY2MyYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
SFRNTFZpZXcubW0KQEAgLTU5NTMsNyArNTk1Myw3IEBAIC0gKHZvaWQpX2xvb2tVcEluRGljdGlv
bmFyeUZyb21NZW51OihpZClzZW5kZXIKIAogLSAodm9pZClxdWlja0xvb2tXaXRoRXZlbnQ6KE5T
RXZlbnQgKilldmVudAogewotICAgIFtbc2VsZiBfd2ViVmlld10gX2NsZWFyVGV4dEluZGljYXRv
cldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbjo6RmFkZU91dF07CisgICAgW1tzZWxmIF93ZWJWaWV3XSBfY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpG
YWRlT3V0XTsKICAgICBbc3VwZXIgcXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IGNlNjJiZmE1MTYxNzdjOGMzNmFlZGQ3YmE1
ZmE0YzI3NTEwZDZmNzEuLmMzYzM2NzJiZmNjZmNkMTM2ZTYyZjNkZmMzNDExYmRlZTliYWU0Mzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCAtICh2
b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRpZEhhbmRsZVNjcm9sbFdoZWVsOihOU0V2
ZW50ICopZXZlbnQKIHsKICAgICBbX2N1cnJlbnRRTFByZXZpZXdNZW51SXRlbSBjbG9zZV07CiAg
ICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlv
bjo6Tm9uZV07CiB9CiAKIC0gKE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilp
bW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCkBAIC0xMzksNyArMTM5LDcgQEAgLSAodm9pZClfY2Fu
Y2VsSW1tZWRpYXRlQWN0aW9uCiAgICAgfQogCiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0
aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlv
bjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0
XTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29y
ZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAKIC0gKHZv
aWQpX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGUKQEAgLTI1MSw3ICsyNTEsNyBAQCAtICh2b2lk
KWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJEaWRDYW5jZWxBbmltYXRpb246KE5TSW1tZWRpYXRl
QWN0aW9uR2VzdHVyZVJlYwogCiAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yQW5pbWF0
aW9uUHJvZ3Jlc3M6MF07CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwot
ICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKKyAgICBbX3dlYlZp
ZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07CiAgICAgW193ZWJWaWV3IF9zZXRNYWludGFpbnNJ
bmFjdGl2ZVNlbGVjdGlvbjpOT107CiB9CiAKQEAgLTI5Myw3ICsyOTMsNyBAQCAtIChpZCA8TlNJ
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfZGVmYXVsdEFuaW1hdGlvbkNvbnRy
b2xsZXIKICAgICAgICAgICAgIGF1dG8gbGlua1JhbmdlID0gbWFrZVJhbmdlU2VsZWN0aW5nTm9k
ZUNvbnRlbnRzKCpfaGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50KCkpOwogICAgICAgICAgICAgYXV0
byBpbmRpY2F0b3IgPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UobGlu
a1JhbmdlLCB7IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JPcHRpb246OlVzZUJvdW5kaW5nUmVjdEFu
ZFBhaW50QWxsQ29udGVudEZvckNvbXBsZXhSYW5nZXMgfSwgV2ViQ29yZTo6VGV4dEluZGljYXRv
clByZXNlbnRhdGlvblRyYW5zaXRpb246OkZhZGVJbik7CiAgICAgICAgICAgICBpZiAoaW5kaWNh
dG9yKQotICAgICAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNh
dG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBl
cm1hbmVudF07CisgICAgICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOipp
bmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsK
IAogICAgICAgICAgICAgUUxQcmV2aWV3TWVudUl0ZW0gKml0ZW0gPSBbTlNNZW51SXRlbSBzdGFu
ZGFyZFF1aWNrTG9va01lbnVJdGVtXTsKICAgICAgICAgICAgIGl0ZW0ucHJldmlld1N0eWxlID0g
UUxQcmV2aWV3U3R5bGVQb3BvdmVyOwpAQCAtMzc5LDcgKzM3OSw3IEBAIC0gKE5TUmVjdEVkZ2Up
bWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSBwcmVmZXJyZWRFZGdlRm9yUG9pbnQ6KE5T
UG9pbnQpcG9pCiAtICh2b2lkKW1lbnVJdGVtRGlkQ2xvc2U6KE5TTWVudUl0ZW0gKiltZW51SXRl
bQogewogICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dlYlZp
ZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW193ZWJWaWV3IF9jbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNz
YWxBbmltYXRpb246OkZhZGVPdXRdOwogfQogCiBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBlbGVt
ZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzRnJvbU5vZGUoV2ViQ29yZTo6Tm9kZSog
bm9kZSkKQEAgLTQ2NCw5ICs0NjQsOSBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRp
b25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZAogICAgIF9j
dXJyZW50QWN0aW9uQ29udGV4dCA9IFtkZXRlY3RlZEl0ZW0tPmFjdGlvbkNvbnRleHQgY29udGV4
dEZvclZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpe
KCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkgewogICAgICAgICBpZiAo
aW5kaWNhdG9yKQotICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRp
Y2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6
UGVybWFuZW50XTsKKyAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5k
aWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAg
ICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5kbGVyOl4oKSB7Ci0gICAgICAgIFtfd2ViVmlldyBf
Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW193ZWJWaWV3IF9jbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNz
YWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwogCiAgICAgW19jdXJyZW50QWN0aW9uQ29u
dGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3Jl
ZW46ZGV0ZWN0ZWRJdGVtLT5ib3VuZGluZ0JveF1dOwpAQCAtNDk3LDkgKzQ5Nyw5IEBAIC0gKGlk
IDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9s
bGVyRm9yRGF0YURldGVjdGVkCiAgICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0gW2FjdGlvbkNv
bnRleHQgY29udGV4dEZvclZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFy
dGVkSGFuZGxlcjpeKCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkgewog
ICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5k
aWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dElu
ZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBl
cm1hbmVudF07CiAgICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5kbGVyOl4oKSB7Ci0gICAgICAg
IFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW193
ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwogCiAgICAgW19jdXJy
ZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcud2luZG93IGNvbnZl
cnRSZWN0VG9TY3JlZW46ZWxlbWVudEJvdW5kaW5nQm94SW5XaW5kb3dDb29yZGluYXRlc0Zyb21O
b2RlKF9oaXRUZXN0UmVzdWx0LlVSTEVsZW1lbnQoKSldXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3MjY0YmZkY2Q3MmRlMTM2OTYwYTMyMzhjYjAw
MjE2ZmI4OTJmZjdjLi41ZTBlZDE1YzkyMWIwNmJhMzJjZTdmM2EzZDczMWI3MWE0NTczZjlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC05MTAwLDEx
ICs5MTAwLDExIEBAIC0gKGlkKV9hbmltYXRpb25Db250cm9sbGVyRm9yRGljdGlvbmFyeUxvb2t1
cFBvcHVwSW5mbzooY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyCiAgICAgW3NlbGYgX3ByZXBhcmVG
b3JEaWN0aW9uYXJ5TG9va3VwXTsKIAogICAgIHJldHVybiBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9v
a3VwOjphbmltYXRpb25Db250cm9sbGVyRm9yUG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgc2Vs
ZiwgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAg
ICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6V2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICBb
c2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5k
aWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSwgW3NlbGZdKFdlYkNvcmU6OkZsb2F0
UmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSB7CiAgICAgICAgIHJldHVybiBbc2VsZiBf
Y29udmVydFJlY3RGcm9tUm9vdFZpZXc6cmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CiAgICAg
fSwgW3NlbGZdKCkgewotICAgICAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRl
T3V0XTsKKyAgICAgICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfSk7
CiB9CiAKQEAgLTkxMjAsMTAgKzkxMjAsMTAgQEAgLSAodm9pZClfc2V0UHJlc3N1cmVFdmVudDoo
TlNFdmVudCAqKWV2ZW50CiAKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IKIHsKLSAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRv
cjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dElu
ZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwog
fQogCi0tICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0
ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xp
ZmV0aW1lKWxpZmV0aW1lCistICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooVGV4dEluZGljYXRvckxpZmV0
aW1lKWxpZmV0aW1lCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdykK
ICAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+KHNlbGYpOwpAQCAtOTEzMywxMCArOTEzMywxMCBAQCAt
ICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5k
aWNhdG9yIHdpdGhMaWZldGltZTooVwogICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93
LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIE5TUmVjdFRvQ0dSZWN0KHRleHRCb3Vu
ZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzKSwgbGlmZXRpbWUpOwogfQogCi0tICh2b2lkKV9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbgorLSAodm9pZClfY2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlv
bilhbmltYXRpb24KIHsKICAgICBpZiAoX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cpCi0g
ICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0b3Io
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7
CisgICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0
b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiAg
ICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cgPSBudWxscHRyOwogfQogCkBAIC05MTY4
LDE4ICs5MTY4LDE4IEBAIC0gKHZvaWQpX3Nob3dEaWN0aW9uYXJ5TG9va3VwUG9wdXA6KGNvbnN0
IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKWRpY3Rpb25hCiAgICAgW3NlbGYgX3ByZXBh
cmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAogICAgIFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6
OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBzZWxmLCBbc2VsZl0oV2ViQ29yZTo6VGV4
dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGlj
YXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9y
OnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFu
ZW50XTsKICAgICB9LCBbc2VsZl0oV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RJblJvb3RWaWV3Q29v
cmRpbmF0ZXMpIHsKICAgICAgICAgcmV0dXJuIFtzZWxmIF9jb252ZXJ0UmVjdEZyb21Sb290Vmll
dzpyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICB9LCBbd2Vha1NlbGYgPSBXZWFrT2Jq
Q1B0cjxXZWJWaWV3PihzZWxmKV0oKSB7Ci0gICAgICAgIFt3ZWFrU2VsZi5nZXQoKSBfY2xlYXJU
ZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW3dlYWtTZWxmLmdldCgpIF9jbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNz
YWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH0pOwogfQogCiAjaWYgIUVOQUJMRShSRVZFQUwp
CiAtICh2b2lkKV9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTooTlNOb3RpZmljYXRp
b24gKilub3RpZmljYXRpb24KIHsKLSAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFu
aW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpG
YWRlT3V0XTsKKyAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKIH0KICNlbmRp
ZiAvLyBFTkFCTEUoUkVWRUFMKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCA3MzM3MmEwYmRhMTUzYmZhMzc2MTAyM2NmNDk1
ZDc5NmZhNzE4Y2MxLi5iMmNhMGQ2YzRmZmZiNDYxOTE4N2NmMjY3MjljZWJhMmQzZDRlZTJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5h
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFs
LmgKQEAgLTMxOSw4ICszMTksOCBAQCBXZWJMYXlvdXRNaWxlc3RvbmVzIGtpdExheW91dE1pbGVz
dG9uZXMoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pOwogCiAjaWYgUExBVEZP
Uk0oTUFDKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogLSAodm9pZClfc2V0VGV4dEluZGljYXRv
cjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvcjsKLS0gKHZvaWQpX3NldFRl
eHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExp
ZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpbGlmZXRpbWU7Ci0t
ICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKKy0gKHZvaWQpX3NldFRl
eHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExp
ZmV0aW1lOihUZXh0SW5kaWNhdG9yTGlmZXRpbWUpbGlmZXRpbWU7CistICh2b2lkKV9jbGVhclRl
eHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uKWFuaW1hdGlvbjsKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Q
cm9ncmVzczooZmxvYXQpcHJvZ3Jlc3M7CiAtICh2b2lkKV9zaG93RGljdGlvbmFyeUxvb2t1cFBv
cHVwOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9uYXJ5UG9wdXBJ
bmZvOwogLSAoaWQpX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEaWN0aW9uYXJ5TG9va3VwUG9wdXBJ
bmZvOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9uYXJ5UG9wdXBJ
bmZvOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428479</attachid>
            <date>2021-05-13 03:00:56 -0700</date>
            <delta_ts>2021-05-13 03:03:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513030056.patch</filename>
            <type>text/plain</type>
            <size>51960</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRv
ci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLmViZTVm
MTg1YjljNjViZmVjYjE5MTc4MmJjNTM5NDliNmZhOGI5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCkBAIC0zOSw2ICszOSwzMCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAvLyBGSVhNRTogQ2hh
bmdlIHRoZXNlIHRvIFdlYkNvcmUgdHlwZXMgaW5zdGVhZCBvZiBndWFyZGluZyB3aXRoIENPQ09B
CisKK2NvbnN0ZXhwciBDR0Zsb2F0IGRyb3BTaGFkb3dCbHVyUmFkaXVzID0gMjsKK2NvbnN0ZXhw
ciBDR0Zsb2F0IHJpbVNoYWRvd0JsdXJSYWRpdXMgPSAxOworY29uc3RleHByIENGVGltZUludGVy
dmFsIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKK2NvbnN0ZXhwciBDRlRpbWVJbnRl
cnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4y
OworY29uc3RleHByIENHRmxvYXQgbWlkQm91bmNlU2NhbGUgPSAxLjI1OworCisKK2VudW0gY2xh
c3MgVGV4dEluZGljYXRvckxpZmV0aW1lIDogdWludDhfdCB7CisgICAgLy8gVGhlIFRleHRJbmRp
Y2F0b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRpc21pc3NlZC4KKyAgICBQZXJt
YW5lbnQsCisKKyAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgYnJpZWZseSBpbmRpY2F0
ZSB0aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21pc3MuCisgICAgVGVtcG9yYXJ5
Cit9OworCitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50
OF90IHsKKyAgICBOb25lLAorICAgIEZhZGVPdXQKK307CisKKyNlbmRpZgorCiAvLyBGSVhNRTog
TW92ZSBQcmVzZW50YXRpb25UcmFuc2l0aW9uIHRvIFRleHRJbmRpY2F0b3JXaW5kb3csIGJlY2F1
c2UgaXQncyBhYm91dCBwcmVzZW50YXRpb24uCiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVz
ZW50YXRpb25UcmFuc2l0aW9uIDogdWludDhfdCB7CiAgICAgTm9uZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oCmluZGV4IGZkMTNkMDQw
ZWZmYjc1YjBlYTAwNGVhNTUxZTMyMjE1NGFlMThmYWYuLmJlYmY5M2EzNmVkNzBlNmIzMDlkZTg5
NTgxYTE4MzY2NWUzOGMxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2Ev
V2ViVGV4dEluZGljYXRvckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9X
ZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaApAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAotQGludGVyZmFjZSBXZWJUZXh0
SW5kaWNhdG9yTGF5ZXIgOiBDQUxheWVyIHsKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2Vi
VGV4dEluZGljYXRvckxheWVyIDogQ0FMYXllciB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3I+IF90ZXh0SW5kaWNhdG9yOwogICAgIFJldGFpblB0cjxOU0FycmF5PiBfYm91bmNl
TGF5ZXJzOwogICAgIENHU2l6ZSBfbWFyZ2luOwpAQCAtNTMsMyArNTMsNCBAQAogQHByb3BlcnR5
IChub25hdG9taWMsIGdldHRlcj1pc0ZhZGluZ091dCkgQk9PTCBmYWRpbmdPdXQ7CiAKIEBlbmQK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9y
TGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXll
ci5tbQppbmRleCBiOGM0ZDhmMDY3YmFjZWQwOWE4MTE4MDg3MTAzMDZjNTdhNzk0MzAwLi4yNWY4
MzgwMGQ3NDE2NTE4NjM1OWYyMWQwZjIyZmY1MDE2NjFhY2UzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQpAQCAtMzAsNiArMzAs
NyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJQYXRoVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJUZXh0SW5kaWNhdG9yLmgiCisjaW1wb3J0ICJUZXh0SW5kaWNhdG9yV2lu
ZG93LmgiCiAjaW1wb3J0ICJXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCIKICNp
bXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL1F1YXJ0ekNvcmVTUEkuaD4KQEAgLTM4LDE5ICszOSwxNSBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9OU0NvbG9yU1BJLmg+CiAjZW5kaWYKIAotY29uc3RleHByIENGVGltZUludGVydmFs
IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKKwogY29uc3RleHByIENGVGltZUludGVy
dmFsIGJvdW5jZVdpdGhDcm9zc2ZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIGNvbnN0ZXhw
ciBDRlRpbWVJbnRlcnZhbCBmYWRlSW5BbmltYXRpb25EdXJhdGlvbiA9IDAuMTU7Ci1jb25zdGV4
cHIgQ0ZUaW1lSW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25E
dXJhdGlvbiArIDAuMjsKLWNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlT3V0QW5pbWF0aW9u
RHVyYXRpb24gPSAwLjM7Citjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgZmFkZU91dEFuaW1hdGlv
bkR1cmF0aW9uID0gMC4zO1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQogCi1jb25zdGV4cHIgQ0dG
bG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEuMjU7CiBjb25zdGV4cHIgQ0dGbG9hdCBib3JkZXJXaWR0
aCA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBjb3JuZXJSYWRpdXMgPSAwOwogY29uc3RleHByIENH
RmxvYXQgZHJvcFNoYWRvd09mZnNldFggPSAwOwogY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRv
d09mZnNldFkgPSAxOwotY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAy
OwotY29uc3RleHByIENHRmxvYXQgcmltU2hhZG93Qmx1clJhZGl1cyA9IDE7CiAKIGNvbnN0ZXhw
ciBOU1N0cmluZyAqIGNvbnN0IHRleHRMYXllcktleSA9IEAiVGV4dExheWVyIjsKIGNvbnN0ZXhw
ciBOU1N0cmluZyAqIGNvbnN0IGRyb3BTaGFkb3dMYXllcktleSA9IEAiRHJvcFNoYWRvd0xheWVy
IjsKQEAgLTEzMiwxMyArMTI5LDEyIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihD
R1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvCiAgICAgaWYg
KCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgCisgICAg
c2VsZi5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOwogICAgIHNlbGYuZnJhbWUgPSBmcmFtZTsK
IAogICAgIF90ZXh0SW5kaWNhdG9yID0gJnRleHRJbmRpY2F0b3I7CiAgICAgX21hcmdpbiA9IG1h
cmdpbjsKIAotICAgIHNlbGYuYW5jaG9yUG9pbnQgPSBDR1BvaW50WmVybzsKLQogICAgIFJlZlB0
cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29udGVudHNJbWFnZTsKICAgICBXZWJDb3JlOjpGbG9h
dFNpemUgY29udGVudHNJbWFnZUxvZ2ljYWxTaXplIHsgMSwgMSB9OwogICAgIGlmIChhdXRvKiBj
b250ZW50SW1hZ2UgPSBfdGV4dEluZGljYXRvci0+Y29udGVudEltYWdlKCkpIHsKQEAgLTE5Miw3
ICsxODgsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRl
eHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0bwogICAgICAgICBSZXRhaW5QdHI8Q0FM
YXllcj4gZHJvcFNoYWRvd0xheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsK
ICAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXREZWxlZ2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5n
Q0FMYXllckRlbGVnYXRlIHNoYXJlZF1dOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNo
YWRvd0NvbG9yOmRyb3BTaGFkb3dDb2xvci5nZXQoKV07Ci0gICAgICAgIFtkcm9wU2hhZG93TGF5
ZXIgc2V0U2hhZG93UmFkaXVzOmRyb3BTaGFkb3dCbHVyUmFkaXVzXTsKKyAgICAgICAgW2Ryb3BT
aGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6V2ViQ29yZTo6ZHJvcFNoYWRvd0JsdXJSYWRpdXNd
OwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd09mZnNldDpDR1NpemVNYWtlKGRy
b3BTaGFkb3dPZmZzZXRYLCBkcm9wU2hhZG93T2Zmc2V0WSldOwogICAgICAgICBbZHJvcFNoYWRv
d0xheWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRlZFBhdGgucGxhdGZvcm1QYXRoKCldOwogICAg
ICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd09wYWNpdHk6MV07CkBAIC0yMDQsNyArMjAw
LDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5k
aWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNl
dERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07CiAg
ICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRGcmFtZTp5ZWxsb3dIaWdobGlnaHRSZWN0XTsKICAg
ICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd0NvbG9yOnJpbVNoYWRvd0NvbG9yLmdldCgp
XTsKLSAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1czpyaW1TaGFkb3dCbHVy
UmFkaXVzXTsKKyAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1czpXZWJDb3Jl
OjpyaW1TaGFkb3dCbHVyUmFkaXVzXTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRv
d1BhdGg6dHJhbnNsYXRlZFBhdGgucGxhdGZvcm1QYXRoKCldOwogICAgICAgICBbcmltU2hhZG93
TGF5ZXIgc2V0U2hhZG93T2Zmc2V0OkNHU2l6ZVplcm9dOwogICAgICAgICBbcmltU2hhZG93TGF5
ZXIgc2V0U2hhZG93T3BhY2l0eToxXTsKQEAgLTI0NSw3ICsyNDEsNyBAQCBzdGF0aWMgUmV0YWlu
UHRyPENBS2V5ZnJhbWVBbmltYXRpb24+IGNyZWF0ZUJvdW5jZUFuaW1hdGlvbihDRlRpbWVJbnRl
cnZhbCBkdXJhdAogICAgIFJldGFpblB0cjxDQUtleWZyYW1lQW5pbWF0aW9uPiBib3VuY2VBbmlt
YXRpb24gPSBbQ0FLZXlmcmFtZUFuaW1hdGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDpAInRyYW5z
Zm9ybSJdOwogICAgIFtib3VuY2VBbmltYXRpb24gc2V0VmFsdWVzOkBbCiAgICAgICAgIFtOU1Zh
bHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XSwKLSAgICAg
ICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpDQVRyYW5zZm9ybTNETWFrZVNjYWxl
KG1pZEJvdW5jZVNjYWxlLCBtaWRCb3VuY2VTY2FsZSwgMSldLAorICAgICAgICBbTlNWYWx1ZSB2
YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUoV2ViQ29yZTo6bWlk
Qm91bmNlU2NhbGUsIFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxlLCAxKV0sCiAgICAgICAgIFtOU1Zh
bHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XQogICAgICAg
ICBdXTsKICAgICBbYm91bmNlQW5pbWF0aW9uIHNldER1cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTI5
NCw3ICsyOTAsNyBAQCAtIChDRlRpbWVJbnRlcnZhbClfYW5pbWF0aW9uRHVyYXRpb24KICAgICBp
ZiAoW3NlbGYgaW5kaWNhdG9yV2FudHNCb3VuY2U6Kl90ZXh0SW5kaWNhdG9yXSkgewogICAgICAg
ICBpZiAoaW5kaWNhdG9yV2FudHNDb250ZW50Q3Jvc3NmYWRlKCpfdGV4dEluZGljYXRvcikpCiAg
ICAgICAgICAgICByZXR1cm4gYm91bmNlV2l0aENyb3NzZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwot
ICAgICAgICByZXR1cm4gYm91bmNlQW5pbWF0aW9uRHVyYXRpb247CisgICAgICAgIHJldHVybiBX
ZWJDb3JlOjpib3VuY2VBbmltYXRpb25EdXJhdGlvbjsKICAgICB9CiAKICAgICByZXR1cm4gZmFk
ZUluQW5pbWF0aW9uRHVyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5k
aWNhdG9yV2luZG93LmgKaW5kZXggYzNiMzNlYmEyYzhiYzBkNzU0NTlkZDIxNTA4OWI2NTI5YzVk
MzE1ZC4uZjdmZmY3YzczYTFkMmZmNzU0YjI3ODdjYTIyOTk1MjM4MDMxMzM4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaApAQCAtMzYsMTkgKzM2
LDYgQEAgT0JKQ19DTEFTUyBXZWJUZXh0SW5kaWNhdG9yTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgOiB1aW50OF90
IHsKLSAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgaW5kaWNhdGUgdGhlIHRleHQgdW50
aWwgZGlzbWlzc2VkLgotICAgIFBlcm1hbmVudCwKLQotICAgIC8vIFRoZSBUZXh0SW5kaWNhdG9y
IHNob3VsZCBicmllZmx5IGluZGljYXRlIHRoZSB0ZXh0IGFuZCB0aGVuIGF1dG9tYXRpY2FsbHkg
ZGlzbWlzcy4KLSAgICBUZW1wb3JhcnkKLX07Ci0KLWVudW0gY2xhc3MgVGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3QgewotICAgIE5vbmUsCi0gICAgRmFkZU91
dAotfTsKLQogI2lmIFBMQVRGT1JNKE1BQykKIAogY2xhc3MgVGV4dEluZGljYXRvcldpbmRvdyB7
CkBAIC01OSw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBU
ZXh0SW5kaWNhdG9yV2luZG93KE5TVmlldyAqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+VGV4dElu
ZGljYXRvcldpbmRvdygpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKFJlZjxUZXh0SW5kaWNhdG9yPiwgQ0dSZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9y
V2luZG93TGlmZXRpbWUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNh
dG9yKFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4sIENHUmVjdCBj
b250ZW50UmVjdCwgVGV4dEluZGljYXRvckxpZmV0aW1lKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKTsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwog
CkBAIC04MSwzICs2OCw1IEBAIHByaXZhdGU6CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW0KaW5kZXggZjg1ZmE1M2IzYjRhOWY0NTk2OTc3NmExMmNjNDEx
Zjc5MjJkZjc3Yy4uMDFhNzhkMTNjNzUwZjQ2MWM1NWQ3ZjFjNGYwNjczNDNlNTE5MDc5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCkBAIC0z
OCwxMiArMzgsNiBAQAogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0NvbG9yU1BJLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KIAotY29uc3QgQ0ZUaW1lSW50ZXJ2
YWwgYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjEyOwotY29uc3QgQ0ZUaW1lSW50ZXJ2YWwg
dGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25EdXJhdGlvbiArIDAuMjsKLQot
Y29uc3QgQ0dGbG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEuMjU7Ci1jb25zdCBDR0Zsb2F0IGRyb3BT
aGFkb3dCbHVyUmFkaXVzID0gMjsKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTU2LDcgKzUwLDcgQEAgVGV4dEluZGljYXRvcldpbmRvdzo6VGV4
dEluZGljYXRvcldpbmRvdyhOU1ZpZXcgKnRhcmdldFZpZXcpCiAKIFRleHRJbmRpY2F0b3JXaW5k
b3c6On5UZXh0SW5kaWNhdG9yV2luZG93KCkKIHsKLSAgICBjbGVhclRleHRJbmRpY2F0b3IoVGV4
dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAgY2xlYXJU
ZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXQpOwogfQogCiB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldEFuaW1hdGlvblByb2dy
ZXNzKGZsb2F0IHByb2dyZXNzKQpAQCAtNjcsMTQgKzYxLDE0IEBAIHZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCiAgICAgW21fdGV4
dEluZGljYXRvckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNzOnByb2dyZXNzXTsKIH0KIAotdm9p
ZCBUZXh0SW5kaWNhdG9yV2luZG93OjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCit2b2lkIFRleHRJbmRpY2F0b3JXaW5k
b3c6OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uIGFuaW1hdGlvbikKIHsKICAgICBSZWZQdHI8VGV4dEluZGljYXRvcj4gdGV4dEluZGlj
YXRvciA9IFdURk1vdmUobV90ZXh0SW5kaWNhdG9yKTsKIAogICAgIGlmIChbbV90ZXh0SW5kaWNh
dG9yTGF5ZXIgaXNGYWRpbmdPdXRdKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAodGV4dElu
ZGljYXRvciAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2FudHNNYW51YWxBbmlt
YXRpb246KnRleHRJbmRpY2F0b3JdICYmIFttX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0
ZWRBbmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0KSB7CisgICAgaWYgKHRleHRJbmRpY2F0b3IgJiYgW21fdGV4dElu
ZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5kaWNhdG9y
XSAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9uXSAmJiBhbmlt
YXRpb24gPT0gV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91
dCkgewogICAgICAgICBzdGFydEZhZGVPdXQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTgyLDcgKzc2LDcgQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpjbGVhclRleHRJbmRpY2F0
b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGkKICAgICBjbG9zZVdpbmRvdygp
OwogfQogCi12b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRl
eHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUmVjdCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3Jl
ZW5Db29yZGluYXRlcywgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIGxpZmV0aW1lKQordm9p
ZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9y
PiB0ZXh0SW5kaWNhdG9yLCBDR1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0
ZXMsIFRleHRJbmRpY2F0b3JMaWZldGltZSBsaWZldGltZSkKIHsKICAgICBpZiAobV90ZXh0SW5k
aWNhdG9yID09IHRleHRJbmRpY2F0b3IucHRyKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTk1LDgg
Kzg5LDggQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxU
ZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBDR1IKICAgICBDR0Zsb2F0IHZlcnRpY2FsTWFy
Z2luID0gZHJvcFNoYWRvd0JsdXJSYWRpdXMgKiAyICsgVGV4dEluZGljYXRvcjo6ZGVmYXVsdFZl
cnRpY2FsTWFyZ2luOwogICAgIAogICAgIGlmIChbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNh
dG9yV2FudHNCb3VuY2U6Km1fdGV4dEluZGljYXRvcl0pIHsKLSAgICAgICAgaG9yaXpvbnRhbE1h
cmdpbiA9IHN0ZDo6bWF4KGhvcml6b250YWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNjcmVl
bkNvb3JkaW5hdGVzLnNpemUud2lkdGggKiAobWlkQm91bmNlU2NhbGUgLSAxKSArIGhvcml6b250
YWxNYXJnaW4pOwotICAgICAgICB2ZXJ0aWNhbE1hcmdpbiA9IHN0ZDo6bWF4KHZlcnRpY2FsTWFy
Z2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLmhlaWdodCAqICht
aWRCb3VuY2VTY2FsZSAtIDEpICsgdmVydGljYWxNYXJnaW4pOworICAgICAgICBob3Jpem9udGFs
TWFyZ2luID0gc3RkOjptYXgoaG9yaXpvbnRhbE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2Ny
ZWVuQ29vcmRpbmF0ZXMuc2l6ZS53aWR0aCAqIChXZWJDb3JlOjptaWRCb3VuY2VTY2FsZSAtIDEp
ICsgaG9yaXpvbnRhbE1hcmdpbik7CisgICAgICAgIHZlcnRpY2FsTWFyZ2luID0gc3RkOjptYXgo
dmVydGljYWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLnNpemUu
aGVpZ2h0ICogKFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxlIC0gMSkgKyB2ZXJ0aWNhbE1hcmdpbik7
CiAgICAgfQogCiAgICAgaG9yaXpvbnRhbE1hcmdpbiA9IENHQ2VpbGluZyhob3Jpem9udGFsTWFy
Z2luKTsKQEAgLTEyNSw4ICsxMTksOCBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldFRl
eHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUgogICAgIGlm
IChtX3RleHRJbmRpY2F0b3ItPnByZXNlbnRhdGlvblRyYW5zaXRpb24oKSAhPSBUZXh0SW5kaWNh
dG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSkKICAgICAgICAgW21fdGV4dEluZGljYXRv
ckxheWVyIHByZXNlbnRdOwogCi0gICAgaWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZTo6VGVtcG9yYXJ5KQotICAgICAgICBtX3RlbXBvcmFyeVRleHRJbmRpY2F0b3JU
aW1lci5zdGFydE9uZVNob3QoMV9zICogdGltZUJlZm9yZUZhZGVTdGFydHMpOworICAgIGlmIChs
aWZldGltZSA9PSBUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkKKyAgICAgICAgbV90
ZW1wb3JhcnlUZXh0SW5kaWNhdG9yVGltZXIuc3RhcnRPbmVTaG90KDFfcyAqIFdlYkNvcmU6OnRp
bWVCZWZvcmVGYWRlU3RhcnRzKTsKIH0KIAogdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpjbG9z
ZVdpbmRvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApp
bmRleCAzYWQ1MTQyY2QxNzdhYWRhZTVjMzg1MzJkNTdmY2E0MzgwYWNkNGI2Li5jNWM0NjYyMGJh
Y2Q1NTU5YjQ5M2UwMzFlNTRiOWMwY2M3MWVhYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTQxMSw4ICs0MTEsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7CiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0
b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dM
aWZldGltZSA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50
KTsKLSAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbik7CisgICAgdm9pZCBzZXRUZXh0SW5k
aWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImLCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgPSBU
ZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudCk7CisgICAgdm9pZCBjbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRp
b24pOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsK
ICAgICB2b2lkIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHko
KTsKICAgICB2b2lkIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0
aW9uKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQppbmRleCAyM2E1MDQ2ODExNDEzMzUxOWYyZWQxYmRjZDgyNGNkOTJhNjViNDFmLi4xNWFlZWEz
NTYzOWQyNDYzNWEwNmEyZjQ4ZWQ0MDg3YWQ1ZDBiMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtNDIzLDcgKzQyMyw3IEBAIC0gKHZvaWQp
b2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClv
YmplY3QgY2hhbmdlOihOCiAjaWYgIUVOQUJMRShSRVZFQUwpCiAtICh2b2lkKV9kaWN0aW9uYXJ5
TG9va3VwUG9wb3ZlcldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsK
LSAgICBfaW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICBfaW1wbC0+Y2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlz
c2FsQW5pbWF0aW9uOjpOb25lKTsKIH0KICNlbmRpZgogCkBAIC0zNDk1LDcgKzM0OTUsNyBAQCB2
b2lkIFdlYlZpZXdJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCiAgICAgICAgIHVwZGF0ZVdp
bmRvd0FuZFZpZXdGcmFtZXMoKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c2V0VGV4dEluZGlj
YXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRU
ZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFRleHRJ
bmRpY2F0b3JMaWZldGltZSBsaWZldGltZSkKIHsKICAgICBpZiAoIW1fdGV4dEluZGljYXRvcldp
bmRvdykKICAgICAgICAgbV90ZXh0SW5kaWNhdG9yV2luZG93ID0gbWFrZVVuaXF1ZTxXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93PihtX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkpOwpAQCAtMzUw
NCw3ICszNTA0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0VGV4dEluZGljYXRvcihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3IKICAgICBtX3RleHRJbmRpY2F0
b3JXaW5kb3ctPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgTlNSZWN0VG9DR1JlY3Qo
dGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMpLCBsaWZldGltZSk7CiB9CiAKLXZv
aWQgV2ViVmlld0ltcGw6OmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6
VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCit2b2lkIFdl
YlZpZXdJbXBsOjpjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQogewogICAgIGlmIChtX3RleHRJ
bmRpY2F0b3JXaW5kb3cpCiAgICAgICAgIG1fdGV4dEluZGljYXRvcldpbmRvdy0+Y2xlYXJUZXh0
SW5kaWNhdG9yKGFuaW1hdGlvbik7CkBAIC0zNTI3LDcgKzM1MjcsNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbkZyb21W
aWV3T25seShibwogICAgIC8vIENhbGxpbmcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRp
b24gaGVyZSB3aWxsIHdpbiBvdXQgb3ZlciB0aGUgYW5pbWF0ZWQgY2xlYXIgaW4gZGlzbWlzc0Nv
bnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seS4KICAgICAvLyBXZSBjYW4ndCBp
bnZlcnQgdGhlc2UgYmVjYXVzZSBjbGllbnRzIGNhbiBvdmVycmlkZSAoYW5kIGhhdmUgb3ZlcnJp
ZGRlbikgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3MsIHNvIGl0IG5lZWRzIHRv
IGJlIGNhbGxlZC4KICAgICAvLyBGb3IgdGhpcyBzYW1lIHJlYXNvbiwgdGhpcyBjYW4ndCBiZSBt
b3ZlZCB0byBXZWJWaWV3SW1wbCB3aXRob3V0IGNhcmUuCi0gICAgY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbihhbmltYXRlID8gV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21p
c3NhbEFuaW1hdGlvbjo6RmFkZU91dCA6IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNt
aXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRp
b24oYW5pbWF0ZSA/IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXQgOiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsK
ICAgICBbbV92aWV3IF93ZWJfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107CiB9
CiAKQEAgLTM1NDQsNyArMzU0NCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50
UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkoKQogICAgICAgICAgICAgW1tnZXREREFj
dGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSByZXF1ZXN0QnViYmxlQ2xvc3VyZVVu
YW5jaG9yT25GYWlsdXJlOllFU107CiAgICAgfQogCi0gICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0
aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9u
OjpGYWRlT3V0KTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogCiAgICAgW21faW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlciBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dz
XTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDQxN2UxMWQ0OTY2MDdh
MzAwY2ZiNjVmZWQ2YzdmNGNhY2UwYzkyNmQuLmEzNTczMWVjMDFkOWU1ZTE1MDJlNjA1ZTUyODJm
ZWYwYjA0NWQ2ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTEwNiw4
ICsxMDYsOCBAQCBjbGFzcyBTZWxlY3Rpb25EYXRhOwogZW51bSBjbGFzcyBNb3VzZUV2ZW50UG9s
aWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsK
IGVudW0gY2xhc3MgU2Nyb2xsYmFyU3R5bGUgOiB1aW50OF90OwotZW51bSBjbGFzcyBUZXh0SW5k
aWNhdG9yV2luZG93TGlmZXRpbWUgOiB1aW50OF90OwotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdDsKK2VudW0gY2xhc3MgVGV4dEluZGlj
YXRvckxpZmV0aW1lIDogdWludDhfdDsKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2Ug
OiB1aW50OF90OwogCiBzdHJ1Y3QgQXBwSGlnaGxpZ2h0OwpAQCAtMzg1LDggKzM4NSw4IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdmlydHVhbCB2b2lkIHNl
dFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJUZXh0
SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24p
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4
dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21p
c3NhbEFuaW1hdGlvbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3MoZmxvYXQpID0gMDsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVy
Zm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGVhNWMz
NDkwNzMzYzJiMGU5MWRlODQ4ODhlMzAwNGFlOWJhYjg0NWQuLmViMWRhMGE4M2VkYTU4YjQ3ZTdl
Y2M1OWY2ODA2MzJjMTYwNzBmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMjE4LDcgKzIxOCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BdHRyaWJ1dGVk
U3RyaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wT2JzZXJ2ZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0
b3JXaW5kb3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbmNsdWRl
IDx3dGYvTWFjaFNlbmRSaWdodC5oPgogI2luY2x1ZGUgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMu
aD4KQEAgLTY1MTEsNyArNjUxMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRUZXh0SW5kaWNh
dG9yKGNvbnN0IFRleHRJbmRpY2F0b3JEYXRhJiBpbmRpY2F0b3JEYXRhLCB1aW50CiB7CiAgICAg
Ly8gRklYTUU6IE1ha2UgVGV4dEluZGljYXRvcldpbmRvdyBhIHBsYXRmb3JtLWluZGVwZW5kZW50
IHByZXNlbnRhdGlvbmFsIHRoaW5nICgiVGV4dEluZGljYXRvclByZXNlbnRhdGlvbiI/KS4KICNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBwYWdlQ2xpZW50KCkuc2V0VGV4dEluZGljYXRvcihUZXh0
SW5kaWNhdG9yOjpjcmVhdGUoaW5kaWNhdG9yRGF0YSksIHN0YXRpY19jYXN0PFRleHRJbmRpY2F0
b3JXaW5kb3dMaWZldGltZT4obGlmZXRpbWUpKTsKKyAgICBwYWdlQ2xpZW50KCkuc2V0VGV4dElu
ZGljYXRvcihUZXh0SW5kaWNhdG9yOjpjcmVhdGUoaW5kaWNhdG9yRGF0YSksIHN0YXRpY19jYXN0
PFRleHRJbmRpY2F0b3JMaWZldGltZT4obGlmZXRpbWUpKTsKICNlbHNlCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAjZW5kaWYKQEAgLTY1MjAsNyArNjUxOSw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0b3JEYXRhJiBpbmRpY2F0b3JE
YXRhLCB1aW50CiB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJUZXh0SW5kaWNhdG9yKCkKIHsKICNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBwYWdlQ2xpZW50KCkuY2xlYXJUZXh0SW5kaWNhdG9yKFRl
eHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAgIHBhZ2VD
bGllbnQoKS5jbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dCk7CiAjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDViNDU3ZGZi
NjAzMWVmNjM5YWQzYWUzZmNiZmZmYWU2YTZkODU3MDIuLmQyZGJlMTliM2RiOTVhNzgzMTYyNTI3
NDQxZjE4NDNkMWVkMjFlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC0xMTQ5LDcgKzExNDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb3VudFN0cmluZ01hdGNo
ZXMoY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0PEZpbmRPcHRpb25zPiwgdW5zaWduZWQgbWF4TWF0
Y2hDb3VudCk7CiAgICAgdm9pZCByZXBsYWNlTWF0Y2hlcyhWZWN0b3I8dWludDMyX3Q+JiYgbWF0
Y2hJbmRpY2VzLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCwgYm9vbCBzZWxlY3Rpb25P
bmx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAgICAgdm9pZCBkaWRD
b3VudFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiwgdWludDMyX3QgbWF0Y2hDb3VudCk7Ci0g
ICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRh
JiwgdWludDY0X3QgLyogV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lICovIGxp
ZmV0aW1lID0gMCAvKiBQZXJtYW5lbnQgKi8pOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihj
b25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYsIHVpbnQ2NF90IC8qIFRleHRJbmRpY2F0
b3JMaWZldGltZSAqLyBsaWZldGltZSA9IDAgLyogUGVybWFuZW50ICovKTsKICAgICB2b2lkIHNl
dFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAgICAgdm9pZCBjbGVhclRl
eHRJbmRpY2F0b3IoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAppbmRleCAzZmJlMWIxN2ZmNjYwNDQ5ZTk5M2VmN2U4YWZjMGJhMDAyNGZk
ODdhLi44MWZiMDE4MzNjZWU5ZTVkOTE1OTU0MThkMmI1YTBhZTRiODQ0Y2NkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTM4LDgg
KzEzOCw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkRhdGVUaW1lUGlja2VyPiBjcmVhdGVE
YXRlVGltZVBpY2tlcihXZWJQYWdlUHJveHkmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgdm9pZCBz
ZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFyVGV4dElu
ZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKSBv
dmVycmlkZTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpIG92ZXJyaWRlOworICAgIHZv
aWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmlt
YXRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzKGZsb2F0KSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2hvd1NhZmVCcm93c2luZ1dhcm5pbmco
Y29uc3QgU2FmZUJyb3dzaW5nV2FybmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmFyaWFu
dDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXgg
NDBiNzYyMzYzOWZmYWQ0MWI0NDI0NjhlYjJlMTgxYWEzNGYwMTY1My4uOTU5MDc3MDgzYzgyZDMw
NGY3OGVjOTI5MzJhYThkMGUxZmRmNzRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNDc5LDE2ICs0NzksMTkgQEAgUmVmUHRy
PFdlYlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHko
V2ViUGFnZVByb3h5JikKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBQYWdlQ2xpZW50
SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwg
VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4
dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgVGV4dEluZGljYXRv
ckxpZmV0aW1lKQogeworICAgIFttX2NvbnRlbnRWaWV3IHNldFVwVGV4dEluZGljYXRvcjp0ZXh0
SW5kaWNhdG9yXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9y
KFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFu
aW1hdGlvbiBkaXNtaXNzYWxBbmltYXRpb24pCiB7CisgICAgW21fY29udGVudFZpZXcgY2xlYXJU
ZXh0SW5kaWNhdG9yOmRpc21pc3NhbEFuaW1hdGlvbl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudElt
cGw6OnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCBhbmltYXRp
b25Qcm9ncmVzcykKIHsKKyAgICBbbV9jb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0
aW9uUHJvZ3Jlc3M6YW5pbWF0aW9uUHJvZ3Jlc3NdOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBs
OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQm
IGxheWVyVHJlZUNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggODg2YWU3NWU2N2I1NmFlYjM4Mzc4
NGY1OTZjOWQ4ZjcyOTEyNTZlNy4uYTlkMzBkOGIzNWI5ZGNiMDg4NmUzYjU2YTY2ZDlkZjQ1YmYy
OGQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtODksNiArODksNyBAQCBzdHJ1Y3QgU2hhcmVEYXRhV2l0
aFBhcnNlZFVSTDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7
CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0
ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlz
c2FsQW5pbWF0aW9uIDogdWludDhfdDsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBzdHJ1
Y3QgRHJhZ0l0ZW07CkBAIC0xMzIsNiArMTMzLDEwIEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKICNl
bmRpZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCitAY2xhc3MgV2ViVGV4
dEluZGljYXRvckxheWVyOworI2VuZGlmCisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQog
I2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9u
c0JlZm9yZS5oPgogI2VuZGlmCkBAIC0zMzAsNiArMzM1LDExIEBAIGVudW0gY2xhc3MgUHJvY2Vl
ZFdpdGhJbWFnZUV4dHJhY3Rpb24gOiBib29sIHsKICNlbmRpZgogICAgIFJldGFpblB0cjxVSVBy
ZXZpZXdJdGVtQ29udHJvbGxlcj4gX3ByZXZpZXdJdGVtQ29udHJvbGxlcjsKICNlbmRpZgorICAg
IAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dElu
ZGljYXRvcj4gX3RleHRJbmRpY2F0b3I7CisgICAgUmV0YWluUHRyPFdlYlRleHRJbmRpY2F0b3JM
YXllcj4gX3RleHRJbmRpY2F0b3JMYXllcjsKKyNlbmRpZgogCiAjaWYgVVNFKFVJQ09OVEVYVE1F
TlUpCiAgICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQcmV2aWV3PiBfY29udGV4dE1lbnVJbnRlcmFj
dGlvblRhcmdldGVkUHJldmlldzsKQEAgLTY3MCw2ICs2ODAsMTAgQEAgRk9SX0VBQ0hfUFJJVkFU
RV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9X
RUJfVklFVykKIC0gKHZvaWQpX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lOwog
LSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZTsKIAorLSAodm9pZClzZXRVcFRleHRJ
bmRpY2F0b3I6KFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yOworLSAo
dm9pZClzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6KGZsb2F0KU5TQW5pbWF0aW9u
UHJvZ3Jlc3M7CistICh2b2lkKWNsZWFyVGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb247CisKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgQk9PTCBfc2hvdWxkVXNlQ29udGV4dE1lbnVzOwogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRBdm9pZFJlc2l6aW5nV2hlbklucHV0Vmlld0Jv
dW5kc0NoYW5nZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxk
QXZvaWRTY3JvbGxpbmdXaGVuRm9jdXNlZENvbnRlbnRJc1Zpc2libGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpp
bmRleCBhNjA4NjlhNzdmOTI1NzBiMjBjOWY3MTkzZGFjZDEwMTEyMWZhMTdhLi41OGQ4ODgzOTYw
YzE4YjcwNDJkNTg1Y2EzMjIyODUyOTI3YTVmYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE3Miw2
ICsxNzIsMTEgQEAKICNpbXBvcnQgIlBlcHBlclVJQ29yZVNQSS5oIgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoQVBQX0hJR0hMSUdIVFMpCisjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5k
b3cuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViVGV4dEluZGljYXRvckxheWVyLmg+CisjZW5kaWYK
KwogI2ltcG9ydCA8cGFsL2lvcy9NYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg+CiAKICNp
ZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCkBAIC05NTgyLDYgKzk1
ODcsNjcgQEAgLSAodm9pZClfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0lt
YWdlRXh0cmFjdGlvbjooV2ViS2l0OjpQcm9jZWVkV2kKIAogI2VuZGlmIC8vIEVOQUJMRShJTUFH
RV9FWFRSQUNUSU9OKQogCistICh2b2lkKXNldFVwVGV4dEluZGljYXRvcjooUmVmPFdlYkNvcmU6
OlRleHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3IKK3sKKyAgICBpZiAoX3RleHRJbmRpY2F0b3Ig
PT0gdGV4dEluZGljYXRvci5wdHIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFtzZWxm
IHRlYXJkb3duVGV4dEluZGljYXRvckxheWVyXTsKKyAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlv
dXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHN0YXJ0
RmFkZU91dCkgb2JqZWN0Om5pbF07CisgICAgCisgICAgX3RleHRJbmRpY2F0b3IgPSB0ZXh0SW5k
aWNhdG9yLnB0cigpOworCisgICAgQ0dSZWN0IGZyYW1lID0gX3RleHRJbmRpY2F0b3ItPnRleHRC
b3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKTsKKyAgICBfdGV4dEluZGljYXRvckxh
eWVyID0gYWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JMYXllciBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpmcmFtZQorICAgICAgICB0ZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3IgbWFyZ2luOkNHU2l6
ZVplcm8gb2Zmc2V0OkNHUG9pbnRaZXJvXSk7CisgICAgCisgICAgW1tzZWxmIGxheWVyXSBhZGRT
dWJsYXllcjpfdGV4dEluZGljYXRvckxheWVyLmdldCgpXTsKKworICAgIGlmIChfdGV4dEluZGlj
YXRvci0+cHJlc2VudGF0aW9uVHJhbnNpdGlvbigpICE9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JQ
cmVzZW50YXRpb25UcmFuc2l0aW9uOjpOb25lKQorICAgICAgICBbX3RleHRJbmRpY2F0b3JMYXll
ciBwcmVzZW50XTsKKyAgICAKKyAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKHN0
YXJ0RmFkZU91dCkgd2l0aE9iamVjdDpzZWxmIGFmdGVyRGVsYXk6V2ViQ29yZTo6dGltZUJlZm9y
ZUZhZGVTdGFydHNdOworfQorCistICh2b2lkKWNsZWFyVGV4dEluZGljYXRvcjooV2ViQ29yZTo6
VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb24KK3sKKyAgICBSZWZQdHI8
V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9IFdURk1vdmUoX3RleHRJbmRp
Y2F0b3IpOworICAgIAorICAgIGlmIChbX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091dF0p
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFtfdGV4dEluZGlj
YXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5kaWNhdG9yXSAm
JiBbX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlv
biA9PSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7
CisgICAgICAgIFtzZWxmIHN0YXJ0RmFkZU91dF07CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07Cit9CisKKy0gKHZvaWQpc2V0
VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClhbmltYXRpb25Qcm9ncmVzcwor
eworICAgIGlmICghX3RleHRJbmRpY2F0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIFtfdGV4
dEluZGljYXRvckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNzOmFuaW1hdGlvblByb2dyZXNzXTsK
K30KKworLSAodm9pZCl0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcgoreworICAgIFtfdGV4dElu
ZGljYXRvckxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICBfdGV4dEluZGljYXRvckxh
eWVyID0gbmlsOworfQorCistICh2b2lkKXN0YXJ0RmFkZU91dAoreworICAgIFtfdGV4dEluZGlj
YXRvckxheWVyIHNldEZhZGluZ091dDpZRVNdOworICAgICAgICAKKyAgICBbX3RleHRJbmRpY2F0
b3JMYXllciBoaWRlV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRy
PFdLQ29udGVudFZpZXc+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtT
ZWxmLmdldCgpOworICAgICAgICBbc3Ryb25nU2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXll
cl07CisgICAgfV07Cit9CisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8
V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9uc0FmdGVyLm1t
PgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bE1hYy5oCmluZGV4IDU4YmU0YTJjYWU0NTM3ZTU0NjNiZGQxYjZiNWJlMTY4YmE2OTI3NmMuLmUy
MjMwODJkZDgwMmE2NjIxMGJiYmEzZDFjODAwYjM0OGI2YzkyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBAIC0xNTYsOCArMTU2LDgg
QEAgcHJpdmF0ZToKIAogICAgIFJlZjxXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlPiBjcmVhdGVW
YWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgV2ViQ29yZTo6VmFs
aWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmKSBmaW5hbDsKIAotICAgIHZvaWQgc2V0VGV4dEluZGlj
YXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dMaWZldGltZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgVGV4
dEluZGljYXRvckxpZmV0aW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRv
cihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKICAg
ICB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDc4OGEyNzk2ZGJiMWNmNDU5ZWZlMTI0YzZmMGQ3
ZDBhNjk4YjdlOWIuLmRiNzNmZTI4YjUzNWEwNTNiNmYzY2ZlZTcyYTVhZjkzYzE3NTI4ZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0K
QEAgLTU2OSwxMiArNTY5LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyU2FmZUJyb3dz
aW5nV2FybmluZ0lmRm9yTWFpbkZyYW1lTmF2aWdhdGlvbigpCiAgICAgbV9pbXBsLT5jbGVhclNh
ZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5GcmFtZU5hdmlnYXRpb24oKTsKIH0KIAotdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dElu
ZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIGxpZmV0aW1lKQor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4g
dGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvckxpZmV0aW1lIGxpZmV0aW1lKQogewogICAgIG1f
aW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLmdldCgpLCBsaWZldGltZSk7CiB9
CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKK3Zv
aWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yRGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKIHsKICAgICBtX2ltcGwt
PmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oZGlzbWlzc2FsQW5pbWF0aW9uKTsKIH0K
QEAgLTY3Miw5ICs2NzIsOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGljdGlv
bmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aQogICAgIG1faW1wbC0+
cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKIAogICAgIERpY3Rpb25hcnlMb29rdXA6OnNo
b3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBtX3ZpZXcsIFt0aGlzXShUZXh0SW5kaWNhdG9y
JiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0
SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7CisgICAg
ICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9y
TGlmZXRpbWU6OlBlcm1hbmVudCk7CiAgICAgfSwgbnVsbHB0ciwgW3RoaXNdKCkgewotICAgICAg
ICBtX2ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgICAgIG1faW1wbC0+
Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlz
bWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0K
aW5kZXggOWJhYThiZTI0Yzc3Yzc0NmU3OTNmNDEzNzhkY2QwMGIzY2Y0YzRmZS4uMzM5ZmY5N2Qz
MDYwMjlhNmIwMDhlMTE4NjZlM2NhNGY2OTFiOTZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCkBA
IC00OTAsOSArNDkwLDkgQEAgLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvclRleHQKICAgICBfdmlld0ltcGwtPnByZXBhcmVG
b3JEaWN0aW9uYXJ5TG9va3VwKCk7CiAKICAgICByZXR1cm4gV2ViQ29yZTo6RGljdGlvbmFyeUxv
b2t1cDo6YW5pbWF0aW9uQ29udHJvbGxlckZvclBvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIF92
aWV3LCBbc2VsZl0oV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAg
ICAgICBfdmlld0ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgV2ViQ29yZTo6
VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOworICAgICAgICBfdmlld0lt
cGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvckxpZmV0aW1l
OjpQZXJtYW5lbnQpOwogICAgIH0sIG51bGxwdHIsIFtzZWxmXSgpIHsKLSAgICAgICAgX3ZpZXdJ
bXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgICAgICBfdmlld0ltcGwtPmNs
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21p
c3NhbEFuaW1hdGlvbjo6Tm9uZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggM2YyZTlkNTBmZmIwMDFjMjQ2ZDQxNzEwZTAzYjQ0OWJkYzU4Njc4NC4uYjZiMDhjMmZj
NGQ0NTlhYzA2YWExNWExOGYyN2VhMmYyNjNlMjI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTg4LDYgKzg4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NldHRpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpKQogI2luY2x1ZGUgIlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCIKQEAg
LTEyNjksNiArMTI3MCwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGln
aHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYgaGlnaGxpZ2h0KSBjb25zdAogICAgIGhpZ2hsaWdo
dC5yZXF1ZXN0T3JpZ2luYXRlZEluQXBwID0gbV9wYWdlLmhpZ2hsaWdodFJlcXVlc3RPcmlnaW5h
dGVkSW5BcHAoKTsKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9y
ZUFwcEhpZ2hsaWdodChoaWdobGlnaHQpKTsKIH0KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNl
dFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmIGluZGljYXRv
ckRhdGEpIGNvbnN0Cit7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U2V0VGV4dEluZGljYXRvcihpbmRpY2F0b3JEYXRhLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oV2Vi
Q29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpUZW1wb3JhcnkpKSk7Cit9CiAjZW5kaWYKIAog
U3RyaW5nIFdlYkNocm9tZUNsaWVudDo6c2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KHVuc2lnbmVkIGtleVNpemVJbmRleCwgY29uc3QgU3RyaW5nJiBjaGFsbGVuZ2VTdHJpbmcsIGNv
bnN0IFVSTCYgdXJsKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDRlZWYxZjhhZDFjNTJh
YzA1MTY1ODJiYTE2MTU1Y2FkMDFhMTU1NzIuLmQ3ZWZiMDg4NTlkZDA1OTQwNjZlODQzY2EyNjBi
MDFhNDRlNjNmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM1MSw2ICszNTEsNyBAQCBwcml2
YXRlOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdo
bGlnaHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0
VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZp
bmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX0NSWVBUTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAppbmRleCAwMDkwMTRh
NTM2YmY5ZDY4ZGZiZTVkYTE0MGRkYjUxN2FlYWNkMjA3Li5lZTNiYzIzNmIyYzRhZDIyODQ2Mzdl
ZGZjMTNiY2UyYjRjYTNhYjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCkBAIC0zODAsNyArMzgwLDcgQEAgYm9vbCBGaW5k
Q29udHJvbGxlcjo6dXBkYXRlRmluZEluZGljYXRvcihGcmFtZSYgc2VsZWN0ZWRGcmFtZSwgYm9v
bCBpc1Nob3dpbmdPdmUKIAogICAgIG1fZmluZEluZGljYXRvclJlY3QgPSBlbmNsb3NpbmdJbnRS
ZWN0KGluZGljYXRvci0+c2VsZWN0aW9uUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcygpKTsKICNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U2V0VGV4dEluZGljYXRvcihpbmRpY2F0b3ItPmRhdGEoKSwgc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KGlzU2hvd2luZ092ZXJsYXkgPyBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBl
cm1hbmVudCA6IFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6VGVtcG9yYXJ5KSkpOworICAg
IG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9y
KGluZGljYXRvci0+ZGF0YSgpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaXNTaG93aW5nT3Zlcmxh
eSA/IFRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50IDogVGV4dEluZGljYXRvckxpZmV0
aW1lOjpUZW1wb3JhcnkpKSk7CiAjZW5kaWYKICAgICBtX2lzU2hvd2luZ0ZpbmRJbmRpY2F0b3Ig
PSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGYzZDQ3MTZhODkzM2Q5ZjI0MmY4ZWYxMjE1
YTg2NjIzNDBmODk3YTUuLjZlMThmMmIyNDIxNzEzYTJjNDBkNzQ0MThkNTI0Yjg1MzY0MTE2NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVO
QUJMRShBUFBfSElHSExJR0hUUykKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6
OkFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3Io
Y29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmKSBjb25zdCBmaW5hbDsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA0NTM5Y2U2
ZjY0ZDAwYjBiYjAwMjgzZWFjODE1MzI5NzkwMDRjNGU4Li40N2U3MTFhNjgyYjMyOTMzMDVkNzcy
MDdhODQ3MTMzNzkyZjA3Y2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03MTgsNiArNzE4LDkg
QEAgc3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVEYXRlVGltZUNob29zZXIoRGF0ZVRpbWUKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFw
cEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QKIHsKIH0KK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JEYXRhJiBpbmRpY2F0b3JEYXRhKSBjb25zdAoreworfQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXcubW0KaW5kZXggMGZlMmE1MDk2YzdlMjZmMzIwMzI1ZTM2OGJmZjBkYmI5ZjA3MmM3Ni4u
NjFkNmY0ZTg2NTk0ZGNhYjdlNjE3OTA3MDRiNzA5ZWY1Y2NjMmJlMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC01OTUzLDcgKzU5NTMs
NyBAQCAtICh2b2lkKV9sb29rVXBJbkRpY3Rpb25hcnlGcm9tTWVudTooaWQpc2VuZGVyCiAKIC0g
KHZvaWQpcXVpY2tMb29rV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBbW3NlbGYg
X3dlYlZpZXddIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgIFtbc2VsZiBf
d2ViVmlld10gX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dElu
ZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgW3N1cGVyIHF1aWNrTG9v
a1dpdGhFdmVudDpldmVudF07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQppbmRl
eCBjZTYyYmZhNTE2MTc3YzhjMzZhZWRkN2JhNWZhNGMyNzUxMGQ2ZjcxLi5jM2MzNjcyYmZjY2Zj
ZDEzNmU2MmYzZGZjMzQxMWJkZWU5YmFlNDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
Lm1tCkBAIC0xMjIsNyArMTIyLDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmll
dyBkaWRIYW5kbGVTY3JvbGxXaGVlbDooTlNFdmVudCAqKWV2ZW50CiB7CiAgICAgW19jdXJyZW50
UUxQcmV2aWV3TWVudUl0ZW0gY2xvc2VdOwogICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlv
blN0YXRlXTsKLSAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07Cisg
ICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOwogfQogCiAtIChOU0ltbWVkaWF0
ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcgpAQCAt
MTM5LDcgKzEzOSw3IEBAIC0gKHZvaWQpX2NhbmNlbEltbWVkaWF0ZUFjdGlvbgogICAgIH0KIAog
ICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dlYlZpZXcgX2Ns
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW193ZWJWaWV3IF9jbGVhclRleHRJ
bmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmlt
YXRpb246OkZhZGVPdXRdOwogfQogCiAtICh2b2lkKV9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRl
CkBAIC0yNTEsNyArMjUxLDcgQEAgLSAodm9pZClpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyRGlk
Q2FuY2VsQW5pbWF0aW9uOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWMKIAogICAgIFtfd2Vi
VmlldyBfc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOjBdOwogICAgIFtzZWxmIF9j
bGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbjo6Tm9uZV07CisgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOwog
ICAgIFtfd2ViVmlldyBfc2V0TWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rpb246Tk9dOwogfQogCkBA
IC0yOTMsNyArMjkzLDcgQEAgLSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJv
bGxlcj4pX2RlZmF1bHRBbmltYXRpb25Db250cm9sbGVyCiAgICAgICAgICAgICBhdXRvIGxpbmtS
YW5nZSA9IG1ha2VSYW5nZVNlbGVjdGluZ05vZGVDb250ZW50cygqX2hpdFRlc3RSZXN1bHQuVVJM
RWxlbWVudCgpKTsKICAgICAgICAgICAgIGF1dG8gaW5kaWNhdG9yID0gV2ViQ29yZTo6VGV4dElu
ZGljYXRvcjo6Y3JlYXRlV2l0aFJhbmdlKGxpbmtSYW5nZSwgeyBXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yT3B0aW9uOjpVc2VCb3VuZGluZ1JlY3RBbmRQYWludEFsbENvbnRlbnRGb3JDb21wbGV4UmFu
Z2VzIH0sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpGYWRl
SW4pOwogICAgICAgICAgICAgaWYgKGluZGljYXRvcikKLSAgICAgICAgICAgICAgICBbX3dlYlZp
ZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICAgICAgICAgIFtf
d2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5k
aWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAKICAgICAgICAgICAgIFFMUHJldmlld01lbnVJ
dGVtICppdGVtID0gW05TTWVudUl0ZW0gc3RhbmRhcmRRdWlja0xvb2tNZW51SXRlbV07CiAgICAg
ICAgICAgICBpdGVtLnByZXZpZXdTdHlsZSA9IFFMUHJldmlld1N0eWxlUG9wb3ZlcjsKQEAgLTM3
OSw3ICszNzksNyBAQCAtIChOU1JlY3RFZGdlKW1lbnVJdGVtOihOU01lbnVJdGVtICopbWVudUl0
ZW0gcHJlZmVycmVkRWRnZUZvclBvaW50OihOU1BvaW50KXBvaQogLSAodm9pZCltZW51SXRlbURp
ZENsb3NlOihOU01lbnVJdGVtICopbWVudUl0ZW0KIHsKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlh
dGVBY3Rpb25TdGF0ZV07Ci0gICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXRdOworICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKIH0KIAog
c3RhdGljIFdlYkNvcmU6OkludFJlY3QgZWxlbWVudEJvdW5kaW5nQm94SW5XaW5kb3dDb29yZGlu
YXRlc0Zyb21Ob2RlKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCkBAIC00NjQsOSArNDY0LDkgQEAgLSAo
aWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRy
b2xsZXJGb3JEYXRhRGV0ZWN0ZWQKICAgICBfY3VycmVudEFjdGlvbkNvbnRleHQgPSBbZGV0ZWN0
ZWRJdGVtLT5hY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol93ZWJWaWV3IGFsdE1vZGU6WUVT
IGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAgICB9IGludGVyYWN0aW9uQ2hhbmdl
ZEhhbmRsZXI6XigpIHsKICAgICAgICAgaWYgKGluZGljYXRvcikKLSAgICAgICAgICAgIFtfd2Vi
VmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgICAgICBbX3dl
YlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGlj
YXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwogICAgIH0gaW50ZXJhY3Rpb25TdG9wcGVkSGFuZGxl
cjpeKCkgewotICAgICAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRp
b246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91
dF07CisgICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICB9
XTsKIAogICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0RnJhbWU6W193ZWJW
aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOmRldGVjdGVkSXRlbS0+Ym91bmRpbmdCb3hd
XTsKQEAgLTQ5Nyw5ICs0OTcsOSBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25D
b250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZAogICAgIF9jdXJy
ZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol93ZWJWaWV3
IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAgICB9IGludGVy
YWN0aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsKICAgICAgICAgaWYgKGluZGljYXRvcikKLSAgICAg
ICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGlt
ZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAg
ICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRp
bWU6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwogICAgIH0gaW50ZXJhY3Rpb25T
dG9wcGVkSGFuZGxlcjpeKCkgewotICAgICAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRv
cldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbjo6RmFkZU91dF07CisgICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0
aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRl
T3V0XTsKICAgICB9XTsKIAogICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0
RnJhbWU6W193ZWJWaWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOmVsZW1lbnRCb3VuZGlu
Z0JveEluV2luZG93Q29vcmRpbmF0ZXNGcm9tTm9kZShfaGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50
KCkpXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXgg
NzI2NGJmZGNkNzJkZTEzNjk2MGEzMjM4Y2IwMDIxNmZiODkyZmY3Yy4uNWUwZWQxNWM5MjFiMDZi
YTMyY2U3ZjNhM2Q3MzFiNzFhNDU3M2Y5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQpAQCAtOTEwMCwxMSArOTEwMCwxMSBAQCAtIChpZClfYW5pbWF0aW9u
Q29udHJvbGxlckZvckRpY3Rpb25hcnlMb29rdXBQb3B1cEluZm86KGNvbnN0IFdlYkNvcmU6OkRp
Y3Rpb25hcgogICAgIFtzZWxmIF9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cF07CiAKICAgICBy
ZXR1cm4gV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6YW5pbWF0aW9uQ29udHJvbGxlckZvclBv
cHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIHNlbGYsIFtzZWxmXShXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRl
eHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZl
dGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dElu
ZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwog
ICAgIH0sIFtzZWxmXShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdEluUm9vdFZpZXdDb29yZGluYXRl
cykgewogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRSZWN0RnJvbVJvb3RWaWV3OnJlY3RJ
blJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIH0sIFtzZWxmXSgpIHsKLSAgICAgICAgW3NlbGYg
X2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgICAgIFtzZWxmIF9jbGVhclRl
eHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxB
bmltYXRpb246OkZhZGVPdXRdOwogICAgIH0pOwogfQogCkBAIC05MTIwLDEwICs5MTIwLDEwIEBA
IC0gKHZvaWQpX3NldFByZXNzdXJlRXZlbnQ6KE5TRXZlbnQgKilldmVudAogCiAtICh2b2lkKV9z
ZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yCiB7
Ci0gICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgIFtz
ZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRp
Y2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKIH0KIAotLSAodm9pZClfc2V0VGV4dEluZGljYXRv
cjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6KFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSlsaWZldGltZQorLSAodm9pZClfc2V0
VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRo
TGlmZXRpbWU6KFRleHRJbmRpY2F0b3JMaWZldGltZSlsaWZldGltZQogewogICAgIGlmICghX3By
aXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cpCiAgICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNh
dG9yV2luZG93ID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93PihzZWxm
KTsKQEAgLTkxMzMsMTAgKzkxMzMsMTAgQEAgLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2Vi
Q29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6KFcKICAgICBf
cHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdy0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNh
dG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcyks
IGxpZmV0aW1lKTsKIH0KIAotLSAodm9pZClfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlv
bjooV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbilhbmltYXRp
b24KKy0gKHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uCiB7CiAgICAgaWYgKF9wcml2
YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93KQotICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRv
cldpbmRvdy0+Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dE
aXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGlj
YXRvcldpbmRvdy0+Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNt
aXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2lu
ZG93ID0gbnVsbHB0cjsKIH0KIApAQCAtOTE2OCwxOCArOTE2OCwxOCBAQCAtICh2b2lkKV9zaG93
RGljdGlvbmFyeUxvb2t1cFBvcHVwOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZv
JilkaWN0aW9uYQogICAgIFtzZWxmIF9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cF07CiAKICAg
ICBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoZGljdGlvbmFyeVBvcHVwSW5m
bywgc2VsZiwgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsK
LSAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRp
bWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAg
ICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpU
ZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSwgW3NlbGZdKFdlYkNvcmU6
OkZsb2F0UmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSB7CiAgICAgICAgIHJldHVybiBb
c2VsZiBfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6cmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107
CiAgICAgfSwgW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V2ViVmlldz4oc2VsZildKCkgewotICAg
ICAgICBbd2Vha1NlbGYuZ2V0KCkgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07Cisg
ICAgICAgIFt3ZWFrU2VsZi5nZXQoKSBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICB9
KTsKIH0KIAogI2lmICFFTkFCTEUoUkVWRUFMKQogLSAodm9pZClfZGljdGlvbmFyeUxvb2t1cFBv
cG92ZXJXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7Ci0gICAgW3Nl
bGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW3NlbGYgX2NsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFu
aW1hdGlvbjo6RmFkZU91dF07CiB9CiAjZW5kaWYgLy8gRU5BQkxFKFJFVkVBTCkKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKaW5kZXgg
NzMzNzJhMGJkYTE1M2JmYTM3NjEwMjNjZjQ5NWQ3OTZmYTcxOGNjMS4uYjJjYTBkNmM0ZmZmYjQ2
MTkxODdjZjI2NzI5Y2ViYTJkM2Q0ZWUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0zMTksOCArMzE5LDggQEAgV2ViTGF5
b3V0TWlsZXN0b25lcyBraXRMYXlvdXRNaWxlc3RvbmVzKE9wdGlvblNldDxXZWJDb3JlOjpMYXlv
dXRNaWxlc3RvbmU+KTsKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgZGVmaW5lZChfX2NwbHVzcGx1
cykKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRl
eHRJbmRpY2F0b3I7Ci0tICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lKWxpZmV0aW1lOwotLSAodm9pZClfY2xlYXJUZXh0SW5kaWNhdG9yV2l0
aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlv
bilhbmltYXRpb247CistICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooVGV4dEluZGljYXRvckxpZmV0aW1l
KWxpZmV0aW1lOworLSAodm9pZClfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooV2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb247CiAtICh2b2lk
KV9zZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6KGZsb2F0KXByb2dyZXNzOwogLSAo
dm9pZClfc2hvd0RpY3Rpb25hcnlMb29rdXBQb3B1cDooY29uc3QgV2ViQ29yZTo6RGljdGlvbmFy
eVBvcHVwSW5mbyYpZGljdGlvbmFyeVBvcHVwSW5mbzsKIC0gKGlkKV9hbmltYXRpb25Db250cm9s
bGVyRm9yRGljdGlvbmFyeUxvb2t1cFBvcHVwSW5mbzooY29uc3QgV2ViQ29yZTo6RGljdGlvbmFy
eVBvcHVwSW5mbyYpZGljdGlvbmFyeVBvcHVwSW5mbzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428480</attachid>
            <date>2021-05-13 03:02:55 -0700</date>
            <delta_ts>2021-05-13 03:21:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513030254.patch</filename>
            <type>text/plain</type>
            <size>51878</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRv
ci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLmViZTVm
MTg1YjljNjViZmVjYjE5MTc4MmJjNTM5NDliNmZhOGI5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCkBAIC0zOSw2ICszOSwzMCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAvLyBGSVhNRTogQ2hh
bmdlIHRoZXNlIHRvIFdlYkNvcmUgdHlwZXMgaW5zdGVhZCBvZiBndWFyZGluZyB3aXRoIENPQ09B
CisKK2NvbnN0ZXhwciBDR0Zsb2F0IGRyb3BTaGFkb3dCbHVyUmFkaXVzID0gMjsKK2NvbnN0ZXhw
ciBDR0Zsb2F0IHJpbVNoYWRvd0JsdXJSYWRpdXMgPSAxOworY29uc3RleHByIENGVGltZUludGVy
dmFsIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKK2NvbnN0ZXhwciBDRlRpbWVJbnRl
cnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4y
OworY29uc3RleHByIENHRmxvYXQgbWlkQm91bmNlU2NhbGUgPSAxLjI1OworCisKK2VudW0gY2xh
c3MgVGV4dEluZGljYXRvckxpZmV0aW1lIDogdWludDhfdCB7CisgICAgLy8gVGhlIFRleHRJbmRp
Y2F0b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRpc21pc3NlZC4KKyAgICBQZXJt
YW5lbnQsCisKKyAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgYnJpZWZseSBpbmRpY2F0
ZSB0aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21pc3MuCisgICAgVGVtcG9yYXJ5
Cit9OworCitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50
OF90IHsKKyAgICBOb25lLAorICAgIEZhZGVPdXQKK307CisKKyNlbmRpZgorCiAvLyBGSVhNRTog
TW92ZSBQcmVzZW50YXRpb25UcmFuc2l0aW9uIHRvIFRleHRJbmRpY2F0b3JXaW5kb3csIGJlY2F1
c2UgaXQncyBhYm91dCBwcmVzZW50YXRpb24uCiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVz
ZW50YXRpb25UcmFuc2l0aW9uIDogdWludDhfdCB7CiAgICAgTm9uZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oCmluZGV4IGZkMTNkMDQw
ZWZmYjc1YjBlYTAwNGVhNTUxZTMyMjE1NGFlMThmYWYuLmJlYmY5M2EzNmVkNzBlNmIzMDlkZTg5
NTgxYTE4MzY2NWUzOGMxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2Ev
V2ViVGV4dEluZGljYXRvckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9X
ZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaApAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAotQGludGVyZmFjZSBXZWJUZXh0
SW5kaWNhdG9yTGF5ZXIgOiBDQUxheWVyIHsKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2Vi
VGV4dEluZGljYXRvckxheWVyIDogQ0FMYXllciB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3I+IF90ZXh0SW5kaWNhdG9yOwogICAgIFJldGFpblB0cjxOU0FycmF5PiBfYm91bmNl
TGF5ZXJzOwogICAgIENHU2l6ZSBfbWFyZ2luOwpAQCAtNTMsMyArNTMsNCBAQAogQHByb3BlcnR5
IChub25hdG9taWMsIGdldHRlcj1pc0ZhZGluZ091dCkgQk9PTCBmYWRpbmdPdXQ7CiAKIEBlbmQK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9y
TGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXll
ci5tbQppbmRleCBiOGM0ZDhmMDY3YmFjZWQwOWE4MTE4MDg3MTAzMDZjNTdhNzk0MzAwLi5iNmJj
MTFiYmIwY2NkMjE0NWQyYjdmMmQ2ODdiYjZlZTRiZjYyMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQpAQCAtMzAsNiArMzAs
NyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJQYXRoVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJUZXh0SW5kaWNhdG9yLmgiCisjaW1wb3J0ICJUZXh0SW5kaWNhdG9yV2lu
ZG93LmgiCiAjaW1wb3J0ICJXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCIKICNp
bXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL1F1YXJ0ekNvcmVTUEkuaD4KQEAgLTM4LDE5ICszOSwxNSBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9OU0NvbG9yU1BJLmg+CiAjZW5kaWYKIAotY29uc3RleHByIENGVGltZUludGVydmFs
IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKKwogY29uc3RleHByIENGVGltZUludGVy
dmFsIGJvdW5jZVdpdGhDcm9zc2ZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIGNvbnN0ZXhw
ciBDRlRpbWVJbnRlcnZhbCBmYWRlSW5BbmltYXRpb25EdXJhdGlvbiA9IDAuMTU7Ci1jb25zdGV4
cHIgQ0ZUaW1lSW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25E
dXJhdGlvbiArIDAuMjsKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlT3V0QW5pbWF0aW9u
RHVyYXRpb24gPSAwLjM7CiAKLWNvbnN0ZXhwciBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4y
NTsKIGNvbnN0ZXhwciBDR0Zsb2F0IGJvcmRlcldpZHRoID0gMDsKIGNvbnN0ZXhwciBDR0Zsb2F0
IGNvcm5lclJhZGl1cyA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WCA9
IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WSA9IDE7Ci1jb25zdGV4cHIg
Q0dGbG9hdCBkcm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Ci1jb25zdGV4cHIgQ0dGbG9hdCByaW1T
aGFkb3dCbHVyUmFkaXVzID0gMTsKIAogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgdGV4dExh
eWVyS2V5ID0gQCJUZXh0TGF5ZXIiOwogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgZHJvcFNo
YWRvd0xheWVyS2V5ID0gQCJEcm9wU2hhZG93TGF5ZXIiOwpAQCAtMTMyLDEzICsxMjksMTIgQEAg
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9y
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkK
ICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAKKyAgICBzZWxmLmFuY2hvclBvaW50ID0gQ0dQb2lu
dFplcm87CiAgICAgc2VsZi5mcmFtZSA9IGZyYW1lOwogCiAgICAgX3RleHRJbmRpY2F0b3IgPSAm
dGV4dEluZGljYXRvcjsKICAgICBfbWFyZ2luID0gbWFyZ2luOwogCi0gICAgc2VsZi5hbmNob3JQ
b2ludCA9IENHUG9pbnRaZXJvOwotCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBj
b250ZW50c0ltYWdlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBjb250ZW50c0ltYWdlTG9naWNh
bFNpemUgeyAxLCAxIH07CiAgICAgaWYgKGF1dG8qIGNvbnRlbnRJbWFnZSA9IF90ZXh0SW5kaWNh
dG9yLT5jb250ZW50SW1hZ2UoKSkgewpAQCAtMTkyLDcgKzE4OCw3IEBAIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4
dEluZGljYXRvCiAgICAgICAgIFJldGFpblB0cjxDQUxheWVyPiBkcm9wU2hhZG93TGF5ZXIgPSBh
ZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVy
IHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07
CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93Q29sb3I6ZHJvcFNoYWRvd0NvbG9y
LmdldCgpXTsKLSAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6ZHJvcFNo
YWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1
czpXZWJDb3JlOjpkcm9wU2hhZG93Qmx1clJhZGl1c107CiAgICAgICAgIFtkcm9wU2hhZG93TGF5
ZXIgc2V0U2hhZG93T2Zmc2V0OkNHU2l6ZU1ha2UoZHJvcFNoYWRvd09mZnNldFgsIGRyb3BTaGFk
b3dPZmZzZXRZKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFu
c2xhdGVkUGF0aC5wbGF0Zm9ybVBhdGgoKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0
U2hhZG93T3BhY2l0eToxXTsKQEAgLTIwNCw3ICsyMDAsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRp
Y2F0bwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRpc2Fi
bGluZ0NBTGF5ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNl
dEZyYW1lOnllbGxvd0hpZ2hsaWdodFJlY3RdOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0
U2hhZG93Q29sb3I6cmltU2hhZG93Q29sb3IuZ2V0KCldOwotICAgICAgICBbcmltU2hhZG93TGF5
ZXIgc2V0U2hhZG93UmFkaXVzOnJpbVNoYWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbcmltU2hh
ZG93TGF5ZXIgc2V0U2hhZG93UmFkaXVzOldlYkNvcmU6OnJpbVNoYWRvd0JsdXJSYWRpdXNdOwog
ICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFuc2xhdGVkUGF0aC5wbGF0
Zm9ybVBhdGgoKV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPZmZzZXQ6Q0dT
aXplWmVyb107CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPcGFjaXR5OjFdOwpA
QCAtMjQ1LDcgKzI0MSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0FLZXlmcmFtZUFuaW1hdGlvbj4g
Y3JlYXRlQm91bmNlQW5pbWF0aW9uKENGVGltZUludGVydmFsIGR1cmF0CiAgICAgUmV0YWluUHRy
PENBS2V5ZnJhbWVBbmltYXRpb24+IGJvdW5jZUFuaW1hdGlvbiA9IFtDQUtleWZyYW1lQW5pbWF0
aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOkAidHJhbnNmb3JtIl07CiAgICAgW2JvdW5jZUFuaW1h
dGlvbiBzZXRWYWx1ZXM6QFsKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpDQVRyYW5zZm9ybTNESWRlbnRpdHldLAotICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRy
YW5zZm9ybTNEOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUobWlkQm91bmNlU2NhbGUsIG1pZEJvdW5j
ZVNjYWxlLCAxKV0sCisgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FU
cmFuc2Zvcm0zRE1ha2VTY2FsZShXZWJDb3JlOjptaWRCb3VuY2VTY2FsZSwgV2ViQ29yZTo6bWlk
Qm91bmNlU2NhbGUsIDEpXSwKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpDQVRyYW5zZm9ybTNESWRlbnRpdHldCiAgICAgICAgIF1dOwogICAgIFtib3VuY2VBbmltYXRp
b24gc2V0RHVyYXRpb246ZHVyYXRpb25dOwpAQCAtMjk0LDcgKzI5MCw3IEBAIC0gKENGVGltZUlu
dGVydmFsKV9hbmltYXRpb25EdXJhdGlvbgogICAgIGlmIChbc2VsZiBpbmRpY2F0b3JXYW50c0Jv
dW5jZToqX3RleHRJbmRpY2F0b3JdKSB7CiAgICAgICAgIGlmIChpbmRpY2F0b3JXYW50c0NvbnRl
bnRDcm9zc2ZhZGUoKl90ZXh0SW5kaWNhdG9yKSkKICAgICAgICAgICAgIHJldHVybiBib3VuY2VX
aXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb247Ci0gICAgICAgIHJldHVybiBib3VuY2VBbmlt
YXRpb25EdXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmJvdW5jZUFuaW1hdGlvbkR1
cmF0aW9uOwogICAgIH0KIAogICAgIHJldHVybiBmYWRlSW5BbmltYXRpb25EdXJhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCBjM2Iz
M2ViYTJjOGJjMGQ3NTQ1OWRkMjE1MDg5YjY1MjljNWQzMTVkLi5mN2ZmZjdjNzNhMWQyZmY3NTRi
Mjc4N2NhMjI5OTUyMzgwMzEzMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4
dEluZGljYXRvcldpbmRvdy5oCkBAIC0zNiwxOSArMzYsNiBAQCBPQkpDX0NMQVNTIFdlYlRleHRJ
bmRpY2F0b3JMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3QgewotICAgIC8vIFRoZSBUZXh0SW5kaWNh
dG9yIHNob3VsZCBpbmRpY2F0ZSB0aGUgdGV4dCB1bnRpbCBkaXNtaXNzZWQuCi0gICAgUGVybWFu
ZW50LAotCi0gICAgLy8gVGhlIFRleHRJbmRpY2F0b3Igc2hvdWxkIGJyaWVmbHkgaW5kaWNhdGUg
dGhlIHRleHQgYW5kIHRoZW4gYXV0b21hdGljYWxseSBkaXNtaXNzLgotICAgIFRlbXBvcmFyeQot
fTsKLQotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDog
dWludDhfdCB7Ci0gICAgTm9uZSwKLSAgICBGYWRlT3V0Ci19OwotCiAjaWYgUExBVEZPUk0oTUFD
KQogCiBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93IHsKQEAgLTU5LDggKzQ2LDggQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFRleHRJbmRpY2F0b3JXaW5kb3coTlNWaWV3
ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5UZXh0SW5kaWNhdG9yV2luZG93KCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBD
R1JlY3QgY29udGVudFJlY3QsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKFJlZjxUZXh0SW5kaWNhdG9yPiwgQ0dSZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAKQEAgLTgxLDMgKzY4LDUgQEAgcHJpdmF0
ZToKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRl
eCBmODVmYTUzYjNiNGE5ZjQ1OTY5Nzc2YTEyY2M0MTFmNzkyMmRmNzdjLi4wMWE3OGQxM2M3NTBm
NDYxYzU1ZDdmMWM0ZjA2NzM0M2U1MTkwNzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTM4LDEyICszOCw2IEBACiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oPgogCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlv
biA9IDAuMTI7Ci1jb25zdCBDRlRpbWVJbnRlcnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJv
dW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4yOwotCi1jb25zdCBDR0Zsb2F0IG1pZEJvdW5jZVNj
YWxlID0gMS4yNTsKLWNvbnN0IENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsNyAr
NTAsNyBAQCBUZXh0SW5kaWNhdG9yV2luZG93OjpUZXh0SW5kaWNhdG9yV2luZG93KE5TVmlldyAq
dGFyZ2V0VmlldykKIAogVGV4dEluZGljYXRvcldpbmRvdzo6flRleHRJbmRpY2F0b3JXaW5kb3co
KQogewotICAgIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiB9CiAKIHZvaWQgVGV4dElu
ZGljYXRvcldpbmRvdzo6c2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCkBAIC02
NywxNCArNjEsMTQgQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9n
cmVzcyhmbG9hdCBwcm9ncmVzcykKICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0QW5pbWF0
aW9uUHJvZ3Jlc3M6cHJvZ3Jlc3NdOwogfQogCi12b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNs
ZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFu
aW1hdGlvbikKK3ZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQogewogICAg
IFJlZlB0cjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yID0gV1RGTW92ZShtX3RleHRJbmRp
Y2F0b3IpOwogCiAgICAgaWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091dF0pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0
b3JMYXllciBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYg
W21fdGV4dEluZGljYXRvckxheWVyIGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9u
ID09IFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKKyAg
ICBpZiAodGV4dEluZGljYXRvciAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2Fu
dHNNYW51YWxBbmltYXRpb246KnRleHRJbmRpY2F0b3JdICYmIFttX3RleHRJbmRpY2F0b3JMYXll
ciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7CiAgICAgICAgIHN0YXJ0RmFkZU91
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODIsNyArNzYsNyBAQCB2b2lkIFRleHRJ
bmRpY2F0b3JXaW5kb3c6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aQogICAgIGNsb3NlV2luZG93KCk7CiB9CiAKLXZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciwgQ0dSZWN0IHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNl
dFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUmVjdCB0
ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcywgVGV4dEluZGljYXRvckxpZmV0aW1l
IGxpZmV0aW1lKQogewogICAgIGlmIChtX3RleHRJbmRpY2F0b3IgPT0gdGV4dEluZGljYXRvci5w
dHIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTUsOCArODksOCBAQCB2b2lkIFRleHRJbmRpY2F0
b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0
b3IsIENHUgogICAgIENHRmxvYXQgdmVydGljYWxNYXJnaW4gPSBkcm9wU2hhZG93Qmx1clJhZGl1
cyAqIDIgKyBUZXh0SW5kaWNhdG9yOjpkZWZhdWx0VmVydGljYWxNYXJnaW47CiAgICAgCiAgICAg
aWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50c0JvdW5jZToqbV90ZXh0SW5k
aWNhdG9yXSkgewotICAgICAgICBob3Jpem9udGFsTWFyZ2luID0gc3RkOjptYXgoaG9yaXpvbnRh
bE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS53aWR0aCAq
IChtaWRCb3VuY2VTY2FsZSAtIDEpICsgaG9yaXpvbnRhbE1hcmdpbik7Ci0gICAgICAgIHZlcnRp
Y2FsTWFyZ2luID0gc3RkOjptYXgodmVydGljYWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNj
cmVlbkNvb3JkaW5hdGVzLnNpemUuaGVpZ2h0ICogKG1pZEJvdW5jZVNjYWxlIC0gMSkgKyB2ZXJ0
aWNhbE1hcmdpbik7CisgICAgICAgIGhvcml6b250YWxNYXJnaW4gPSBzdGQ6Om1heChob3Jpem9u
dGFsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLndpZHRo
ICogKFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxlIC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsKKyAg
ICAgICAgdmVydGljYWxNYXJnaW4gPSBzdGQ6Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJvdW5k
aW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQgKiAoV2ViQ29yZTo6bWlkQm91
bmNlU2NhbGUgLSAxKSArIHZlcnRpY2FsTWFyZ2luKTsKICAgICB9CiAKICAgICBob3Jpem9udGFs
TWFyZ2luID0gQ0dDZWlsaW5nKGhvcml6b250YWxNYXJnaW4pOwpAQCAtMTI1LDggKzExOSw4IEBA
IHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGlj
YXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgaWYgKG1fdGV4dEluZGljYXRvci0+cHJlc2Vu
dGF0aW9uVHJhbnNpdGlvbigpICE9IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9u
OjpOb25lKQogICAgICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgcHJlc2VudF07CiAKLSAgICBp
ZiAobGlmZXRpbWUgPT0gVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpCi0g
ICAgICAgIG1fdGVtcG9yYXJ5VGV4dEluZGljYXRvclRpbWVyLnN0YXJ0T25lU2hvdCgxX3MgKiB0
aW1lQmVmb3JlRmFkZVN0YXJ0cyk7CisgICAgaWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0b3JM
aWZldGltZTo6VGVtcG9yYXJ5KQorICAgICAgICBtX3RlbXBvcmFyeVRleHRJbmRpY2F0b3JUaW1l
ci5zdGFydE9uZVNob3QoMV9zICogV2ViQ29yZTo6dGltZUJlZm9yZUZhZGVTdGFydHMpOwogfQog
CiB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsb3NlV2luZG93KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDNhZDUxNDJjZDE3N2FhZGFlNWMz
ODUzMmQ1N2ZjYTQzODBhY2Q0YjYuLmM1YzQ2NjIwYmFjZDU1NTliNDkzZTAzMWU1NGI5YzBjYzcx
ZWFhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApA
QCAtNDExLDggKzQxMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFu
Z2UoKTsKIAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
JiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lID0gV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwotICAgIHZvaWQgY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uKTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGlj
YXRvciYsIFRleHRJbmRpY2F0b3JMaWZldGltZSA9IFRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVy
bWFuZW50KTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29y
ZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbik7CiAgICAgdm9pZCBzZXRUZXh0SW5k
aWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogICAgIHZvaWQgZGlzbWlzc0NvbnRlbnRS
ZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpOwogICAgIHZvaWQgZGlzbWlzc0NvbnRl
bnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oYm9vbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDIzYTUwNDY4MTE0MTMzNTE5
ZjJlZDFiZGNkODI0Y2Q5MmE2NWI0MWYuLjE1YWVlYTM1NjM5ZDI0NjM1YTA2YTJmNDhlZDQwODdh
ZDVkMGIzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCkBAIC00MjMsNyArNDIzLDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihO
U1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE4KICNpZiAhRU5B
QkxFKFJFVkVBTCkKIC0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOihO
U05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotICAgIF9pbXBsLT5jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb246Ok5vbmUpOworICAgIF9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogfQog
I2VuZGlmCiAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnByZWZlcmVu
Y2VzRGlkQ2hhbmdlKCkKICAgICAgICAgdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygpOwogfQog
Ci12b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSBs
aWZldGltZSkKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvckxpZmV0aW1lIGxpZmV0aW1l
KQogewogICAgIGlmICghbV90ZXh0SW5kaWNhdG9yV2luZG93KQogICAgICAgICBtX3RleHRJbmRp
Y2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+KG1f
dmlldy5nZXRBdXRvcmVsZWFzZWQoKSk7CkBAIC0zNTA0LDcgKzM1MDQsNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRp
Y2F0b3IsIFdlYkNvcgogICAgIG1fdGV4dEluZGljYXRvcldpbmRvdy0+c2V0VGV4dEluZGljYXRv
cih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5D
b29yZGluYXRlcyksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6Y2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlz
c2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKK3ZvaWQgV2ViVmlld0ltcGw6OmNsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlv
biBhbmltYXRpb24pCiB7CiAgICAgaWYgKG1fdGV4dEluZGljYXRvcldpbmRvdykKICAgICAgICAg
bV90ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0b3IoYW5pbWF0aW9uKTsKQEAg
LTM1MjcsNyArMzUyNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdPbmx5KGJvCiAgICAgLy8gQ2FsbGlu
ZyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBoZXJlIHdpbGwgd2luIG91dCBvdmVy
IHRoZSBhbmltYXRlZCBjbGVhciBpbiBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dz
RnJvbVZpZXdPbmx5LgogICAgIC8vIFdlIGNhbid0IGludmVydCB0aGVzZSBiZWNhdXNlIGNsaWVu
dHMgY2FuIG92ZXJyaWRlIChhbmQgaGF2ZSBvdmVycmlkZGVuKSBfZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93cywgc28gaXQgbmVlZHMgdG8gYmUgY2FsbGVkLgogICAgIC8vIEZvciB0
aGlzIHNhbWUgcmVhc29uLCB0aGlzIGNhbid0IGJlIG1vdmVkIHRvIFdlYlZpZXdJbXBsIHdpdGhv
dXQgY2FyZS4KLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKGFuaW1hdGUgPyBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0IDog
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7Cisg
ICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihhbmltYXRlID8gV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCA6IFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAgIFttX3ZpZXcgX3dlYl9kaXNtaXNz
Q29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKIH0KIApAQCAtMzU0NCw3ICszNTQ0LDcgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21W
aWV3T25seSgpCiAgICAgICAgICAgICBbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJl
ZE1hbmFnZXJdIHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNob3JPbkZhaWx1cmU6WUVTXTsKICAg
ICB9CiAKLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAgIGNsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFu
aW1hdGlvbjo6RmFkZU91dCk7CiAKICAgICBbbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGRp
c21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmgKaW5kZXggNDE3ZTExZDQ5NjYwN2EzMDBjZmI2NWZlZDZjN2Y0Y2FjZTBjOTI2
ZC4uYTM1NzMxZWMwMWQ5ZTVlMTUwMmU2MDVlNTI4MmZlZjBiMDQ1ZDY4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTA2LDggKzEwNiw4IEBAIGNsYXNzIFNlbGVjdGlv
bkRhdGE7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFz
cyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTY3JvbGxiYXJTdHls
ZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVp
bnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24g
OiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgOiB1aW50OF90Owor
ZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdDsKIGVu
dW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBBcHBI
aWdobGlnaHQ7CkBAIC0zODUsOCArMzg1LDggQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29y
ZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4
dEluZGljYXRvckxpZmV0aW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyVGV4dEluZGlj
YXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgPSAw
OwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25z
dCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWE1YzM0OTA3MzNjMmIwZTkxZGU4NDg4OGUzMDA0
YWU5YmFiODQ1ZC4uZWIxZGEwYTgzZWRhNThiNDdlN2VjYzU5ZjY4MDYzMmMxNjA3MGY2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTgsNyArMjE4LDYg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJpbmcuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAj
aW5jbHVkZSA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgpAQCAtNjUxMSw3ICs2NTEwLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRh
dGEmIGluZGljYXRvckRhdGEsIHVpbnQKIHsKICAgICAvLyBGSVhNRTogTWFrZSBUZXh0SW5kaWNh
dG9yV2luZG93IGEgcGxhdGZvcm0taW5kZXBlbmRlbnQgcHJlc2VudGF0aW9uYWwgdGhpbmcgKCJU
ZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uIj8pLgogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBh
Z2VDbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3I6OmNyZWF0ZShpbmRpY2F0
b3JEYXRhKSwgc3RhdGljX2Nhc3Q8VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lPihsaWZldGlt
ZSkpOworICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3I6OmNy
ZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8VGV4dEluZGljYXRvckxpZmV0aW1lPihs
aWZldGltZSkpOwogI2Vsc2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgpAQCAt
NjUyMCw3ICs2NTE5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3IoY29u
c3QgVGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEsIHVpbnQKIHZvaWQgV2ViUGFnZVBy
b3h5OjpjbGVhclRleHRJbmRpY2F0b3IoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBh
Z2VDbGllbnQoKS5jbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAgcGFnZUNsaWVudCgpLmNsZWFyVGV4dEluZGljYXRv
cihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKICNl
bHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNWI0NTdkZmI2MDMxZWY2MzlhZDNhZTNmY2JmZmZhZTZh
NmQ4NTcwMi4uZDJkYmUxOWIzZGI5NWE3ODMxNjI1Mjc0NDFmMTg0M2QxZWQyMWUxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTExNDksNyArMTE0OSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBPcHRpb25T
ZXQ8RmluZE9wdGlvbnM+LCB1bnNpZ25lZCBtYXhNYXRjaENvdW50KTsKICAgICB2b2lkIHJlcGxh
Y2VNYXRjaGVzKFZlY3Rvcjx1aW50MzJfdD4mJiBtYXRjaEluZGljZXMsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRUZXh0LCBib29sIHNlbGVjdGlvbk9ubHksIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQodWludDY0X3QpPiYmKTsKICAgICB2b2lkIGRpZENvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBT
dHJpbmcmLCB1aW50MzJfdCBtYXRjaENvdW50KTsKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3Io
Y29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmLCB1aW50NjRfdCAvKiBXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgKi8gbGlmZXRpbWUgPSAwIC8qIFBlcm1hbmVudCAq
Lyk7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JEYXRhJiwgdWludDY0X3QgLyogVGV4dEluZGljYXRvckxpZmV0aW1lICovIGxpZmV0aW1lID0g
MCAvKiBQZXJtYW5lbnQgKi8pOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKGZsb2F0KTsKICAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcigpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDNmYmUx
YjE3ZmY2NjA0NDllOTkzZWY3ZThhZmMwYmEwMDI0ZmQ4N2EuLjgxZmIwMTgzM2NlZTllNWQ5MTU5
NTQxOGQyYjVhMGFlNGI4NDRjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMzgsOCArMTM4LDggQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94
eSYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUp
IG92ZXJyaWRlOwotICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VGV4
dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JMaWZldGltZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpIG92ZXJyaWRlOwogCiAg
ICAgdm9pZCBzaG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5n
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVM
b2FkLCBVUkw+JiYpPiYmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA0MGI3NjIzNjM5ZmZhZDQxYjQ0MjQ2OGVi
MmUxODFhYTM0ZjAxNjUzLi45NTkwNzcwODNjODJkMzA0Zjc4ZWM5MjkzMmFhOGQwZTFmZGY3NGFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tCkBAIC00NzksMTYgKzQ3OSwxOSBAQCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VD
bGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKQogICAgIHJldHVy
biBudWxscHRyOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJl
ZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRp
bWUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNh
dG9yPiB0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUpCiB7CisgICAgW21fY29u
dGVudFZpZXcgc2V0VXBUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3JdOwogfQogCi12b2lkIFBh
Z2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21p
c3NhbEFuaW1hdGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlv
bikKIHsKKyAgICBbbV9jb250ZW50VmlldyBjbGVhclRleHRJbmRpY2F0b3I6ZGlzbWlzc2FsQW5p
bWF0aW9uXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1h
dGlvblByb2dyZXNzKGZsb2F0KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRv
ckFuaW1hdGlvblByb2dyZXNzKGZsb2F0IGFuaW1hdGlvblByb2dyZXNzKQogeworICAgIFttX2Nv
bnRlbnRWaWV3IHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczphbmltYXRpb25Qcm9n
cmVzc107CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAppbmRleCA4ODZhZTc1ZTY3YjU2YWViMzgzNzg0ZjU5NmM5ZDhmNzI5MTI1NmU3Li5hOWQz
MGQ4YjM1YjlkY2IwODg2ZTNiNTZhNjZkOWRmNDViZjI4ZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC04
OSw2ICs4OSw3IEBAIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogZW51bSBjbGFzcyBE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3MgTW91c2VFdmVudFBv
bGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7
CitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90Owog
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIHN0cnVjdCBEcmFnSXRlbTsKQEAgLTEzMiw2ICsx
MzMsMTAgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShBUFBfSElHSExJR0hUUykKK0BjbGFzcyBXZWJUZXh0SW5kaWNhdG9yTGF5ZXI7CisjZW5kaWYK
KwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQmVmb3JlLmg+CiAjZW5kaWYKQEAgLTMz
MCw2ICszMzUsMTEgQEAgZW51bSBjbGFzcyBQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbiA6IGJv
b2wgewogI2VuZGlmCiAgICAgUmV0YWluUHRyPFVJUHJldmlld0l0ZW1Db250cm9sbGVyPiBfcHJl
dmlld0l0ZW1Db250cm9sbGVyOwogI2VuZGlmCisgICAgCisjaWYgRU5BQkxFKEFQUF9ISUdITElH
SFRTKQorICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiBfdGV4dEluZGljYXRvcjsK
KyAgICBSZXRhaW5QdHI8V2ViVGV4dEluZGljYXRvckxheWVyPiBfdGV4dEluZGljYXRvckxheWVy
OworI2VuZGlmCiAKICNpZiBVU0UoVUlDT05URVhUTUVOVSkKICAgICBSZXRhaW5QdHI8VUlUYXJn
ZXRlZFByZXZpZXc+IF9jb250ZXh0TWVudUludGVyYWN0aW9uVGFyZ2V0ZWRQcmV2aWV3OwpAQCAt
NjcwLDYgKzY4MCwxMCBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERF
Q0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAodm9pZClfZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWU7CiAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9y
TWFpbkZyYW1lOwogCistICh2b2lkKXNldFVwVGV4dEluZGljYXRvcjooUmVmPFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3I7CistICh2b2lkKXNldFRleHRJbmRpY2F0b3JBbmlt
YXRpb25Qcm9ncmVzczooZmxvYXQpTlNBbmltYXRpb25Qcm9ncmVzczsKKy0gKHZvaWQpY2xlYXJU
ZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKWFu
aW1hdGlvbjsKKwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRV
c2VDb250ZXh0TWVudXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3No
b3VsZEF2b2lkUmVzaXppbmdXaGVuSW5wdXRWaWV3Qm91bmRzQ2hhbmdlOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRBdm9pZFNjcm9sbGluZ1doZW5Gb2N1c2Vk
Q29udGVudElzVmlzaWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGE2MDg2OWE3N2Y5MjU3MGIyMGM5
ZjcxOTNkYWNkMTAxMTIxZmExN2EuLjU4ZDg4ODM5NjBjMThiNzA0MmQ1ODVjYTMyMjI4NTI5Mjdh
NWZhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTcyLDYgKzE3MiwxMSBAQAogI2ltcG9ydCAiUGVw
cGVyVUlDb3JlU1BJLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyNp
bXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgorI2ltcG9ydCA8V2ViQ29yZS9X
ZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaD4KKyNlbmRpZgorCiAjaW1wb3J0IDxwYWwvaW9zL01hbmFn
ZWRDb25maWd1cmF0aW9uU29mdExpbmsuaD4KIAogI2lmIEhBVkUoTElOS19QUkVWSUVXKSAmJiBV
U0UoVUlDT05URVhUTUVOVSkKQEAgLTk1ODIsNiArOTU4Nyw2NyBAQCAtICh2b2lkKV9pbnZva2VB
bGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOihXZWJLaXQ6OlBy
b2NlZWRXaQogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAKKy0gKHZvaWQp
c2V0VXBUZXh0SW5kaWNhdG9yOihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4pdGV4dEluZGlj
YXRvcgoreworICAgIGlmIChfdGV4dEluZGljYXRvciA9PSB0ZXh0SW5kaWNhdG9yLnB0cigpKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgW3NlbGYgdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5
ZXJdOworICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1SZXF1ZXN0c1dpdGhUYXJn
ZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Ioc3RhcnRGYWRlT3V0KSBvYmplY3Q6bmlsXTsKKyAg
ICAKKyAgICBfdGV4dEluZGljYXRvciA9IHRleHRJbmRpY2F0b3IucHRyKCk7CisKKyAgICBDR1Jl
Y3QgZnJhbWUgPSBfdGV4dEluZGljYXRvci0+dGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29y
ZGluYXRlcygpOworICAgIF90ZXh0SW5kaWNhdG9yTGF5ZXIgPSBhZG9wdE5TKFtbV2ViVGV4dElu
ZGljYXRvckxheWVyIGFsbG9jXSBpbml0V2l0aEZyYW1lOmZyYW1lCisgICAgICAgIHRleHRJbmRp
Y2F0b3I6dGV4dEluZGljYXRvciBtYXJnaW46Q0dTaXplWmVybyBvZmZzZXQ6Q0dQb2ludFplcm9d
KTsKKyAgICAKKyAgICBbW3NlbGYgbGF5ZXJdIGFkZFN1YmxheWVyOl90ZXh0SW5kaWNhdG9yTGF5
ZXIuZ2V0KCldOworCisgICAgaWYgKF90ZXh0SW5kaWNhdG9yLT5wcmVzZW50YXRpb25UcmFuc2l0
aW9uKCkgIT0gV2ViQ29yZTo6VGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246Ok5v
bmUpCisgICAgICAgIFtfdGV4dEluZGljYXRvckxheWVyIHByZXNlbnRdOworICAgIAorICAgIFtz
ZWxmIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3Ioc3RhcnRGYWRlT3V0KSB3aXRoT2JqZWN0OnNl
bGYgYWZ0ZXJEZWxheTpXZWJDb3JlOjp0aW1lQmVmb3JlRmFkZVN0YXJ0c107Cit9CisKKy0gKHZv
aWQpY2xlYXJUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uKWFuaW1hdGlvbgoreworICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiB0
ZXh0SW5kaWNhdG9yID0gV1RGTW92ZShfdGV4dEluZGljYXRvcik7CisgICAgCisgICAgaWYgKFtf
dGV4dEluZGljYXRvckxheWVyIGlzRmFkaW5nT3V0XSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKHRleHRJbmRpY2F0b3IgJiYgW190ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2FudHNN
YW51YWxBbmltYXRpb246KnRleHRJbmRpY2F0b3JdICYmIFtfdGV4dEluZGljYXRvckxheWVyIGhh
c0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9uID09IFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKKyAgICAgICAgW3NlbGYgc3RhcnRGYWRl
T3V0XTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFtzZWxmIHRlYXJkb3duVGV4dElu
ZGljYXRvckxheWVyXTsKK30KKworLSAodm9pZClzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJv
Z3Jlc3M6KGZsb2F0KWFuaW1hdGlvblByb2dyZXNzCit7CisgICAgaWYgKCFfdGV4dEluZGljYXRv
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0QW5pbWF0
aW9uUHJvZ3Jlc3M6YW5pbWF0aW9uUHJvZ3Jlc3NdOworfQorCistICh2b2lkKXRlYXJkb3duVGV4
dEluZGljYXRvckxheWVyCit7CisgICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIgcmVtb3ZlRnJvbVN1
cGVybGF5ZXJdOworICAgIF90ZXh0SW5kaWNhdG9yTGF5ZXIgPSBuaWw7Cit9CisKKy0gKHZvaWQp
c3RhcnRGYWRlT3V0Cit7CisgICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0RmFkaW5nT3V0OllF
U107CisgICAgICAgIAorICAgIFtfdGV4dEluZGljYXRvckxheWVyIGhpZGVXaXRoQ29tcGxldGlv
bkhhbmRsZXI6W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZildIHsK
KyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIFtzdHJv
bmdTZWxmIHRlYXJkb3duVGV4dEluZGljYXRvckxheWVyXTsKKyAgICB9XTsKK30KKwogI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQWZ0ZXIubW0+CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggNThiZTRhMmNhZTQ1
MzdlNTQ2M2JkZDFiNmI1YmUxNjhiYTY5Mjc2Yy4uZTIyMzA4MmRkODAyYTY2MjEwYmJiYTNkMWM4
MDBiMzQ4YjZjOTI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLmgKQEAgLTE1Niw4ICsxNTYsOCBAQCBwcml2YXRlOgogCiAgICAgUmVmPFdl
YkNvcmU6OlZhbGlkYXRpb25CdWJibGU+IGNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpTZXR0aW5ncyYp
IGZpbmFsOwogCi0gICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSBvdmVycmlkZTsK
LSAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3Io
UmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUpIG92ZXJy
aWRlOworICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JE
aXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFu
aW1hdGlvblByb2dyZXNzKGZsb2F0KSBvdmVycmlkZTsKIAogICAgIHZvaWQgZW50ZXJBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5k
ZXggNzg4YTI3OTZkYmIxY2Y0NTllZmUxMjRjNmYwZDdkMGE2OThiN2U5Yi4uZGI3M2ZlMjhiNTM1
YTA1M2I2ZjNjZmVlNzJhNWFmOTNjMTc1MjhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtNTY5LDEyICs1NjksMTIgQEAgdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZGb3JNYWluRnJhbWVO
YXZpZ2F0aW9uKCkKICAgICBtX2ltcGwtPmNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFp
bkZyYW1lTmF2aWdhdGlvbigpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5k
aWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRU
ZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNh
dG9yTGlmZXRpbWUgbGlmZXRpbWUpCiB7CiAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRl
eHRJbmRpY2F0b3IuZ2V0KCksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6
Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb24gZGlzbWlzc2FsQW5pbWF0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJU
ZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gZGlz
bWlzc2FsQW5pbWF0aW9uKQogewogICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFu
aW1hdGlvbihkaXNtaXNzYWxBbmltYXRpb24pOwogfQpAQCAtNjcyLDkgKzY3Miw5IEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0IERpY3Rpb25h
cnlQb3B1cEluZm8mIGRpY3RpCiAgICAgbV9pbXBsLT5wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1
cCgpOwogCiAgICAgRGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVwKGRpY3Rpb25hcnlQb3B1cElu
Zm8sIG1fdmlldywgW3RoaXNdKFRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAg
ICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JX
aW5kb3dMaWZldGltZTo6UGVybWFuZW50KTsKKyAgICAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNh
dG9yKHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50KTsKICAg
ICB9LCBudWxscHRyLCBbdGhpc10oKSB7Ci0gICAgICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5p
bWF0aW9uOjpOb25lKTsKKyAgICAgICAgbV9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwog
ICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQppbmRleCA5YmFhOGJlMjRjNzdjNzQ2ZTc5
M2Y0MTM3OGRjZDAwYjNjZjRjNGZlLi4zMzlmZjk3ZDMwNjAyOWE2YjAwOGUxMTg2NmUzY2E0ZjY5
MWI5NmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTQ5MCw5ICs0OTAsOSBAQCAtIChpZDxO
U0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVy
Rm9yVGV4dAogICAgIF92aWV3SW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKIAog
ICAgIHJldHVybiBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVy
Rm9yUG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgX3ZpZXcsIFtzZWxmXShXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIF92aWV3SW1wbC0+c2V0VGV4dElu
ZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRp
bWU6OlBlcm1hbmVudCk7CisgICAgICAgIF92aWV3SW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0
SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudCk7CiAgICAgfSwgbnVs
bHB0ciwgW3NlbGZdKCkgewotICAgICAgICBfdmlld0ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldp
dGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlv
bjo6Tm9uZSk7CisgICAgICAgIF92aWV3SW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKICAg
ICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzZjJlOWQ1MGZmYjAwMWMyNDZk
NDE3MTBlMDNiNDQ5YmRjNTg2Nzg0Li5iNmIwOGMyZmM0ZDQ1OWFjMDZhYTE1YTE4ZjI3ZWEyZjI2
M2UyMjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODgsNiArODgsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQ
TEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAjaW5jbHVk
ZSAiUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIgpAQCAtMTI2OSw2ICsxMjcwLDExIEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQm
JiBoaWdobGlnaHQpIGNvbnN0CiAgICAgaGlnaGxpZ2h0LnJlcXVlc3RPcmlnaW5hdGVkSW5BcHAg
PSBtX3BhZ2UuaGlnaGxpZ2h0UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCgpOwogICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0b3JlQXBwSGlnaGxpZ2h0KGhpZ2hsaWdodCkp
OwogfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSkgY29uc3QKK3sKKyAgICBtX3Bh
Z2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9yKGluZGljYXRv
ckRhdGEsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRp
bWU6OlRlbXBvcmFyeSkpKTsKK30KICNlbmRpZgogCiBTdHJpbmcgV2ViQ2hyb21lQ2xpZW50Ojpz
aWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZUluZGV4LCBj
b25zdCBTdHJpbmcmIGNoYWxsZW5nZVN0cmluZywgY29uc3QgVVJMJiB1cmwpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKaW5kZXggNGVlZjFmOGFkMWM1MmFjMDUxNjU4MmJhMTYxNTVjYWQwMWExNTU3
Mi4uZDdlZmIwODg1OWRkMDU5NDA2NmU4NDNjYTI2MGIwMWE0NGU2M2ZlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaApAQCAtMzUxLDYgKzM1MSw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoQVBQX0hJ
R0hMSUdIVFMpCiAgICAgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGln
aHQmJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JEYXRhJikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShXRUJfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RmluZENvbnRyb2xsZXIuY3BwCmluZGV4IDAwOTAxNGE1MzZiZjlkNjhkZmJlNWRhMTQwZGRiNTE3
YWVhY2QyMDcuLmVlM2JjMjM2YjJjNGFkMjI4NDYzN2VkZmMxM2JjZTJiNGNhM2FiOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5j
cHAKQEAgLTM4MCw3ICszODAsNyBAQCBib29sIEZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kSW5k
aWNhdG9yKEZyYW1lJiBzZWxlY3RlZEZyYW1lLCBib29sIGlzU2hvd2luZ092ZQogCiAgICAgbV9m
aW5kSW5kaWNhdG9yUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoaW5kaWNhdG9yLT5zZWxlY3Rpb25S
ZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkpOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIG1f
d2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9yKGlu
ZGljYXRvci0+ZGF0YSgpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaXNTaG93aW5nT3ZlcmxheSA/
IFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50IDogVGV4dEluZGljYXRvcldp
bmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpKSk7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yLT5kYXRhKCksIHN0YXRp
Y19jYXN0PHVpbnQ2NF90Pihpc1Nob3dpbmdPdmVybGF5ID8gVGV4dEluZGljYXRvckxpZmV0aW1l
OjpQZXJtYW5lbnQgOiBUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKICNlbmRp
ZgogICAgIG1faXNTaG93aW5nRmluZEluZGljYXRvciA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
aW5kZXggZjNkNDcxNmE4OTMzZDlmMjQyZjhlZjEyMTVhODY2MjM0MGY4OTdhNS4uNmUxOGYyYjI0
MjE3MTNhMmM0MGQ3NDQxOGQ1MjRiODUzNjQxMTY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE1
Myw2ICsxNTMsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAg
IHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYpIGNvbnN0IGZp
bmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDQ1MzljZTZmNjRkMDBiMGJiMDAyODNlYWM4MTUzMjk3
OTAwNGM0ZTguLjQ3ZTcxMWE2ODJiMzI5MzMwNWQ3NzIwN2E4NDcxMzM3OTJmMDdjZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW0KQEAgLTcxOCw2ICs3MTgsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRp
bWVDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGlt
ZQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhp
Z2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEpIGNv
bnN0Cit7Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAwZmUyYTUwOTZj
N2UyNmYzMjAzMjVlMzY4YmZmMGRiYjlmMDcyYzc2Li42MWQ2ZjRlODY1OTRkY2FiN2U2MTc5MDcw
NGI3MDllZjVjY2MyYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KQEAgLTU5NTMsNyArNTk1Myw3IEBAIC0gKHZvaWQpX2xvb2tVcEluRGlj
dGlvbmFyeUZyb21NZW51OihpZClzZW5kZXIKIAogLSAodm9pZClxdWlja0xvb2tXaXRoRXZlbnQ6
KE5TRXZlbnQgKilldmVudAogewotICAgIFtbc2VsZiBfd2ViVmlld10gX2NsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbjo6RmFkZU91dF07CisgICAgW1tzZWxmIF93ZWJWaWV3XSBfY2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9u
OjpGYWRlT3V0XTsKICAgICBbc3VwZXIgcXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IGNlNjJiZmE1MTYxNzdjOGMzNmFlZGQ3
YmE1ZmE0YzI3NTEwZDZmNzEuLmMzYzM2NzJiZmNjZmNkMTM2ZTYyZjNkZmMzNDExYmRlZTliYWU0
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCAt
ICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRpZEhhbmRsZVNjcm9sbFdoZWVsOihO
U0V2ZW50ICopZXZlbnQKIHsKICAgICBbX2N1cnJlbnRRTFByZXZpZXdNZW51SXRlbSBjbG9zZV07
CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBf
Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dElu
ZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1h
dGlvbjo6Tm9uZV07CiB9CiAKIC0gKE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIg
KilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCkBAIC0xMzksNyArMTM5LDcgQEAgLSAodm9pZClf
Y2FuY2VsSW1tZWRpYXRlQWN0aW9uCiAgICAgfQogCiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRl
QWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRl
T3V0XTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAKIC0g
KHZvaWQpX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGUKQEAgLTI1MSw3ICsyNTEsNyBAQCAtICh2
b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJEaWRDYW5jZWxBbmltYXRpb246KE5TSW1tZWRp
YXRlQWN0aW9uR2VzdHVyZVJlYwogCiAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6MF07CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVd
OwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKKyAgICBbX3dl
YlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07CiAgICAgW193ZWJWaWV3IF9zZXRNYWludGFp
bnNJbmFjdGl2ZVNlbGVjdGlvbjpOT107CiB9CiAKQEAgLTI5Myw3ICsyOTMsNyBAQCAtIChpZCA8
TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfZGVmYXVsdEFuaW1hdGlvbkNv
bnRyb2xsZXIKICAgICAgICAgICAgIGF1dG8gbGlua1JhbmdlID0gbWFrZVJhbmdlU2VsZWN0aW5n
Tm9kZUNvbnRlbnRzKCpfaGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50KCkpOwogICAgICAgICAgICAg
YXV0byBpbmRpY2F0b3IgPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2Uo
bGlua1JhbmdlLCB7IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JPcHRpb246OlVzZUJvdW5kaW5nUmVj
dEFuZFBhaW50QWxsQ29udGVudEZvckNvbXBsZXhSYW5nZXMgfSwgV2ViQ29yZTo6VGV4dEluZGlj
YXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246OkZhZGVJbik7CiAgICAgICAgICAgICBpZiAoaW5k
aWNhdG9yKQotICAgICAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5k
aWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6
OlBlcm1hbmVudF07CisgICAgICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9y
OippbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50
XTsKIAogICAgICAgICAgICAgUUxQcmV2aWV3TWVudUl0ZW0gKml0ZW0gPSBbTlNNZW51SXRlbSBz
dGFuZGFyZFF1aWNrTG9va01lbnVJdGVtXTsKICAgICAgICAgICAgIGl0ZW0ucHJldmlld1N0eWxl
ID0gUUxQcmV2aWV3U3R5bGVQb3BvdmVyOwpAQCAtMzc5LDcgKzM3OSw3IEBAIC0gKE5TUmVjdEVk
Z2UpbWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSBwcmVmZXJyZWRFZGdlRm9yUG9pbnQ6
KE5TUG9pbnQpcG9pCiAtICh2b2lkKW1lbnVJdGVtRGlkQ2xvc2U6KE5TTWVudUl0ZW0gKiltZW51
SXRlbQogewogICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dl
YlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGlj
YXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW193ZWJWaWV3IF9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNt
aXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogfQogCiBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBl
bGVtZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzRnJvbU5vZGUoV2ViQ29yZTo6Tm9k
ZSogbm9kZSkKQEAgLTQ2NCw5ICs0NjQsOSBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZAogICAg
IF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFtkZXRlY3RlZEl0ZW0tPmFjdGlvbkNvbnRleHQgY29u
dGV4dEZvclZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxl
cjpeKCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkgewogICAgICAgICBp
ZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOipp
bmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGlt
ZTo6UGVybWFuZW50XTsKKyAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoq
aW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07
CiAgICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5kbGVyOl4oKSB7Ci0gICAgICAgIFtfd2ViVmll
dyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW193ZWJWaWV3IF9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNt
aXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwogCiAgICAgW19jdXJyZW50QWN0aW9u
Q29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9T
Y3JlZW46ZGV0ZWN0ZWRJdGVtLT5ib3VuZGluZ0JveF1dOwpAQCAtNDk3LDkgKzQ5Nyw5IEBAIC0g
KGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250
cm9sbGVyRm9yRGF0YURldGVjdGVkCiAgICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0gW2FjdGlv
bkNvbnRleHQgY29udGV4dEZvclZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25T
dGFydGVkSGFuZGxlcjpeKCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkg
ewogICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0
SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4
dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6
OlBlcm1hbmVudF07CiAgICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5kbGVyOl4oKSB7Ci0gICAg
ICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAg
W193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJ
bmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwogCiAgICAgW19j
dXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcud2luZG93IGNv
bnZlcnRSZWN0VG9TY3JlZW46ZWxlbWVudEJvdW5kaW5nQm94SW5XaW5kb3dDb29yZGluYXRlc0Zy
b21Ob2RlKF9oaXRUZXN0UmVzdWx0LlVSTEVsZW1lbnQoKSldXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3MjY0YmZkY2Q3MmRlMTM2OTYwYTMyMzhj
YjAwMjE2ZmI4OTJmZjdjLi41ZTBlZDE1YzkyMWIwNmJhMzJjZTdmM2EzZDczMWI3MWE0NTczZjlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC05MTAw
LDExICs5MTAwLDExIEBAIC0gKGlkKV9hbmltYXRpb25Db250cm9sbGVyRm9yRGljdGlvbmFyeUxv
b2t1cFBvcHVwSW5mbzooY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyCiAgICAgW3NlbGYgX3ByZXBh
cmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAogICAgIHJldHVybiBXZWJDb3JlOjpEaWN0aW9uYXJ5
TG9va3VwOjphbmltYXRpb25Db250cm9sbGVyRm9yUG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywg
c2VsZiwgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAg
ICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAg
ICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0
SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSwgW3NlbGZdKFdlYkNvcmU6OkZs
b2F0UmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSB7CiAgICAgICAgIHJldHVybiBbc2Vs
ZiBfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6cmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CiAg
ICAgfSwgW3NlbGZdKCkgewotICAgICAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFu
aW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpG
YWRlT3V0XTsKKyAgICAgICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246
V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAg
fSk7CiB9CiAKQEAgLTkxMjAsMTAgKzkxMjAsMTAgQEAgLSAodm9pZClfc2V0UHJlc3N1cmVFdmVu
dDooTlNFdmVudCAqKWV2ZW50CiAKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6
OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IKIHsKLSAgICBbc2VsZiBfc2V0VGV4dEluZGlj
YXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4
dEluZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRd
OwogfQogCi0tICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
Jil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0xpZmV0aW1lKWxpZmV0aW1lCistICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooVGV4dEluZGljYXRvckxp
ZmV0aW1lKWxpZmV0aW1lCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRv
dykKICAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+KHNlbGYpOwpAQCAtOTEzMywxMCArOTEzMywxMCBA
QCAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0
SW5kaWNhdG9yIHdpdGhMaWZldGltZTooVwogICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2lu
ZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIE5TUmVjdFRvQ0dSZWN0KHRleHRC
b3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzKSwgbGlmZXRpbWUpOwogfQogCi0tICh2b2lk
KV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbgorLSAodm9pZClfY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1h
dGlvbilhbmltYXRpb24KIHsKICAgICBpZiAoX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cp
Ci0gICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0
b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91
dCk7CisgICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRp
Y2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7
CiAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cgPSBudWxscHRyOwogfQogCkBAIC05
MTY4LDE4ICs5MTY4LDE4IEBAIC0gKHZvaWQpX3Nob3dEaWN0aW9uYXJ5TG9va3VwUG9wdXA6KGNv
bnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKWRpY3Rpb25hCiAgICAgW3NlbGYgX3By
ZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAogICAgIFdlYkNvcmU6OkRpY3Rpb25hcnlMb29r
dXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBzZWxmLCBbc2VsZl0oV2ViQ29yZTo6
VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBbc2VsZiBfc2V0VGV4dElu
ZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNh
dG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVy
bWFuZW50XTsKICAgICB9LCBbc2VsZl0oV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXMpIHsKICAgICAgICAgcmV0dXJuIFtzZWxmIF9jb252ZXJ0UmVjdEZyb21Sb290
VmlldzpyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICB9LCBbd2Vha1NlbGYgPSBXZWFr
T2JqQ1B0cjxXZWJWaWV3PihzZWxmKV0oKSB7Ci0gICAgICAgIFt3ZWFrU2VsZi5nZXQoKSBfY2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW3dlYWtTZWxmLmdldCgpIF9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNt
aXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH0pOwogfQogCiAjaWYgIUVOQUJMRShSRVZF
QUwpCiAtICh2b2lkKV9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTooTlNOb3RpZmlj
YXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0
aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9u
OjpGYWRlT3V0XTsKKyAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKIH0KICNl
bmRpZiAvLyBFTkFCTEUoUkVWRUFMKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCA3MzM3MmEwYmRhMTUzYmZhMzc2MTAyM2Nm
NDk1ZDc5NmZhNzE4Y2MxLi5iMmNhMGQ2YzRmZmZiNDYxOTE4N2NmMjY3MjljZWJhMmQzZDRlZTJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRl
cm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVy
bmFsLmgKQEAgLTMxOSw4ICszMTksOCBAQCBXZWJMYXlvdXRNaWxlc3RvbmVzIGtpdExheW91dE1p
bGVzdG9uZXMoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pOwogCiAjaWYgUExB
VEZPUk0oTUFDKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogLSAodm9pZClfc2V0VGV4dEluZGlj
YXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvcjsKLS0gKHZvaWQpX3Nl
dFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0
aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpbGlmZXRpbWU7
Ci0tICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKKy0gKHZvaWQpX3Nl
dFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0
aExpZmV0aW1lOihUZXh0SW5kaWNhdG9yTGlmZXRpbWUpbGlmZXRpbWU7CistICh2b2lkKV9jbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlz
c2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3JBbmltYXRp
b25Qcm9ncmVzczooZmxvYXQpcHJvZ3Jlc3M7CiAtICh2b2lkKV9zaG93RGljdGlvbmFyeUxvb2t1
cFBvcHVwOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9uYXJ5UG9w
dXBJbmZvOwogLSAoaWQpX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEaWN0aW9uYXJ5TG9va3VwUG9w
dXBJbmZvOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9uYXJ5UG9w
dXBJbmZvOwo=
</data>
<flag name="commit-queue"
          id="449415"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428482</attachid>
            <date>2021-05-13 03:11:22 -0700</date>
            <delta_ts>2021-05-13 03:30:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513031121.patch</filename>
            <type>text/plain</type>
            <size>51804</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRv
ci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLmViZTVm
MTg1YjljNjViZmVjYjE5MTc4MmJjNTM5NDliNmZhOGI5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCkBAIC0zOSw2ICszOSwzMCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAvLyBGSVhNRTogQ2hh
bmdlIHRoZXNlIHRvIFdlYkNvcmUgdHlwZXMgaW5zdGVhZCBvZiBndWFyZGluZyB3aXRoIENPQ09B
CisKK2NvbnN0ZXhwciBDR0Zsb2F0IGRyb3BTaGFkb3dCbHVyUmFkaXVzID0gMjsKK2NvbnN0ZXhw
ciBDR0Zsb2F0IHJpbVNoYWRvd0JsdXJSYWRpdXMgPSAxOworY29uc3RleHByIENGVGltZUludGVy
dmFsIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKK2NvbnN0ZXhwciBDRlRpbWVJbnRl
cnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4y
OworY29uc3RleHByIENHRmxvYXQgbWlkQm91bmNlU2NhbGUgPSAxLjI1OworCisKK2VudW0gY2xh
c3MgVGV4dEluZGljYXRvckxpZmV0aW1lIDogdWludDhfdCB7CisgICAgLy8gVGhlIFRleHRJbmRp
Y2F0b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRpc21pc3NlZC4KKyAgICBQZXJt
YW5lbnQsCisKKyAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgYnJpZWZseSBpbmRpY2F0
ZSB0aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21pc3MuCisgICAgVGVtcG9yYXJ5
Cit9OworCitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50
OF90IHsKKyAgICBOb25lLAorICAgIEZhZGVPdXQKK307CisKKyNlbmRpZgorCiAvLyBGSVhNRTog
TW92ZSBQcmVzZW50YXRpb25UcmFuc2l0aW9uIHRvIFRleHRJbmRpY2F0b3JXaW5kb3csIGJlY2F1
c2UgaXQncyBhYm91dCBwcmVzZW50YXRpb24uCiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVz
ZW50YXRpb25UcmFuc2l0aW9uIDogdWludDhfdCB7CiAgICAgTm9uZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oCmluZGV4IGZkMTNkMDQw
ZWZmYjc1YjBlYTAwNGVhNTUxZTMyMjE1NGFlMThmYWYuLmJlYmY5M2EzNmVkNzBlNmIzMDlkZTg5
NTgxYTE4MzY2NWUzOGMxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2Ev
V2ViVGV4dEluZGljYXRvckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9X
ZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaApAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAotQGludGVyZmFjZSBXZWJUZXh0
SW5kaWNhdG9yTGF5ZXIgOiBDQUxheWVyIHsKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2Vi
VGV4dEluZGljYXRvckxheWVyIDogQ0FMYXllciB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3I+IF90ZXh0SW5kaWNhdG9yOwogICAgIFJldGFpblB0cjxOU0FycmF5PiBfYm91bmNl
TGF5ZXJzOwogICAgIENHU2l6ZSBfbWFyZ2luOwpAQCAtNTMsMyArNTMsNCBAQAogQHByb3BlcnR5
IChub25hdG9taWMsIGdldHRlcj1pc0ZhZGluZ091dCkgQk9PTCBmYWRpbmdPdXQ7CiAKIEBlbmQK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9y
TGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXll
ci5tbQppbmRleCBiOGM0ZDhmMDY3YmFjZWQwOWE4MTE4MDg3MTAzMDZjNTdhNzk0MzAwLi5iNmJj
MTFiYmIwY2NkMjE0NWQyYjdmMmQ2ODdiYjZlZTRiZjYyMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQpAQCAtMzAsNiArMzAs
NyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJQYXRoVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJUZXh0SW5kaWNhdG9yLmgiCisjaW1wb3J0ICJUZXh0SW5kaWNhdG9yV2lu
ZG93LmgiCiAjaW1wb3J0ICJXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCIKICNp
bXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL1F1YXJ0ekNvcmVTUEkuaD4KQEAgLTM4LDE5ICszOSwxNSBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9OU0NvbG9yU1BJLmg+CiAjZW5kaWYKIAotY29uc3RleHByIENGVGltZUludGVydmFs
IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKKwogY29uc3RleHByIENGVGltZUludGVy
dmFsIGJvdW5jZVdpdGhDcm9zc2ZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIGNvbnN0ZXhw
ciBDRlRpbWVJbnRlcnZhbCBmYWRlSW5BbmltYXRpb25EdXJhdGlvbiA9IDAuMTU7Ci1jb25zdGV4
cHIgQ0ZUaW1lSW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25E
dXJhdGlvbiArIDAuMjsKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlT3V0QW5pbWF0aW9u
RHVyYXRpb24gPSAwLjM7CiAKLWNvbnN0ZXhwciBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4y
NTsKIGNvbnN0ZXhwciBDR0Zsb2F0IGJvcmRlcldpZHRoID0gMDsKIGNvbnN0ZXhwciBDR0Zsb2F0
IGNvcm5lclJhZGl1cyA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WCA9
IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WSA9IDE7Ci1jb25zdGV4cHIg
Q0dGbG9hdCBkcm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Ci1jb25zdGV4cHIgQ0dGbG9hdCByaW1T
aGFkb3dCbHVyUmFkaXVzID0gMTsKIAogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgdGV4dExh
eWVyS2V5ID0gQCJUZXh0TGF5ZXIiOwogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgZHJvcFNo
YWRvd0xheWVyS2V5ID0gQCJEcm9wU2hhZG93TGF5ZXIiOwpAQCAtMTMyLDEzICsxMjksMTIgQEAg
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9y
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkK
ICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAKKyAgICBzZWxmLmFuY2hvclBvaW50ID0gQ0dQb2lu
dFplcm87CiAgICAgc2VsZi5mcmFtZSA9IGZyYW1lOwogCiAgICAgX3RleHRJbmRpY2F0b3IgPSAm
dGV4dEluZGljYXRvcjsKICAgICBfbWFyZ2luID0gbWFyZ2luOwogCi0gICAgc2VsZi5hbmNob3JQ
b2ludCA9IENHUG9pbnRaZXJvOwotCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBj
b250ZW50c0ltYWdlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBjb250ZW50c0ltYWdlTG9naWNh
bFNpemUgeyAxLCAxIH07CiAgICAgaWYgKGF1dG8qIGNvbnRlbnRJbWFnZSA9IF90ZXh0SW5kaWNh
dG9yLT5jb250ZW50SW1hZ2UoKSkgewpAQCAtMTkyLDcgKzE4OCw3IEBAIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4
dEluZGljYXRvCiAgICAgICAgIFJldGFpblB0cjxDQUxheWVyPiBkcm9wU2hhZG93TGF5ZXIgPSBh
ZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVy
IHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07
CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93Q29sb3I6ZHJvcFNoYWRvd0NvbG9y
LmdldCgpXTsKLSAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6ZHJvcFNo
YWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1
czpXZWJDb3JlOjpkcm9wU2hhZG93Qmx1clJhZGl1c107CiAgICAgICAgIFtkcm9wU2hhZG93TGF5
ZXIgc2V0U2hhZG93T2Zmc2V0OkNHU2l6ZU1ha2UoZHJvcFNoYWRvd09mZnNldFgsIGRyb3BTaGFk
b3dPZmZzZXRZKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFu
c2xhdGVkUGF0aC5wbGF0Zm9ybVBhdGgoKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0
U2hhZG93T3BhY2l0eToxXTsKQEAgLTIwNCw3ICsyMDAsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRp
Y2F0bwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRpc2Fi
bGluZ0NBTGF5ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNl
dEZyYW1lOnllbGxvd0hpZ2hsaWdodFJlY3RdOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0
U2hhZG93Q29sb3I6cmltU2hhZG93Q29sb3IuZ2V0KCldOwotICAgICAgICBbcmltU2hhZG93TGF5
ZXIgc2V0U2hhZG93UmFkaXVzOnJpbVNoYWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbcmltU2hh
ZG93TGF5ZXIgc2V0U2hhZG93UmFkaXVzOldlYkNvcmU6OnJpbVNoYWRvd0JsdXJSYWRpdXNdOwog
ICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFuc2xhdGVkUGF0aC5wbGF0
Zm9ybVBhdGgoKV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPZmZzZXQ6Q0dT
aXplWmVyb107CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPcGFjaXR5OjFdOwpA
QCAtMjQ1LDcgKzI0MSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0FLZXlmcmFtZUFuaW1hdGlvbj4g
Y3JlYXRlQm91bmNlQW5pbWF0aW9uKENGVGltZUludGVydmFsIGR1cmF0CiAgICAgUmV0YWluUHRy
PENBS2V5ZnJhbWVBbmltYXRpb24+IGJvdW5jZUFuaW1hdGlvbiA9IFtDQUtleWZyYW1lQW5pbWF0
aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOkAidHJhbnNmb3JtIl07CiAgICAgW2JvdW5jZUFuaW1h
dGlvbiBzZXRWYWx1ZXM6QFsKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpDQVRyYW5zZm9ybTNESWRlbnRpdHldLAotICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRy
YW5zZm9ybTNEOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUobWlkQm91bmNlU2NhbGUsIG1pZEJvdW5j
ZVNjYWxlLCAxKV0sCisgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FU
cmFuc2Zvcm0zRE1ha2VTY2FsZShXZWJDb3JlOjptaWRCb3VuY2VTY2FsZSwgV2ViQ29yZTo6bWlk
Qm91bmNlU2NhbGUsIDEpXSwKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpDQVRyYW5zZm9ybTNESWRlbnRpdHldCiAgICAgICAgIF1dOwogICAgIFtib3VuY2VBbmltYXRp
b24gc2V0RHVyYXRpb246ZHVyYXRpb25dOwpAQCAtMjk0LDcgKzI5MCw3IEBAIC0gKENGVGltZUlu
dGVydmFsKV9hbmltYXRpb25EdXJhdGlvbgogICAgIGlmIChbc2VsZiBpbmRpY2F0b3JXYW50c0Jv
dW5jZToqX3RleHRJbmRpY2F0b3JdKSB7CiAgICAgICAgIGlmIChpbmRpY2F0b3JXYW50c0NvbnRl
bnRDcm9zc2ZhZGUoKl90ZXh0SW5kaWNhdG9yKSkKICAgICAgICAgICAgIHJldHVybiBib3VuY2VX
aXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb247Ci0gICAgICAgIHJldHVybiBib3VuY2VBbmlt
YXRpb25EdXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmJvdW5jZUFuaW1hdGlvbkR1
cmF0aW9uOwogICAgIH0KIAogICAgIHJldHVybiBmYWRlSW5BbmltYXRpb25EdXJhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCBjM2Iz
M2ViYTJjOGJjMGQ3NTQ1OWRkMjE1MDg5YjY1MjljNWQzMTVkLi5mN2ZmZjdjNzNhMWQyZmY3NTRi
Mjc4N2NhMjI5OTUyMzgwMzEzMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4
dEluZGljYXRvcldpbmRvdy5oCkBAIC0zNiwxOSArMzYsNiBAQCBPQkpDX0NMQVNTIFdlYlRleHRJ
bmRpY2F0b3JMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3QgewotICAgIC8vIFRoZSBUZXh0SW5kaWNh
dG9yIHNob3VsZCBpbmRpY2F0ZSB0aGUgdGV4dCB1bnRpbCBkaXNtaXNzZWQuCi0gICAgUGVybWFu
ZW50LAotCi0gICAgLy8gVGhlIFRleHRJbmRpY2F0b3Igc2hvdWxkIGJyaWVmbHkgaW5kaWNhdGUg
dGhlIHRleHQgYW5kIHRoZW4gYXV0b21hdGljYWxseSBkaXNtaXNzLgotICAgIFRlbXBvcmFyeQot
fTsKLQotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDog
dWludDhfdCB7Ci0gICAgTm9uZSwKLSAgICBGYWRlT3V0Ci19OwotCiAjaWYgUExBVEZPUk0oTUFD
KQogCiBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93IHsKQEAgLTU5LDggKzQ2LDggQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFRleHRJbmRpY2F0b3JXaW5kb3coTlNWaWV3
ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5UZXh0SW5kaWNhdG9yV2luZG93KCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBD
R1JlY3QgY29udGVudFJlY3QsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKFJlZjxUZXh0SW5kaWNhdG9yPiwgQ0dSZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAKQEAgLTgxLDMgKzY4LDUgQEAgcHJpdmF0
ZToKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRl
eCBmODVmYTUzYjNiNGE5ZjQ1OTY5Nzc2YTEyY2M0MTFmNzkyMmRmNzdjLi4wMWE3OGQxM2M3NTBm
NDYxYzU1ZDdmMWM0ZjA2NzM0M2U1MTkwNzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTM4LDEyICszOCw2IEBACiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oPgogCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlv
biA9IDAuMTI7Ci1jb25zdCBDRlRpbWVJbnRlcnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJv
dW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4yOwotCi1jb25zdCBDR0Zsb2F0IG1pZEJvdW5jZVNj
YWxlID0gMS4yNTsKLWNvbnN0IENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsNyAr
NTAsNyBAQCBUZXh0SW5kaWNhdG9yV2luZG93OjpUZXh0SW5kaWNhdG9yV2luZG93KE5TVmlldyAq
dGFyZ2V0VmlldykKIAogVGV4dEluZGljYXRvcldpbmRvdzo6flRleHRJbmRpY2F0b3JXaW5kb3co
KQogewotICAgIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiB9CiAKIHZvaWQgVGV4dElu
ZGljYXRvcldpbmRvdzo6c2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCkBAIC02
NywxNCArNjEsMTQgQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9n
cmVzcyhmbG9hdCBwcm9ncmVzcykKICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0QW5pbWF0
aW9uUHJvZ3Jlc3M6cHJvZ3Jlc3NdOwogfQogCi12b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNs
ZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFu
aW1hdGlvbikKK3ZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQogewogICAg
IFJlZlB0cjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yID0gV1RGTW92ZShtX3RleHRJbmRp
Y2F0b3IpOwogCiAgICAgaWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091dF0pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0
b3JMYXllciBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYg
W21fdGV4dEluZGljYXRvckxheWVyIGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9u
ID09IFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKKyAg
ICBpZiAodGV4dEluZGljYXRvciAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2Fu
dHNNYW51YWxBbmltYXRpb246KnRleHRJbmRpY2F0b3JdICYmIFttX3RleHRJbmRpY2F0b3JMYXll
ciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7CiAgICAgICAgIHN0YXJ0RmFkZU91
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODIsNyArNzYsNyBAQCB2b2lkIFRleHRJ
bmRpY2F0b3JXaW5kb3c6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aQogICAgIGNsb3NlV2luZG93KCk7CiB9CiAKLXZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciwgQ0dSZWN0IHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNl
dFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUmVjdCB0
ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcywgVGV4dEluZGljYXRvckxpZmV0aW1l
IGxpZmV0aW1lKQogewogICAgIGlmIChtX3RleHRJbmRpY2F0b3IgPT0gdGV4dEluZGljYXRvci5w
dHIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTUsOCArODksOCBAQCB2b2lkIFRleHRJbmRpY2F0
b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0
b3IsIENHUgogICAgIENHRmxvYXQgdmVydGljYWxNYXJnaW4gPSBkcm9wU2hhZG93Qmx1clJhZGl1
cyAqIDIgKyBUZXh0SW5kaWNhdG9yOjpkZWZhdWx0VmVydGljYWxNYXJnaW47CiAgICAgCiAgICAg
aWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50c0JvdW5jZToqbV90ZXh0SW5k
aWNhdG9yXSkgewotICAgICAgICBob3Jpem9udGFsTWFyZ2luID0gc3RkOjptYXgoaG9yaXpvbnRh
bE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS53aWR0aCAq
IChtaWRCb3VuY2VTY2FsZSAtIDEpICsgaG9yaXpvbnRhbE1hcmdpbik7Ci0gICAgICAgIHZlcnRp
Y2FsTWFyZ2luID0gc3RkOjptYXgodmVydGljYWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNj
cmVlbkNvb3JkaW5hdGVzLnNpemUuaGVpZ2h0ICogKG1pZEJvdW5jZVNjYWxlIC0gMSkgKyB2ZXJ0
aWNhbE1hcmdpbik7CisgICAgICAgIGhvcml6b250YWxNYXJnaW4gPSBzdGQ6Om1heChob3Jpem9u
dGFsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLndpZHRo
ICogKFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxlIC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsKKyAg
ICAgICAgdmVydGljYWxNYXJnaW4gPSBzdGQ6Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJvdW5k
aW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQgKiAoV2ViQ29yZTo6bWlkQm91
bmNlU2NhbGUgLSAxKSArIHZlcnRpY2FsTWFyZ2luKTsKICAgICB9CiAKICAgICBob3Jpem9udGFs
TWFyZ2luID0gQ0dDZWlsaW5nKGhvcml6b250YWxNYXJnaW4pOwpAQCAtMTI1LDggKzExOSw4IEBA
IHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGlj
YXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgaWYgKG1fdGV4dEluZGljYXRvci0+cHJlc2Vu
dGF0aW9uVHJhbnNpdGlvbigpICE9IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9u
OjpOb25lKQogICAgICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgcHJlc2VudF07CiAKLSAgICBp
ZiAobGlmZXRpbWUgPT0gVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpCi0g
ICAgICAgIG1fdGVtcG9yYXJ5VGV4dEluZGljYXRvclRpbWVyLnN0YXJ0T25lU2hvdCgxX3MgKiB0
aW1lQmVmb3JlRmFkZVN0YXJ0cyk7CisgICAgaWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0b3JM
aWZldGltZTo6VGVtcG9yYXJ5KQorICAgICAgICBtX3RlbXBvcmFyeVRleHRJbmRpY2F0b3JUaW1l
ci5zdGFydE9uZVNob3QoMV9zICogV2ViQ29yZTo6dGltZUJlZm9yZUZhZGVTdGFydHMpOwogfQog
CiB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsb3NlV2luZG93KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDNhZDUxNDJjZDE3N2FhZGFlNWMz
ODUzMmQ1N2ZjYTQzODBhY2Q0YjYuLmM1YzQ2NjIwYmFjZDU1NTliNDkzZTAzMWU1NGI5YzBjYzcx
ZWFhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApA
QCAtNDExLDggKzQxMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFu
Z2UoKTsKIAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
JiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lID0gV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwotICAgIHZvaWQgY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uKTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGlj
YXRvciYsIFRleHRJbmRpY2F0b3JMaWZldGltZSA9IFRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVy
bWFuZW50KTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29y
ZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbik7CiAgICAgdm9pZCBzZXRUZXh0SW5k
aWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogICAgIHZvaWQgZGlzbWlzc0NvbnRlbnRS
ZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpOwogICAgIHZvaWQgZGlzbWlzc0NvbnRl
bnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oYm9vbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDIzYTUwNDY4MTE0MTMzNTE5
ZjJlZDFiZGNkODI0Y2Q5MmE2NWI0MWYuLjE1YWVlYTM1NjM5ZDI0NjM1YTA2YTJmNDhlZDQwODdh
ZDVkMGIzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCkBAIC00MjMsNyArNDIzLDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihO
U1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE4KICNpZiAhRU5B
QkxFKFJFVkVBTCkKIC0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOihO
U05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotICAgIF9pbXBsLT5jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb246Ok5vbmUpOworICAgIF9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogfQog
I2VuZGlmCiAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnByZWZlcmVu
Y2VzRGlkQ2hhbmdlKCkKICAgICAgICAgdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygpOwogfQog
Ci12b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSBs
aWZldGltZSkKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvckxpZmV0aW1lIGxpZmV0aW1l
KQogewogICAgIGlmICghbV90ZXh0SW5kaWNhdG9yV2luZG93KQogICAgICAgICBtX3RleHRJbmRp
Y2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+KG1f
dmlldy5nZXRBdXRvcmVsZWFzZWQoKSk7CkBAIC0zNTA0LDcgKzM1MDQsNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRp
Y2F0b3IsIFdlYkNvcgogICAgIG1fdGV4dEluZGljYXRvcldpbmRvdy0+c2V0VGV4dEluZGljYXRv
cih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5D
b29yZGluYXRlcyksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6Y2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlz
c2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKK3ZvaWQgV2ViVmlld0ltcGw6OmNsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlv
biBhbmltYXRpb24pCiB7CiAgICAgaWYgKG1fdGV4dEluZGljYXRvcldpbmRvdykKICAgICAgICAg
bV90ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0b3IoYW5pbWF0aW9uKTsKQEAg
LTM1MjcsNyArMzUyNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdPbmx5KGJvCiAgICAgLy8gQ2FsbGlu
ZyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBoZXJlIHdpbGwgd2luIG91dCBvdmVy
IHRoZSBhbmltYXRlZCBjbGVhciBpbiBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dz
RnJvbVZpZXdPbmx5LgogICAgIC8vIFdlIGNhbid0IGludmVydCB0aGVzZSBiZWNhdXNlIGNsaWVu
dHMgY2FuIG92ZXJyaWRlIChhbmQgaGF2ZSBvdmVycmlkZGVuKSBfZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93cywgc28gaXQgbmVlZHMgdG8gYmUgY2FsbGVkLgogICAgIC8vIEZvciB0
aGlzIHNhbWUgcmVhc29uLCB0aGlzIGNhbid0IGJlIG1vdmVkIHRvIFdlYlZpZXdJbXBsIHdpdGhv
dXQgY2FyZS4KLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKGFuaW1hdGUgPyBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0IDog
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7Cisg
ICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihhbmltYXRlID8gV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCA6IFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAgIFttX3ZpZXcgX3dlYl9kaXNtaXNz
Q29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKIH0KIApAQCAtMzU0NCw3ICszNTQ0LDcgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21W
aWV3T25seSgpCiAgICAgICAgICAgICBbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJl
ZE1hbmFnZXJdIHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNob3JPbkZhaWx1cmU6WUVTXTsKICAg
ICB9CiAKLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAgIGNsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFu
aW1hdGlvbjo6RmFkZU91dCk7CiAKICAgICBbbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGRp
c21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmgKaW5kZXggNDE3ZTExZDQ5NjYwN2EzMDBjZmI2NWZlZDZjN2Y0Y2FjZTBjOTI2
ZC4uYTM1NzMxZWMwMWQ5ZTVlMTUwMmU2MDVlNTI4MmZlZjBiMDQ1ZDY4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTA2LDggKzEwNiw4IEBAIGNsYXNzIFNlbGVjdGlv
bkRhdGE7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFz
cyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTY3JvbGxiYXJTdHls
ZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVp
bnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24g
OiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgOiB1aW50OF90Owor
ZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdDsKIGVu
dW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBBcHBI
aWdobGlnaHQ7CkBAIC0zODUsOCArMzg1LDggQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29y
ZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4
dEluZGljYXRvckxpZmV0aW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyVGV4dEluZGlj
YXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgPSAw
OwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25z
dCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWE1YzM0OTA3MzNjMmIwZTkxZGU4NDg4OGUzMDA0
YWU5YmFiODQ1ZC4uZWIxZGEwYTgzZWRhNThiNDdlN2VjYzU5ZjY4MDYzMmMxNjA3MGY2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTgsNyArMjE4LDYg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJpbmcuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAj
aW5jbHVkZSA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgpAQCAtNjUxMSw3ICs2NTEwLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRh
dGEmIGluZGljYXRvckRhdGEsIHVpbnQKIHsKICAgICAvLyBGSVhNRTogTWFrZSBUZXh0SW5kaWNh
dG9yV2luZG93IGEgcGxhdGZvcm0taW5kZXBlbmRlbnQgcHJlc2VudGF0aW9uYWwgdGhpbmcgKCJU
ZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uIj8pLgogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBh
Z2VDbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3I6OmNyZWF0ZShpbmRpY2F0
b3JEYXRhKSwgc3RhdGljX2Nhc3Q8VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lPihsaWZldGlt
ZSkpOworICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3I6OmNy
ZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8VGV4dEluZGljYXRvckxpZmV0aW1lPihs
aWZldGltZSkpOwogI2Vsc2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgpAQCAt
NjUyMCw3ICs2NTE5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3IoY29u
c3QgVGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEsIHVpbnQKIHZvaWQgV2ViUGFnZVBy
b3h5OjpjbGVhclRleHRJbmRpY2F0b3IoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBh
Z2VDbGllbnQoKS5jbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAgcGFnZUNsaWVudCgpLmNsZWFyVGV4dEluZGljYXRv
cihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKICNl
bHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNWI0NTdkZmI2MDMxZWY2MzlhZDNhZTNmY2JmZmZhZTZh
NmQ4NTcwMi4uZDJkYmUxOWIzZGI5NWE3ODMxNjI1Mjc0NDFmMTg0M2QxZWQyMWUxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTExNDksNyArMTE0OSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBPcHRpb25T
ZXQ8RmluZE9wdGlvbnM+LCB1bnNpZ25lZCBtYXhNYXRjaENvdW50KTsKICAgICB2b2lkIHJlcGxh
Y2VNYXRjaGVzKFZlY3Rvcjx1aW50MzJfdD4mJiBtYXRjaEluZGljZXMsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRUZXh0LCBib29sIHNlbGVjdGlvbk9ubHksIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQodWludDY0X3QpPiYmKTsKICAgICB2b2lkIGRpZENvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBT
dHJpbmcmLCB1aW50MzJfdCBtYXRjaENvdW50KTsKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3Io
Y29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmLCB1aW50NjRfdCAvKiBXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgKi8gbGlmZXRpbWUgPSAwIC8qIFBlcm1hbmVudCAq
Lyk7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JEYXRhJiwgdWludDY0X3QgLyogVGV4dEluZGljYXRvckxpZmV0aW1lICovIGxpZmV0aW1lID0g
MCAvKiBQZXJtYW5lbnQgKi8pOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKGZsb2F0KTsKICAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcigpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDNmYmUx
YjE3ZmY2NjA0NDllOTkzZWY3ZThhZmMwYmEwMDI0ZmQ4N2EuLjgxZmIwMTgzM2NlZTllNWQ5MTU5
NTQxOGQyYjVhMGFlNGI4NDRjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMzgsOCArMTM4LDggQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94
eSYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUp
IG92ZXJyaWRlOwotICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VGV4
dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JMaWZldGltZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpIG92ZXJyaWRlOwogCiAg
ICAgdm9pZCBzaG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5n
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVM
b2FkLCBVUkw+JiYpPiYmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA0MGI3NjIzNjM5ZmZhZDQxYjQ0MjQ2OGVi
MmUxODFhYTM0ZjAxNjUzLi45NTkwNzcwODNjODJkMzA0Zjc4ZWM5MjkzMmFhOGQwZTFmZGY3NGFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tCkBAIC00NzksMTYgKzQ3OSwxOSBAQCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VD
bGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKQogICAgIHJldHVy
biBudWxscHRyOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJl
ZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRp
bWUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNh
dG9yPiB0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUpCiB7CisgICAgW21fY29u
dGVudFZpZXcgc2V0VXBUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3JdOwogfQogCi12b2lkIFBh
Z2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21p
c3NhbEFuaW1hdGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlv
bikKIHsKKyAgICBbbV9jb250ZW50VmlldyBjbGVhclRleHRJbmRpY2F0b3I6ZGlzbWlzc2FsQW5p
bWF0aW9uXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1h
dGlvblByb2dyZXNzKGZsb2F0KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRv
ckFuaW1hdGlvblByb2dyZXNzKGZsb2F0IGFuaW1hdGlvblByb2dyZXNzKQogeworICAgIFttX2Nv
bnRlbnRWaWV3IHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczphbmltYXRpb25Qcm9n
cmVzc107CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAppbmRleCA4ODZhZTc1ZTY3YjU2YWViMzgzNzg0ZjU5NmM5ZDhmNzI5MTI1NmU3Li5hMzRi
N2QwY2UyYzY5MjBmYzU4YmFkYjhmZWQwODI0ZDM1OGQ0NGViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC04
OSw2ICs4OSw3IEBAIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogZW51bSBjbGFzcyBE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3MgTW91c2VFdmVudFBv
bGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7
CitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90Owog
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIHN0cnVjdCBEcmFnSXRlbTsKQEAgLTEzMiw2ICsx
MzMsOCBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAjZW5kaWYKICNlbmRpZgogCitAY2xhc3MgV2Vi
VGV4dEluZGljYXRvckxheWVyOworCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBv
cnQgPFdlYktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnNCZWZv
cmUuaD4KICNlbmRpZgpAQCAtMzMwLDYgKzMzMyw5IEBAIGVudW0gY2xhc3MgUHJvY2VlZFdpdGhJ
bWFnZUV4dHJhY3Rpb24gOiBib29sIHsKICNlbmRpZgogICAgIFJldGFpblB0cjxVSVByZXZpZXdJ
dGVtQ29udHJvbGxlcj4gX3ByZXZpZXdJdGVtQ29udHJvbGxlcjsKICNlbmRpZgorICAgIAorICAg
IFJlZlB0cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiBfdGV4dEluZGljYXRvcjsKKyAgICBSZXRh
aW5QdHI8V2ViVGV4dEluZGljYXRvckxheWVyPiBfdGV4dEluZGljYXRvckxheWVyOwogCiAjaWYg
VVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQcmV2aWV3PiBfY29u
dGV4dE1lbnVJbnRlcmFjdGlvblRhcmdldGVkUHJldmlldzsKQEAgLTY3MCw2ICs2NzYsMTAgQEAg
Rk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJ
RVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yTWFpbkZyYW1lOwogLSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZTsKIAorLSAo
dm9pZClzZXRVcFRleHRJbmRpY2F0b3I6KFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPil0ZXh0
SW5kaWNhdG9yOworLSAodm9pZClzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6KGZs
b2F0KU5TQW5pbWF0aW9uUHJvZ3Jlc3M7CistICh2b2lkKWNsZWFyVGV4dEluZGljYXRvcjooV2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb247CisKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkVXNlQ29udGV4dE1lbnVzOwog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRBdm9pZFJlc2l6aW5n
V2hlbklucHV0Vmlld0JvdW5kc0NoYW5nZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgQk9PTCBfc2hvdWxkQXZvaWRTY3JvbGxpbmdXaGVuRm9jdXNlZENvbnRlbnRJc1Zpc2libGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQppbmRleCBhNjA4NjlhNzdmOTI1NzBiMjBjOWY3MTkzZGFjZDEwMTEyMWZh
MTdhLi41OGQ4ODgzOTYwYzE4YjcwNDJkNTg1Y2EzMjIyODUyOTI3YTVmYWEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KQEAgLTE3Miw2ICsxNzIsMTEgQEAKICNpbXBvcnQgIlBlcHBlclVJQ29yZVNQSS5oIgog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisjaW1wb3J0IDxXZWJDb3JlL1Rl
eHRJbmRpY2F0b3JXaW5kb3cuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViVGV4dEluZGljYXRvckxh
eWVyLmg+CisjZW5kaWYKKwogI2ltcG9ydCA8cGFsL2lvcy9NYW5hZ2VkQ29uZmlndXJhdGlvblNv
ZnRMaW5rLmg+CiAKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09OVEVYVE1FTlUp
CkBAIC05NTgyLDYgKzk1ODcsNjcgQEAgLSAodm9pZClfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9y
bUFmdGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjooV2ViS2l0OjpQcm9jZWVkV2kKIAogI2VuZGlm
IC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogCistICh2b2lkKXNldFVwVGV4dEluZGljYXRv
cjooUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3IKK3sKKyAgICBpZiAo
X3RleHRJbmRpY2F0b3IgPT0gdGV4dEluZGljYXRvci5wdHIoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIAorICAgIFtzZWxmIHRlYXJkb3duVGV4dEluZGljYXRvckxheWVyXTsKKyAgICBbTlNPYmpl
Y3QgY2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6
QHNlbGVjdG9yKHN0YXJ0RmFkZU91dCkgb2JqZWN0Om5pbF07CisgICAgCisgICAgX3RleHRJbmRp
Y2F0b3IgPSB0ZXh0SW5kaWNhdG9yLnB0cigpOworCisgICAgQ0dSZWN0IGZyYW1lID0gX3RleHRJ
bmRpY2F0b3ItPnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKTsKKyAgICBf
dGV4dEluZGljYXRvckxheWVyID0gYWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JMYXllciBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpmcmFtZQorICAgICAgICB0ZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0
b3IgbWFyZ2luOkNHU2l6ZVplcm8gb2Zmc2V0OkNHUG9pbnRaZXJvXSk7CisgICAgCisgICAgW1tz
ZWxmIGxheWVyXSBhZGRTdWJsYXllcjpfdGV4dEluZGljYXRvckxheWVyLmdldCgpXTsKKworICAg
IGlmIChfdGV4dEluZGljYXRvci0+cHJlc2VudGF0aW9uVHJhbnNpdGlvbigpICE9IFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpOb25lKQorICAgICAgICBbX3Rl
eHRJbmRpY2F0b3JMYXllciBwcmVzZW50XTsKKyAgICAKKyAgICBbc2VsZiBwZXJmb3JtU2VsZWN0
b3I6QHNlbGVjdG9yKHN0YXJ0RmFkZU91dCkgd2l0aE9iamVjdDpzZWxmIGFmdGVyRGVsYXk6V2Vi
Q29yZTo6dGltZUJlZm9yZUZhZGVTdGFydHNdOworfQorCistICh2b2lkKWNsZWFyVGV4dEluZGlj
YXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb24K
K3sKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9IFdU
Rk1vdmUoX3RleHRJbmRpY2F0b3IpOworICAgIAorICAgIGlmIChbX3RleHRJbmRpY2F0b3JMYXll
ciBpc0ZhZGluZ091dF0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0ZXh0SW5kaWNhdG9y
ICYmIFtfdGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0
ZXh0SW5kaWNhdG9yXSAmJiBbX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmltYXRp
b25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uOjpGYWRlT3V0KSB7CisgICAgICAgIFtzZWxmIHN0YXJ0RmFkZU91dF07CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07Cit9
CisKKy0gKHZvaWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClhbmlt
YXRpb25Qcm9ncmVzcworeworICAgIGlmICghX3RleHRJbmRpY2F0b3IpCisgICAgICAgIHJldHVy
bjsKKworICAgIFtfdGV4dEluZGljYXRvckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNzOmFuaW1h
dGlvblByb2dyZXNzXTsKK30KKworLSAodm9pZCl0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcgor
eworICAgIFtfdGV4dEluZGljYXRvckxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICBf
dGV4dEluZGljYXRvckxheWVyID0gbmlsOworfQorCistICh2b2lkKXN0YXJ0RmFkZU91dAorewor
ICAgIFtfdGV4dEluZGljYXRvckxheWVyIHNldEZhZGluZ091dDpZRVNdOworICAgICAgICAKKyAg
ICBbX3RleHRJbmRpY2F0b3JMYXllciBoaWRlV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3ZWFrU2Vs
ZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gc3Ry
b25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBbc3Ryb25nU2VsZiB0ZWFyZG93blRl
eHRJbmRpY2F0b3JMYXllcl07CisgICAgfV07Cit9CisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFk
ZGl0aW9uc0FmdGVyLm1tPgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDU4YmU0YTJjYWU0NTM3ZTU0NjNiZGQxYjZiNWJl
MTY4YmE2OTI3NmMuLmUyMjMwODJkZDgwMmE2NjIxMGJiYmEzZDFjODAwYjM0OGI2YzkyNmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBA
IC0xNTYsOCArMTU2LDggQEAgcHJpdmF0ZToKIAogICAgIFJlZjxXZWJDb3JlOjpWYWxpZGF0aW9u
QnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmKSBmaW5hbDsKIAotICAgIHZv
aWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjbGVhclRl
eHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlv
bikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yPiwgVGV4dEluZGljYXRvckxpZmV0aW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGNs
ZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9u
KSBvdmVycmlkZTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhm
bG9hdCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDc4OGEyNzk2ZGJiMWNm
NDU5ZWZlMTI0YzZmMGQ3ZDBhNjk4YjdlOWIuLmRiNzNmZTI4YjUzNWEwNTNiNmYzY2ZlZTcyYTVh
ZjkzYzE3NTI4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMubW0KQEAgLTU2OSwxMiArNTY5LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6
OmNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFpbkZyYW1lTmF2aWdhdGlvbigpCiAgICAg
bV9pbXBsLT5jbGVhclNhZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5GcmFtZU5hdmlnYXRpb24o
KTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dElu
ZGljYXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0
aW1lIGxpZmV0aW1lKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8
VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvckxpZmV0aW1lIGxpZmV0
aW1lKQogewogICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLmdldCgp
LCBsaWZldGltZSk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRv
cihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3Nh
bEFuaW1hdGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlvbikK
IHsKICAgICBtX2ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oZGlzbWlzc2Fs
QW5pbWF0aW9uKTsKIH0KQEAgLTY3Miw5ICs2NzIsOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpk
aWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0
aQogICAgIG1faW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKIAogICAgIERpY3Rp
b25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBtX3ZpZXcsIFt0aGlz
XShUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIG1faW1wbC0+c2V0VGV4
dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBl
cm1hbmVudCk7CisgICAgICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9y
LCBUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudCk7CiAgICAgfSwgbnVsbHB0ciwgW3Ro
aXNdKCkgewotICAgICAgICBtX2ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24o
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7Cisg
ICAgICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKICAgICB9KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29u
dHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIubW0KaW5kZXggOWJhYThiZTI0Yzc3Yzc0NmU3OTNmNDEzNzhkY2QwMGIzY2Y0
YzRmZS4uMzM5ZmY5N2QzMDYwMjlhNmIwMDhlMTE4NjZlM2NhNGY2OTFiOTZjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyLm1tCkBAIC00OTAsOSArNDkwLDkgQEAgLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25B
bmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvclRleHQKICAgICBfdmll
d0ltcGwtPnByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7CiAKICAgICByZXR1cm4gV2ViQ29y
ZTo6RGljdGlvbmFyeUxvb2t1cDo6YW5pbWF0aW9uQ29udHJvbGxlckZvclBvcHVwKGRpY3Rpb25h
cnlQb3B1cEluZm8sIF92aWV3LCBbc2VsZl0oV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dElu
ZGljYXRvcikgewotICAgICAgICBfdmlld0ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGlj
YXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwor
ICAgICAgICBfdmlld0ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgVGV4dElu
ZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnQpOwogICAgIH0sIG51bGxwdHIsIFtzZWxmXSgpIHsK
LSAgICAgICAgX3ZpZXdJbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgICAg
ICBfdmlld0ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKaW5kZXggM2YyZTlkNTBmZmIwMDFjMjQ2ZDQxNzEwZTAzYjQ0OWJkYzU4
Njc4NC4uYjZiMDhjMmZjNGQ0NTlhYzA2YWExNWExOGYyN2VhMmYyNjNlMjI1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKQEAgLTg4LDYgKzg4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3Vy
aXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNh
dG9yLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogI2luY2x1ZGUgIlBsYXliYWNrU2Vzc2lv
bk1hbmFnZXIuaCIKQEAgLTEyNjksNiArMTI3MCwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6
c3RvcmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYgaGlnaGxpZ2h0KSBjb25z
dAogICAgIGhpZ2hsaWdodC5yZXF1ZXN0T3JpZ2luYXRlZEluQXBwID0gbV9wYWdlLmhpZ2hsaWdo
dFJlcXVlc3RPcmlnaW5hdGVkSW5BcHAoKTsKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpTdG9yZUFwcEhpZ2hsaWdodChoaWdobGlnaHQpKTsKIH0KKwordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRhdGEmIGluZGljYXRvckRhdGEpIGNvbnN0Cit7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U2V0VGV4dEluZGljYXRvcihpbmRpY2F0b3JEYXRhLCBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpUZW1wb3JhcnkpKSk7
Cit9CiAjZW5kaWYKIAogU3RyaW5nIFdlYkNocm9tZUNsaWVudDo6c2lnbmVkUHVibGljS2V5QW5k
Q2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNpemVJbmRleCwgY29uc3QgU3RyaW5nJiBjaGFs
bGVuZ2VTdHJpbmcsIGNvbnN0IFVSTCYgdXJsKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IDRlZWYxZjhhZDFjNTJhYzA1MTY1ODJiYTE2MTU1Y2FkMDFhMTU1NzIuLmQ3ZWZiMDg4NTlkZDA1
OTQwNjZlODQzY2EyNjBiMDFhNDRlNjNmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM1MSw2
ICszNTEsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZv
aWQgc3RvcmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYpIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX0NSWVBUTykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNw
cAppbmRleCAwMDkwMTRhNTM2YmY5ZDY4ZGZiZTVkYTE0MGRkYjUxN2FlYWNkMjA3Li5lZTNiYzIz
NmIyYzRhZDIyODQ2MzdlZGZjMTNiY2UyYjRjYTNhYjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCkBAIC0zODAsNyArMzgw
LDcgQEAgYm9vbCBGaW5kQ29udHJvbGxlcjo6dXBkYXRlRmluZEluZGljYXRvcihGcmFtZSYgc2Vs
ZWN0ZWRGcmFtZSwgYm9vbCBpc1Nob3dpbmdPdmUKIAogICAgIG1fZmluZEluZGljYXRvclJlY3Qg
PSBlbmNsb3NpbmdJbnRSZWN0KGluZGljYXRvci0+c2VsZWN0aW9uUmVjdEluUm9vdFZpZXdDb29y
ZGluYXRlcygpKTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBtX3dlYlBhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0VGV4dEluZGljYXRvcihpbmRpY2F0b3ItPmRhdGEoKSwg
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KGlzU2hvd2luZ092ZXJsYXkgPyBUZXh0SW5kaWNhdG9yV2lu
ZG93TGlmZXRpbWU6OlBlcm1hbmVudCA6IFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6VGVt
cG9yYXJ5KSkpOworICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
ZXRUZXh0SW5kaWNhdG9yKGluZGljYXRvci0+ZGF0YSgpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4o
aXNTaG93aW5nT3ZlcmxheSA/IFRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50IDogVGV4
dEluZGljYXRvckxpZmV0aW1lOjpUZW1wb3JhcnkpKSk7CiAjZW5kaWYKICAgICBtX2lzU2hvd2lu
Z0ZpbmRJbmRpY2F0b3IgPSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGYzZDQ3MTZhODkz
M2Q5ZjI0MmY4ZWYxMjE1YTg2NjIzNDBmODk3YTUuLjZlMThmMmIyNDIxNzEzYTJjNDBkNzQ0MThk
NTI0Yjg1MzY0MTE2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHJp
dmF0ZToKIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICB2b2lkIHN0b3JlQXBwSGln
aGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNl
dFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmKSBjb25zdCBm
aW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQppbmRleCA0NTM5Y2U2ZjY0ZDAwYjBiYjAwMjgzZWFjODE1MzI5NzkwMDRjNGU4Li40N2U3MTFh
NjgyYjMyOTMzMDVkNzcyMDdhODQ3MTMzNzkyZjA3Y2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBA
IC03MTgsNiArNzE4LDkgQEAgc3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gV2ViQ2hy
b21lQ2xpZW50OjpjcmVhdGVEYXRlVGltZUNob29zZXIoRGF0ZVRpbWUKIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QK
IHsKIH0KK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JEYXRhJiBpbmRpY2F0b3JEYXRhKSBjb25zdAoreworfQogI2VuZGlm
CiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMGZlMmE1MDk2YzdlMjZmMzIwMzI1ZTM2OGJm
ZjBkYmI5ZjA3MmM3Ni4uNjFkNmY0ZTg2NTk0ZGNhYjdlNjE3OTA3MDRiNzA5ZWY1Y2NjMmJlMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBA
IC01OTUzLDcgKzU5NTMsNyBAQCAtICh2b2lkKV9sb29rVXBJbkRpY3Rpb25hcnlGcm9tTWVudToo
aWQpc2VuZGVyCiAKIC0gKHZvaWQpcXVpY2tMb29rV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQK
IHsKLSAgICBbW3NlbGYgX3dlYlZpZXddIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9u
OldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRd
OworICAgIFtbc2VsZiBfd2ViVmlld10gX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246
V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAg
W3N1cGVyIHF1aWNrTG9va1dpdGhFdmVudDpldmVudF07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29u
dHJvbGxlci5tbQppbmRleCBjZTYyYmZhNTE2MTc3YzhjMzZhZWRkN2JhNWZhNGMyNzUxMGQ2Zjcx
Li5jM2MzNjcyYmZjY2ZjZDEzNmU2MmYzZGZjMzQxMWJkZWU5YmFlNDM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLm1tCkBAIC0xMjIsNyArMTIyLDcgQEAgLSAodm9pZCl3ZWJWaWV3OihX
ZWJWaWV3ICopd2ViVmlldyBkaWRIYW5kbGVTY3JvbGxXaGVlbDooTlNFdmVudCAqKWV2ZW50CiB7
CiAgICAgW19jdXJyZW50UUxQcmV2aWV3TWVudUl0ZW0gY2xvc2VdOwogICAgIFtzZWxmIF9jbGVh
ckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRv
cldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbjo6Tm9uZV07CisgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOwogfQog
CiAtIChOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopaW1tZWRpYXRlQWN0aW9u
UmVjb2duaXplcgpAQCAtMTM5LDcgKzEzOSw3IEBAIC0gKHZvaWQpX2NhbmNlbEltbWVkaWF0ZUFj
dGlvbgogICAgIH0KIAogICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAg
ICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW193ZWJW
aWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0
b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogfQogCiAtICh2b2lkKV9jbGVhckltbWVk
aWF0ZUFjdGlvblN0YXRlCkBAIC0yNTEsNyArMjUxLDcgQEAgLSAodm9pZClpbW1lZGlhdGVBY3Rp
b25SZWNvZ25pemVyRGlkQ2FuY2VsQW5pbWF0aW9uOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVS
ZWMKIAogICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOjBd
OwogICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dlYlZpZXcg
X2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07CisgICAgW193ZWJWaWV3IF9jbGVhclRleHRJ
bmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmlt
YXRpb246Ok5vbmVdOwogICAgIFtfd2ViVmlldyBfc2V0TWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rp
b246Tk9dOwogfQogCkBAIC0yOTMsNyArMjkzLDcgQEAgLSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9u
QW5pbWF0aW9uQ29udHJvbGxlcj4pX2RlZmF1bHRBbmltYXRpb25Db250cm9sbGVyCiAgICAgICAg
ICAgICBhdXRvIGxpbmtSYW5nZSA9IG1ha2VSYW5nZVNlbGVjdGluZ05vZGVDb250ZW50cygqX2hp
dFRlc3RSZXN1bHQuVVJMRWxlbWVudCgpKTsKICAgICAgICAgICAgIGF1dG8gaW5kaWNhdG9yID0g
V2ViQ29yZTo6VGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFJhbmdlKGxpbmtSYW5nZSwgeyBXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yT3B0aW9uOjpVc2VCb3VuZGluZ1JlY3RBbmRQYWludEFsbENvbnRl
bnRGb3JDb21wbGV4UmFuZ2VzIH0sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25U
cmFuc2l0aW9uOjpGYWRlSW4pOwogICAgICAgICAgICAgaWYgKGluZGljYXRvcikKLSAgICAgICAg
ICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRp
bWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAg
ICAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhM
aWZldGltZTpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAKICAgICAgICAgICAg
IFFMUHJldmlld01lbnVJdGVtICppdGVtID0gW05TTWVudUl0ZW0gc3RhbmRhcmRRdWlja0xvb2tN
ZW51SXRlbV07CiAgICAgICAgICAgICBpdGVtLnByZXZpZXdTdHlsZSA9IFFMUHJldmlld1N0eWxl
UG9wb3ZlcjsKQEAgLTM3OSw3ICszNzksNyBAQCAtIChOU1JlY3RFZGdlKW1lbnVJdGVtOihOU01l
bnVJdGVtICopbWVudUl0ZW0gcHJlZmVycmVkRWRnZUZvclBvaW50OihOU1BvaW50KXBvaQogLSAo
dm9pZCltZW51SXRlbURpZENsb3NlOihOU01lbnVJdGVtICopbWVudUl0ZW0KIHsKICAgICBbc2Vs
ZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Ci0gICAgW193ZWJWaWV3IF9jbGVhclRleHRJ
bmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb246OkZhZGVPdXRdOworICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpG
YWRlT3V0XTsKIH0KIAogc3RhdGljIFdlYkNvcmU6OkludFJlY3QgZWxlbWVudEJvdW5kaW5nQm94
SW5XaW5kb3dDb29yZGluYXRlc0Zyb21Ob2RlKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCkBAIC00NjQs
OSArNDY0LDkgQEAgLSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4p
X2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWQKICAgICBfY3VycmVudEFjdGlvbkNv
bnRleHQgPSBbZGV0ZWN0ZWRJdGVtLT5hY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol93ZWJW
aWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAgICB9IGlu
dGVyYWN0aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsKICAgICAgICAgaWYgKGluZGljYXRvcikKLSAg
ICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZl
dGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07Cisg
ICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlm
ZXRpbWU6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwogICAgIH0gaW50ZXJhY3Rp
b25TdG9wcGVkSGFuZGxlcjpeKCkgewotICAgICAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbjo6RmFkZU91dF07CisgICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpG
YWRlT3V0XTsKICAgICB9XTsKIAogICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxp
Z2h0RnJhbWU6W193ZWJWaWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOmRldGVjdGVkSXRl
bS0+Ym91bmRpbmdCb3hdXTsKQEAgLTQ5Nyw5ICs0OTcsOSBAQCAtIChpZCA8TlNJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRl
Y3RlZAogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRG
b3JWaWV3Ol93ZWJWaWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6Xigp
IHsKICAgICB9IGludGVyYWN0aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsKICAgICAgICAgaWYgKGlu
ZGljYXRvcikKLSAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNh
dG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBl
cm1hbmVudF07CisgICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGlj
YXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwogICAg
IH0gaW50ZXJhY3Rpb25TdG9wcGVkSGFuZGxlcjpeKCkgewotICAgICAgICBbX3dlYlZpZXcgX2Ns
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgICAgIFtfd2ViVmlldyBfY2xlYXJU
ZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICB9XTsKIAogICAgIFtfY3VycmVudEFjdGlvbkNvbnRl
eHQgc2V0SGlnaGxpZ2h0RnJhbWU6W193ZWJWaWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVu
OmVsZW1lbnRCb3VuZGluZ0JveEluV2luZG93Q29vcmRpbmF0ZXNGcm9tTm9kZShfaGl0VGVzdFJl
c3VsdC5VUkxFbGVtZW50KCkpXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KaW5kZXggNzI2NGJmZGNkNzJkZTEzNjk2MGEzMjM4Y2IwMDIxNmZiODkyZmY3Yy4u
NWUwZWQxNWM5MjFiMDZiYTMyY2U3ZjNhM2Q3MzFiNzFhNDU3M2Y5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtOTEwMCwxMSArOTEwMCwxMSBAQCAt
IChpZClfYW5pbWF0aW9uQ29udHJvbGxlckZvckRpY3Rpb25hcnlMb29rdXBQb3B1cEluZm86KGNv
bnN0IFdlYkNvcmU6OkRpY3Rpb25hcgogICAgIFtzZWxmIF9wcmVwYXJlRm9yRGljdGlvbmFyeUxv
b2t1cF07CiAKICAgICByZXR1cm4gV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6YW5pbWF0aW9u
Q29udHJvbGxlckZvclBvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIHNlbGYsIFtzZWxmXShXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIFtzZWxmIF9zZXRU
ZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgW3NlbGYgX3NldFRleHRJ
bmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvckxpZmV0aW1l
OjpQZXJtYW5lbnRdOwogICAgIH0sIFtzZWxmXShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdEluUm9v
dFZpZXdDb29yZGluYXRlcykgewogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRSZWN0RnJv
bVJvb3RWaWV3OnJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIH0sIFtzZWxmXSgpIHsK
LSAgICAgICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6
VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgICAg
IFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH0pOwogfQogCkBAIC05MTIw
LDEwICs5MTIwLDEwIEBAIC0gKHZvaWQpX3NldFByZXNzdXJlRXZlbnQ6KE5TRXZlbnQgKilldmVu
dAogCiAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0
ZXh0SW5kaWNhdG9yCiB7Ci0gICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRv
ciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJt
YW5lbnRdOworICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExp
ZmV0aW1lOlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKIH0KIAotLSAodm9pZClf
c2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3
aXRoTGlmZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSlsaWZldGlt
ZQorLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4
dEluZGljYXRvciB3aXRoTGlmZXRpbWU6KFRleHRJbmRpY2F0b3JMaWZldGltZSlsaWZldGltZQog
ewogICAgIGlmICghX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cpCiAgICAgICAgIF9wcml2
YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93ID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93PihzZWxmKTsKQEAgLTkxMzMsMTAgKzkxMzMsMTAgQEAgLSAodm9pZClfc2V0VGV4
dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRoTGlm
ZXRpbWU6KFcKICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdy0+c2V0VGV4dEluZGlj
YXRvcih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdSZWN0SW5TY3Jl
ZW5Db29yZGluYXRlcyksIGxpZmV0aW1lKTsKIH0KIAotLSAodm9pZClfY2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbilhbmltYXRpb24KKy0gKHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRp
b246KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uCiB7
CiAgICAgaWYgKF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93KQotICAgICAgICBfcHJpdmF0
ZS0+dGV4dEluZGljYXRvcldpbmRvdy0+Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAgICAgICBfcHJp
dmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdy0+Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogICAgIF9wcml2YXRlLT50
ZXh0SW5kaWNhdG9yV2luZG93ID0gbnVsbHB0cjsKIH0KIApAQCAtOTE2OCwxOCArOTE2OCwxOCBA
QCAtICh2b2lkKV9zaG93RGljdGlvbmFyeUxvb2t1cFBvcHVwOihjb25zdCBXZWJDb3JlOjpEaWN0
aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9uYQogICAgIFtzZWxmIF9wcmVwYXJlRm9yRGljdGlvbmFy
eUxvb2t1cF07CiAKICAgICBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoZGlj
dGlvbmFyeVBvcHVwSW5mbywgc2VsZiwgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRl
eHRJbmRpY2F0b3IpIHsKLSAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGlj
YXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQ
ZXJtYW5lbnRdOworICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9y
IHdpdGhMaWZldGltZTpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSwg
W3NlbGZdKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSB7CiAg
ICAgICAgIHJldHVybiBbc2VsZiBfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6cmVjdEluUm9vdFZp
ZXdDb29yZGluYXRlc107CiAgICAgfSwgW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V2ViVmlldz4o
c2VsZildKCkgewotICAgICAgICBbd2Vha1NlbGYuZ2V0KCkgX2NsZWFyVGV4dEluZGljYXRvcldp
dGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlv
bjo6RmFkZU91dF07CisgICAgICAgIFt3ZWFrU2VsZi5nZXQoKSBfY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpG
YWRlT3V0XTsKICAgICB9KTsKIH0KIAogI2lmICFFTkFCTEUoUkVWRUFMKQogLSAodm9pZClfZGlj
dGlvbmFyeUxvb2t1cFBvcG92ZXJXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0
aW9uCiB7Ci0gICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29y
ZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAg
W3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAjZW5kaWYgLy8gRU5BQkxFKFJF
VkVBTCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0lu
dGVybmFsLmgKaW5kZXggNzMzNzJhMGJkYTE1M2JmYTM3NjEwMjNjZjQ5NWQ3OTZmYTcxOGNjMS4u
YjJjYTBkNmM0ZmZmYjQ2MTkxODdjZjI2NzI5Y2ViYTJkM2Q0ZWUyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0zMTksOCAr
MzE5LDggQEAgV2ViTGF5b3V0TWlsZXN0b25lcyBraXRMYXlvdXRNaWxlc3RvbmVzKE9wdGlvblNl
dDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KTsKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgZGVm
aW5lZChfX2NwbHVzcGx1cykKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3I7Ci0tICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooV2ViQ29y
ZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKWxpZmV0aW1lOwotLSAodm9pZClfY2xlYXJU
ZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbilhbmltYXRpb247CistICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooVGV4dElu
ZGljYXRvckxpZmV0aW1lKWxpZmV0aW1lOworLSAodm9pZClfY2xlYXJUZXh0SW5kaWNhdG9yV2l0
aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmlt
YXRpb247CiAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6KGZsb2F0
KXByb2dyZXNzOwogLSAodm9pZClfc2hvd0RpY3Rpb25hcnlMb29rdXBQb3B1cDooY29uc3QgV2Vi
Q29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpZGljdGlvbmFyeVBvcHVwSW5mbzsKIC0gKGlkKV9h
bmltYXRpb25Db250cm9sbGVyRm9yRGljdGlvbmFyeUxvb2t1cFBvcHVwSW5mbzooY29uc3QgV2Vi
Q29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpZGljdGlvbmFyeVBvcHVwSW5mbzsK
</data>
<flag name="commit-queue"
          id="449418"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428483</attachid>
            <date>2021-05-13 03:22:42 -0700</date>
            <delta_ts>2021-05-13 03:44:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513032241.patch</filename>
            <type>text/plain</type>
            <size>52225</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRv
ci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLmViZTVm
MTg1YjljNjViZmVjYjE5MTc4MmJjNTM5NDliNmZhOGI5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCkBAIC0zOSw2ICszOSwzMCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAvLyBGSVhNRTogQ2hh
bmdlIHRoZXNlIHRvIFdlYkNvcmUgdHlwZXMgaW5zdGVhZCBvZiBndWFyZGluZyB3aXRoIENPQ09B
CisKK2NvbnN0ZXhwciBDR0Zsb2F0IGRyb3BTaGFkb3dCbHVyUmFkaXVzID0gMjsKK2NvbnN0ZXhw
ciBDR0Zsb2F0IHJpbVNoYWRvd0JsdXJSYWRpdXMgPSAxOworY29uc3RleHByIENGVGltZUludGVy
dmFsIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKK2NvbnN0ZXhwciBDRlRpbWVJbnRl
cnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4y
OworY29uc3RleHByIENHRmxvYXQgbWlkQm91bmNlU2NhbGUgPSAxLjI1OworCisKK2VudW0gY2xh
c3MgVGV4dEluZGljYXRvckxpZmV0aW1lIDogdWludDhfdCB7CisgICAgLy8gVGhlIFRleHRJbmRp
Y2F0b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRpc21pc3NlZC4KKyAgICBQZXJt
YW5lbnQsCisKKyAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgYnJpZWZseSBpbmRpY2F0
ZSB0aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21pc3MuCisgICAgVGVtcG9yYXJ5
Cit9OworCitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50
OF90IHsKKyAgICBOb25lLAorICAgIEZhZGVPdXQKK307CisKKyNlbmRpZgorCiAvLyBGSVhNRTog
TW92ZSBQcmVzZW50YXRpb25UcmFuc2l0aW9uIHRvIFRleHRJbmRpY2F0b3JXaW5kb3csIGJlY2F1
c2UgaXQncyBhYm91dCBwcmVzZW50YXRpb24uCiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVz
ZW50YXRpb25UcmFuc2l0aW9uIDogdWludDhfdCB7CiAgICAgTm9uZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oCmluZGV4IGZkMTNkMDQw
ZWZmYjc1YjBlYTAwNGVhNTUxZTMyMjE1NGFlMThmYWYuLmJlYmY5M2EzNmVkNzBlNmIzMDlkZTg5
NTgxYTE4MzY2NWUzOGMxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2Ev
V2ViVGV4dEluZGljYXRvckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9X
ZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaApAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAotQGludGVyZmFjZSBXZWJUZXh0
SW5kaWNhdG9yTGF5ZXIgOiBDQUxheWVyIHsKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2Vi
VGV4dEluZGljYXRvckxheWVyIDogQ0FMYXllciB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3I+IF90ZXh0SW5kaWNhdG9yOwogICAgIFJldGFpblB0cjxOU0FycmF5PiBfYm91bmNl
TGF5ZXJzOwogICAgIENHU2l6ZSBfbWFyZ2luOwpAQCAtNTMsMyArNTMsNCBAQAogQHByb3BlcnR5
IChub25hdG9taWMsIGdldHRlcj1pc0ZhZGluZ091dCkgQk9PTCBmYWRpbmdPdXQ7CiAKIEBlbmQK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9y
TGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXll
ci5tbQppbmRleCBiOGM0ZDhmMDY3YmFjZWQwOWE4MTE4MDg3MTAzMDZjNTdhNzk0MzAwLi5iNmJj
MTFiYmIwY2NkMjE0NWQyYjdmMmQ2ODdiYjZlZTRiZjYyMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQpAQCAtMzAsNiArMzAs
NyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJQYXRoVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJUZXh0SW5kaWNhdG9yLmgiCisjaW1wb3J0ICJUZXh0SW5kaWNhdG9yV2lu
ZG93LmgiCiAjaW1wb3J0ICJXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCIKICNp
bXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL1F1YXJ0ekNvcmVTUEkuaD4KQEAgLTM4LDE5ICszOSwxNSBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9OU0NvbG9yU1BJLmg+CiAjZW5kaWYKIAotY29uc3RleHByIENGVGltZUludGVydmFs
IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKKwogY29uc3RleHByIENGVGltZUludGVy
dmFsIGJvdW5jZVdpdGhDcm9zc2ZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIGNvbnN0ZXhw
ciBDRlRpbWVJbnRlcnZhbCBmYWRlSW5BbmltYXRpb25EdXJhdGlvbiA9IDAuMTU7Ci1jb25zdGV4
cHIgQ0ZUaW1lSW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25E
dXJhdGlvbiArIDAuMjsKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlT3V0QW5pbWF0aW9u
RHVyYXRpb24gPSAwLjM7CiAKLWNvbnN0ZXhwciBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4y
NTsKIGNvbnN0ZXhwciBDR0Zsb2F0IGJvcmRlcldpZHRoID0gMDsKIGNvbnN0ZXhwciBDR0Zsb2F0
IGNvcm5lclJhZGl1cyA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WCA9
IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WSA9IDE7Ci1jb25zdGV4cHIg
Q0dGbG9hdCBkcm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Ci1jb25zdGV4cHIgQ0dGbG9hdCByaW1T
aGFkb3dCbHVyUmFkaXVzID0gMTsKIAogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgdGV4dExh
eWVyS2V5ID0gQCJUZXh0TGF5ZXIiOwogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgZHJvcFNo
YWRvd0xheWVyS2V5ID0gQCJEcm9wU2hhZG93TGF5ZXIiOwpAQCAtMTMyLDEzICsxMjksMTIgQEAg
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9y
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkK
ICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAKKyAgICBzZWxmLmFuY2hvclBvaW50ID0gQ0dQb2lu
dFplcm87CiAgICAgc2VsZi5mcmFtZSA9IGZyYW1lOwogCiAgICAgX3RleHRJbmRpY2F0b3IgPSAm
dGV4dEluZGljYXRvcjsKICAgICBfbWFyZ2luID0gbWFyZ2luOwogCi0gICAgc2VsZi5hbmNob3JQ
b2ludCA9IENHUG9pbnRaZXJvOwotCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBj
b250ZW50c0ltYWdlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBjb250ZW50c0ltYWdlTG9naWNh
bFNpemUgeyAxLCAxIH07CiAgICAgaWYgKGF1dG8qIGNvbnRlbnRJbWFnZSA9IF90ZXh0SW5kaWNh
dG9yLT5jb250ZW50SW1hZ2UoKSkgewpAQCAtMTkyLDcgKzE4OCw3IEBAIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4
dEluZGljYXRvCiAgICAgICAgIFJldGFpblB0cjxDQUxheWVyPiBkcm9wU2hhZG93TGF5ZXIgPSBh
ZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVy
IHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07
CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93Q29sb3I6ZHJvcFNoYWRvd0NvbG9y
LmdldCgpXTsKLSAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6ZHJvcFNo
YWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1
czpXZWJDb3JlOjpkcm9wU2hhZG93Qmx1clJhZGl1c107CiAgICAgICAgIFtkcm9wU2hhZG93TGF5
ZXIgc2V0U2hhZG93T2Zmc2V0OkNHU2l6ZU1ha2UoZHJvcFNoYWRvd09mZnNldFgsIGRyb3BTaGFk
b3dPZmZzZXRZKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFu
c2xhdGVkUGF0aC5wbGF0Zm9ybVBhdGgoKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0
U2hhZG93T3BhY2l0eToxXTsKQEAgLTIwNCw3ICsyMDAsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRp
Y2F0bwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRpc2Fi
bGluZ0NBTGF5ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNl
dEZyYW1lOnllbGxvd0hpZ2hsaWdodFJlY3RdOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0
U2hhZG93Q29sb3I6cmltU2hhZG93Q29sb3IuZ2V0KCldOwotICAgICAgICBbcmltU2hhZG93TGF5
ZXIgc2V0U2hhZG93UmFkaXVzOnJpbVNoYWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbcmltU2hh
ZG93TGF5ZXIgc2V0U2hhZG93UmFkaXVzOldlYkNvcmU6OnJpbVNoYWRvd0JsdXJSYWRpdXNdOwog
ICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFuc2xhdGVkUGF0aC5wbGF0
Zm9ybVBhdGgoKV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPZmZzZXQ6Q0dT
aXplWmVyb107CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPcGFjaXR5OjFdOwpA
QCAtMjQ1LDcgKzI0MSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0FLZXlmcmFtZUFuaW1hdGlvbj4g
Y3JlYXRlQm91bmNlQW5pbWF0aW9uKENGVGltZUludGVydmFsIGR1cmF0CiAgICAgUmV0YWluUHRy
PENBS2V5ZnJhbWVBbmltYXRpb24+IGJvdW5jZUFuaW1hdGlvbiA9IFtDQUtleWZyYW1lQW5pbWF0
aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOkAidHJhbnNmb3JtIl07CiAgICAgW2JvdW5jZUFuaW1h
dGlvbiBzZXRWYWx1ZXM6QFsKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpDQVRyYW5zZm9ybTNESWRlbnRpdHldLAotICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRy
YW5zZm9ybTNEOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUobWlkQm91bmNlU2NhbGUsIG1pZEJvdW5j
ZVNjYWxlLCAxKV0sCisgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FU
cmFuc2Zvcm0zRE1ha2VTY2FsZShXZWJDb3JlOjptaWRCb3VuY2VTY2FsZSwgV2ViQ29yZTo6bWlk
Qm91bmNlU2NhbGUsIDEpXSwKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpDQVRyYW5zZm9ybTNESWRlbnRpdHldCiAgICAgICAgIF1dOwogICAgIFtib3VuY2VBbmltYXRp
b24gc2V0RHVyYXRpb246ZHVyYXRpb25dOwpAQCAtMjk0LDcgKzI5MCw3IEBAIC0gKENGVGltZUlu
dGVydmFsKV9hbmltYXRpb25EdXJhdGlvbgogICAgIGlmIChbc2VsZiBpbmRpY2F0b3JXYW50c0Jv
dW5jZToqX3RleHRJbmRpY2F0b3JdKSB7CiAgICAgICAgIGlmIChpbmRpY2F0b3JXYW50c0NvbnRl
bnRDcm9zc2ZhZGUoKl90ZXh0SW5kaWNhdG9yKSkKICAgICAgICAgICAgIHJldHVybiBib3VuY2VX
aXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb247Ci0gICAgICAgIHJldHVybiBib3VuY2VBbmlt
YXRpb25EdXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmJvdW5jZUFuaW1hdGlvbkR1
cmF0aW9uOwogICAgIH0KIAogICAgIHJldHVybiBmYWRlSW5BbmltYXRpb25EdXJhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCBjM2Iz
M2ViYTJjOGJjMGQ3NTQ1OWRkMjE1MDg5YjY1MjljNWQzMTVkLi5mN2ZmZjdjNzNhMWQyZmY3NTRi
Mjc4N2NhMjI5OTUyMzgwMzEzMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4
dEluZGljYXRvcldpbmRvdy5oCkBAIC0zNiwxOSArMzYsNiBAQCBPQkpDX0NMQVNTIFdlYlRleHRJ
bmRpY2F0b3JMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3QgewotICAgIC8vIFRoZSBUZXh0SW5kaWNh
dG9yIHNob3VsZCBpbmRpY2F0ZSB0aGUgdGV4dCB1bnRpbCBkaXNtaXNzZWQuCi0gICAgUGVybWFu
ZW50LAotCi0gICAgLy8gVGhlIFRleHRJbmRpY2F0b3Igc2hvdWxkIGJyaWVmbHkgaW5kaWNhdGUg
dGhlIHRleHQgYW5kIHRoZW4gYXV0b21hdGljYWxseSBkaXNtaXNzLgotICAgIFRlbXBvcmFyeQot
fTsKLQotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDog
dWludDhfdCB7Ci0gICAgTm9uZSwKLSAgICBGYWRlT3V0Ci19OwotCiAjaWYgUExBVEZPUk0oTUFD
KQogCiBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93IHsKQEAgLTU5LDggKzQ2LDggQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFRleHRJbmRpY2F0b3JXaW5kb3coTlNWaWV3
ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5UZXh0SW5kaWNhdG9yV2luZG93KCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBD
R1JlY3QgY29udGVudFJlY3QsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKFJlZjxUZXh0SW5kaWNhdG9yPiwgQ0dSZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAKQEAgLTgxLDMgKzY4LDUgQEAgcHJpdmF0
ZToKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRl
eCBmODVmYTUzYjNiNGE5ZjQ1OTY5Nzc2YTEyY2M0MTFmNzkyMmRmNzdjLi4wMWE3OGQxM2M3NTBm
NDYxYzU1ZDdmMWM0ZjA2NzM0M2U1MTkwNzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTM4LDEyICszOCw2IEBACiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oPgogCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlv
biA9IDAuMTI7Ci1jb25zdCBDRlRpbWVJbnRlcnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJv
dW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4yOwotCi1jb25zdCBDR0Zsb2F0IG1pZEJvdW5jZVNj
YWxlID0gMS4yNTsKLWNvbnN0IENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsNyAr
NTAsNyBAQCBUZXh0SW5kaWNhdG9yV2luZG93OjpUZXh0SW5kaWNhdG9yV2luZG93KE5TVmlldyAq
dGFyZ2V0VmlldykKIAogVGV4dEluZGljYXRvcldpbmRvdzo6flRleHRJbmRpY2F0b3JXaW5kb3co
KQogewotICAgIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiB9CiAKIHZvaWQgVGV4dElu
ZGljYXRvcldpbmRvdzo6c2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCkBAIC02
NywxNCArNjEsMTQgQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9n
cmVzcyhmbG9hdCBwcm9ncmVzcykKICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0QW5pbWF0
aW9uUHJvZ3Jlc3M6cHJvZ3Jlc3NdOwogfQogCi12b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNs
ZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFu
aW1hdGlvbikKK3ZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQogewogICAg
IFJlZlB0cjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yID0gV1RGTW92ZShtX3RleHRJbmRp
Y2F0b3IpOwogCiAgICAgaWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091dF0pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0
b3JMYXllciBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYg
W21fdGV4dEluZGljYXRvckxheWVyIGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9u
ID09IFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKKyAg
ICBpZiAodGV4dEluZGljYXRvciAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2Fu
dHNNYW51YWxBbmltYXRpb246KnRleHRJbmRpY2F0b3JdICYmIFttX3RleHRJbmRpY2F0b3JMYXll
ciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7CiAgICAgICAgIHN0YXJ0RmFkZU91
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODIsNyArNzYsNyBAQCB2b2lkIFRleHRJ
bmRpY2F0b3JXaW5kb3c6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aQogICAgIGNsb3NlV2luZG93KCk7CiB9CiAKLXZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciwgQ0dSZWN0IHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNl
dFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUmVjdCB0
ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcywgVGV4dEluZGljYXRvckxpZmV0aW1l
IGxpZmV0aW1lKQogewogICAgIGlmIChtX3RleHRJbmRpY2F0b3IgPT0gdGV4dEluZGljYXRvci5w
dHIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTUsOCArODksOCBAQCB2b2lkIFRleHRJbmRpY2F0
b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0
b3IsIENHUgogICAgIENHRmxvYXQgdmVydGljYWxNYXJnaW4gPSBkcm9wU2hhZG93Qmx1clJhZGl1
cyAqIDIgKyBUZXh0SW5kaWNhdG9yOjpkZWZhdWx0VmVydGljYWxNYXJnaW47CiAgICAgCiAgICAg
aWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50c0JvdW5jZToqbV90ZXh0SW5k
aWNhdG9yXSkgewotICAgICAgICBob3Jpem9udGFsTWFyZ2luID0gc3RkOjptYXgoaG9yaXpvbnRh
bE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS53aWR0aCAq
IChtaWRCb3VuY2VTY2FsZSAtIDEpICsgaG9yaXpvbnRhbE1hcmdpbik7Ci0gICAgICAgIHZlcnRp
Y2FsTWFyZ2luID0gc3RkOjptYXgodmVydGljYWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNj
cmVlbkNvb3JkaW5hdGVzLnNpemUuaGVpZ2h0ICogKG1pZEJvdW5jZVNjYWxlIC0gMSkgKyB2ZXJ0
aWNhbE1hcmdpbik7CisgICAgICAgIGhvcml6b250YWxNYXJnaW4gPSBzdGQ6Om1heChob3Jpem9u
dGFsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLndpZHRo
ICogKFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxlIC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsKKyAg
ICAgICAgdmVydGljYWxNYXJnaW4gPSBzdGQ6Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJvdW5k
aW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQgKiAoV2ViQ29yZTo6bWlkQm91
bmNlU2NhbGUgLSAxKSArIHZlcnRpY2FsTWFyZ2luKTsKICAgICB9CiAKICAgICBob3Jpem9udGFs
TWFyZ2luID0gQ0dDZWlsaW5nKGhvcml6b250YWxNYXJnaW4pOwpAQCAtMTI1LDggKzExOSw4IEBA
IHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGlj
YXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgaWYgKG1fdGV4dEluZGljYXRvci0+cHJlc2Vu
dGF0aW9uVHJhbnNpdGlvbigpICE9IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9u
OjpOb25lKQogICAgICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgcHJlc2VudF07CiAKLSAgICBp
ZiAobGlmZXRpbWUgPT0gVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpCi0g
ICAgICAgIG1fdGVtcG9yYXJ5VGV4dEluZGljYXRvclRpbWVyLnN0YXJ0T25lU2hvdCgxX3MgKiB0
aW1lQmVmb3JlRmFkZVN0YXJ0cyk7CisgICAgaWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0b3JM
aWZldGltZTo6VGVtcG9yYXJ5KQorICAgICAgICBtX3RlbXBvcmFyeVRleHRJbmRpY2F0b3JUaW1l
ci5zdGFydE9uZVNob3QoMV9zICogV2ViQ29yZTo6dGltZUJlZm9yZUZhZGVTdGFydHMpOwogfQog
CiB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsb3NlV2luZG93KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDNhZDUxNDJjZDE3N2FhZGFlNWMz
ODUzMmQ1N2ZjYTQzODBhY2Q0YjYuLmM1YzQ2NjIwYmFjZDU1NTliNDkzZTAzMWU1NGI5YzBjYzcx
ZWFhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApA
QCAtNDExLDggKzQxMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFu
Z2UoKTsKIAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
JiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lID0gV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwotICAgIHZvaWQgY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uKTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGlj
YXRvciYsIFRleHRJbmRpY2F0b3JMaWZldGltZSA9IFRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVy
bWFuZW50KTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29y
ZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbik7CiAgICAgdm9pZCBzZXRUZXh0SW5k
aWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogICAgIHZvaWQgZGlzbWlzc0NvbnRlbnRS
ZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpOwogICAgIHZvaWQgZGlzbWlzc0NvbnRl
bnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oYm9vbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDIzYTUwNDY4MTE0MTMzNTE5
ZjJlZDFiZGNkODI0Y2Q5MmE2NWI0MWYuLjE1YWVlYTM1NjM5ZDI0NjM1YTA2YTJmNDhlZDQwODdh
ZDVkMGIzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCkBAIC00MjMsNyArNDIzLDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihO
U1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE4KICNpZiAhRU5B
QkxFKFJFVkVBTCkKIC0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOihO
U05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotICAgIF9pbXBsLT5jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb246Ok5vbmUpOworICAgIF9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogfQog
I2VuZGlmCiAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnByZWZlcmVu
Y2VzRGlkQ2hhbmdlKCkKICAgICAgICAgdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygpOwogfQog
Ci12b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSBs
aWZldGltZSkKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvckxpZmV0aW1lIGxpZmV0aW1l
KQogewogICAgIGlmICghbV90ZXh0SW5kaWNhdG9yV2luZG93KQogICAgICAgICBtX3RleHRJbmRp
Y2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+KG1f
dmlldy5nZXRBdXRvcmVsZWFzZWQoKSk7CkBAIC0zNTA0LDcgKzM1MDQsNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRp
Y2F0b3IsIFdlYkNvcgogICAgIG1fdGV4dEluZGljYXRvcldpbmRvdy0+c2V0VGV4dEluZGljYXRv
cih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5D
b29yZGluYXRlcyksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6Y2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlz
c2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKK3ZvaWQgV2ViVmlld0ltcGw6OmNsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlv
biBhbmltYXRpb24pCiB7CiAgICAgaWYgKG1fdGV4dEluZGljYXRvcldpbmRvdykKICAgICAgICAg
bV90ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0b3IoYW5pbWF0aW9uKTsKQEAg
LTM1MjcsNyArMzUyNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdPbmx5KGJvCiAgICAgLy8gQ2FsbGlu
ZyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBoZXJlIHdpbGwgd2luIG91dCBvdmVy
IHRoZSBhbmltYXRlZCBjbGVhciBpbiBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dz
RnJvbVZpZXdPbmx5LgogICAgIC8vIFdlIGNhbid0IGludmVydCB0aGVzZSBiZWNhdXNlIGNsaWVu
dHMgY2FuIG92ZXJyaWRlIChhbmQgaGF2ZSBvdmVycmlkZGVuKSBfZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93cywgc28gaXQgbmVlZHMgdG8gYmUgY2FsbGVkLgogICAgIC8vIEZvciB0
aGlzIHNhbWUgcmVhc29uLCB0aGlzIGNhbid0IGJlIG1vdmVkIHRvIFdlYlZpZXdJbXBsIHdpdGhv
dXQgY2FyZS4KLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKGFuaW1hdGUgPyBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0IDog
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7Cisg
ICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihhbmltYXRlID8gV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCA6IFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAgIFttX3ZpZXcgX3dlYl9kaXNtaXNz
Q29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKIH0KIApAQCAtMzU0NCw3ICszNTQ0LDcgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21W
aWV3T25seSgpCiAgICAgICAgICAgICBbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJl
ZE1hbmFnZXJdIHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNob3JPbkZhaWx1cmU6WUVTXTsKICAg
ICB9CiAKLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAgIGNsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFu
aW1hdGlvbjo6RmFkZU91dCk7CiAKICAgICBbbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGRp
c21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmgKaW5kZXggNDE3ZTExZDQ5NjYwN2EzMDBjZmI2NWZlZDZjN2Y0Y2FjZTBjOTI2
ZC4uYTM1NzMxZWMwMWQ5ZTVlMTUwMmU2MDVlNTI4MmZlZjBiMDQ1ZDY4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTA2LDggKzEwNiw4IEBAIGNsYXNzIFNlbGVjdGlv
bkRhdGE7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFz
cyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTY3JvbGxiYXJTdHls
ZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVp
bnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24g
OiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgOiB1aW50OF90Owor
ZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdDsKIGVu
dW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBBcHBI
aWdobGlnaHQ7CkBAIC0zODUsOCArMzg1LDggQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29y
ZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4
dEluZGljYXRvckxpZmV0aW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyVGV4dEluZGlj
YXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgPSAw
OwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25z
dCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWE1YzM0OTA3MzNjMmIwZTkxZGU4NDg4OGUzMDA0
YWU5YmFiODQ1ZC4uZWIxZGEwYTgzZWRhNThiNDdlN2VjYzU5ZjY4MDYzMmMxNjA3MGY2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTgsNyArMjE4LDYg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJpbmcuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAj
aW5jbHVkZSA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgpAQCAtNjUxMSw3ICs2NTEwLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRh
dGEmIGluZGljYXRvckRhdGEsIHVpbnQKIHsKICAgICAvLyBGSVhNRTogTWFrZSBUZXh0SW5kaWNh
dG9yV2luZG93IGEgcGxhdGZvcm0taW5kZXBlbmRlbnQgcHJlc2VudGF0aW9uYWwgdGhpbmcgKCJU
ZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uIj8pLgogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBh
Z2VDbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3I6OmNyZWF0ZShpbmRpY2F0
b3JEYXRhKSwgc3RhdGljX2Nhc3Q8VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lPihsaWZldGlt
ZSkpOworICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3I6OmNy
ZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8VGV4dEluZGljYXRvckxpZmV0aW1lPihs
aWZldGltZSkpOwogI2Vsc2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgpAQCAt
NjUyMCw3ICs2NTE5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3IoY29u
c3QgVGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEsIHVpbnQKIHZvaWQgV2ViUGFnZVBy
b3h5OjpjbGVhclRleHRJbmRpY2F0b3IoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBh
Z2VDbGllbnQoKS5jbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAgcGFnZUNsaWVudCgpLmNsZWFyVGV4dEluZGljYXRv
cihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKICNl
bHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNWI0NTdkZmI2MDMxZWY2MzlhZDNhZTNmY2JmZmZhZTZh
NmQ4NTcwMi4uZDJkYmUxOWIzZGI5NWE3ODMxNjI1Mjc0NDFmMTg0M2QxZWQyMWUxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTExNDksNyArMTE0OSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBPcHRpb25T
ZXQ8RmluZE9wdGlvbnM+LCB1bnNpZ25lZCBtYXhNYXRjaENvdW50KTsKICAgICB2b2lkIHJlcGxh
Y2VNYXRjaGVzKFZlY3Rvcjx1aW50MzJfdD4mJiBtYXRjaEluZGljZXMsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRUZXh0LCBib29sIHNlbGVjdGlvbk9ubHksIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQodWludDY0X3QpPiYmKTsKICAgICB2b2lkIGRpZENvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBT
dHJpbmcmLCB1aW50MzJfdCBtYXRjaENvdW50KTsKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3Io
Y29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmLCB1aW50NjRfdCAvKiBXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgKi8gbGlmZXRpbWUgPSAwIC8qIFBlcm1hbmVudCAq
Lyk7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JEYXRhJiwgdWludDY0X3QgLyogVGV4dEluZGljYXRvckxpZmV0aW1lICovIGxpZmV0aW1lID0g
MCAvKiBQZXJtYW5lbnQgKi8pOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKGZsb2F0KTsKICAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcigpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDNmYmUx
YjE3ZmY2NjA0NDllOTkzZWY3ZThhZmMwYmEwMDI0ZmQ4N2EuLjgxZmIwMTgzM2NlZTllNWQ5MTU5
NTQxOGQyYjVhMGFlNGI4NDRjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMzgsOCArMTM4LDggQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94
eSYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUp
IG92ZXJyaWRlOwotICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VGV4
dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JMaWZldGltZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpIG92ZXJyaWRlOwogCiAg
ICAgdm9pZCBzaG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5n
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVM
b2FkLCBVUkw+JiYpPiYmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA0MGI3NjIzNjM5ZmZhZDQxYjQ0MjQ2OGVi
MmUxODFhYTM0ZjAxNjUzLi5hMmIxZDJiNDIyODM0ZDVmYzQzMDIxOWM0OGM5MzAwNmE3NWM4OGI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tCkBAIC00NzksMTYgKzQ3OSwzMSBAQCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VD
bGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKQogICAgIHJldHVy
biBudWxscHRyOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJl
ZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRp
bWUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNh
dG9yPiB0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUpCiB7CisjaWYgRU5BQkxF
KEFQUF9ISUdITElHSFRTKQorICAgIFttX2NvbnRlbnRWaWV3IHNldFVwVGV4dEluZGljYXRvcjp0
ZXh0SW5kaWNhdG9yXTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHRleHRJbmRpY2F0b3IpOwor
I2VuZGlmCiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6
Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRp
b24gZGlzbWlzc2FsQW5pbWF0aW9uKQogeworI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAg
ICBbbV9jb250ZW50VmlldyBjbGVhclRleHRJbmRpY2F0b3I6ZGlzbWlzc2FsQW5pbWF0aW9uXTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRpc21pc3NhbEFuaW1hdGlvbik7CisjZW5kaWYKIH0K
IAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNz
KGZsb2F0KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKGZsb2F0IGFuaW1hdGlvblByb2dyZXNzKQogeworI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKKyAgICBbbV9jb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jl
c3M6YW5pbWF0aW9uUHJvZ3Jlc3NdOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYW5pbWF0aW9u
UHJvZ3Jlc3MpOworI2VuZGlmCiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29u
dGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaAppbmRleCA4ODZhZTc1ZTY3YjU2YWViMzgzNzg0ZjU5NmM5ZDhmNzI5
MTI1NmU3Li5kMjQ1MmZjYWRkNTRlOGFkYjQ1M2Y2MGNhMGM4YWZiOTg5OWNhZTA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCkBAIC04OSw2ICs4OSw3IEBAIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwog
ZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3Mg
TW91c2VFdmVudFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGlj
eSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24g
OiB1aW50OF90OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIHN0cnVjdCBEcmFnSXRlbTsK
QEAgLTEzMiw2ICsxMzMsMTAgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogI2VuZGlmCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKK0BjbGFzcyBXZWJUZXh0SW5kaWNhdG9yTGF5
ZXI7CisjZW5kaWYKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJL
aXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQmVmb3JlLmg+CiAj
ZW5kaWYKQEAgLTMzMCw2ICszMzUsMTEgQEAgZW51bSBjbGFzcyBQcm9jZWVkV2l0aEltYWdlRXh0
cmFjdGlvbiA6IGJvb2wgewogI2VuZGlmCiAgICAgUmV0YWluUHRyPFVJUHJldmlld0l0ZW1Db250
cm9sbGVyPiBfcHJldmlld0l0ZW1Db250cm9sbGVyOwogI2VuZGlmCisgICAgCisjaWYgRU5BQkxF
KEFQUF9ISUdITElHSFRTKQorICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiBfdGV4
dEluZGljYXRvcjsKKyAgICBSZXRhaW5QdHI8V2ViVGV4dEluZGljYXRvckxheWVyPiBfdGV4dElu
ZGljYXRvckxheWVyOworI2VuZGlmCiAKICNpZiBVU0UoVUlDT05URVhUTUVOVSkKICAgICBSZXRh
aW5QdHI8VUlUYXJnZXRlZFByZXZpZXc+IF9jb250ZXh0TWVudUludGVyYWN0aW9uVGFyZ2V0ZWRQ
cmV2aWV3OwpAQCAtNjcwLDYgKzY4MCwxMiBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJ
RVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAo
dm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWU7CiAtICh2b2lkKV9kaWRD
b21taXRMb2FkRm9yTWFpbkZyYW1lOwogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorLSAo
dm9pZClzZXRVcFRleHRJbmRpY2F0b3I6KFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPil0ZXh0
SW5kaWNhdG9yOworLSAodm9pZClzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6KGZs
b2F0KU5TQW5pbWF0aW9uUHJvZ3Jlc3M7CistICh2b2lkKWNsZWFyVGV4dEluZGljYXRvcjooV2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb247CisjZW5kaWYK
KwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRVc2VDb250ZXh0
TWVudXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZEF2b2lk
UmVzaXppbmdXaGVuSW5wdXRWaWV3Qm91bmRzQ2hhbmdlOwogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBCT09MIF9zaG91bGRBdm9pZFNjcm9sbGluZ1doZW5Gb2N1c2VkQ29udGVudElz
VmlzaWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGE2MDg2OWE3N2Y5MjU3MGIyMGM5ZjcxOTNkYWNk
MTAxMTIxZmExN2EuLmY3YzNkYjViMjBiM2YzN2I3MmM3ODg4Mjg2MzhkZjRiN2U3MzYyODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQpAQCAtMTcyLDYgKzE3MiwxMSBAQAogI2ltcG9ydCAiUGVwcGVyVUlDb3Jl
U1BJLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyNpbXBvcnQgPFdl
YkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJUZXh0SW5k
aWNhdG9yTGF5ZXIuaD4KKyNlbmRpZgorCiAjaW1wb3J0IDxwYWwvaW9zL01hbmFnZWRDb25maWd1
cmF0aW9uU29mdExpbmsuaD4KIAogI2lmIEhBVkUoTElOS19QUkVWSUVXKSAmJiBVU0UoVUlDT05U
RVhUTUVOVSkKQEAgLTk1ODIsNiArOTU4Nyw2OSBAQCAtICh2b2lkKV9pbnZva2VBbGxBY3Rpb25z
VG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOihXZWJLaXQ6OlByb2NlZWRXaQog
CiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAKKyNpZiBFTkFCTEUoQVBQX0hJ
R0hMSUdIVFMpCistICh2b2lkKXNldFVwVGV4dEluZGljYXRvcjooUmVmPFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3I+KXRleHRJbmRpY2F0b3IKK3sKKyAgICBpZiAoX3RleHRJbmRpY2F0b3IgPT0gdGV4
dEluZGljYXRvci5wdHIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFtzZWxmIHRlYXJk
b3duVGV4dEluZGljYXRvckxheWVyXTsKKyAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlvdXNQZXJm
b3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHN0YXJ0RmFkZU91
dCkgb2JqZWN0Om5pbF07CisgICAgCisgICAgX3RleHRJbmRpY2F0b3IgPSB0ZXh0SW5kaWNhdG9y
LnB0cigpOworCisgICAgQ0dSZWN0IGZyYW1lID0gX3RleHRJbmRpY2F0b3ItPnRleHRCb3VuZGlu
Z1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKTsKKyAgICBfdGV4dEluZGljYXRvckxheWVyID0g
YWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JMYXllciBhbGxvY10gaW5pdFdpdGhGcmFtZTpmcmFt
ZQorICAgICAgICB0ZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3IgbWFyZ2luOkNHU2l6ZVplcm8g
b2Zmc2V0OkNHUG9pbnRaZXJvXSk7CisgICAgCisgICAgW1tzZWxmIGxheWVyXSBhZGRTdWJsYXll
cjpfdGV4dEluZGljYXRvckxheWVyLmdldCgpXTsKKworICAgIGlmIChfdGV4dEluZGljYXRvci0+
cHJlc2VudGF0aW9uVHJhbnNpdGlvbigpICE9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JQcmVzZW50
YXRpb25UcmFuc2l0aW9uOjpOb25lKQorICAgICAgICBbX3RleHRJbmRpY2F0b3JMYXllciBwcmVz
ZW50XTsKKyAgICAKKyAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKHN0YXJ0RmFk
ZU91dCkgd2l0aE9iamVjdDpzZWxmIGFmdGVyRGVsYXk6V2ViQ29yZTo6dGltZUJlZm9yZUZhZGVT
dGFydHNdOworfQorCistICh2b2lkKWNsZWFyVGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dElu
ZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb24KK3sKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9IFdURk1vdmUoX3RleHRJbmRpY2F0b3Ip
OworICAgIAorICAgIGlmIChbX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091dF0pCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFtfdGV4dEluZGljYXRvckxh
eWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5kaWNhdG9yXSAmJiBbX3Rl
eHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7CisgICAg
ICAgIFtzZWxmIHN0YXJ0RmFkZU91dF07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBb
c2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07Cit9CisKKy0gKHZvaWQpc2V0VGV4dElu
ZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClhbmltYXRpb25Qcm9ncmVzcworeworICAg
IGlmICghX3RleHRJbmRpY2F0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIFtfdGV4dEluZGlj
YXRvckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNzOmFuaW1hdGlvblByb2dyZXNzXTsKK30KKwor
LSAodm9pZCl0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcgoreworICAgIFtfdGV4dEluZGljYXRv
ckxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICBfdGV4dEluZGljYXRvckxheWVyID0g
bmlsOworfQorCistICh2b2lkKXN0YXJ0RmFkZU91dAoreworICAgIFtfdGV4dEluZGljYXRvckxh
eWVyIHNldEZhZGluZ091dDpZRVNdOworICAgICAgICAKKyAgICBbX3RleHRJbmRpY2F0b3JMYXll
ciBoaWRlV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29u
dGVudFZpZXc+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdl
dCgpOworICAgICAgICBbc3Ryb25nU2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07Cisg
ICAgfV07Cit9CisjZW5kaWYgLy8gRU5BQkxFKEFQUF9ISUdITElHSFRTKQorCiAjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb25BZGRpdGlvbnNBZnRlci5tbT4KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA1OGJlNGEyY2FlNDUzN2U1
NDYzYmRkMWI2YjViZTE2OGJhNjkyNzZjLi5lMjIzMDgyZGQ4MDJhNjYyMTBiYmJhM2QxYzgwMGIz
NDhiNmM5MjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaApAQCAtMTU2LDggKzE1Niw4IEBAIHByaXZhdGU6CiAKICAgICBSZWY8V2ViQ29y
ZTo6VmFsaWRhdGlvbkJ1YmJsZT4gY3JlYXRlVmFsaWRhdGlvbkJ1YmJsZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OlNldHRpbmdzJikgZmlu
YWw7CiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0
b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJyaWRlOwotICAg
IHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNt
aXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8
V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFRleHRJbmRpY2F0b3JMaWZldGltZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21p
c3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0
aW9uUHJvZ3Jlc3MoZmxvYXQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCA3
ODhhMjc5NmRiYjFjZjQ1OWVmZTEyNGM2ZjBkN2QwYTY5OGI3ZTliLi5kYjczZmUyOGI1MzVhMDUz
YjZmM2NmZWU3MmE1YWY5M2MxNzUyOGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC01NjksMTIgKzU2OSwxMiBAQCB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpjbGVhclNhZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5GcmFtZU5hdmln
YXRpb24oKQogICAgIG1faW1wbC0+Y2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZGb3JNYWluRnJh
bWVOYXZpZ2F0aW9uKCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0
b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJ
bmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JM
aWZldGltZSBsaWZldGltZSkKIHsKICAgICBtX2ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dElu
ZGljYXRvci5nZXQoKSwgbGlmZXRpbWUpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVh
clRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbiBkaXNtaXNzYWxBbmltYXRpb24pCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJ
bmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiBkaXNtaXNz
YWxBbmltYXRpb24pCiB7CiAgICAgbV9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uKGRpc21pc3NhbEFuaW1hdGlvbik7CiB9CkBAIC02NzIsOSArNjcyLDkgQEAgdm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBv
cHVwSW5mbyYgZGljdGkKICAgICBtX2ltcGwtPnByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7
CiAKICAgICBEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywg
bV92aWV3LCBbdGhpc10oVGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBt
X2ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvcldpbmRv
d0xpZmV0aW1lOjpQZXJtYW5lbnQpOworICAgICAgICBtX2ltcGwtPnNldFRleHRJbmRpY2F0b3Io
dGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnQpOwogICAgIH0s
IG51bGxwdHIsIFt0aGlzXSgpIHsKLSAgICAgICAgbV9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRp
b246Ok5vbmUpOworICAgICAgICBtX2ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRp
b24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CiAgICAg
fSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IDliYWE4YmUyNGM3N2M3NDZlNzkzZjQx
Mzc4ZGNkMDBiM2NmNGM0ZmUuLjMzOWZmOTdkMzA2MDI5YTZiMDA4ZTExODY2ZTNjYTRmNjkxYjk2
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQpAQCAtNDkwLDkgKzQ5MCw5IEBAIC0gKGlkPE5TSW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JU
ZXh0CiAgICAgX3ZpZXdJbXBsLT5wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cCgpOwogCiAgICAg
cmV0dXJuIFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OmFuaW1hdGlvbkNvbnRyb2xsZXJGb3JQ
b3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBfdmlldywgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAgX3ZpZXdJbXBsLT5zZXRUZXh0SW5kaWNh
dG9yKHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6
UGVybWFuZW50KTsKKyAgICAgICAgX3ZpZXdJbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRp
Y2F0b3IsIFRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50KTsKICAgICB9LCBudWxscHRy
LCBbc2VsZl0oKSB7Ci0gICAgICAgIF92aWV3SW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFu
aW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpO
b25lKTsKKyAgICAgICAgX3ZpZXdJbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9u
KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAgIH0p
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDNmMmU5ZDUwZmZiMDAxYzI0NmQ0MTcx
MGUwM2I0NDliZGM1ODY3ODQuLmI2YjA4YzJmYzRkNDU5YWMwNmFhMTVhMThmMjdlYTJmMjYzZTIy
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC04OCw2ICs4OCw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvVGV4dEluZGljYXRvci5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICNpbmNsdWRlICJQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgiCkBAIC0xMjY5LDYgKzEyNzAsMTEgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmIGhp
Z2hsaWdodCkgY29uc3QKICAgICBoaWdobGlnaHQucmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA9IG1f
cGFnZS5oaWdobGlnaHRSZXF1ZXN0T3JpZ2luYXRlZEluQXBwKCk7CiAgICAgbV9wYWdlLnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RvcmVBcHBIaWdobGlnaHQoaGlnaGxpZ2h0KSk7CiB9
CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JEYXRhJiBpbmRpY2F0b3JEYXRhKSBjb25zdAoreworICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yRGF0
YSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6
VGVtcG9yYXJ5KSkpOworfQogI2VuZGlmCiAKIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OnNpZ25l
ZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplSW5kZXgsIGNvbnN0
IFN0cmluZyYgY2hhbGxlbmdlU3RyaW5nLCBjb25zdCBVUkwmIHVybCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAppbmRleCA0ZWVmMWY4YWQxYzUyYWMwNTE2NTgyYmExNjE1NWNhZDAxYTE1NTcyLi5k
N2VmYjA4ODU5ZGQwNTk0MDY2ZTg0M2NhMjYwYjAxYTQ0ZTYzZmUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC0zNTEsNiArMzUxLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYm
KSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6
VGV4dEluZGljYXRvckRhdGEmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdF
Ql9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9G
aW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5k
Q29udHJvbGxlci5jcHAKaW5kZXggMDA5MDE0YTUzNmJmOWQ2OGRmYmU1ZGExNDBkZGI1MTdhZWFj
ZDIwNy4uZWUzYmMyMzZiMmM0YWQyMjg0NjM3ZWRmYzEzYmNlMmI0Y2EzYWI5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApA
QCAtMzgwLDcgKzM4MCw3IEBAIGJvb2wgRmluZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRJbmRpY2F0
b3IoRnJhbWUmIHNlbGVjdGVkRnJhbWUsIGJvb2wgaXNTaG93aW5nT3ZlCiAKICAgICBtX2ZpbmRJ
bmRpY2F0b3JSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChpbmRpY2F0b3ItPnNlbGVjdGlvblJlY3RJ
blJvb3RWaWV3Q29vcmRpbmF0ZXMoKSk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgbV93ZWJQ
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNh
dG9yLT5kYXRhKCksIHN0YXRpY19jYXN0PHVpbnQ2NF90Pihpc1Nob3dpbmdPdmVybGF5ID8gVGV4
dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQgOiBUZXh0SW5kaWNhdG9yV2luZG93
TGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKKyAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6U2V0VGV4dEluZGljYXRvcihpbmRpY2F0b3ItPmRhdGEoKSwgc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KGlzU2hvd2luZ092ZXJsYXkgPyBUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBl
cm1hbmVudCA6IFRleHRJbmRpY2F0b3JMaWZldGltZTo6VGVtcG9yYXJ5KSkpOwogI2VuZGlmCiAg
ICAgbV9pc1Nob3dpbmdGaW5kSW5kaWNhdG9yID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCBmM2Q0NzE2YTg5MzNkOWYyNDJmOGVmMTIxNWE4NjYyMzQwZjg5N2E1Li42ZTE4ZjJiMjQyMTcx
M2EyYzQwZDc0NDE4ZDUyNGI4NTM2NDExNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTUzLDYg
KzE1Myw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgdm9p
ZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QgZmluYWw7
CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JE
YXRhJikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW0KaW5kZXggNDUzOWNlNmY2NGQwMGIwYmIwMDI4M2VhYzgxNTMyOTc5MDA0
YzRlOC4uNDdlNzExYTY4MmIzMjkzMzA1ZDc3MjA3YTg0NzEzMzc5MmYwN2NmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbQpAQCAtNzE4LDYgKzcxOCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxEYXRlVGltZUNo
b29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGF0ZVRpbWVDaG9vc2VyKERhdGVUaW1lCiB2
b2lkIFdlYkNocm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGlnaGxp
Z2h0JiYpIGNvbnN0CiB7CiB9Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRv
cihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSkgY29uc3QK
K3sKK30KICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDBmZTJhNTA5NmM3ZTI2
ZjMyMDMyNWUzNjhiZmYwZGJiOWYwNzJjNzYuLjYxZDZmNGU4NjU5NGRjYWI3ZTYxNzkwNzA0Yjcw
OWVmNWNjYzJiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJI
VE1MVmlldy5tbQpAQCAtNTk1Myw3ICs1OTUzLDcgQEAgLSAodm9pZClfbG9va1VwSW5EaWN0aW9u
YXJ5RnJvbU1lbnU6KGlkKXNlbmRlcgogCiAtICh2b2lkKXF1aWNrTG9va1dpdGhFdmVudDooTlNF
dmVudCAqKWV2ZW50CiB7Ci0gICAgW1tzZWxmIF93ZWJWaWV3XSBfY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uOjpGYWRlT3V0XTsKKyAgICBbW3NlbGYgX3dlYlZpZXddIF9jbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXRdOwogICAgIFtzdXBlciBxdWlja0xvb2tXaXRoRXZlbnQ6ZXZlbnRdOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggY2U2MmJmYTUxNjE3N2M4YzM2YWVkZDdiYTVm
YTRjMjc1MTBkNmY3MS4uYzNjMzY3MmJmY2NmY2QxMzZlNjJmM2RmYzM0MTFiZGVlOWJhZTQzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQpAQCAtMTIyLDcgKzEyMiw3IEBAIC0gKHZv
aWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZGlkSGFuZGxlU2Nyb2xsV2hlZWw6KE5TRXZl
bnQgKilldmVudAogewogICAgIFtfY3VycmVudFFMUHJldmlld01lbnVJdGVtIGNsb3NlXTsKICAg
ICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Ci0gICAgW193ZWJWaWV3IF9jbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dE
aXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOworICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9u
OjpOb25lXTsKIH0KIAogLSAoTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWlt
bWVkaWF0ZUFjdGlvblJlY29nbml6ZXIKQEAgLTEzOSw3ICsxMzksNyBAQCAtICh2b2lkKV9jYW5j
ZWxJbW1lZGlhdGVBY3Rpb24KICAgICB9CiAKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rp
b25TdGF0ZV07Ci0gICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9u
OldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRd
OworICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKIH0KIAogLSAodm9p
ZClfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZQpAQCAtMjUxLDcgKzI1MSw3IEBAIC0gKHZvaWQp
aW1tZWRpYXRlQWN0aW9uUmVjb2duaXplckRpZENhbmNlbEFuaW1hdGlvbjooTlNJbW1lZGlhdGVB
Y3Rpb25HZXN0dXJlUmVjCiAKICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3JBbmltYXRp
b25Qcm9ncmVzczowXTsKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Ci0g
ICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRl
eHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOworICAgIFtfd2ViVmll
dyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKICAgICBbX3dlYlZpZXcgX3NldE1haW50YWluc0lu
YWN0aXZlU2VsZWN0aW9uOk5PXTsKIH0KIApAQCAtMjkzLDcgKzI5Myw3IEBAIC0gKGlkIDxOU0lt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9kZWZhdWx0QW5pbWF0aW9uQ29udHJv
bGxlcgogICAgICAgICAgICAgYXV0byBsaW5rUmFuZ2UgPSBtYWtlUmFuZ2VTZWxlY3RpbmdOb2Rl
Q29udGVudHMoKl9oaXRUZXN0UmVzdWx0LlVSTEVsZW1lbnQoKSk7CiAgICAgICAgICAgICBhdXRv
IGluZGljYXRvciA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhSYW5nZShsaW5r
UmFuZ2UsIHsgV2ViQ29yZTo6VGV4dEluZGljYXRvck9wdGlvbjo6VXNlQm91bmRpbmdSZWN0QW5k
UGFpbnRBbGxDb250ZW50Rm9yQ29tcGxleFJhbmdlcyB9LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
UHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6RmFkZUluKTsKICAgICAgICAgICAgIGlmIChpbmRpY2F0
b3IpCi0gICAgICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0
b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVy
bWFuZW50XTsKKyAgICAgICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6Kmlu
ZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwog
CiAgICAgICAgICAgICBRTFByZXZpZXdNZW51SXRlbSAqaXRlbSA9IFtOU01lbnVJdGVtIHN0YW5k
YXJkUXVpY2tMb29rTWVudUl0ZW1dOwogICAgICAgICAgICAgaXRlbS5wcmV2aWV3U3R5bGUgPSBR
TFByZXZpZXdTdHlsZVBvcG92ZXI7CkBAIC0zNzksNyArMzc5LDcgQEAgLSAoTlNSZWN0RWRnZSlt
ZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtIHByZWZlcnJlZEVkZ2VGb3JQb2ludDooTlNQ
b2ludClwb2kKIC0gKHZvaWQpbWVudUl0ZW1EaWRDbG9zZTooTlNNZW51SXRlbSAqKW1lbnVJdGVt
CiB7CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmll
dyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbX3dlYlZpZXcgX2NsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAKIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IGVsZW1l
bnRCb3VuZGluZ0JveEluV2luZG93Q29vcmRpbmF0ZXNGcm9tTm9kZShXZWJDb3JlOjpOb2RlKiBu
b2RlKQpAQCAtNDY0LDkgKzQ2NCw5IEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlv
bkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkCiAgICAgX2N1
cnJlbnRBY3Rpb25Db250ZXh0ID0gW2RldGVjdGVkSXRlbS0+YWN0aW9uQ29udGV4dCBjb250ZXh0
Rm9yVmlldzpfd2ViVmlldyBhbHRNb2RlOllFUyBpbnRlcmFjdGlvblN0YXJ0ZWRIYW5kbGVyOl4o
KSB7CiAgICAgfSBpbnRlcmFjdGlvbkNoYW5nZWRIYW5kbGVyOl4oKSB7CiAgICAgICAgIGlmIChp
bmRpY2F0b3IpCi0gICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGlj
YXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQ
ZXJtYW5lbnRdOworICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRp
Y2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKICAg
ICB9IGludGVyYWN0aW9uU3RvcHBlZEhhbmRsZXI6XigpIHsKLSAgICAgICAgW193ZWJWaWV3IF9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbX3dlYlZpZXcgX2NsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfV07CiAKICAgICBbX2N1cnJlbnRBY3Rpb25Db250
ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfd2ViVmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVl
bjpkZXRlY3RlZEl0ZW0tPmJvdW5kaW5nQm94XV07CkBAIC00OTcsOSArNDk3LDkgQEAgLSAoaWQg
PE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xs
ZXJGb3JEYXRhRGV0ZWN0ZWQKICAgICBfY3VycmVudEFjdGlvbkNvbnRleHQgPSBbYWN0aW9uQ29u
dGV4dCBjb250ZXh0Rm9yVmlldzpfd2ViVmlldyBhbHRNb2RlOllFUyBpbnRlcmFjdGlvblN0YXJ0
ZWRIYW5kbGVyOl4oKSB7CiAgICAgfSBpbnRlcmFjdGlvbkNoYW5nZWRIYW5kbGVyOl4oKSB7CiAg
ICAgICAgIGlmIChpbmRpY2F0b3IpCi0gICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRp
Y2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5k
aWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVy
bWFuZW50XTsKICAgICB9IGludGVyYWN0aW9uU3RvcHBlZEhhbmRsZXI6XigpIHsKLSAgICAgICAg
W193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbX3dl
YlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfV07CiAKICAgICBbX2N1cnJl
bnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfd2ViVmlldy53aW5kb3cgY29udmVy
dFJlY3RUb1NjcmVlbjplbGVtZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzRnJvbU5v
ZGUoX2hpdFRlc3RSZXN1bHQuVVJMRWxlbWVudCgpKV1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDcyNjRiZmRjZDcyZGUxMzY5NjBhMzIzOGNiMDAy
MTZmYjg5MmZmN2MuLjVlMGVkMTVjOTIxYjA2YmEzMmNlN2YzYTNkNzMxYjcxYTQ1NzNmOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkxMDAsMTEg
KzkxMDAsMTEgQEAgLSAoaWQpX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEaWN0aW9uYXJ5TG9va3Vw
UG9wdXBJbmZvOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXIKICAgICBbc2VsZiBfcHJlcGFyZUZv
ckRpY3Rpb25hcnlMb29rdXBdOwogCiAgICAgcmV0dXJuIFdlYkNvcmU6OkRpY3Rpb25hcnlMb29r
dXA6OmFuaW1hdGlvbkNvbnRyb2xsZXJGb3JQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBzZWxm
LCBbc2VsZl0oV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAg
ICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgIFtz
ZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRp
Y2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKICAgICB9LCBbc2VsZl0oV2ViQ29yZTo6RmxvYXRS
ZWN0IHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMpIHsKICAgICAgICAgcmV0dXJuIFtzZWxmIF9j
b252ZXJ0UmVjdEZyb21Sb290VmlldzpyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICB9
LCBbc2VsZl0oKSB7Ci0gICAgICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVP
dXRdOworICAgICAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICB9KTsK
IH0KIApAQCAtOTEyMCwxMCArOTEyMCwxMCBAQCAtICh2b2lkKV9zZXRQcmVzc3VyZUV2ZW50OihO
U0V2ZW50ICopZXZlbnQKIAogLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4
dEluZGljYXRvciYpdGV4dEluZGljYXRvcgogewotICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9y
OnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dM
aWZldGltZTo6UGVybWFuZW50XTsKKyAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5k
aWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiB9
CiAKLS0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRl
eHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlm
ZXRpbWUpbGlmZXRpbWUKKy0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihUZXh0SW5kaWNhdG9yTGlmZXRp
bWUpbGlmZXRpbWUKIHsKICAgICBpZiAoIV9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93KQog
ICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdyA9IG1ha2VVbmlxdWU8V2ViQ29y
ZTo6VGV4dEluZGljYXRvcldpbmRvdz4oc2VsZik7CkBAIC05MTMzLDEwICs5MTMzLDEwIEBAIC0g
KHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRp
Y2F0b3Igd2l0aExpZmV0aW1lOihXCiAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ct
PnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgTlNSZWN0VG9DR1JlY3QodGV4dEJvdW5k
aW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMpLCBsaWZldGltZSk7CiB9CiAKLS0gKHZvaWQpX2Ns
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uCistICh2b2lkKV9jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9u
KWFuaW1hdGlvbgogewogICAgIGlmIChfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdykKLSAg
ICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRvcihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsK
KyAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRv
cihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKICAg
ICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdyA9IG51bGxwdHI7CiB9CiAKQEAgLTkxNjgs
MTggKzkxNjgsMTggQEAgLSAodm9pZClfc2hvd0RpY3Rpb25hcnlMb29rdXBQb3B1cDooY29uc3Qg
V2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpZGljdGlvbmEKICAgICBbc2VsZiBfcHJlcGFy
ZUZvckRpY3Rpb25hcnlMb29rdXBdOwogCiAgICAgV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6
c2hvd1BvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIHNlbGYsIFtzZWxmXShXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNh
dG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6
dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5l
bnRdOwogICAgIH0sIFtzZWxmXShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdEluUm9vdFZpZXdDb29y
ZGluYXRlcykgewogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRSZWN0RnJvbVJvb3RWaWV3
OnJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIH0sIFt3ZWFrU2VsZiA9IFdlYWtPYmpD
UHRyPFdlYlZpZXc+KHNlbGYpXSgpIHsKLSAgICAgICAgW3dlYWtTZWxmLmdldCgpIF9jbGVhclRl
eHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNt
aXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbd2Vha1NlbGYuZ2V0KCkgX2NsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfSk7CiB9CiAKICNpZiAhRU5BQkxFKFJFVkVBTCkK
IC0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOihOU05vdGlmaWNhdGlv
biAqKW5vdGlmaWNhdGlvbgogewotICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXRdOworICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNv
cmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogfQogI2VuZGlm
IC8vIEVOQUJMRShSRVZFQUwpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDczMzcyYTBiZGExNTNiZmEzNzYxMDIzY2Y0OTVk
Nzk2ZmE3MThjYzEuLmJhZDVmZDhhMTUwYWNmMmMzN2E1N2MzNjRmODIxOWRjZDQzNzMwYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFs
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwu
aApAQCAtMzE5LDggKzMxOSw4IEBAIFdlYkxheW91dE1pbGVzdG9uZXMga2l0TGF5b3V0TWlsZXN0
b25lcyhPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPik7CiAKICNpZiBQTEFURk9S
TShNQUMpICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCiAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9y
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yOwotLSAodm9pZClfc2V0VGV4
dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRoTGlm
ZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSlsaWZldGltZTsKLS0g
KHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOworLSAodm9pZClfc2V0VGV4
dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRoTGlm
ZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSlsaWZldGltZTsKKy0gKHZvaWQp
X2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JE
aXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOwogLSAodm9pZClfc2V0VGV4dEluZGljYXRvckFu
aW1hdGlvblByb2dyZXNzOihmbG9hdClwcm9ncmVzczsKIC0gKHZvaWQpX3Nob3dEaWN0aW9uYXJ5
TG9va3VwUG9wdXA6KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKWRpY3Rpb25h
cnlQb3B1cEluZm87CiAtIChpZClfYW5pbWF0aW9uQ29udHJvbGxlckZvckRpY3Rpb25hcnlMb29r
dXBQb3B1cEluZm86KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKWRpY3Rpb25h
cnlQb3B1cEluZm87Cg==
</data>
<flag name="commit-queue"
          id="449421"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428484</attachid>
            <date>2021-05-13 03:31:14 -0700</date>
            <delta_ts>2021-05-13 13:40:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513033113.patch</filename>
            <type>text/plain</type>
            <size>52396</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRv
ci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLmViZTVm
MTg1YjljNjViZmVjYjE5MTc4MmJjNTM5NDliNmZhOGI5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCkBAIC0zOSw2ICszOSwzMCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAvLyBGSVhNRTogQ2hh
bmdlIHRoZXNlIHRvIFdlYkNvcmUgdHlwZXMgaW5zdGVhZCBvZiBndWFyZGluZyB3aXRoIENPQ09B
CisKK2NvbnN0ZXhwciBDR0Zsb2F0IGRyb3BTaGFkb3dCbHVyUmFkaXVzID0gMjsKK2NvbnN0ZXhw
ciBDR0Zsb2F0IHJpbVNoYWRvd0JsdXJSYWRpdXMgPSAxOworY29uc3RleHByIENGVGltZUludGVy
dmFsIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKK2NvbnN0ZXhwciBDRlRpbWVJbnRl
cnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4y
OworY29uc3RleHByIENHRmxvYXQgbWlkQm91bmNlU2NhbGUgPSAxLjI1OworCisKK2VudW0gY2xh
c3MgVGV4dEluZGljYXRvckxpZmV0aW1lIDogdWludDhfdCB7CisgICAgLy8gVGhlIFRleHRJbmRp
Y2F0b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRpc21pc3NlZC4KKyAgICBQZXJt
YW5lbnQsCisKKyAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgYnJpZWZseSBpbmRpY2F0
ZSB0aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21pc3MuCisgICAgVGVtcG9yYXJ5
Cit9OworCitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50
OF90IHsKKyAgICBOb25lLAorICAgIEZhZGVPdXQKK307CisKKyNlbmRpZgorCiAvLyBGSVhNRTog
TW92ZSBQcmVzZW50YXRpb25UcmFuc2l0aW9uIHRvIFRleHRJbmRpY2F0b3JXaW5kb3csIGJlY2F1
c2UgaXQncyBhYm91dCBwcmVzZW50YXRpb24uCiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVz
ZW50YXRpb25UcmFuc2l0aW9uIDogdWludDhfdCB7CiAgICAgTm9uZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oCmluZGV4IGZkMTNkMDQw
ZWZmYjc1YjBlYTAwNGVhNTUxZTMyMjE1NGFlMThmYWYuLmJlYmY5M2EzNmVkNzBlNmIzMDlkZTg5
NTgxYTE4MzY2NWUzOGMxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2Ev
V2ViVGV4dEluZGljYXRvckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9X
ZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaApAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAotQGludGVyZmFjZSBXZWJUZXh0
SW5kaWNhdG9yTGF5ZXIgOiBDQUxheWVyIHsKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2Vi
VGV4dEluZGljYXRvckxheWVyIDogQ0FMYXllciB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3I+IF90ZXh0SW5kaWNhdG9yOwogICAgIFJldGFpblB0cjxOU0FycmF5PiBfYm91bmNl
TGF5ZXJzOwogICAgIENHU2l6ZSBfbWFyZ2luOwpAQCAtNTMsMyArNTMsNCBAQAogQHByb3BlcnR5
IChub25hdG9taWMsIGdldHRlcj1pc0ZhZGluZ091dCkgQk9PTCBmYWRpbmdPdXQ7CiAKIEBlbmQK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9y
TGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXll
ci5tbQppbmRleCBiOGM0ZDhmMDY3YmFjZWQwOWE4MTE4MDg3MTAzMDZjNTdhNzk0MzAwLi5iNmJj
MTFiYmIwY2NkMjE0NWQyYjdmMmQ2ODdiYjZlZTRiZjYyMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQpAQCAtMzAsNiArMzAs
NyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJQYXRoVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJUZXh0SW5kaWNhdG9yLmgiCisjaW1wb3J0ICJUZXh0SW5kaWNhdG9yV2lu
ZG93LmgiCiAjaW1wb3J0ICJXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCIKICNp
bXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL1F1YXJ0ekNvcmVTUEkuaD4KQEAgLTM4LDE5ICszOSwxNSBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9OU0NvbG9yU1BJLmg+CiAjZW5kaWYKIAotY29uc3RleHByIENGVGltZUludGVydmFs
IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKKwogY29uc3RleHByIENGVGltZUludGVy
dmFsIGJvdW5jZVdpdGhDcm9zc2ZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIGNvbnN0ZXhw
ciBDRlRpbWVJbnRlcnZhbCBmYWRlSW5BbmltYXRpb25EdXJhdGlvbiA9IDAuMTU7Ci1jb25zdGV4
cHIgQ0ZUaW1lSW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25E
dXJhdGlvbiArIDAuMjsKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlT3V0QW5pbWF0aW9u
RHVyYXRpb24gPSAwLjM7CiAKLWNvbnN0ZXhwciBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4y
NTsKIGNvbnN0ZXhwciBDR0Zsb2F0IGJvcmRlcldpZHRoID0gMDsKIGNvbnN0ZXhwciBDR0Zsb2F0
IGNvcm5lclJhZGl1cyA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WCA9
IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WSA9IDE7Ci1jb25zdGV4cHIg
Q0dGbG9hdCBkcm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Ci1jb25zdGV4cHIgQ0dGbG9hdCByaW1T
aGFkb3dCbHVyUmFkaXVzID0gMTsKIAogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgdGV4dExh
eWVyS2V5ID0gQCJUZXh0TGF5ZXIiOwogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgZHJvcFNo
YWRvd0xheWVyS2V5ID0gQCJEcm9wU2hhZG93TGF5ZXIiOwpAQCAtMTMyLDEzICsxMjksMTIgQEAg
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9y
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkK
ICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAKKyAgICBzZWxmLmFuY2hvclBvaW50ID0gQ0dQb2lu
dFplcm87CiAgICAgc2VsZi5mcmFtZSA9IGZyYW1lOwogCiAgICAgX3RleHRJbmRpY2F0b3IgPSAm
dGV4dEluZGljYXRvcjsKICAgICBfbWFyZ2luID0gbWFyZ2luOwogCi0gICAgc2VsZi5hbmNob3JQ
b2ludCA9IENHUG9pbnRaZXJvOwotCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBj
b250ZW50c0ltYWdlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBjb250ZW50c0ltYWdlTG9naWNh
bFNpemUgeyAxLCAxIH07CiAgICAgaWYgKGF1dG8qIGNvbnRlbnRJbWFnZSA9IF90ZXh0SW5kaWNh
dG9yLT5jb250ZW50SW1hZ2UoKSkgewpAQCAtMTkyLDcgKzE4OCw3IEBAIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4
dEluZGljYXRvCiAgICAgICAgIFJldGFpblB0cjxDQUxheWVyPiBkcm9wU2hhZG93TGF5ZXIgPSBh
ZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVy
IHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07
CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93Q29sb3I6ZHJvcFNoYWRvd0NvbG9y
LmdldCgpXTsKLSAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6ZHJvcFNo
YWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1
czpXZWJDb3JlOjpkcm9wU2hhZG93Qmx1clJhZGl1c107CiAgICAgICAgIFtkcm9wU2hhZG93TGF5
ZXIgc2V0U2hhZG93T2Zmc2V0OkNHU2l6ZU1ha2UoZHJvcFNoYWRvd09mZnNldFgsIGRyb3BTaGFk
b3dPZmZzZXRZKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFu
c2xhdGVkUGF0aC5wbGF0Zm9ybVBhdGgoKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0
U2hhZG93T3BhY2l0eToxXTsKQEAgLTIwNCw3ICsyMDAsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRp
Y2F0bwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRpc2Fi
bGluZ0NBTGF5ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNl
dEZyYW1lOnllbGxvd0hpZ2hsaWdodFJlY3RdOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0
U2hhZG93Q29sb3I6cmltU2hhZG93Q29sb3IuZ2V0KCldOwotICAgICAgICBbcmltU2hhZG93TGF5
ZXIgc2V0U2hhZG93UmFkaXVzOnJpbVNoYWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbcmltU2hh
ZG93TGF5ZXIgc2V0U2hhZG93UmFkaXVzOldlYkNvcmU6OnJpbVNoYWRvd0JsdXJSYWRpdXNdOwog
ICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFuc2xhdGVkUGF0aC5wbGF0
Zm9ybVBhdGgoKV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPZmZzZXQ6Q0dT
aXplWmVyb107CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPcGFjaXR5OjFdOwpA
QCAtMjQ1LDcgKzI0MSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0FLZXlmcmFtZUFuaW1hdGlvbj4g
Y3JlYXRlQm91bmNlQW5pbWF0aW9uKENGVGltZUludGVydmFsIGR1cmF0CiAgICAgUmV0YWluUHRy
PENBS2V5ZnJhbWVBbmltYXRpb24+IGJvdW5jZUFuaW1hdGlvbiA9IFtDQUtleWZyYW1lQW5pbWF0
aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOkAidHJhbnNmb3JtIl07CiAgICAgW2JvdW5jZUFuaW1h
dGlvbiBzZXRWYWx1ZXM6QFsKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpDQVRyYW5zZm9ybTNESWRlbnRpdHldLAotICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRy
YW5zZm9ybTNEOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUobWlkQm91bmNlU2NhbGUsIG1pZEJvdW5j
ZVNjYWxlLCAxKV0sCisgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FU
cmFuc2Zvcm0zRE1ha2VTY2FsZShXZWJDb3JlOjptaWRCb3VuY2VTY2FsZSwgV2ViQ29yZTo6bWlk
Qm91bmNlU2NhbGUsIDEpXSwKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpDQVRyYW5zZm9ybTNESWRlbnRpdHldCiAgICAgICAgIF1dOwogICAgIFtib3VuY2VBbmltYXRp
b24gc2V0RHVyYXRpb246ZHVyYXRpb25dOwpAQCAtMjk0LDcgKzI5MCw3IEBAIC0gKENGVGltZUlu
dGVydmFsKV9hbmltYXRpb25EdXJhdGlvbgogICAgIGlmIChbc2VsZiBpbmRpY2F0b3JXYW50c0Jv
dW5jZToqX3RleHRJbmRpY2F0b3JdKSB7CiAgICAgICAgIGlmIChpbmRpY2F0b3JXYW50c0NvbnRl
bnRDcm9zc2ZhZGUoKl90ZXh0SW5kaWNhdG9yKSkKICAgICAgICAgICAgIHJldHVybiBib3VuY2VX
aXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb247Ci0gICAgICAgIHJldHVybiBib3VuY2VBbmlt
YXRpb25EdXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmJvdW5jZUFuaW1hdGlvbkR1
cmF0aW9uOwogICAgIH0KIAogICAgIHJldHVybiBmYWRlSW5BbmltYXRpb25EdXJhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCBjM2Iz
M2ViYTJjOGJjMGQ3NTQ1OWRkMjE1MDg5YjY1MjljNWQzMTVkLi5mN2ZmZjdjNzNhMWQyZmY3NTRi
Mjc4N2NhMjI5OTUyMzgwMzEzMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4
dEluZGljYXRvcldpbmRvdy5oCkBAIC0zNiwxOSArMzYsNiBAQCBPQkpDX0NMQVNTIFdlYlRleHRJ
bmRpY2F0b3JMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3QgewotICAgIC8vIFRoZSBUZXh0SW5kaWNh
dG9yIHNob3VsZCBpbmRpY2F0ZSB0aGUgdGV4dCB1bnRpbCBkaXNtaXNzZWQuCi0gICAgUGVybWFu
ZW50LAotCi0gICAgLy8gVGhlIFRleHRJbmRpY2F0b3Igc2hvdWxkIGJyaWVmbHkgaW5kaWNhdGUg
dGhlIHRleHQgYW5kIHRoZW4gYXV0b21hdGljYWxseSBkaXNtaXNzLgotICAgIFRlbXBvcmFyeQot
fTsKLQotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDog
dWludDhfdCB7Ci0gICAgTm9uZSwKLSAgICBGYWRlT3V0Ci19OwotCiAjaWYgUExBVEZPUk0oTUFD
KQogCiBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93IHsKQEAgLTU5LDggKzQ2LDggQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFRleHRJbmRpY2F0b3JXaW5kb3coTlNWaWV3
ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5UZXh0SW5kaWNhdG9yV2luZG93KCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBD
R1JlY3QgY29udGVudFJlY3QsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKFJlZjxUZXh0SW5kaWNhdG9yPiwgQ0dSZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAKQEAgLTgxLDMgKzY4LDUgQEAgcHJpdmF0
ZToKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRl
eCBmODVmYTUzYjNiNGE5ZjQ1OTY5Nzc2YTEyY2M0MTFmNzkyMmRmNzdjLi4wMWE3OGQxM2M3NTBm
NDYxYzU1ZDdmMWM0ZjA2NzM0M2U1MTkwNzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTM4LDEyICszOCw2IEBACiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oPgogCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlv
biA9IDAuMTI7Ci1jb25zdCBDRlRpbWVJbnRlcnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJv
dW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4yOwotCi1jb25zdCBDR0Zsb2F0IG1pZEJvdW5jZVNj
YWxlID0gMS4yNTsKLWNvbnN0IENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsNyAr
NTAsNyBAQCBUZXh0SW5kaWNhdG9yV2luZG93OjpUZXh0SW5kaWNhdG9yV2luZG93KE5TVmlldyAq
dGFyZ2V0VmlldykKIAogVGV4dEluZGljYXRvcldpbmRvdzo6flRleHRJbmRpY2F0b3JXaW5kb3co
KQogewotICAgIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiB9CiAKIHZvaWQgVGV4dElu
ZGljYXRvcldpbmRvdzo6c2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCkBAIC02
NywxNCArNjEsMTQgQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9n
cmVzcyhmbG9hdCBwcm9ncmVzcykKICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0QW5pbWF0
aW9uUHJvZ3Jlc3M6cHJvZ3Jlc3NdOwogfQogCi12b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNs
ZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFu
aW1hdGlvbikKK3ZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQogewogICAg
IFJlZlB0cjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yID0gV1RGTW92ZShtX3RleHRJbmRp
Y2F0b3IpOwogCiAgICAgaWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091dF0pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0
b3JMYXllciBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYg
W21fdGV4dEluZGljYXRvckxheWVyIGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9u
ID09IFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKKyAg
ICBpZiAodGV4dEluZGljYXRvciAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2Fu
dHNNYW51YWxBbmltYXRpb246KnRleHRJbmRpY2F0b3JdICYmIFttX3RleHRJbmRpY2F0b3JMYXll
ciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7CiAgICAgICAgIHN0YXJ0RmFkZU91
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODIsNyArNzYsNyBAQCB2b2lkIFRleHRJ
bmRpY2F0b3JXaW5kb3c6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aQogICAgIGNsb3NlV2luZG93KCk7CiB9CiAKLXZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciwgQ0dSZWN0IHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNl
dFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUmVjdCB0
ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcywgVGV4dEluZGljYXRvckxpZmV0aW1l
IGxpZmV0aW1lKQogewogICAgIGlmIChtX3RleHRJbmRpY2F0b3IgPT0gdGV4dEluZGljYXRvci5w
dHIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTUsOCArODksOCBAQCB2b2lkIFRleHRJbmRpY2F0
b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0
b3IsIENHUgogICAgIENHRmxvYXQgdmVydGljYWxNYXJnaW4gPSBkcm9wU2hhZG93Qmx1clJhZGl1
cyAqIDIgKyBUZXh0SW5kaWNhdG9yOjpkZWZhdWx0VmVydGljYWxNYXJnaW47CiAgICAgCiAgICAg
aWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50c0JvdW5jZToqbV90ZXh0SW5k
aWNhdG9yXSkgewotICAgICAgICBob3Jpem9udGFsTWFyZ2luID0gc3RkOjptYXgoaG9yaXpvbnRh
bE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS53aWR0aCAq
IChtaWRCb3VuY2VTY2FsZSAtIDEpICsgaG9yaXpvbnRhbE1hcmdpbik7Ci0gICAgICAgIHZlcnRp
Y2FsTWFyZ2luID0gc3RkOjptYXgodmVydGljYWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNj
cmVlbkNvb3JkaW5hdGVzLnNpemUuaGVpZ2h0ICogKG1pZEJvdW5jZVNjYWxlIC0gMSkgKyB2ZXJ0
aWNhbE1hcmdpbik7CisgICAgICAgIGhvcml6b250YWxNYXJnaW4gPSBzdGQ6Om1heChob3Jpem9u
dGFsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLndpZHRo
ICogKFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxlIC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsKKyAg
ICAgICAgdmVydGljYWxNYXJnaW4gPSBzdGQ6Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJvdW5k
aW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQgKiAoV2ViQ29yZTo6bWlkQm91
bmNlU2NhbGUgLSAxKSArIHZlcnRpY2FsTWFyZ2luKTsKICAgICB9CiAKICAgICBob3Jpem9udGFs
TWFyZ2luID0gQ0dDZWlsaW5nKGhvcml6b250YWxNYXJnaW4pOwpAQCAtMTI1LDggKzExOSw4IEBA
IHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGlj
YXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgaWYgKG1fdGV4dEluZGljYXRvci0+cHJlc2Vu
dGF0aW9uVHJhbnNpdGlvbigpICE9IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9u
OjpOb25lKQogICAgICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgcHJlc2VudF07CiAKLSAgICBp
ZiAobGlmZXRpbWUgPT0gVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpCi0g
ICAgICAgIG1fdGVtcG9yYXJ5VGV4dEluZGljYXRvclRpbWVyLnN0YXJ0T25lU2hvdCgxX3MgKiB0
aW1lQmVmb3JlRmFkZVN0YXJ0cyk7CisgICAgaWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0b3JM
aWZldGltZTo6VGVtcG9yYXJ5KQorICAgICAgICBtX3RlbXBvcmFyeVRleHRJbmRpY2F0b3JUaW1l
ci5zdGFydE9uZVNob3QoMV9zICogV2ViQ29yZTo6dGltZUJlZm9yZUZhZGVTdGFydHMpOwogfQog
CiB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsb3NlV2luZG93KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDNhZDUxNDJjZDE3N2FhZGFlNWMz
ODUzMmQ1N2ZjYTQzODBhY2Q0YjYuLjEwYjg5MTliMGY4NjI0MTgxZWVhYmNmNzhjMDFjMTliYjNi
ZTBjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApA
QCAtNDExLDggKzQxMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFu
Z2UoKTsKIAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
JiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lID0gV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwotICAgIHZvaWQgY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uKTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGlj
YXRvciYsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSA9IFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JMaWZldGltZTo6UGVybWFuZW50KTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcldp
dGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbik7CiAg
ICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogICAgIHZv
aWQgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpOwogICAg
IHZvaWQgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oYm9v
bCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4
IDIzYTUwNDY4MTE0MTMzNTE5ZjJlZDFiZGNkODI0Y2Q5MmE2NWI0MWYuLmRjNTBjZDJjNTE1MGQ1
NTc5ODU0YWI3ZTY1ZTc1ZDYyNTVlM2IwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC00MjMsNyArNDIzLDcgQEAgLSAodm9pZClvYnNlcnZl
VmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBj
aGFuZ2U6KE4KICNpZiAhRU5BQkxFKFJFVkVBTCkKIC0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQ
b3BvdmVyV2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotICAgIF9p
bXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgIF9pbXBsLT5jbGVhclRleHRJ
bmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmlt
YXRpb246Ok5vbmUpOwogfQogI2VuZGlmCiAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICAgICAgdXBkYXRlV2luZG93QW5k
Vmlld0ZyYW1lcygpOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRp
Y2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4
dEluZGljYXRvckxpZmV0aW1lIGxpZmV0aW1lKQogewogICAgIGlmICghbV90ZXh0SW5kaWNhdG9y
V2luZG93KQogICAgICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+KG1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSk7CkBAIC0z
NTA0LDcgKzM1MDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNv
cmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcgogICAgIG1fdGV4dEluZGlj
YXRvcldpbmRvdy0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVj
dCh0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcyksIGxpZmV0aW1lKTsKIH0KIAot
dm9pZCBXZWJWaWV3SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKK3ZvaWQg
V2ViVmlld0ltcGw6OmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCiB7CiAgICAgaWYgKG1fdGV4
dEluZGljYXRvcldpbmRvdykKICAgICAgICAgbV90ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRl
eHRJbmRpY2F0b3IoYW5pbWF0aW9uKTsKQEAgLTM1MjcsNyArMzUyNyw3IEBAIHZvaWQgV2ViVmll
d0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJv
bVZpZXdPbmx5KGJvCiAgICAgLy8gQ2FsbGluZyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbiBoZXJlIHdpbGwgd2luIG91dCBvdmVyIHRoZSBhbmltYXRlZCBjbGVhciBpbiBkaXNtaXNz
Q29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5LgogICAgIC8vIFdlIGNhbid0
IGludmVydCB0aGVzZSBiZWNhdXNlIGNsaWVudHMgY2FuIG92ZXJyaWRlIChhbmQgaGF2ZSBvdmVy
cmlkZGVuKSBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93cywgc28gaXQgbmVlZHMg
dG8gYmUgY2FsbGVkLgogICAgIC8vIEZvciB0aGlzIHNhbWUgcmVhc29uLCB0aGlzIGNhbid0IGJl
IG1vdmVkIHRvIFdlYlZpZXdJbXBsIHdpdGhvdXQgY2FyZS4KLSAgICBjbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uKGFuaW1hdGUgPyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0IDogV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbihhbmltYXRlID8gV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6
RmFkZU91dCA6IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUp
OwogICAgIFttX3ZpZXcgX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsK
IH0KIApAQCAtMzU0NCw3ICszNTQ0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRl
bnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpCiAgICAgICAgICAgICBbW2dldERE
QWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIHJlcXVlc3RCdWJibGVDbG9zdXJl
VW5hbmNob3JPbkZhaWx1cmU6WUVTXTsKICAgICB9CiAKLSAgICBjbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRp
b246OkZhZGVPdXQpOworICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29y
ZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiAKICAgICBbbV9p
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRv
d3NdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNDE3ZTExZDQ5NjYw
N2EzMDBjZmI2NWZlZDZjN2Y0Y2FjZTBjOTI2ZC4uYTM1NzMxZWMwMWQ5ZTVlMTUwMmU2MDVlNTI4
MmZlZjBiMDQ1ZDY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTA2
LDggKzEwNiw4IEBAIGNsYXNzIFNlbGVjdGlvbkRhdGE7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQ
b2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90
OwogZW51bSBjbGFzcyBTY3JvbGxiYXJTdHlsZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5k
aWNhdG9yTGlmZXRpbWUgOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlz
c2FsQW5pbWF0aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25z
ZSA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBBcHBIaWdobGlnaHQ7CkBAIC0zODUsOCArMzg1LDggQEAg
cHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhclRl
eHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlv
bikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlz
bWlzc2FsQW5pbWF0aW9uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3JB
bmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgPSAwOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkaWRQ
ZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZv
JikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWE1
YzM0OTA3MzNjMmIwZTkxZGU4NDg4OGUzMDA0YWU5YmFiODQ1ZC4uNDk5MzE0MzQ2NzFjMmRiYWUx
ZjU2MGZlMzdiMDYxZTljNjI4NGQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0yMTgsNyArMjE4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0F0dHJpYnV0
ZWRTdHJpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGlj
YXRvcldpbmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2luY2x1
ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAjaW5jbHVkZSA8d3RmL2NvY29hL0VudGl0bGVtZW50
cy5oPgpAQCAtNjUxMSw3ICs2NTEwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRp
Y2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEsIHVpbnQKIHsKICAg
ICAvLyBGSVhNRTogTWFrZSBUZXh0SW5kaWNhdG9yV2luZG93IGEgcGxhdGZvcm0taW5kZXBlbmRl
bnQgcHJlc2VudGF0aW9uYWwgdGhpbmcgKCJUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uIj8pLgog
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRl
eHRJbmRpY2F0b3I6OmNyZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8VGV4dEluZGlj
YXRvcldpbmRvd0xpZmV0aW1lPihsaWZldGltZSkpOworICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0
SW5kaWNhdG9yKFRleHRJbmRpY2F0b3I6OmNyZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lPihsaWZldGltZSkpOwogI2Vsc2UKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgpAQCAtNjUyMCw3ICs2NTE5LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRhdGEm
IGluZGljYXRvckRhdGEsIHVpbnQKIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVhclRleHRJbmRpY2F0
b3IoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBhZ2VDbGllbnQoKS5jbGVhclRleHRJ
bmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7
CisgICAgcGFnZUNsaWVudCgpLmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggNWI0NTdkZmI2MDMxZWY2MzlhZDNhZTNmY2JmZmZhZTZhNmQ4NTcwMi4uZmNiZDQ5NjhkNDE1
ZGY2NzY3YTFhZjk5OGJiOWNkY2JlMWEwZWMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTExNDksNyArMTE0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvdW50
U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8RmluZE9wdGlvbnM+LCB1bnNp
Z25lZCBtYXhNYXRjaENvdW50KTsKICAgICB2b2lkIHJlcGxhY2VNYXRjaGVzKFZlY3Rvcjx1aW50
MzJfdD4mJiBtYXRjaEluZGljZXMsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0LCBib29s
IHNlbGVjdGlvbk9ubHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKICAg
ICB2b2lkIGRpZENvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCB1aW50MzJfdCBtYXRj
aENvdW50KTsKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dElu
ZGljYXRvckRhdGEmLCB1aW50NjRfdCAvKiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlm
ZXRpbWUgKi8gbGlmZXRpbWUgPSAwIC8qIFBlcm1hbmVudCAqLyk7CisgICAgdm9pZCBzZXRUZXh0
SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJiwgdWludDY0X3QgLyog
V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lICovIGxpZmV0aW1lID0gMCAvKiBQZXJtYW5l
bnQgKi8pOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0
KTsKICAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDNmYmUxYjE3ZmY2NjA0NDll
OTkzZWY3ZThhZmMwYmEwMDI0ZmQ4N2EuLjgxZmIwMTgzM2NlZTllNWQ5MTU5NTQxOGQyYjVhMGFl
NGI4NDRjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5oCkBAIC0xMzgsOCArMTM4LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViRGF0
ZVRpbWVQaWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYpIGZpbmFsOwog
I2VuZGlmCiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJyaWRlOwot
ICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dE
aXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihS
ZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGlt
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dElu
ZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRUZXh0SW5k
aWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzaG93
U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYp
PiYmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbQppbmRleCA0MGI3NjIzNjM5ZmZhZDQxYjQ0MjQ2OGViMmUxODFhYTM0ZjAx
NjUzLi5iOTY4MzNlMDhjMGU4YWMxNzE5NWNlM2JhYjIxNmUyZmNhN2ZiZDIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00Nzks
MTYgKzQ3OSwzMSBAQCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKQogICAgIHJldHVybiBudWxscHRyOwog
fQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNh
dG9yPiB0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpCiB7CisjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQorICAgIFttX2NvbnRlbnRWaWV3IHNldFVwVGV4dEluZGljYXRvcjp0ZXh0
SW5kaWNhdG9yXTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHRleHRJbmRpY2F0b3IpOworI2Vu
ZGlmCiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5k
aWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xl
YXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24g
ZGlzbWlzc2FsQW5pbWF0aW9uKQogeworI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBb
bV9jb250ZW50VmlldyBjbGVhclRleHRJbmRpY2F0b3I6ZGlzbWlzc2FsQW5pbWF0aW9uXTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGRpc21pc3NhbEFuaW1hdGlvbik7CisjZW5kaWYKIH0KIAot
dm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZs
b2F0KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzKGZsb2F0IGFuaW1hdGlvblByb2dyZXNzKQogeworI2lmIEVOQUJMRShBUFBfSElHSExJR0hU
UykKKyAgICBbbV9jb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6
YW5pbWF0aW9uUHJvZ3Jlc3NdOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYW5pbWF0aW9uUHJv
Z3Jlc3MpOworI2VuZGlmCiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaAppbmRleCA4ODZhZTc1ZTY3YjU2YWViMzgzNzg0ZjU5NmM5ZDhmNzI5MTI1
NmU3Li5kMjQ1MmZjYWRkNTRlOGFkYjQ1M2Y2MGNhMGM4YWZiOTg5OWNhZTA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oCkBAIC04OSw2ICs4OSw3IEBAIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogZW51
bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3MgTW91
c2VFdmVudFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6
IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1
aW50OF90OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIHN0cnVjdCBEcmFnSXRlbTsKQEAg
LTEzMiw2ICsxMzMsMTAgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogI2VuZGlmCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKK0BjbGFzcyBXZWJUZXh0SW5kaWNhdG9yTGF5ZXI7
CisjZW5kaWYKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRB
ZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQmVmb3JlLmg+CiAjZW5k
aWYKQEAgLTMzMCw2ICszMzUsMTEgQEAgZW51bSBjbGFzcyBQcm9jZWVkV2l0aEltYWdlRXh0cmFj
dGlvbiA6IGJvb2wgewogI2VuZGlmCiAgICAgUmV0YWluUHRyPFVJUHJldmlld0l0ZW1Db250cm9s
bGVyPiBfcHJldmlld0l0ZW1Db250cm9sbGVyOwogI2VuZGlmCisgICAgCisjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQorICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiBfdGV4dElu
ZGljYXRvcjsKKyAgICBSZXRhaW5QdHI8V2ViVGV4dEluZGljYXRvckxheWVyPiBfdGV4dEluZGlj
YXRvckxheWVyOworI2VuZGlmCiAKICNpZiBVU0UoVUlDT05URVhUTUVOVSkKICAgICBSZXRhaW5Q
dHI8VUlUYXJnZXRlZFByZXZpZXc+IF9jb250ZXh0TWVudUludGVyYWN0aW9uVGFyZ2V0ZWRQcmV2
aWV3OwpAQCAtNjcwLDYgKzY4MCwxMiBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAodm9p
ZClfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWU7CiAtICh2b2lkKV9kaWRDb21t
aXRMb2FkRm9yTWFpbkZyYW1lOwogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorLSAodm9p
ZClzZXRVcFRleHRJbmRpY2F0b3I6KFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPil0ZXh0SW5k
aWNhdG9yOworLSAodm9pZClzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6KGZsb2F0
KU5TQW5pbWF0aW9uUHJvZ3Jlc3M7CistICh2b2lkKWNsZWFyVGV4dEluZGljYXRvcjooV2ViQ29y
ZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb247CisjZW5kaWYKKwog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRVc2VDb250ZXh0TWVu
dXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZEF2b2lkUmVz
aXppbmdXaGVuSW5wdXRWaWV3Qm91bmRzQ2hhbmdlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBCT09MIF9zaG91bGRBdm9pZFNjcm9sbGluZ1doZW5Gb2N1c2VkQ29udGVudElzVmlz
aWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGE2MDg2OWE3N2Y5MjU3MGIyMGM5ZjcxOTNkYWNkMTAx
MTIxZmExN2EuLmY3YzNkYjViMjBiM2YzN2I3MmM3ODg4Mjg2MzhkZjRiN2U3MzYyODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQpAQCAtMTcyLDYgKzE3MiwxMSBAQAogI2ltcG9ydCAiUGVwcGVyVUlDb3JlU1BJ
LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyNpbXBvcnQgPFdlYkNv
cmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJUZXh0SW5kaWNh
dG9yTGF5ZXIuaD4KKyNlbmRpZgorCiAjaW1wb3J0IDxwYWwvaW9zL01hbmFnZWRDb25maWd1cmF0
aW9uU29mdExpbmsuaD4KIAogI2lmIEhBVkUoTElOS19QUkVWSUVXKSAmJiBVU0UoVUlDT05URVhU
TUVOVSkKQEAgLTk1ODIsNiArOTU4Nyw2OSBAQCAtICh2b2lkKV9pbnZva2VBbGxBY3Rpb25zVG9Q
ZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOihXZWJLaXQ6OlByb2NlZWRXaQogCiAj
ZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hM
SUdIVFMpCistICh2b2lkKXNldFVwVGV4dEluZGljYXRvcjooUmVmPFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3I+KXRleHRJbmRpY2F0b3IKK3sKKyAgICBpZiAoX3RleHRJbmRpY2F0b3IgPT0gdGV4dElu
ZGljYXRvci5wdHIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFtzZWxmIHRlYXJkb3du
VGV4dEluZGljYXRvckxheWVyXTsKKyAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlvdXNQZXJmb3Jt
UmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHN0YXJ0RmFkZU91dCkg
b2JqZWN0Om5pbF07CisgICAgCisgICAgX3RleHRJbmRpY2F0b3IgPSB0ZXh0SW5kaWNhdG9yLnB0
cigpOworCisgICAgQ0dSZWN0IGZyYW1lID0gX3RleHRJbmRpY2F0b3ItPnRleHRCb3VuZGluZ1Jl
Y3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKTsKKyAgICBfdGV4dEluZGljYXRvckxheWVyID0gYWRv
cHROUyhbW1dlYlRleHRJbmRpY2F0b3JMYXllciBhbGxvY10gaW5pdFdpdGhGcmFtZTpmcmFtZQor
ICAgICAgICB0ZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3IgbWFyZ2luOkNHU2l6ZVplcm8gb2Zm
c2V0OkNHUG9pbnRaZXJvXSk7CisgICAgCisgICAgW1tzZWxmIGxheWVyXSBhZGRTdWJsYXllcjpf
dGV4dEluZGljYXRvckxheWVyLmdldCgpXTsKKworICAgIGlmIChfdGV4dEluZGljYXRvci0+cHJl
c2VudGF0aW9uVHJhbnNpdGlvbigpICE9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JQcmVzZW50YXRp
b25UcmFuc2l0aW9uOjpOb25lKQorICAgICAgICBbX3RleHRJbmRpY2F0b3JMYXllciBwcmVzZW50
XTsKKyAgICAKKyAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKHN0YXJ0RmFkZU91
dCkgd2l0aE9iamVjdDpzZWxmIGFmdGVyRGVsYXk6V2ViQ29yZTo6dGltZUJlZm9yZUZhZGVTdGFy
dHNdOworfQorCistICh2b2lkKWNsZWFyVGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb24KK3sKKyAgICBSZWZQdHI8V2ViQ29yZTo6
VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9IFdURk1vdmUoX3RleHRJbmRpY2F0b3IpOwor
ICAgIAorICAgIGlmIChbX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091dF0pCisgICAgICAg
IHJldHVybjsKKworICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFtfdGV4dEluZGljYXRvckxheWVy
IGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5kaWNhdG9yXSAmJiBbX3RleHRJ
bmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7CisgICAgICAg
IFtzZWxmIHN0YXJ0RmFkZU91dF07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbc2Vs
ZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07Cit9CisKKy0gKHZvaWQpc2V0VGV4dEluZGlj
YXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClhbmltYXRpb25Qcm9ncmVzcworeworICAgIGlm
ICghX3RleHRJbmRpY2F0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIFtfdGV4dEluZGljYXRv
ckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNzOmFuaW1hdGlvblByb2dyZXNzXTsKK30KKworLSAo
dm9pZCl0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcgoreworICAgIFtfdGV4dEluZGljYXRvckxh
eWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICBfdGV4dEluZGljYXRvckxheWVyID0gbmls
OworfQorCistICh2b2lkKXN0YXJ0RmFkZU91dAoreworICAgIFtfdGV4dEluZGljYXRvckxheWVy
IHNldEZhZGluZ091dDpZRVNdOworICAgICAgICAKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciBo
aWRlV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVu
dFZpZXc+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgp
OworICAgICAgICBbc3Ryb25nU2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07CisgICAg
fV07Cit9CisjZW5kaWYgLy8gRU5BQkxFKEFQUF9ISUdITElHSFRTKQorCiAjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb25BZGRpdGlvbnNBZnRlci5tbT4KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA1OGJlNGEyY2FlNDUzN2U1NDYz
YmRkMWI2YjViZTE2OGJhNjkyNzZjLi42NzU1ZjAxYjM4ODQ4MDg1YjBiNWFkMmFhYzhjZTFkMWU0
NGI3YWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGxNYWMuaApAQCAtMTU2LDggKzE1Niw4IEBAIHByaXZhdGU6CiAKICAgICBSZWY8V2ViQ29yZTo6
VmFsaWRhdGlvbkJ1YmJsZT4gY3JlYXRlVmFsaWRhdGlvbkJ1YmJsZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OlNldHRpbmdzJikgZmluYWw7
CiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+
LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJyaWRlOwotICAgIHZv
aWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2Vi
Q29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9y
QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBlbnRlckFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpp
bmRleCA3ODhhMjc5NmRiYjFjZjQ1OWVmZTEyNGM2ZjBkN2QwYTY5OGI3ZTliLi42MTRiNTk2NmM2
NGFiY2M0ZDQxMGIwM2RhZDRhNzAzOWNkZmZjNDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC01NjksMTIgKzU2OSwxMiBAQCB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhclNhZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5GcmFt
ZU5hdmlnYXRpb24oKQogICAgIG1faW1wbC0+Y2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZGb3JN
YWluRnJhbWVOYXZpZ2F0aW9uKCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJ
bmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNl
dFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JMaWZldGltZSBsaWZldGltZSkKIHsKICAgICBtX2ltcGwtPnNldFRleHRJ
bmRpY2F0b3IodGV4dEluZGljYXRvci5nZXQoKSwgbGlmZXRpbWUpOwogfQogCi12b2lkIFBhZ2VD
bGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbiBkaXNtaXNzYWxBbmltYXRpb24pCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFu
aW1hdGlvbiBkaXNtaXNzYWxBbmltYXRpb24pCiB7CiAgICAgbV9pbXBsLT5jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uKGRpc21pc3NhbEFuaW1hdGlvbik7CiB9CkBAIC02NzIsOSArNjcy
LDkgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29u
c3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGkKICAgICBtX2ltcGwtPnByZXBhcmVGb3JEaWN0
aW9uYXJ5TG9va3VwKCk7CiAKICAgICBEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoZGljdGlv
bmFyeVBvcHVwSW5mbywgbV92aWV3LCBbdGhpc10oVGV4dEluZGljYXRvciYgdGV4dEluZGljYXRv
cikgewotICAgICAgICBtX2ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgVGV4
dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOworICAgICAgICBtX2ltcGwtPnNl
dFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0
aW1lOjpQZXJtYW5lbnQpOwogICAgIH0sIG51bGxwdHIsIFt0aGlzXSgpIHsKLSAgICAgICAgbV9p
bXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgICAgICBtX2ltcGwtPmNsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbjo6Tm9uZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4
IDliYWE4YmUyNGM3N2M3NDZlNzkzZjQxMzc4ZGNkMDBiM2NmNGM0ZmUuLmJlYzBkYzEyOGM1MDY3
ZDZlOTI3ZGZjZWRiNDdhN2ZiZWQ4MmU0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQpAQCAtNDkw
LDkgKzQ5MCw5IEBAIC0gKGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4p
X2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JUZXh0CiAgICAgX3ZpZXdJbXBsLT5wcmVwYXJlRm9yRGlj
dGlvbmFyeUxvb2t1cCgpOwogCiAgICAgcmV0dXJuIFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6
OmFuaW1hdGlvbkNvbnRyb2xsZXJGb3JQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBfdmlldywg
W3NlbGZdKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAg
X3ZpZXdJbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50KTsKKyAgICAgICAgX3ZpZXdJbXBsLT5z
ZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZl
dGltZTo6UGVybWFuZW50KTsKICAgICB9LCBudWxscHRyLCBbc2VsZl0oKSB7Ci0gICAgICAgIF92
aWV3SW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICAgICAgX3ZpZXdJbXBs
LT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JE
aXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCmluZGV4IDNmMmU5ZDUwZmZiMDAxYzI0NmQ0MTcxMGUwM2I0NDliZGM1ODY3ODQuLmI2YjA4
YzJmYzRkNDU5YWMwNmFhMTVhMThmMjdlYTJmMjYzZTIyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCkBAIC04OCw2ICs4OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKSkKICNpbmNsdWRlICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgi
CkBAIC0xMjY5LDYgKzEyNzAsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnN0b3JlQXBwSGln
aGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmIGhpZ2hsaWdodCkgY29uc3QKICAgICBoaWdo
bGlnaHQucmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA9IG1fcGFnZS5oaWdobGlnaHRSZXF1ZXN0T3Jp
Z2luYXRlZEluQXBwKCk7CiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U3RvcmVBcHBIaWdobGlnaHQoaGlnaGxpZ2h0KSk7CiB9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJiBpbmRp
Y2F0b3JEYXRhKSBjb25zdAoreworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yRGF0YSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6VGVtcG9yYXJ5KSkpOworfQogI2VuZGlm
CiAKIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OnNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0
cmluZyh1bnNpZ25lZCBrZXlTaXplSW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlU3RyaW5n
LCBjb25zdCBVUkwmIHVybCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA0ZWVmMWY4YWQx
YzUyYWMwNTE2NTgyYmExNjE1NWNhZDAxYTE1NTcyLi5kN2VmYjA4ODU5ZGQwNTk0MDY2ZTg0M2Nh
MjYwYjAxYTQ0ZTYzZmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNTEsNiArMzUxLDcgQEAg
cHJpdmF0ZToKIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICB2b2lkIHN0b3JlQXBw
SGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lk
IHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmKSBjb25z
dCBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKaW5kZXggMDA5
MDE0YTUzNmJmOWQ2OGRmYmU1ZGExNDBkZGI1MTdhZWFjZDIwNy4uY2UyMWQ2N2M0OGI5NjA5ZWZh
Mzk1NjZhZjAyOTNiOTNhY2NlZGRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIGJvb2wg
RmluZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRJbmRpY2F0b3IoRnJhbWUmIHNlbGVjdGVkRnJhbWUs
IGJvb2wgaXNTaG93aW5nT3ZlCiAKICAgICBtX2ZpbmRJbmRpY2F0b3JSZWN0ID0gZW5jbG9zaW5n
SW50UmVjdChpbmRpY2F0b3ItPnNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSk7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yLT5kYXRhKCksIHN0YXRpY19jYXN0
PHVpbnQ2NF90Pihpc1Nob3dpbmdPdmVybGF5ID8gVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1l
OjpQZXJtYW5lbnQgOiBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsK
KyAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0VGV4dEluZGlj
YXRvcihpbmRpY2F0b3ItPmRhdGEoKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGlzU2hvd2luZ092
ZXJsYXkgPyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudCA6IFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6VGVtcG9yYXJ5KSkpOwogI2VuZGlmCiAgICAgbV9p
c1Nob3dpbmdGaW5kSW5kaWNhdG9yID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBmM2Q0
NzE2YTg5MzNkOWYyNDJmOGVmMTIxNWE4NjYyMzQwZjg5N2E1Li42ZTE4ZjJiMjQyMTcxM2EyYzQw
ZDc0NDE4ZDUyNGI4NTM2NDExNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTUzLDYgKzE1Myw3
IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgdm9pZCBzdG9y
ZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QgZmluYWw7CisgICAg
dm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJikg
Y29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KaW5kZXggNDUzOWNlNmY2NGQwMGIwYmIwMDI4M2VhYzgxNTMyOTc5MDA0YzRlOC4u
NDdlNzExYTY4MmIzMjkzMzA1ZDc3MjA3YTg0NzEzMzc5MmYwN2NmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbQpAQCAtNzE4LDYgKzcxOCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxEYXRlVGltZUNob29zZXI+
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGF0ZVRpbWVDaG9vc2VyKERhdGVUaW1lCiB2b2lkIFdl
YkNocm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYp
IGNvbnN0CiB7CiB9Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvcihjb25z
dCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSkgY29uc3QKK3sKK30K
ICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDBmZTJhNTA5NmM3ZTI2ZjMyMDMy
NWUzNjhiZmYwZGJiOWYwNzJjNzYuLjYxZDZmNGU4NjU5NGRjYWI3ZTYxNzkwNzA0YjcwOWVmNWNj
YzJiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbQpAQCAtNTk1Myw3ICs1OTUzLDcgQEAgLSAodm9pZClfbG9va1VwSW5EaWN0aW9uYXJ5RnJv
bU1lbnU6KGlkKXNlbmRlcgogCiAtICh2b2lkKXF1aWNrTG9va1dpdGhFdmVudDooTlNFdmVudCAq
KWV2ZW50CiB7Ci0gICAgW1tzZWxmIF93ZWJWaWV3XSBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFu
aW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpG
YWRlT3V0XTsKKyAgICBbW3NlbGYgX3dlYlZpZXddIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRd
OwogICAgIFtzdXBlciBxdWlja0xvb2tXaXRoRXZlbnQ6ZXZlbnRdOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIubW0KaW5kZXggY2U2MmJmYTUxNjE3N2M4YzM2YWVkZDdiYTVmYTRjMjc1
MTBkNmY3MS4uYmU1YjZhMmZiMDE1NGJjMzZmY2QzOGJiMWRhZDg5ZTA5YzcwZTMzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQpAQCAtMTIyLDcgKzEyMiw3IEBAIC0gKHZvaWQpd2Vi
VmlldzooV2ViVmlldyAqKXdlYlZpZXcgZGlkSGFuZGxlU2Nyb2xsV2hlZWw6KE5TRXZlbnQgKill
dmVudAogewogICAgIFtfY3VycmVudFFMUHJldmlld01lbnVJdGVtIGNsb3NlXTsKICAgICBbc2Vs
ZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Ci0gICAgW193ZWJWaWV3IF9jbGVhclRleHRJ
bmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb246Ok5vbmVdOworICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0
aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25l
XTsKIH0KIAogLSAoTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0
ZUFjdGlvblJlY29nbml6ZXIKQEAgLTEzOSw3ICsxMzksNyBAQCAtICh2b2lkKV9jYW5jZWxJbW1l
ZGlhdGVBY3Rpb24KICAgICB9CiAKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0
ZV07Ci0gICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAg
IFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKIH0KIAogLSAodm9pZClfY2xl
YXJJbW1lZGlhdGVBY3Rpb25TdGF0ZQpAQCAtMjUxLDcgKzI1MSw3IEBAIC0gKHZvaWQpaW1tZWRp
YXRlQWN0aW9uUmVjb2duaXplckRpZENhbmNlbEFuaW1hdGlvbjooTlNJbW1lZGlhdGVBY3Rpb25H
ZXN0dXJlUmVjCiAKICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9n
cmVzczowXTsKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Ci0gICAgW193
ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOworICAgIFtfd2ViVmlldyBfY2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlz
c2FsQW5pbWF0aW9uOjpOb25lXTsKICAgICBbX3dlYlZpZXcgX3NldE1haW50YWluc0luYWN0aXZl
U2VsZWN0aW9uOk5PXTsKIH0KIApAQCAtMjkzLDcgKzI5Myw3IEBAIC0gKGlkIDxOU0ltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9kZWZhdWx0QW5pbWF0aW9uQ29udHJvbGxlcgog
ICAgICAgICAgICAgYXV0byBsaW5rUmFuZ2UgPSBtYWtlUmFuZ2VTZWxlY3RpbmdOb2RlQ29udGVu
dHMoKl9oaXRUZXN0UmVzdWx0LlVSTEVsZW1lbnQoKSk7CiAgICAgICAgICAgICBhdXRvIGluZGlj
YXRvciA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhSYW5nZShsaW5rUmFuZ2Us
IHsgV2ViQ29yZTo6VGV4dEluZGljYXRvck9wdGlvbjo6VXNlQm91bmRpbmdSZWN0QW5kUGFpbnRB
bGxDb250ZW50Rm9yQ29tcGxleFJhbmdlcyB9LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yUHJlc2Vu
dGF0aW9uVHJhbnNpdGlvbjo6RmFkZUluKTsKICAgICAgICAgICAgIGlmIChpbmRpY2F0b3IpCi0g
ICAgICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0
aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50
XTsKKyAgICAgICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRv
ciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRd
OwogCiAgICAgICAgICAgICBRTFByZXZpZXdNZW51SXRlbSAqaXRlbSA9IFtOU01lbnVJdGVtIHN0
YW5kYXJkUXVpY2tMb29rTWVudUl0ZW1dOwogICAgICAgICAgICAgaXRlbS5wcmV2aWV3U3R5bGUg
PSBRTFByZXZpZXdTdHlsZVBvcG92ZXI7CkBAIC0zNzksNyArMzc5LDcgQEAgLSAoTlNSZWN0RWRn
ZSltZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtIHByZWZlcnJlZEVkZ2VGb3JQb2ludDoo
TlNQb2ludClwb2kKIC0gKHZvaWQpbWVudUl0ZW1EaWRDbG9zZTooTlNNZW51SXRlbSAqKW1lbnVJ
dGVtCiB7CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2Vi
VmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbX3dlYlZpZXcgX2Ns
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21p
c3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAKIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IGVs
ZW1lbnRCb3VuZGluZ0JveEluV2luZG93Q29vcmRpbmF0ZXNGcm9tTm9kZShXZWJDb3JlOjpOb2Rl
KiBub2RlKQpAQCAtNDY0LDkgKzQ2NCw5IEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkCiAgICAg
X2N1cnJlbnRBY3Rpb25Db250ZXh0ID0gW2RldGVjdGVkSXRlbS0+YWN0aW9uQ29udGV4dCBjb250
ZXh0Rm9yVmlldzpfd2ViVmlldyBhbHRNb2RlOllFUyBpbnRlcmFjdGlvblN0YXJ0ZWRIYW5kbGVy
Ol4oKSB7CiAgICAgfSBpbnRlcmFjdGlvbkNoYW5nZWRIYW5kbGVyOl4oKSB7CiAgICAgICAgIGlm
IChpbmRpY2F0b3IpCi0gICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6Kmlu
ZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1l
OjpQZXJtYW5lbnRdOworICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOipp
bmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVy
bWFuZW50XTsKICAgICB9IGludGVyYWN0aW9uU3RvcHBlZEhhbmRsZXI6XigpIHsKLSAgICAgICAg
W193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbX3dl
YlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfV07CiAKICAgICBbX2N1cnJl
bnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfd2ViVmlldy53aW5kb3cgY29udmVy
dFJlY3RUb1NjcmVlbjpkZXRlY3RlZEl0ZW0tPmJvdW5kaW5nQm94XV07CkBAIC00OTcsOSArNDk3
LDkgQEAgLSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1h
dGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWQKICAgICBfY3VycmVudEFjdGlvbkNvbnRleHQg
PSBbYWN0aW9uQ29udGV4dCBjb250ZXh0Rm9yVmlldzpfd2ViVmlldyBhbHRNb2RlOllFUyBpbnRl
cmFjdGlvblN0YXJ0ZWRIYW5kbGVyOl4oKSB7CiAgICAgfSBpbnRlcmFjdGlvbkNoYW5nZWRIYW5k
bGVyOl4oKSB7CiAgICAgICAgIGlmIChpbmRpY2F0b3IpCi0gICAgICAgICAgICBbX3dlYlZpZXcg
X3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICAgICAgW193ZWJWaWV3
IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJ
bmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKICAgICB9IGludGVyYWN0aW9uU3RvcHBlZEhh
bmRsZXI6XigpIHsKLSAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXRdOworICAgICAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRp
b246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAg
ICAgfV07CiAKICAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltf
d2ViVmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjplbGVtZW50Qm91bmRpbmdCb3hJbldp
bmRvd0Nvb3JkaW5hdGVzRnJvbU5vZGUoX2hpdFRlc3RSZXN1bHQuVVJMRWxlbWVudCgpKV1dOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDcyNjRiZmRj
ZDcyZGUxMzY5NjBhMzIzOGNiMDAyMTZmYjg5MmZmN2MuLjk5MmYzZTA5NzRkNjQ1YmZlMjVkNzMx
OTgzMmQ4NDFmNzcwZWU2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KQEAgLTkxMDAsMTEgKzkxMDAsMTEgQEAgLSAoaWQpX2FuaW1hdGlvbkNvbnRyb2xs
ZXJGb3JEaWN0aW9uYXJ5TG9va3VwUG9wdXBJbmZvOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXIK
ICAgICBbc2VsZiBfcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXBdOwogCiAgICAgcmV0dXJuIFdl
YkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OmFuaW1hdGlvbkNvbnRyb2xsZXJGb3JQb3B1cChkaWN0
aW9uYXJ5UG9wdXBJbmZvLCBzZWxmLCBbc2VsZl0oV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4
dEluZGljYXRvcikgewotICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNh
dG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBl
cm1hbmVudF07CisgICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Ig
d2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsK
ICAgICB9LCBbc2VsZl0oV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0
ZXMpIHsKICAgICAgICAgcmV0dXJuIFtzZWxmIF9jb252ZXJ0UmVjdEZyb21Sb290VmlldzpyZWN0
SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICB9LCBbc2VsZl0oKSB7Ci0gICAgICAgIFtzZWxm
IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbc2VsZiBfY2xlYXJU
ZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICB9KTsKIH0KIApAQCAtOTEyMCwxMCArOTEyMCwxMCBA
QCAtICh2b2lkKV9zZXRQcmVzc3VyZUV2ZW50OihOU0V2ZW50ICopZXZlbnQKIAogLSAodm9pZClf
c2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvcgog
ewotICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1l
OldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICBb
c2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiB9CiAKLS0gKHZvaWQpX3NldFRl
eHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExp
ZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpbGlmZXRpbWUKKy0g
KHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRp
Y2F0b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpbGlmZXRp
bWUKIHsKICAgICBpZiAoIV9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93KQogICAgICAgICBf
cHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdyA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvdz4oc2VsZik7CkBAIC05MTMzLDEwICs5MTMzLDEwIEBAIC0gKHZvaWQpX3Nl
dFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0
aExpZmV0aW1lOihXCiAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPnNldFRleHRJ
bmRpY2F0b3IodGV4dEluZGljYXRvciwgTlNSZWN0VG9DR1JlY3QodGV4dEJvdW5kaW5nUmVjdElu
U2NyZWVuQ29vcmRpbmF0ZXMpLCBsaWZldGltZSk7CiB9CiAKLS0gKHZvaWQpX2NsZWFyVGV4dElu
ZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb24pYW5pbWF0aW9uCistICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlv
bgogewogICAgIGlmIChfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdykKLSAgICAgICAgX3By
aXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICAgICAg
X3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKICAgICBfcHJpdmF0
ZS0+dGV4dEluZGljYXRvcldpbmRvdyA9IG51bGxwdHI7CiB9CiAKQEAgLTkxNjgsMTggKzkxNjgs
MTggQEAgLSAodm9pZClfc2hvd0RpY3Rpb25hcnlMb29rdXBQb3B1cDooY29uc3QgV2ViQ29yZTo6
RGljdGlvbmFyeVBvcHVwSW5mbyYpZGljdGlvbmEKICAgICBbc2VsZiBfcHJlcGFyZUZvckRpY3Rp
b25hcnlMb29rdXBdOwogCiAgICAgV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVw
KGRpY3Rpb25hcnlQb3B1cEluZm8sIHNlbGYsIFtzZWxmXShXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
JiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJ
bmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGlt
ZTo6UGVybWFuZW50XTsKKyAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGlj
YXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5l
bnRdOwogICAgIH0sIFtzZWxmXShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdEluUm9vdFZpZXdDb29y
ZGluYXRlcykgewogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRSZWN0RnJvbVJvb3RWaWV3
OnJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIH0sIFt3ZWFrU2VsZiA9IFdlYWtPYmpD
UHRyPFdlYlZpZXc+KHNlbGYpXSgpIHsKLSAgICAgICAgW3dlYWtTZWxmLmdldCgpIF9jbGVhclRl
eHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNt
aXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbd2Vha1NlbGYuZ2V0KCkgX2NsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfSk7CiB9CiAKICNpZiAhRU5BQkxFKFJFVkVBTCkK
IC0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOihOU05vdGlmaWNhdGlv
biAqKW5vdGlmaWNhdGlvbgogewotICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXRdOworICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNv
cmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogfQogI2VuZGlm
IC8vIEVOQUJMRShSRVZFQUwpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDczMzcyYTBiZGExNTNiZmEzNzYxMDIzY2Y0OTVk
Nzk2ZmE3MThjYzEuLmJhZDVmZDhhMTUwYWNmMmMzN2E1N2MzNjRmODIxOWRjZDQzNzMwYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFs
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwu
aApAQCAtMzE5LDggKzMxOSw4IEBAIFdlYkxheW91dE1pbGVzdG9uZXMga2l0TGF5b3V0TWlsZXN0
b25lcyhPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPik7CiAKICNpZiBQTEFURk9S
TShNQUMpICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCiAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9y
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yOwotLSAodm9pZClfc2V0VGV4
dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRoTGlm
ZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSlsaWZldGltZTsKLS0g
KHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOworLSAodm9pZClfc2V0VGV4
dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRoTGlm
ZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSlsaWZldGltZTsKKy0gKHZvaWQp
X2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JE
aXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOwogLSAodm9pZClfc2V0VGV4dEluZGljYXRvckFu
aW1hdGlvblByb2dyZXNzOihmbG9hdClwcm9ncmVzczsKIC0gKHZvaWQpX3Nob3dEaWN0aW9uYXJ5
TG9va3VwUG9wdXA6KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKWRpY3Rpb25h
cnlQb3B1cEluZm87CiAtIChpZClfYW5pbWF0aW9uQ29udHJvbGxlckZvckRpY3Rpb25hcnlMb29r
dXBQb3B1cEluZm86KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKWRpY3Rpb25h
cnlQb3B1cEluZm87Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428492</attachid>
            <date>2021-05-13 05:32:09 -0700</date>
            <delta_ts>2021-05-13 05:50:30 -0700</delta_ts>
            <desc>a modest proposal</desc>
            <filename>bug-225727-20210513053208.patch</filename>
            <type>text/plain</type>
            <size>52670</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjZTAzODVjY2Q4NzM1
MGIwYjg4YzM4MDA3ZWY5NmU2OTMxZDMwOS4uZmVjMDc4MzVmNzMyZTcxNTkzMDcxZTcyNTUyNjg0
MzY3YjZlMDZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEzICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMiAgRnJlZGVyaWMg
V2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9zZWxl
Y3Rpb24tPmlzTm9uZSgpKSBmYWlscyBpbiBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggMjM5NmZlMTIwMDgwYThmNjVjMzAwMzdhZjk4OGI4MTUxY2YxNmMyNC4uOTM1YjllYzA2
ZDY0ZjNjY2UxMGNhNjQ4YmZkN2NiYzcxOTQ5ODY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBA
QAorMjAyMS0wNS0xMyAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBmb3IgQXBwSGlnaGxpZ2h0cyBvbiBz
Y3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
c2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0byBhZGQgYSBib3VuY2UgdG8gYW4g
YXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Nyb2xsZWQgdG8uCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9lbmRFZGl0
aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VXBUZXh0SW5kaWNhdG9yOl0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dEluZGljYXRvcjpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXJdKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRdKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBjb25zdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAyMS0wNS0xMyAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTihyMjc3MjYyKTogdGVzdCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMDIuaHRtbCBpcyBjcmFzaGluZwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCmluZGV4IDNiOGEzNTRiMDFjNWNhZGZjMjc3OWFkOTkxODhhOGU1MjI2
NGU1NDguLmY4ZDVkNGQ5NTg3ODg2YjQwN2Y0MzgyM2YzN2I1YmE2YjhjMDRjNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNS0xMyAgTWVnYW4g
R2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5k
aWNhdG9yIGJvdW5jZSBmb3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBjb25zdCk6CisK
IDIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBO
b3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0
U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGln
aHRTdG9yYWdlLmNwcAppbmRleCAwZmI2ZGNlYTQwZjhmOTc0NGMwOWQ4MmEyZDA5MzkxNTg2NzRl
MzNlLi5kYTRmNzBhYzJmYzYxNjcxZjc3YTc3YjE3MDQ2Nzk2NGI4OWYzOTRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9y
YWdlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkFwcEhpZ2hsaWdodC5oIgogI2lu
Y2x1ZGUgIkFwcEhpZ2hsaWdodFJhbmdlRGF0YS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgorI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC00MCw2
ICs0MSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgogI2luY2x1ZGUg
IlNpbXBsZVJhbmdlLmgiCiAjaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKKyNpbmNsdWRlICJUZXh0
SW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTI2MCw4ICsyNjIsMTMgQEAgYm9vbCBBcHBIaWdobGlnaHRTdG9yYWdlOjphdHRl
bXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKEFwcEhpZ2hsaWdodFJhbmdlRGEKICAgICAK
ICAgICBzdHJvbmdEb2N1bWVudC0+YXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKS5hZGRBcHBIaWdobGln
aHQoU3RhdGljUmFuZ2U6OmNyZWF0ZSgqcmFuZ2UpKTsKICAgICAKLSAgICBpZiAoc2Nyb2xsID09
IFNjcm9sbFRvSGlnaGxpZ2h0OjpZZXMpCisgICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hs
aWdodDo6WWVzKSB7CisgICAgICAgIGF1dG8gdGV4dEluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6
OmNyZWF0ZVdpdGhSYW5nZShyYW5nZS52YWx1ZSgpLCB7IFRleHRJbmRpY2F0b3JPcHRpb246OkRv
Tm90Q2xpcFRvVmlzaWJsZVJlY3QgfSwgV2ViQ29yZTo6VGV4dEluZGljYXRvclByZXNlbnRhdGlv
blRyYW5zaXRpb246OkJvdW5jZSk7CisgICAgICAgIGlmICh0ZXh0SW5kaWNhdG9yKQorICAgICAg
ICAgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXRUZXh0SW5kaWNh
dG9yKHRleHRJbmRpY2F0b3ItPmRhdGEoKSk7CisgICAgICAgIAogICAgICAgICBUZW1wb3JhcnlT
ZWxlY3Rpb25DaGFuZ2Ugc2VsZWN0aW9uQ2hhbmdlKCpzdHJvbmdEb2N1bWVudCwgeyByYW5nZS52
YWx1ZSgpIH0sIHsgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpSZXZlYWxTZWxlY3Rpb24sIFRl
bXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21vb3RoU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rpb25P
cHRpb246Ok92ZXJyaWRlU21vb3RoU2Nyb2xsRmVhdHVyZUVuYWJsbWVudCB9KTsKKyAgICB9CiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
aW5kZXggZDllMDM4N2M5NmIyOGQzODdhYmNiOGIxNzczYjAxMGJiMjA2NzM1ZS4uN2I5MDI4MWNh
NzYyNzdiMzdmNGY5NmZlZTRlYzE1MzkyMmVjNGI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKQEAgLTU1NSw2ICs1NTUsMTAgQEAgdm9pZCBFbXB0eUNocm9tZUNsaWVu
dDo6c3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYpIGNvbnN0CiB9CiAjZW5kaWYKIAor
dm9pZCBFbXB0eUNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0Cit7Cit9CisKIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIEVt
cHR5Q2hyb21lQ2xpZW50OjpkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QKIHsK
ICAgICByZXR1cm4gRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5OjpzaGFyZWRFbXB0
eURpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAppbmRleCBkYjE1YjA5OGE0OTBhZTAzMzBlNTJjODBlMDAyOTQyMmZhNTRhZmJmLi5h
NzFkYzg1NGVmNTBjMzU5MmEwNGY1Mjc5YjVkNTE0OTk4NTE0ODU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xNDksNiArMTQ5LDggQEAgY2xhc3MgRW1wdHlDaHJvbWVD
bGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0
KEFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisgICAgdm9pZCBzZXRUZXh0
SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0b3JEYXRhJikgY29uc3QgZmluYWw7CisKICAgICBE
aXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5
KCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9v
c2VyJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUw
ZDNiZjQzMjNlMzI0MmZjODg2YTUxYTM3OGYyZDdkLi4xZmQ3YjA4ZTc3YTE2YThkNzc0M2FiMTNm
N2Y3MjFkYWJkMDliNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2
ICsxMjUsNyBAQCBzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFw
aGljc0RldmljZUFkYXB0ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbjsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0
b3JEYXRhOwogc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVz
OwogCkBAIC0zMTUsNiArMzE2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdG9yZUFw
cEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QgPSAwOwogI2VuZGlmCiAK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0
YSYpIGNvbnN0ID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBG
aWxlQ2hvb3NlciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NoYXJlU2hlZXQoU2hhcmVE
YXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
YWxsYmFjaykgeyBjYWxsYmFjayhmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRh
Y3RQaWNrZXIoY29uc3QgQ29udGFjdHNSZXF1ZXN0RGF0YSYsIFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8Q29udGFjdEluZm8+PiYmKT4mJiBjYWxsYmFjaykgeyBj
YWxsYmFjayhXVEY6Om51bGxvcHQpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCmlu
ZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLjVlZjg1YTI5YmY2
YjM4OWJkMGIxOGI0Nzk0YjIyMjQzYmYyNmE0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGlj
YXRvci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KICNp
bmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMzksNiArNDAsMjUgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0Owog
CiBzdHJ1Y3QgU2ltcGxlUmFuZ2U7CiAKK2NvbnN0ZXhwciBmbG9hdCBkcm9wU2hhZG93Qmx1clJh
ZGl1cyA9IDI7Citjb25zdGV4cHIgZmxvYXQgcmltU2hhZG93Qmx1clJhZGl1cyA9IDE7Citjb25z
dGV4cHIgU2Vjb25kcyBib3VuY2VBbmltYXRpb25EdXJhdGlvbiA9IDAuMTJfczsKK2NvbnN0ZXhw
ciBTZWNvbmRzIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5pbWF0aW9uRHVyYXRpb24g
KyAwLjJfczsKK2NvbnN0ZXhwciBmbG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEuMjU7CisKK2VudW0g
Y2xhc3MgVGV4dEluZGljYXRvckxpZmV0aW1lIDogdWludDhfdCB7CisgICAgLy8gVGhlIFRleHRJ
bmRpY2F0b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRpc21pc3NlZC4KKyAgICBQ
ZXJtYW5lbnQsCisKKyAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgYnJpZWZseSBpbmRp
Y2F0ZSB0aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21pc3MuCisgICAgVGVtcG9y
YXJ5Cit9OworCitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1
aW50OF90IHsKKyAgICBOb25lLAorICAgIEZhZGVPdXQKK307CisKIC8vIEZJWE1FOiBNb3ZlIFBy
ZXNlbnRhdGlvblRyYW5zaXRpb24gdG8gVGV4dEluZGljYXRvcldpbmRvdywgYmVjYXVzZSBpdCdz
IGFib3V0IHByZXNlbnRhdGlvbi4KIGVudW0gY2xhc3MgVGV4dEluZGljYXRvclByZXNlbnRhdGlv
blRyYW5zaXRpb24gOiB1aW50OF90IHsKICAgICBOb25lLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmgKaW5kZXggZmQxM2QwNDBlZmZiNzVi
MGVhMDA0ZWE1NTFlMzIyMTU0YWUxOGZhZi4uYmViZjkzYTM2ZWQ3MGU2YjMwOWRlODk1ODFhMTgz
NjY1ZTM4YzFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0
SW5kaWNhdG9yTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJ
bmRpY2F0b3JMYXllci5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCi1AaW50ZXJmYWNlIFdlYlRleHRJbmRpY2F0
b3JMYXllciA6IENBTGF5ZXIgeworV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJUZXh0SW5k
aWNhdG9yTGF5ZXIgOiBDQUxheWVyIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dEluZGljYXRv
cj4gX3RleHRJbmRpY2F0b3I7CiAgICAgUmV0YWluUHRyPE5TQXJyYXk+IF9ib3VuY2VMYXllcnM7
CiAgICAgQ0dTaXplIF9tYXJnaW47CkBAIC01MywzICs1Myw0IEBACiBAcHJvcGVydHkgKG5vbmF0
b21pYywgZ2V0dGVyPWlzRmFkaW5nT3V0KSBCT09MIGZhZGluZ091dDsKIAogQGVuZAorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1tCmlu
ZGV4IGI4YzRkOGYwNjdiYWNlZDA5YTgxMTgwODcxMDMwNmM1N2E3OTQzMDAuLjRkMWE1ODRmMWIw
MjgwNmE3M2MwZDFlOWEwODhiNmQ4MWNjMDAxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1tCkBAIC0zMCw2ICszMCw3IEBACiAj
aW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIlBhdGhVdGlsaXRpZXMuaCIKICNp
bXBvcnQgIlRleHRJbmRpY2F0b3IuaCIKKyNpbXBvcnQgIlRleHRJbmRpY2F0b3JXaW5kb3cuaCIK
ICNpbXBvcnQgIldlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIgogI2ltcG9ydCA8
cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVh
cnR6Q29yZVNQSS5oPgpAQCAtMzgsMTkgKzM5LDE0IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L05TQ29sb3JTUEkuaD4KICNlbmRpZgogCi1jb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNl
QW5pbWF0aW9uRHVyYXRpb24gPSAwLjEyOwogY29uc3RleHByIENGVGltZUludGVydmFsIGJvdW5j
ZVdpdGhDcm9zc2ZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIGNvbnN0ZXhwciBDRlRpbWVJ
bnRlcnZhbCBmYWRlSW5BbmltYXRpb25EdXJhdGlvbiA9IDAuMTU7Ci1jb25zdGV4cHIgQ0ZUaW1l
SW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25EdXJhdGlvbiAr
IDAuMjsKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlT3V0QW5pbWF0aW9uRHVyYXRpb24g
PSAwLjM7CiAKLWNvbnN0ZXhwciBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4yNTsKIGNvbnN0
ZXhwciBDR0Zsb2F0IGJvcmRlcldpZHRoID0gMDsKIGNvbnN0ZXhwciBDR0Zsb2F0IGNvcm5lclJh
ZGl1cyA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WCA9IDA7CiBjb25z
dGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WSA9IDE7Ci1jb25zdGV4cHIgQ0dGbG9hdCBk
cm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Ci1jb25zdGV4cHIgQ0dGbG9hdCByaW1TaGFkb3dCbHVy
UmFkaXVzID0gMTsKIAogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgdGV4dExheWVyS2V5ID0g
QCJUZXh0TGF5ZXIiOwogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgZHJvcFNoYWRvd0xheWVy
S2V5ID0gQCJEcm9wU2hhZG93TGF5ZXIiOwpAQCAtMTMyLDEzICsxMjgsMTIgQEAgLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG8KICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAg
cmV0dXJuIG5pbDsKICAgICAKKyAgICBzZWxmLmFuY2hvclBvaW50ID0gQ0dQb2ludFplcm87CiAg
ICAgc2VsZi5mcmFtZSA9IGZyYW1lOwogCiAgICAgX3RleHRJbmRpY2F0b3IgPSAmdGV4dEluZGlj
YXRvcjsKICAgICBfbWFyZ2luID0gbWFyZ2luOwogCi0gICAgc2VsZi5hbmNob3JQb2ludCA9IENH
UG9pbnRaZXJvOwotCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBjb250ZW50c0lt
YWdlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBjb250ZW50c0ltYWdlTG9naWNhbFNpemUgeyAx
LCAxIH07CiAgICAgaWYgKGF1dG8qIGNvbnRlbnRJbWFnZSA9IF90ZXh0SW5kaWNhdG9yLT5jb250
ZW50SW1hZ2UoKSkgewpAQCAtMTkyLDcgKzE4Nyw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0
aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRv
CiAgICAgICAgIFJldGFpblB0cjxDQUxheWVyPiBkcm9wU2hhZG93TGF5ZXIgPSBhZG9wdE5TKFtb
Q0FMYXllciBhbGxvY10gaW5pdF0pOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldERlbGVn
YXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07CiAgICAgICAg
IFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93Q29sb3I6ZHJvcFNoYWRvd0NvbG9yLmdldCgpXTsK
LSAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6ZHJvcFNoYWRvd0JsdXJS
YWRpdXNdOworICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1czpXZWJDb3Jl
Ojpkcm9wU2hhZG93Qmx1clJhZGl1c107CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hh
ZG93T2Zmc2V0OkNHU2l6ZU1ha2UoZHJvcFNoYWRvd09mZnNldFgsIGRyb3BTaGFkb3dPZmZzZXRZ
KV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFuc2xhdGVkUGF0
aC5wbGF0Zm9ybVBhdGgoKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93T3Bh
Y2l0eToxXTsKQEAgLTIwNCw3ICsxOTksNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFt
ZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0bwogICAg
ICAgICBbcmltU2hhZG93TGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5
ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldEZyYW1lOnll
bGxvd0hpZ2hsaWdodFJlY3RdOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93Q29s
b3I6cmltU2hhZG93Q29sb3IuZ2V0KCldOwotICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hh
ZG93UmFkaXVzOnJpbVNoYWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbcmltU2hhZG93TGF5ZXIg
c2V0U2hhZG93UmFkaXVzOldlYkNvcmU6OnJpbVNoYWRvd0JsdXJSYWRpdXNdOwogICAgICAgICBb
cmltU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFuc2xhdGVkUGF0aC5wbGF0Zm9ybVBhdGgo
KV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPZmZzZXQ6Q0dTaXplWmVyb107
CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPcGFjaXR5OjFdOwpAQCAtMjQ1LDcg
KzI0MCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0FLZXlmcmFtZUFuaW1hdGlvbj4gY3JlYXRlQm91
bmNlQW5pbWF0aW9uKENGVGltZUludGVydmFsIGR1cmF0CiAgICAgUmV0YWluUHRyPENBS2V5ZnJh
bWVBbmltYXRpb24+IGJvdW5jZUFuaW1hdGlvbiA9IFtDQUtleWZyYW1lQW5pbWF0aW9uIGFuaW1h
dGlvbldpdGhLZXlQYXRoOkAidHJhbnNmb3JtIl07CiAgICAgW2JvdW5jZUFuaW1hdGlvbiBzZXRW
YWx1ZXM6QFsKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpDQVRyYW5z
Zm9ybTNESWRlbnRpdHldLAotICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNE
OkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUobWlkQm91bmNlU2NhbGUsIG1pZEJvdW5jZVNjYWxlLCAx
KV0sCisgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0z
RE1ha2VTY2FsZShXZWJDb3JlOjptaWRCb3VuY2VTY2FsZSwgV2ViQ29yZTo6bWlkQm91bmNlU2Nh
bGUsIDEpXSwKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpDQVRyYW5z
Zm9ybTNESWRlbnRpdHldCiAgICAgICAgIF1dOwogICAgIFtib3VuY2VBbmltYXRpb24gc2V0RHVy
YXRpb246ZHVyYXRpb25dOwpAQCAtMjk0LDcgKzI4OSw3IEBAIC0gKENGVGltZUludGVydmFsKV9h
bmltYXRpb25EdXJhdGlvbgogICAgIGlmIChbc2VsZiBpbmRpY2F0b3JXYW50c0JvdW5jZToqX3Rl
eHRJbmRpY2F0b3JdKSB7CiAgICAgICAgIGlmIChpbmRpY2F0b3JXYW50c0NvbnRlbnRDcm9zc2Zh
ZGUoKl90ZXh0SW5kaWNhdG9yKSkKICAgICAgICAgICAgIHJldHVybiBib3VuY2VXaXRoQ3Jvc3Nm
YWRlQW5pbWF0aW9uRHVyYXRpb247Ci0gICAgICAgIHJldHVybiBib3VuY2VBbmltYXRpb25EdXJh
dGlvbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uLnZh
bHVlKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZhZGVJbkFuaW1hdGlvbkR1cmF0aW9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5oCmluZGV4IGMzYjMz
ZWJhMmM4YmMwZDc1NDU5ZGQyMTUwODliNjUyOWM1ZDMxNWQuLmY3ZmZmN2M3M2ExZDJmZjc1NGIy
Nzg3Y2EyMjk5NTIzODAzMTMzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L1RleHRJbmRpY2F0b3JXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0
SW5kaWNhdG9yV2luZG93LmgKQEAgLTM2LDE5ICszNiw2IEBAIE9CSkNfQ0xBU1MgV2ViVGV4dElu
ZGljYXRvckxheWVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgVGV4dElu
ZGljYXRvcldpbmRvd0xpZmV0aW1lIDogdWludDhfdCB7Ci0gICAgLy8gVGhlIFRleHRJbmRpY2F0
b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRpc21pc3NlZC4KLSAgICBQZXJtYW5l
bnQsCi0KLSAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgYnJpZWZseSBpbmRpY2F0ZSB0
aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21pc3MuCi0gICAgVGVtcG9yYXJ5Ci19
OwotCi1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gOiB1
aW50OF90IHsKLSAgICBOb25lLAotICAgIEZhZGVPdXQKLX07Ci0KICNpZiBQTEFURk9STShNQUMp
CiAKIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3cgewpAQCAtNTksOCArNDYsOCBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgVGV4dEluZGljYXRvcldpbmRvdyhOU1ZpZXcg
Kik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflRleHRJbmRpY2F0b3JXaW5kb3coKTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4sIENH
UmVjdCBjb250ZW50UmVjdCwgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aW9uKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRleHRJbmRpY2F0
b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBDR1JlY3QgY29udGVudFJlY3QsIFRleHRJbmRpY2F0b3JM
aWZldGltZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoVGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldEFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsKIApAQCAtODEsMyArNjgsNSBAQCBwcml2YXRl
OgogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4
IGY4NWZhNTNiM2I0YTlmNDU5Njk3NzZhMTJjYzQxMWY3OTIyZGY3N2MuLjE4MGJhYjdkMDJiYzNh
NWQxYjBjM2U3NDUyZTFkMzI5MjUyNDk3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQpAQCAtMzgsMTIgKzM4LDYgQEAKICNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvTlNDb2xvclNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpD
b3JlU1BJLmg+CiAKLWNvbnN0IENGVGltZUludGVydmFsIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9u
ID0gMC4xMjsKLWNvbnN0IENGVGltZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91
bmNlQW5pbWF0aW9uRHVyYXRpb24gKyAwLjI7Ci0KLWNvbnN0IENHRmxvYXQgbWlkQm91bmNlU2Nh
bGUgPSAxLjI1OwotY29uc3QgQ0dGbG9hdCBkcm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Ci0KIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Niw3ICs1
MCw3IEBAIFRleHRJbmRpY2F0b3JXaW5kb3c6OlRleHRJbmRpY2F0b3JXaW5kb3coTlNWaWV3ICp0
YXJnZXRWaWV3KQogCiBUZXh0SW5kaWNhdG9yV2luZG93Ojp+VGV4dEluZGljYXRvcldpbmRvdygp
CiB7Ci0gICAgY2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb246OkZhZGVPdXQpOworICAgIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKIH0KIAogdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCBwcm9ncmVzcykKQEAgLTY3
LDE0ICs2MSwxNCBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldEFuaW1hdGlvblByb2dy
ZXNzKGZsb2F0IHByb2dyZXNzKQogICAgIFttX3RleHRJbmRpY2F0b3JMYXllciBzZXRBbmltYXRp
b25Qcm9ncmVzczpwcm9ncmVzc107CiB9CiAKLXZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xl
YXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gYW5p
bWF0aW9uKQordm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpjbGVhclRleHRJbmRpY2F0b3IoV2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCiB7CiAgICAg
UmVmUHRyPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IgPSBXVEZNb3ZlKG1fdGV4dEluZGlj
YXRvcik7CiAKICAgICBpZiAoW21fdGV4dEluZGljYXRvckxheWVyIGlzRmFkaW5nT3V0XSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHRleHRJbmRpY2F0b3IgJiYgW21fdGV4dEluZGljYXRv
ckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5kaWNhdG9yXSAmJiBb
bV90ZXh0SW5kaWNhdG9yTGF5ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9uXSAmJiBhbmltYXRpb24g
PT0gVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCkgeworICAg
IGlmICh0ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50
c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYgW21fdGV4dEluZGljYXRvckxheWVy
IGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9uID09IFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKICAgICAgICAgc3RhcnRGYWRlT3V0
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04Miw3ICs3Niw3IEBAIHZvaWQgVGV4dElu
ZGljYXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JXaW5kb3dEaXNt
aXNzYWxBbmltYXRpCiAgICAgY2xvc2VXaW5kb3coKTsKIH0KIAotdm9pZCBUZXh0SW5kaWNhdG9y
V2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9y
LCBDR1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMsIFRleHRJbmRpY2F0
b3JXaW5kb3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0
VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgQ0dSZWN0IHRl
eHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUg
bGlmZXRpbWUpCiB7CiAgICAgaWYgKG1fdGV4dEluZGljYXRvciA9PSB0ZXh0SW5kaWNhdG9yLnB0
cigpKQogICAgICAgICByZXR1cm47CkBAIC05NSw4ICs4OSw4IEBAIHZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciwgQ0dSCiAgICAgQ0dGbG9hdCB2ZXJ0aWNhbE1hcmdpbiA9IGRyb3BTaGFkb3dCbHVyUmFkaXVz
ICogMiArIFRleHRJbmRpY2F0b3I6OmRlZmF1bHRWZXJ0aWNhbE1hcmdpbjsKICAgICAKICAgICBp
ZiAoW21fdGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzQm91bmNlOiptX3RleHRJbmRp
Y2F0b3JdKSB7Ci0gICAgICAgIGhvcml6b250YWxNYXJnaW4gPSBzdGQ6Om1heChob3Jpem9udGFs
TWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLndpZHRoICog
KG1pZEJvdW5jZVNjYWxlIC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsKLSAgICAgICAgdmVydGlj
YWxNYXJnaW4gPSBzdGQ6Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2Ny
ZWVuQ29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQgKiAobWlkQm91bmNlU2NhbGUgLSAxKSArIHZlcnRp
Y2FsTWFyZ2luKTsKKyAgICAgICAgaG9yaXpvbnRhbE1hcmdpbiA9IHN0ZDo6bWF4KGhvcml6b250
YWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLnNpemUud2lkdGgg
KiAoV2ViQ29yZTo6bWlkQm91bmNlU2NhbGUgLSAxKSArIGhvcml6b250YWxNYXJnaW4pOworICAg
ICAgICB2ZXJ0aWNhbE1hcmdpbiA9IHN0ZDo6bWF4KHZlcnRpY2FsTWFyZ2luLCB0ZXh0Qm91bmRp
bmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLmhlaWdodCAqIChXZWJDb3JlOjptaWRCb3Vu
Y2VTY2FsZSAtIDEpICsgdmVydGljYWxNYXJnaW4pOwogICAgIH0KIAogICAgIGhvcml6b250YWxN
YXJnaW4gPSBDR0NlaWxpbmcoaG9yaXpvbnRhbE1hcmdpbik7CkBAIC0xMjUsOCArMTE5LDggQEAg
dm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNh
dG9yPiB0ZXh0SW5kaWNhdG9yLCBDR1IKICAgICBpZiAobV90ZXh0SW5kaWNhdG9yLT5wcmVzZW50
YXRpb25UcmFuc2l0aW9uKCkgIT0gVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246
Ok5vbmUpCiAgICAgICAgIFttX3RleHRJbmRpY2F0b3JMYXllciBwcmVzZW50XTsKIAotICAgIGlm
IChsaWZldGltZSA9PSBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlRlbXBvcmFyeSkKLSAg
ICAgICAgbV90ZW1wb3JhcnlUZXh0SW5kaWNhdG9yVGltZXIuc3RhcnRPbmVTaG90KDFfcyAqIHRp
bWVCZWZvcmVGYWRlU3RhcnRzKTsKKyAgICBpZiAobGlmZXRpbWUgPT0gVGV4dEluZGljYXRvckxp
ZmV0aW1lOjpUZW1wb3JhcnkpCisgICAgICAgIG1fdGVtcG9yYXJ5VGV4dEluZGljYXRvclRpbWVy
LnN0YXJ0T25lU2hvdChXZWJDb3JlOjp0aW1lQmVmb3JlRmFkZVN0YXJ0cyk7CiB9CiAKIHZvaWQg
VGV4dEluZGljYXRvcldpbmRvdzo6Y2xvc2VXaW5kb3coKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggM2FkNTE0MmNkMTc3YWFkYWU1YzM4NTMyZDU3
ZmNhNDM4MGFjZDRiNi4uMTBiODkxOWIwZjg2MjQxODFlZWFiY2Y3OGMwMWMxOWJiM2JlMGMwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC00MTEs
OCArNDExLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgpOwog
Ci0gICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImLCBXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7Ci0gICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRp
b24pOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiwg
V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lID0gV2ViQ29yZTo6VGV4dEluZGljYXRvckxp
ZmV0aW1lOjpQZXJtYW5lbnQpOworICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKTsKICAgICB2b2lk
IHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAgICAgdm9pZCBkaXNt
aXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5KCk7CiAgICAgdm9pZCBk
aXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbihib29sKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggMjNhNTA0
NjgxMTQxMzM1MTlmMmVkMWJkY2Q4MjRjZDkyYTY1YjQxZi4uZGM1MGNkMmM1MTUwZDU1Nzk4NTRh
YjdlNjVlNzVkNjI1NWUzYjA5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KQEAgLTQyMyw3ICs0MjMsNyBAQCAtICh2b2lkKW9ic2VydmVWYWx1ZUZv
cktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZToo
TgogI2lmICFFTkFCTEUoUkVWRUFMKQogLSAodm9pZClfZGljdGlvbmFyeUxvb2t1cFBvcG92ZXJX
aWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7Ci0gICAgX2ltcGwtPmNs
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgX2ltcGwtPmNsZWFyVGV4dEluZGljYXRv
cldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6
Tm9uZSk7CiB9CiAjZW5kaWYKIApAQCAtMzQ5NSw3ICszNDk1LDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogICAgICAgICB1cGRhdGVXaW5kb3dBbmRWaWV3RnJh
bWVzKCk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6
VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0xpZmV0aW1lIGxpZmV0aW1lKQordm9pZCBXZWJWaWV3SW1wbDo6c2V0VGV4dEluZGljYXRvcihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yTGlmZXRpbWUgbGlmZXRpbWUpCiB7CiAgICAgaWYgKCFtX3RleHRJbmRpY2F0b3JXaW5kb3cp
CiAgICAgICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvdz4obV92aWV3LmdldEF1dG9yZWxlYXNlZCgpKTsKQEAgLTM1MDQsNyAr
MzUwNCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yCiAgICAgbV90ZXh0SW5kaWNhdG9yV2lu
ZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIE5TUmVjdFRvQ0dSZWN0KHRleHRC
b3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzKSwgbGlmZXRpbWUpOwogfQogCi12b2lkIFdl
YlZpZXdJbXBsOjpjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQordm9pZCBXZWJWaWV3
SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yRGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKIHsKICAgICBpZiAobV90ZXh0SW5kaWNh
dG9yV2luZG93KQogICAgICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGlj
YXRvcihhbmltYXRpb24pOwpAQCAtMzUyNyw3ICszNTI3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6
ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb25Gcm9tVmlld09u
bHkoYm8KICAgICAvLyBDYWxsaW5nIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uIGhl
cmUgd2lsbCB3aW4gb3V0IG92ZXIgdGhlIGFuaW1hdGVkIGNsZWFyIGluIGRpc21pc3NDb250ZW50
UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkuCiAgICAgLy8gV2UgY2FuJ3QgaW52ZXJ0
IHRoZXNlIGJlY2F1c2UgY2xpZW50cyBjYW4gb3ZlcnJpZGUgKGFuZCBoYXZlIG92ZXJyaWRkZW4p
IF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzLCBzbyBpdCBuZWVkcyB0byBiZSBj
YWxsZWQuCiAgICAgLy8gRm9yIHRoaXMgc2FtZSByZWFzb24sIHRoaXMgY2FuJ3QgYmUgbW92ZWQg
dG8gV2ViVmlld0ltcGwgd2l0aG91dCBjYXJlLgotICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb24oYW5pbWF0ZSA/IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb246OkZhZGVPdXQgOiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpOb25lKTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKGFu
aW1hdGUgPyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0
IDogV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CiAgICAg
W21fdmlldyBfd2ViX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwogfQogCkBA
IC0zNTQ0LDcgKzM1NDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaXNtaXNzQ29udGVudFJlbGF0
aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5KCkKICAgICAgICAgICAgIFtbZ2V0RERBY3Rpb25z
TWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gcmVxdWVzdEJ1YmJsZUNsb3N1cmVVbmFuY2hv
ck9uRmFpbHVyZTpZRVNdOwogICAgIH0KIAotICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmlt
YXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFk
ZU91dCk7CisgICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKIAogICAgIFttX2ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA0MTdlMTFkNDk2NjA3YTMwMGNm
YjY1ZmVkNmM3ZjRjYWNlMGM5MjZkLi5hMzU3MzFlYzAxZDllNWUxNTAyZTYwNWU1MjgyZmVmMGIw
NDVkNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xMDYsOCArMTA2
LDggQEAgY2xhc3MgU2VsZWN0aW9uRGF0YTsKIGVudW0gY2xhc3MgTW91c2VFdmVudFBvbGljeSA6
IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFNjcm9sbGJhclN0eWxlIDogdWludDhfdDsKLWVudW0gY2xhc3MgVGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lIDogdWludDhfdDsKLWVudW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JM
aWZldGltZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmlt
YXRpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWlu
dDhfdDsKIAogc3RydWN0IEFwcEhpZ2hsaWdodDsKQEAgLTM4NSw4ICszODUsOCBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0
SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGlj
YXRvcldpbmRvd0xpZmV0aW1lKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyVGV4dEluZGlj
YXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxB
bmltYXRpb24pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlv
blByb2dyZXNzKGZsb2F0KSA9IDA7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1E
aWN0aW9uYXJ5TG9va3VwKGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBhNDViMDJlMTFk
M2Y0ODBmMDMxMzdhNWEwODU1MjUxYmY2YTZkZjM0Li43N2IzMDdmYmU2YzZlOTZmNTU4MTAyZWM3
NTliNWFhMmIyYzY4ZGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTIxOCw3ICsyMTgsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQXR0cmlidXRlZFN0cmlu
Zy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcE9ic2VydmVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2lu
ZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW5jbHVkZSA8d3Rm
L01hY2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CkBA
IC02NTM0LDcgKzY1MzMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VGV4dEluZGljYXRvcihj
b25zdCBUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSwgdWludAogewogICAgIC8vIEZJ
WE1FOiBNYWtlIFRleHRJbmRpY2F0b3JXaW5kb3cgYSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBwcmVz
ZW50YXRpb25hbCB0aGluZyAoIlRleHRJbmRpY2F0b3JQcmVzZW50YXRpb24iPykuCiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgcGFnZUNsaWVudCgpLnNldFRleHRJbmRpY2F0b3IoVGV4dEluZGlj
YXRvcjo6Y3JlYXRlKGluZGljYXRvckRhdGEpLCBzdGF0aWNfY2FzdDxUZXh0SW5kaWNhdG9yV2lu
ZG93TGlmZXRpbWU+KGxpZmV0aW1lKSk7CisgICAgcGFnZUNsaWVudCgpLnNldFRleHRJbmRpY2F0
b3IoVGV4dEluZGljYXRvcjo6Y3JlYXRlKGluZGljYXRvckRhdGEpLCBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU+KGxpZmV0aW1lKSk7CiAjZWxzZQogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCkBAIC02NTQzLDcgKzY1NDIsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNh
dG9yRGF0YSwgdWludAogdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVGV4dEluZGljYXRvcigpCiB7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcGFnZUNsaWVudCgpLmNsZWFyVGV4dEluZGljYXRv
cihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICBw
YWdlQ2xpZW50KCkuY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNt
aXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogI2Vsc2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAxZTIz
OTgxYzU3ZWEyZjE2NzcyNzg3ZTc3ZWM4ODg2NDk1MDFkZTMyLi4wYjMzN2Y0NGJlOTdiODA4ODg4
MDFjZTBmZTMyODBmNjE0MmQ0ZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTE1Miw3ICsxMTUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgY291bnRTdHJpbmdN
YXRjaGVzKGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxGaW5kT3B0aW9ucz4sIHVuc2lnbmVkIG1h
eE1hdGNoQ291bnQpOwogICAgIHZvaWQgcmVwbGFjZU1hdGNoZXMoVmVjdG9yPHVpbnQzMl90PiYm
IG1hdGNoSW5kaWNlcywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQsIGJvb2wgc2VsZWN0
aW9uT25seSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwogICAgIHZvaWQg
ZGlkQ291bnRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIHVpbnQzMl90IG1hdGNoQ291bnQp
OwotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGF0YSYsIHVpbnQ2NF90IC8qIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSAq
LyBsaWZldGltZSA9IDAgLyogUGVybWFuZW50ICovKTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0
b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmLCB1aW50NjRfdCAvKiBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUgKi8gbGlmZXRpbWUgPSAwIC8qIFBlcm1hbmVudCAqLyk7
CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogICAg
IHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggM2ZiZTFiMTdmZjY2MDQ0OWU5OTNlZjdl
OGFmYzBiYTAwMjRmZDg3YS4uODFmYjAxODMzY2VlOWU1ZDkxNTk1NDE4ZDJiNWEwYWU0Yjg0NGNj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmgKQEAgLTEzOCw4ICsxMzgsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJEYXRlVGltZVBp
Y2tlcj4gY3JlYXRlRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5JikgZmluYWw7CiAjZW5kaWYK
IAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4s
IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGlzbWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JB
bmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNob3dTYWZlQnJv
d3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5pbmcmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLm1tCmluZGV4IDQwYjc2MjM2MzlmZmFkNDFiNDQyNDY4ZWIyZTE4MWFhMzRmMDE2NTMuLjhj
M2M4ZjI0MjFjZjBjYzJiM2Y1MDM3NGQxOWZiNWMyMmMxNTk5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTQ3OSwxNiArNDc5
LDE5IEBAIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBv
cHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZv
aWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRl
eHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3Is
IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkKIHsKKyAgICBbbV9jb250ZW50VmlldyBz
ZXRVcFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvcl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudElt
cGw6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gZGlzbWlzc2FsQW5pbWF0aW9uKQogeworICAg
IFttX2NvbnRlbnRWaWV3IGNsZWFyVGV4dEluZGljYXRvcjpkaXNtaXNzYWxBbmltYXRpb25dOwog
fQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jl
c3MoZmxvYXQpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9u
UHJvZ3Jlc3MoZmxvYXQgYW5pbWF0aW9uUHJvZ3Jlc3MpCiB7CisgICAgW21fY29udGVudFZpZXcg
c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOmFuaW1hdGlvblByb2dyZXNzXTsKIH0K
IAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShj
b25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4
IDg4NmFlNzVlNjdiNTZhZWIzODM3ODRmNTk2YzlkOGY3MjkxMjU2ZTcuLjhmZjkyYjdjOWI4YWI5
ZTcwN2E4NzE2MTMwNzM5ZTBkZjkzMTYyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTg5LDYgKzg5LDcg
QEAgc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNj
ZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBNb3VzZUV2ZW50UG9saWN5IDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKK2VudW0gY2xh
c3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7CiAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQogc3RydWN0IERyYWdJdGVtOwpAQCAtMTA0LDYgKzEwNSw3IEBAIGNs
YXNzIFdlYlBhZ2VQcm94eTsKIH0KIAogQGNsYXNzIFdlYkV2ZW50OworQGNsYXNzIFdlYlRleHRJ
bmRpY2F0b3JMYXllcjsKIEBjbGFzcyBXS0FjdGlvblNoZWV0QXNzaXN0YW50OwogQGNsYXNzIFdL
Q29udGV4dE1lbnVFbGVtZW50SW5mbzsKIEBjbGFzcyBXS0RhdGFMaXN0U3VnZ2VzdGlvbnNDb250
cm9sOwpAQCAtMzMxLDYgKzMzMyw5IEBAIGVudW0gY2xhc3MgUHJvY2VlZFdpdGhJbWFnZUV4dHJh
Y3Rpb24gOiBib29sIHsKICAgICBSZXRhaW5QdHI8VUlQcmV2aWV3SXRlbUNvbnRyb2xsZXI+IF9w
cmV2aWV3SXRlbUNvbnRyb2xsZXI7CiAjZW5kaWYKIAorICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yPiBfdGV4dEluZGljYXRvcjsKKyAgICBSZXRhaW5QdHI8V2ViVGV4dEluZGljYXRv
ckxheWVyPiBfdGV4dEluZGljYXRvckxheWVyOworCiAjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCiAg
ICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQcmV2aWV3PiBfY29udGV4dE1lbnVJbnRlcmFjdGlvblRh
cmdldGVkUHJldmlldzsKICNlbmRpZgpAQCAtNjcwLDYgKzY3NSwxMCBAQCBGT1JfRUFDSF9QUklW
QVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9S
X1dFQl9WSUVXKQogLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWU7
CiAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lOwogCistICh2b2lkKXNldFVwVGV4
dEluZGljYXRvcjooUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3I7Cist
ICh2b2lkKXNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQpTlNBbmltYXRp
b25Qcm9ncmVzczsKKy0gKHZvaWQpY2xlYXJUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKKwogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRVc2VDb250ZXh0TWVudXM7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZEF2b2lkUmVzaXppbmdXaGVuSW5wdXRWaWV3
Qm91bmRzQ2hhbmdlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91
bGRBdm9pZFNjcm9sbGluZ1doZW5Gb2N1c2VkQ29udGVudElzVmlzaWJsZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IGE2MDg2OWE3N2Y5MjU3MGIyMGM5ZjcxOTNkYWNkMTAxMTIxZmExN2EuLmU1YzBkYjY2
ZGJmMDFmYmE1NTFkODAwZGRhODBiNmY5NDIyYjI4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTE2
LDExICsxMTYsMTMgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVEYXRhLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0
SW5kaWNhdG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KICNp
bXBvcnQgPFdlYkNvcmUvVG91Y2hBY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0
aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNv
cmUvVmlzaWJsZVNlbGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgorI2lt
cG9ydCA8V2ViQ29yZS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V3JpdGluZ0RpcmVjdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlNlbGVjdGlvblJlY3QuaD4g
Ly8gRklYTUU6IFdlYktpdCBzaG91bGQgbm90IGluY2x1ZGUgV2ViS2l0TGVnYWN5IGhlYWRlcnMh
CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgpAQCAtOTU4Miw2ICs5NTg0
LDY3IEBAIC0gKHZvaWQpX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFn
ZUV4dHJhY3Rpb246KFdlYktpdDo6UHJvY2VlZFdpCiAKICNlbmRpZiAvLyBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKIAorLSAodm9pZClzZXRVcFRleHRJbmRpY2F0b3I6KFJlZjxXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yCit7CisgICAgaWYgKF90ZXh0SW5kaWNhdG9yID09
IHRleHRJbmRpY2F0b3IucHRyKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBbc2VsZiB0
ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07CisgICAgW05TT2JqZWN0IGNhbmNlbFByZXZpb3Vz
UGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihzdGFydEZh
ZGVPdXQpIG9iamVjdDpuaWxdOworICAgIAorICAgIF90ZXh0SW5kaWNhdG9yID0gdGV4dEluZGlj
YXRvci5wdHIoKTsKKworICAgIENHUmVjdCBmcmFtZSA9IF90ZXh0SW5kaWNhdG9yLT50ZXh0Qm91
bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CisgICAgX3RleHRJbmRpY2F0b3JMYXll
ciA9IGFkb3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgYWxsb2NdIGluaXRXaXRoRnJhbWU6
ZnJhbWUKKyAgICAgICAgdGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIG1hcmdpbjpDR1NpemVa
ZXJvIG9mZnNldDpDR1BvaW50WmVyb10pOworICAgIAorICAgIFtbc2VsZiBsYXllcl0gYWRkU3Vi
bGF5ZXI6X3RleHRJbmRpY2F0b3JMYXllci5nZXQoKV07CisKKyAgICBpZiAoX3RleHRJbmRpY2F0
b3ItPnByZXNlbnRhdGlvblRyYW5zaXRpb24oKSAhPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yUHJl
c2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSkKKyAgICAgICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIg
cHJlc2VudF07CisgICAgCisgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihzdGFy
dEZhZGVPdXQpIHdpdGhPYmplY3Q6c2VsZiBhZnRlckRlbGF5OldlYkNvcmU6OnRpbWVCZWZvcmVG
YWRlU3RhcnRzXTsKK30KKworLSAodm9pZCljbGVhclRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uCit7CisgICAgUmVmUHRyPFdl
YkNvcmU6OlRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IgPSBXVEZNb3ZlKF90ZXh0SW5kaWNh
dG9yKTsKKyAgICAKKyAgICBpZiAoW190ZXh0SW5kaWNhdG9yTGF5ZXIgaXNGYWRpbmdPdXRdKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAodGV4dEluZGljYXRvciAmJiBbX3RleHRJbmRpY2F0
b3JMYXllciBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYg
W190ZXh0SW5kaWNhdG9yTGF5ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9uXSAmJiBhbmltYXRpb24g
PT0gV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCkgewor
ICAgICAgICBbc2VsZiBzdGFydEZhZGVPdXRdOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgW3NlbGYgdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXJdOworfQorCistICh2b2lkKXNldFRl
eHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQpYW5pbWF0aW9uUHJvZ3Jlc3MKK3sK
KyAgICBpZiAoIV90ZXh0SW5kaWNhdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBbX3RleHRJ
bmRpY2F0b3JMYXllciBzZXRBbmltYXRpb25Qcm9ncmVzczphbmltYXRpb25Qcm9ncmVzc107Cit9
CisKKy0gKHZvaWQpdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXIKK3sKKyAgICBbX3RleHRJbmRp
Y2F0b3JMYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CisgICAgX3RleHRJbmRpY2F0b3JMYXll
ciA9IG5pbDsKK30KKworLSAodm9pZClzdGFydEZhZGVPdXQKK3sKKyAgICBbX3RleHRJbmRpY2F0
b3JMYXllciBzZXRGYWRpbmdPdXQ6WUVTXTsKKyAgICAgICAgCisgICAgW190ZXh0SW5kaWNhdG9y
TGF5ZXIgaGlkZVdpdGhDb21wbGV0aW9uSGFuZGxlcjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxX
S0NvbnRlbnRWaWV3PihzZWxmKV0geworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2Vs
Zi5nZXQoKTsKKyAgICAgICAgW3N0cm9uZ1NlbGYgdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXJd
OworICAgIH1dOworfQorCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdl
YktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnNBZnRlci5tbT4K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxN
YWMuaAppbmRleCA1OGJlNGEyY2FlNDUzN2U1NDYzYmRkMWI2YjViZTE2OGJhNjkyNzZjLi42NzU1
ZjAxYjM4ODQ4MDg1YjBiNWFkMmFhYzhjZTFkMWU0NGI3YWRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaApAQCAtMTU2LDggKzE1Niw4IEBA
IHByaXZhdGU6CiAKICAgICBSZWY8V2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZT4gY3JlYXRlVmFs
aWRhdGlvbkJ1YmJsZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdlYkNvcmU6OlZhbGlk
YXRpb25CdWJibGU6OlNldHRpbmdzJikgZmluYWw7CiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0
b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93TGlmZXRpbWUpIG92ZXJyaWRlOwotICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOworICAg
IHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclRleHRJ
bmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0
IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCA3ODhhMjc5NmRiYjFjZjQ1OWVmZTEy
NGM2ZjBkN2QwYTY5OGI3ZTliLi42MTRiNTk2NmM2NGFiY2M0ZDQxMGIwM2RhZDRhNzAzOWNkZmZj
NDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
TWFjLm1tCkBAIC01NjksMTIgKzU2OSwxMiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhclNh
ZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5GcmFtZU5hdmlnYXRpb24oKQogICAgIG1faW1wbC0+
Y2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKCk7CiB9CiAK
LXZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+
IHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSBsaWZl
dGltZSkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRp
Y2F0b3I+IHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSBsaWZl
dGltZSkKIHsKICAgICBtX2ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvci5nZXQo
KSwgbGlmZXRpbWUpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0
b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiBkaXNtaXNz
YWxBbmltYXRpb24pCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IoV2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiBkaXNtaXNzYWxBbmltYXRpb24p
CiB7CiAgICAgbV9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKGRpc21pc3Nh
bEFuaW1hdGlvbik7CiB9CkBAIC02NzIsOSArNjcyLDkgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6
ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGlj
dGkKICAgICBtX2ltcGwtPnByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7CiAKICAgICBEaWN0
aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgbV92aWV3LCBbdGhp
c10oVGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBtX2ltcGwtPnNldFRl
eHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQ
ZXJtYW5lbnQpOworICAgICAgICBtX2ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRv
ciwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnQpOwogICAgIH0sIG51
bGxwdHIsIFt0aGlzXSgpIHsKLSAgICAgICAgbV9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRo
QW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246
Ok5vbmUpOworICAgICAgICBtX2ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24o
V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CiAgICAgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IDliYWE4YmUyNGM3N2M3NDZlNzkzZjQxMzc4
ZGNkMDBiM2NmNGM0ZmUuLmJlYzBkYzEyOGM1MDY3ZDZlOTI3ZGZjZWRiNDdhN2ZiZWQ4MmU0Mzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5tbQpAQCAtNDkwLDkgKzQ5MCw5IEBAIC0gKGlkPE5TSW1tZWRp
YXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JUZXh0
CiAgICAgX3ZpZXdJbXBsLT5wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cCgpOwogCiAgICAgcmV0
dXJuIFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OmFuaW1hdGlvbkNvbnRyb2xsZXJGb3JQb3B1
cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBfdmlldywgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAgX3ZpZXdJbXBsLT5zZXRUZXh0SW5kaWNhdG9y
KHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVy
bWFuZW50KTsKKyAgICAgICAgX3ZpZXdJbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0
b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50KTsKICAgICB9LCBu
dWxscHRyLCBbc2VsZl0oKSB7Ci0gICAgICAgIF92aWV3SW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uOjpOb25lKTsKKyAgICAgICAgX3ZpZXdJbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwog
ICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDNmMmU5ZDUwZmZiMDAxYzI0
NmQ0MTcxMGUwM2I0NDliZGM1ODY3ODQuLjk1MTkxN2MyNGQ5ZjAyZTgwNjY5YmNlZGNiYzgzYTEw
MDQ1YjM2MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC04OCw2ICs4OCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwg
KFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICNpbmNs
dWRlICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgiCkBAIC0xMjcxLDYgKzEyNzIsMTEgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdo
dCYmIGhpZ2hsaWdodCkgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
c2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNh
dG9yRGF0YSkgY29uc3QKK3sKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTZXRUZXh0SW5kaWNhdG9yKGluZGljYXRvckRhdGEsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKK30KKwogU3RyaW5n
IFdlYkNocm9tZUNsaWVudDo6c2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2ln
bmVkIGtleVNpemVJbmRleCwgY29uc3QgU3RyaW5nJiBjaGFsbGVuZ2VTdHJpbmcsIGNvbnN0IFVS
TCYgdXJsKSBjb25zdAogewogICAgIFN0cmluZyByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggNGVlZjFmOGFkMWM1MmFjMDUxNjU4MmJhMTYxNTVjYWQwMWExNTU3Mi4uNDE5YmE3ODQ4M2Fl
ZWUyYzFkNDNkYTJiMGI0MmU5MWQ3YzFiMWU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzUz
LDYgKzM1Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3Jl
OjpBcHBIaWdobGlnaHQmJikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0VGV4
dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFs
OworCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCiAgICAgYm9vbCB3cmFwQ3J5cHRvS2V5KGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYsIFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgdW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIFZlY3Rvcjx1aW50OF90
PiYpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IDAwOTAxNGE1MzZiZjlkNjhkZmJlNWRhMTQwZGRi
NTE3YWVhY2QyMDcuLmNlMjFkNjdjNDhiOTYwOWVmYTM5NTY2YWYwMjkzYjkzYWNjZWRkY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxl
ci5jcHAKQEAgLTM4MCw3ICszODAsNyBAQCBib29sIEZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5k
SW5kaWNhdG9yKEZyYW1lJiBzZWxlY3RlZEZyYW1lLCBib29sIGlzU2hvd2luZ092ZQogCiAgICAg
bV9maW5kSW5kaWNhdG9yUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoaW5kaWNhdG9yLT5zZWxlY3Rp
b25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkpOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9y
KGluZGljYXRvci0+ZGF0YSgpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaXNTaG93aW5nT3Zlcmxh
eSA/IFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50IDogVGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpKSk7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yLT5kYXRhKCksIHN0
YXRpY19jYXN0PHVpbnQ2NF90Pihpc1Nob3dpbmdPdmVybGF5ID8gV2ViQ29yZTo6VGV4dEluZGlj
YXRvckxpZmV0aW1lOjpQZXJtYW5lbnQgOiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6
OlRlbXBvcmFyeSkpKTsKICNlbmRpZgogICAgIG1faXNTaG93aW5nRmluZEluZGljYXRvciA9IHRy
dWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjNkNDcxNmE4OTMzZDlmMjQyZjhlZjEyMTVhODY2
MjM0MGY4OTdhNS4uYmFkNTFmMGIyMTJkYWU3YjY3MTAxYTBhYWE2M2U0OTQ5ZGU3ZDM0OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTE1NSw2ICsxNTUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc3Rv
cmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYpIGNvbnN0IGZpbmFsOwogI2Vu
ZGlmCiAKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRhdGEmKSBjb25zdCBmaW5hbDsKKwogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAg
Ym9vbCByZXF1ZXN0UG9pbnRlckxvY2soKSBmaW5hbDsKICAgICB2b2lkIHJlcXVlc3RQb2ludGVy
VW5sb2NrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggNDUzOWNlNmY2NGQwMGIwYmIw
MDI4M2VhYzgxNTMyOTc5MDA0YzRlOC4uMDNlYjYxNDc0ZTIxZmJhYjE1ZTE1Mjc4MDBiMGM0NmQ5
MmI0MzNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtNzIwLDYgKzcyMCwxMCBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYp
IGNvbnN0CiB9CiAjZW5kaWYKIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRpY2F0
b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEpIGNvbnN0
Cit7Cit9CisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OnJlcXVlc3RQb2ludGVyTG9jaygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAwZmUyYTUwOTZjN2UyNmYzMjAzMjVlMzY4YmZmMGRi
YjlmMDcyYzc2Li42MWQ2ZjRlODY1OTRkY2FiN2U2MTc5MDcwNGI3MDllZjVjY2MyYmUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTU5
NTMsNyArNTk1Myw3IEBAIC0gKHZvaWQpX2xvb2tVcEluRGljdGlvbmFyeUZyb21NZW51OihpZClz
ZW5kZXIKIAogLSAodm9pZClxdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewot
ICAgIFtbc2VsZiBfd2ViVmlld10gX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07Cisg
ICAgW1tzZWxmIF93ZWJWaWV3XSBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICBbc3Vw
ZXIgcXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyLm1tCmluZGV4IGNlNjJiZmE1MTYxNzdjOGMzNmFlZGQ3YmE1ZmE0YzI3NTEwZDZmNzEuLmJl
NWI2YTJmYjAxNTRiYzM2ZmNkMzhiYjFkYWQ4OWUwOWM3MGUzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZp
ZXcgKil3ZWJWaWV3IGRpZEhhbmRsZVNjcm9sbFdoZWVsOihOU0V2ZW50ICopZXZlbnQKIHsKICAg
ICBbX2N1cnJlbnRRTFByZXZpZXdNZW51SXRlbSBjbG9zZV07CiAgICAgW3NlbGYgX2NsZWFySW1t
ZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0
aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9u
OjpOb25lXTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246
V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07CiB9CiAKIC0g
KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNv
Z25pemVyCkBAIC0xMzksNyArMTM5LDcgQEAgLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9u
CiAgICAgfQogCiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtf
d2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbX3dlYlZpZXcg
X2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRp
c21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAKIC0gKHZvaWQpX2NsZWFySW1tZWRpYXRl
QWN0aW9uU3RhdGUKQEAgLTI1MSw3ICsyNTEsNyBAQCAtICh2b2lkKWltbWVkaWF0ZUFjdGlvblJl
Y29nbml6ZXJEaWRDYW5jZWxBbmltYXRpb246KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlYwog
CiAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6MF07CiAg
ICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlv
bjo6Tm9uZV07CiAgICAgW193ZWJWaWV3IF9zZXRNYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbjpO
T107CiB9CiAKQEAgLTI5Myw3ICsyOTMsNyBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb25Db250cm9sbGVyPilfZGVmYXVsdEFuaW1hdGlvbkNvbnRyb2xsZXIKICAgICAgICAgICAg
IGF1dG8gbGlua1JhbmdlID0gbWFrZVJhbmdlU2VsZWN0aW5nTm9kZUNvbnRlbnRzKCpfaGl0VGVz
dFJlc3VsdC5VUkxFbGVtZW50KCkpOwogICAgICAgICAgICAgYXV0byBpbmRpY2F0b3IgPSBXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UobGlua1JhbmdlLCB7IFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JPcHRpb246OlVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29udGVudEZv
ckNvbXBsZXhSYW5nZXMgfSwgV2ViQ29yZTo6VGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5z
aXRpb246OkZhZGVJbik7CiAgICAgICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAg
ICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAg
ICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0
aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKIAogICAgICAg
ICAgICAgUUxQcmV2aWV3TWVudUl0ZW0gKml0ZW0gPSBbTlNNZW51SXRlbSBzdGFuZGFyZFF1aWNr
TG9va01lbnVJdGVtXTsKICAgICAgICAgICAgIGl0ZW0ucHJldmlld1N0eWxlID0gUUxQcmV2aWV3
U3R5bGVQb3BvdmVyOwpAQCAtMzc5LDcgKzM3OSw3IEBAIC0gKE5TUmVjdEVkZ2UpbWVudUl0ZW06
KE5TTWVudUl0ZW0gKiltZW51SXRlbSBwcmVmZXJyZWRFZGdlRm9yUG9pbnQ6KE5TUG9pbnQpcG9p
CiAtICh2b2lkKW1lbnVJdGVtRGlkQ2xvc2U6KE5TTWVudUl0ZW0gKiltZW51SXRlbQogewogICAg
IFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dlYlZpZXcgX2NsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRp
b246OkZhZGVPdXRdOwogfQogCiBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50Qm91bmRp
bmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzRnJvbU5vZGUoV2ViQ29yZTo6Tm9kZSogbm9kZSkKQEAg
LTQ2NCw5ICs0NjQsOSBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZAogICAgIF9jdXJyZW50QWN0
aW9uQ29udGV4dCA9IFtkZXRlY3RlZEl0ZW0tPmFjdGlvbkNvbnRleHQgY29udGV4dEZvclZpZXc6
X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgewogICAg
IH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkgewogICAgICAgICBpZiAoaW5kaWNhdG9y
KQotICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0
aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50
XTsKKyAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdp
dGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAg
ICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5kbGVyOl4oKSB7Ci0gICAgICAgIFtfd2ViVmlldyBf
Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW193ZWJWaWV3IF9jbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNz
YWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwogCiAgICAgW19jdXJyZW50QWN0aW9uQ29u
dGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3Jl
ZW46ZGV0ZWN0ZWRJdGVtLT5ib3VuZGluZ0JveF1dOwpAQCAtNDk3LDkgKzQ5Nyw5IEBAIC0gKGlk
IDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9s
bGVyRm9yRGF0YURldGVjdGVkCiAgICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0gW2FjdGlvbkNv
bnRleHQgY29udGV4dEZvclZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFy
dGVkSGFuZGxlcjpeKCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkgewog
ICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5k
aWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dElu
ZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlm
ZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5kbGVyOl4oKSB7
Ci0gICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAg
ICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6
OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwogCiAg
ICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcud2lu
ZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46ZWxlbWVudEJvdW5kaW5nQm94SW5XaW5kb3dDb29yZGlu
YXRlc0Zyb21Ob2RlKF9oaXRUZXN0UmVzdWx0LlVSTEVsZW1lbnQoKSldXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3MjY0YmZkY2Q3MmRlMTM2OTYw
YTMyMzhjYjAwMjE2ZmI4OTJmZjdjLi45OTJmM2UwOTc0ZDY0NWJmZTI1ZDczMTk4MzJkODQxZjc3
MGVlNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBA
IC05MTAwLDExICs5MTAwLDExIEBAIC0gKGlkKV9hbmltYXRpb25Db250cm9sbGVyRm9yRGljdGlv
bmFyeUxvb2t1cFBvcHVwSW5mbzooY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyCiAgICAgW3NlbGYg
X3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAogICAgIHJldHVybiBXZWJDb3JlOjpEaWN0
aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVyRm9yUG9wdXAoZGljdGlvbmFyeVBvcHVw
SW5mbywgc2VsZiwgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3Ip
IHsKLSAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlm
ZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOwor
ICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGlt
ZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSwgW3Nl
bGZdKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSB7CiAgICAg
ICAgIHJldHVybiBbc2VsZiBfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6cmVjdEluUm9vdFZpZXdD
b29yZGluYXRlc107CiAgICAgfSwgW3NlbGZdKCkgewotICAgICAgICBbc2VsZiBfY2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlz
c2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRv
cldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6
RmFkZU91dF07CiAgICAgfSk7CiB9CiAKQEAgLTkxMjAsMTAgKzkxMjAsMTAgQEAgLSAodm9pZClf
c2V0UHJlc3N1cmVFdmVudDooTlNFdmVudCAqKWV2ZW50CiAKIC0gKHZvaWQpX3NldFRleHRJbmRp
Y2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IKIHsKLSAgICBbc2Vs
ZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgW3NlbGYgX3NldFRl
eHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGlj
YXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwogfQogCi0tICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9y
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooV2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKWxpZmV0aW1lCistICh2b2lkKV9zZXRU
ZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhM
aWZldGltZTooV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKWxpZmV0aW1lCiB7CiAgICAg
aWYgKCFfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdykKICAgICAgICAgX3ByaXZhdGUtPnRl
eHRJbmRpY2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3c+KHNlbGYpOwpAQCAtOTEzMywxMCArOTEzMywxMCBAQCAtICh2b2lkKV9zZXRUZXh0SW5kaWNh
dG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZToo
VwogICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRl
eHRJbmRpY2F0b3IsIE5TUmVjdFRvQ0dSZWN0KHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3Jk
aW5hdGVzKSwgbGlmZXRpbWUpOwogfQogCi0tICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRo
QW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9u
KWFuaW1hdGlvbgorLSAodm9pZClfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooV2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb24KIHsKICAgICBp
ZiAoX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cpCi0gICAgICAgIF9wcml2YXRlLT50ZXh0
SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAgICAgIF9wcml2YXRlLT50
ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiAgICAgX3ByaXZhdGUtPnRleHRJbmRp
Y2F0b3JXaW5kb3cgPSBudWxscHRyOwogfQogCkBAIC05MTY4LDE4ICs5MTY4LDE4IEBAIC0gKHZv
aWQpX3Nob3dEaWN0aW9uYXJ5TG9va3VwUG9wdXA6KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQ
b3B1cEluZm8mKWRpY3Rpb25hCiAgICAgW3NlbGYgX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3Vw
XTsKIAogICAgIFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5
UG9wdXBJbmZvLCBzZWxmLCBbc2VsZl0oV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGlj
YXRvcikgewotICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdp
dGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVu
dF07CisgICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExp
ZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKICAgICB9
LCBbc2VsZl0oV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMpIHsK
ICAgICAgICAgcmV0dXJuIFtzZWxmIF9jb252ZXJ0UmVjdEZyb21Sb290VmlldzpyZWN0SW5Sb290
Vmlld0Nvb3JkaW5hdGVzXTsKICAgICB9LCBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXZWJWaWV3
PihzZWxmKV0oKSB7Ci0gICAgICAgIFt3ZWFrU2VsZi5nZXQoKSBfY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW3dlYWtTZWxmLmdldCgpIF9jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246
OkZhZGVPdXRdOwogICAgIH0pOwogfQogCiAjaWYgIUVOQUJMRShSRVZFQUwpCiAtICh2b2lkKV9k
aWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KIHsKLSAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAg
ICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKIH0KICNlbmRpZiAvLyBFTkFCTEUo
UkVWRUFMKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
SW50ZXJuYWwuaAppbmRleCA3MzM3MmEwYmRhMTUzYmZhMzc2MTAyM2NmNDk1ZDc5NmZhNzE4Y2Mx
Li5iYWQ1ZmQ4YTE1MGFjZjJjMzdhNTdjMzY0ZjgyMTlkY2Q0MzczMGIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTMxOSw4
ICszMTksOCBAQCBXZWJMYXlvdXRNaWxlc3RvbmVzIGtpdExheW91dE1pbGVzdG9uZXMoT3B0aW9u
U2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pOwogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBk
ZWZpbmVkKF9fY3BsdXNwbHVzKQogLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6
VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvcjsKLS0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6
KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpbGlmZXRpbWU7Ci0tICh2b2lkKV9jbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKKy0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6
KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpbGlmZXRpbWU7CistICh2b2lkKV9jbGVhclRleHRJ
bmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uKWFuaW1hdGlvbjsKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9n
cmVzczooZmxvYXQpcHJvZ3Jlc3M7CiAtICh2b2lkKV9zaG93RGljdGlvbmFyeUxvb2t1cFBvcHVw
Oihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9uYXJ5UG9wdXBJbmZv
OwogLSAoaWQpX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEaWN0aW9uYXJ5TG9va3VwUG9wdXBJbmZv
Oihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9uYXJ5UG9wdXBJbmZv
Owo=
</data>
<flag name="commit-queue"
          id="449427"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428497</attachid>
            <date>2021-05-13 05:39:07 -0700</date>
            <delta_ts>2021-05-13 13:40:41 -0700</delta_ts>
            <desc>a modest proposal</desc>
            <filename>bug-225727-20210513053906.patch</filename>
            <type>text/plain</type>
            <size>52678</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjZTAzODVjY2Q4NzM1
MGIwYjg4YzM4MDA3ZWY5NmU2OTMxZDMwOS4uZmVjMDc4MzVmNzMyZTcxNTkzMDcxZTcyNTUyNjg0
MzY3YjZlMDZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEzICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMiAgRnJlZGVyaWMg
V2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9zZWxl
Y3Rpb24tPmlzTm9uZSgpKSBmYWlscyBpbiBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggMjM5NmZlMTIwMDgwYThmNjVjMzAwMzdhZjk4OGI4MTUxY2YxNmMyNC4uOTM1YjllYzA2
ZDY0ZjNjY2UxMGNhNjQ4YmZkN2NiYzcxOTQ5ODY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBA
QAorMjAyMS0wNS0xMyAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBmb3IgQXBwSGlnaGxpZ2h0cyBvbiBz
Y3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
c2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0byBhZGQgYSBib3VuY2UgdG8gYW4g
YXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Nyb2xsZWQgdG8uCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9lbmRFZGl0
aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VXBUZXh0SW5kaWNhdG9yOl0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dEluZGljYXRvcjpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXJdKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRdKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBjb25zdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAyMS0wNS0xMyAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTihyMjc3MjYyKTogdGVzdCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMDIuaHRtbCBpcyBjcmFzaGluZwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCmluZGV4IDNiOGEzNTRiMDFjNWNhZGZjMjc3OWFkOTkxODhhOGU1MjI2
NGU1NDguLmY4ZDVkNGQ5NTg3ODg2YjQwN2Y0MzgyM2YzN2I1YmE2YjhjMDRjNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNS0xMyAgTWVnYW4g
R2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5k
aWNhdG9yIGJvdW5jZSBmb3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBjb25zdCk6CisK
IDIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBO
b3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0
U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGln
aHRTdG9yYWdlLmNwcAppbmRleCAwZmI2ZGNlYTQwZjhmOTc0NGMwOWQ4MmEyZDA5MzkxNTg2NzRl
MzNlLi5kYTRmNzBhYzJmYzYxNjcxZjc3YTc3YjE3MDQ2Nzk2NGI4OWYzOTRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9y
YWdlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkFwcEhpZ2hsaWdodC5oIgogI2lu
Y2x1ZGUgIkFwcEhpZ2hsaWdodFJhbmdlRGF0YS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgorI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC00MCw2
ICs0MSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgogI2luY2x1ZGUg
IlNpbXBsZVJhbmdlLmgiCiAjaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKKyNpbmNsdWRlICJUZXh0
SW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTI2MCw4ICsyNjIsMTMgQEAgYm9vbCBBcHBIaWdobGlnaHRTdG9yYWdlOjphdHRl
bXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKEFwcEhpZ2hsaWdodFJhbmdlRGEKICAgICAK
ICAgICBzdHJvbmdEb2N1bWVudC0+YXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKS5hZGRBcHBIaWdobGln
aHQoU3RhdGljUmFuZ2U6OmNyZWF0ZSgqcmFuZ2UpKTsKICAgICAKLSAgICBpZiAoc2Nyb2xsID09
IFNjcm9sbFRvSGlnaGxpZ2h0OjpZZXMpCisgICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hs
aWdodDo6WWVzKSB7CisgICAgICAgIGF1dG8gdGV4dEluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6
OmNyZWF0ZVdpdGhSYW5nZShyYW5nZS52YWx1ZSgpLCB7IFRleHRJbmRpY2F0b3JPcHRpb246OkRv
Tm90Q2xpcFRvVmlzaWJsZVJlY3QgfSwgV2ViQ29yZTo6VGV4dEluZGljYXRvclByZXNlbnRhdGlv
blRyYW5zaXRpb246OkJvdW5jZSk7CisgICAgICAgIGlmICh0ZXh0SW5kaWNhdG9yKQorICAgICAg
ICAgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXRUZXh0SW5kaWNh
dG9yKHRleHRJbmRpY2F0b3ItPmRhdGEoKSk7CisgICAgICAgIAogICAgICAgICBUZW1wb3JhcnlT
ZWxlY3Rpb25DaGFuZ2Ugc2VsZWN0aW9uQ2hhbmdlKCpzdHJvbmdEb2N1bWVudCwgeyByYW5nZS52
YWx1ZSgpIH0sIHsgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpSZXZlYWxTZWxlY3Rpb24sIFRl
bXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21vb3RoU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rpb25P
cHRpb246Ok92ZXJyaWRlU21vb3RoU2Nyb2xsRmVhdHVyZUVuYWJsbWVudCB9KTsKKyAgICB9CiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
aW5kZXggZDllMDM4N2M5NmIyOGQzODdhYmNiOGIxNzczYjAxMGJiMjA2NzM1ZS4uN2I5MDI4MWNh
NzYyNzdiMzdmNGY5NmZlZTRlYzE1MzkyMmVjNGI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKQEAgLTU1NSw2ICs1NTUsMTAgQEAgdm9pZCBFbXB0eUNocm9tZUNsaWVu
dDo6c3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYpIGNvbnN0CiB9CiAjZW5kaWYKIAor
dm9pZCBFbXB0eUNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0Cit7Cit9CisKIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIEVt
cHR5Q2hyb21lQ2xpZW50OjpkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QKIHsK
ICAgICByZXR1cm4gRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5OjpzaGFyZWRFbXB0
eURpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAppbmRleCBkYjE1YjA5OGE0OTBhZTAzMzBlNTJjODBlMDAyOTQyMmZhNTRhZmJmLi5h
NzFkYzg1NGVmNTBjMzU5MmEwNGY1Mjc5YjVkNTE0OTk4NTE0ODU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xNDksNiArMTQ5LDggQEAgY2xhc3MgRW1wdHlDaHJvbWVD
bGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0
KEFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisgICAgdm9pZCBzZXRUZXh0
SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0b3JEYXRhJikgY29uc3QgZmluYWw7CisKICAgICBE
aXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5
KCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9v
c2VyJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUw
ZDNiZjQzMjNlMzI0MmZjODg2YTUxYTM3OGYyZDdkLi4xZmQ3YjA4ZTc3YTE2YThkNzc0M2FiMTNm
N2Y3MjFkYWJkMDliNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2
ICsxMjUsNyBAQCBzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFw
aGljc0RldmljZUFkYXB0ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbjsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0
b3JEYXRhOwogc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVz
OwogCkBAIC0zMTUsNiArMzE2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdG9yZUFw
cEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QgPSAwOwogI2VuZGlmCiAK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0
YSYpIGNvbnN0ID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBG
aWxlQ2hvb3NlciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NoYXJlU2hlZXQoU2hhcmVE
YXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
YWxsYmFjaykgeyBjYWxsYmFjayhmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRh
Y3RQaWNrZXIoY29uc3QgQ29udGFjdHNSZXF1ZXN0RGF0YSYsIFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8Q29udGFjdEluZm8+PiYmKT4mJiBjYWxsYmFjaykgeyBj
YWxsYmFjayhXVEY6Om51bGxvcHQpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCmlu
ZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLjVlZjg1YTI5YmY2
YjM4OWJkMGIxOGI0Nzk0YjIyMjQzYmYyNmE0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGlj
YXRvci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KICNp
bmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMzksNiArNDAsMjUgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0Owog
CiBzdHJ1Y3QgU2ltcGxlUmFuZ2U7CiAKK2NvbnN0ZXhwciBmbG9hdCBkcm9wU2hhZG93Qmx1clJh
ZGl1cyA9IDI7Citjb25zdGV4cHIgZmxvYXQgcmltU2hhZG93Qmx1clJhZGl1cyA9IDE7Citjb25z
dGV4cHIgU2Vjb25kcyBib3VuY2VBbmltYXRpb25EdXJhdGlvbiA9IDAuMTJfczsKK2NvbnN0ZXhw
ciBTZWNvbmRzIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5pbWF0aW9uRHVyYXRpb24g
KyAwLjJfczsKK2NvbnN0ZXhwciBmbG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEuMjU7CisKK2VudW0g
Y2xhc3MgVGV4dEluZGljYXRvckxpZmV0aW1lIDogdWludDhfdCB7CisgICAgLy8gVGhlIFRleHRJ
bmRpY2F0b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRpc21pc3NlZC4KKyAgICBQ
ZXJtYW5lbnQsCisKKyAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgYnJpZWZseSBpbmRp
Y2F0ZSB0aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21pc3MuCisgICAgVGVtcG9y
YXJ5Cit9OworCitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1
aW50OF90IHsKKyAgICBOb25lLAorICAgIEZhZGVPdXQKK307CisKIC8vIEZJWE1FOiBNb3ZlIFBy
ZXNlbnRhdGlvblRyYW5zaXRpb24gdG8gVGV4dEluZGljYXRvcldpbmRvdywgYmVjYXVzZSBpdCdz
IGFib3V0IHByZXNlbnRhdGlvbi4KIGVudW0gY2xhc3MgVGV4dEluZGljYXRvclByZXNlbnRhdGlv
blRyYW5zaXRpb24gOiB1aW50OF90IHsKICAgICBOb25lLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmgKaW5kZXggZmQxM2QwNDBlZmZiNzVi
MGVhMDA0ZWE1NTFlMzIyMTU0YWUxOGZhZi4uYmViZjkzYTM2ZWQ3MGU2YjMwOWRlODk1ODFhMTgz
NjY1ZTM4YzFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0
SW5kaWNhdG9yTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJ
bmRpY2F0b3JMYXllci5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCi1AaW50ZXJmYWNlIFdlYlRleHRJbmRpY2F0
b3JMYXllciA6IENBTGF5ZXIgeworV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJUZXh0SW5k
aWNhdG9yTGF5ZXIgOiBDQUxheWVyIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dEluZGljYXRv
cj4gX3RleHRJbmRpY2F0b3I7CiAgICAgUmV0YWluUHRyPE5TQXJyYXk+IF9ib3VuY2VMYXllcnM7
CiAgICAgQ0dTaXplIF9tYXJnaW47CkBAIC01MywzICs1Myw0IEBACiBAcHJvcGVydHkgKG5vbmF0
b21pYywgZ2V0dGVyPWlzRmFkaW5nT3V0KSBCT09MIGZhZGluZ091dDsKIAogQGVuZAorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1tCmlu
ZGV4IGI4YzRkOGYwNjdiYWNlZDA5YTgxMTgwODcxMDMwNmM1N2E3OTQzMDAuLjRkMWE1ODRmMWIw
MjgwNmE3M2MwZDFlOWEwODhiNmQ4MWNjMDAxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1tCkBAIC0zMCw2ICszMCw3IEBACiAj
aW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIlBhdGhVdGlsaXRpZXMuaCIKICNp
bXBvcnQgIlRleHRJbmRpY2F0b3IuaCIKKyNpbXBvcnQgIlRleHRJbmRpY2F0b3JXaW5kb3cuaCIK
ICNpbXBvcnQgIldlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIgogI2ltcG9ydCA8
cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVh
cnR6Q29yZVNQSS5oPgpAQCAtMzgsMTkgKzM5LDE0IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L05TQ29sb3JTUEkuaD4KICNlbmRpZgogCi1jb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNl
QW5pbWF0aW9uRHVyYXRpb24gPSAwLjEyOwogY29uc3RleHByIENGVGltZUludGVydmFsIGJvdW5j
ZVdpdGhDcm9zc2ZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIGNvbnN0ZXhwciBDRlRpbWVJ
bnRlcnZhbCBmYWRlSW5BbmltYXRpb25EdXJhdGlvbiA9IDAuMTU7Ci1jb25zdGV4cHIgQ0ZUaW1l
SW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25EdXJhdGlvbiAr
IDAuMjsKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlT3V0QW5pbWF0aW9uRHVyYXRpb24g
PSAwLjM7CiAKLWNvbnN0ZXhwciBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4yNTsKIGNvbnN0
ZXhwciBDR0Zsb2F0IGJvcmRlcldpZHRoID0gMDsKIGNvbnN0ZXhwciBDR0Zsb2F0IGNvcm5lclJh
ZGl1cyA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WCA9IDA7CiBjb25z
dGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WSA9IDE7Ci1jb25zdGV4cHIgQ0dGbG9hdCBk
cm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Ci1jb25zdGV4cHIgQ0dGbG9hdCByaW1TaGFkb3dCbHVy
UmFkaXVzID0gMTsKIAogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgdGV4dExheWVyS2V5ID0g
QCJUZXh0TGF5ZXIiOwogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgZHJvcFNoYWRvd0xheWVy
S2V5ID0gQCJEcm9wU2hhZG93TGF5ZXIiOwpAQCAtMTMyLDEzICsxMjgsMTIgQEAgLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG8KICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAg
cmV0dXJuIG5pbDsKICAgICAKKyAgICBzZWxmLmFuY2hvclBvaW50ID0gQ0dQb2ludFplcm87CiAg
ICAgc2VsZi5mcmFtZSA9IGZyYW1lOwogCiAgICAgX3RleHRJbmRpY2F0b3IgPSAmdGV4dEluZGlj
YXRvcjsKICAgICBfbWFyZ2luID0gbWFyZ2luOwogCi0gICAgc2VsZi5hbmNob3JQb2ludCA9IENH
UG9pbnRaZXJvOwotCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBjb250ZW50c0lt
YWdlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBjb250ZW50c0ltYWdlTG9naWNhbFNpemUgeyAx
LCAxIH07CiAgICAgaWYgKGF1dG8qIGNvbnRlbnRJbWFnZSA9IF90ZXh0SW5kaWNhdG9yLT5jb250
ZW50SW1hZ2UoKSkgewpAQCAtMTkyLDcgKzE4Nyw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0
aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRv
CiAgICAgICAgIFJldGFpblB0cjxDQUxheWVyPiBkcm9wU2hhZG93TGF5ZXIgPSBhZG9wdE5TKFtb
Q0FMYXllciBhbGxvY10gaW5pdF0pOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldERlbGVn
YXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07CiAgICAgICAg
IFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93Q29sb3I6ZHJvcFNoYWRvd0NvbG9yLmdldCgpXTsK
LSAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6ZHJvcFNoYWRvd0JsdXJS
YWRpdXNdOworICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1czpXZWJDb3Jl
Ojpkcm9wU2hhZG93Qmx1clJhZGl1c107CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hh
ZG93T2Zmc2V0OkNHU2l6ZU1ha2UoZHJvcFNoYWRvd09mZnNldFgsIGRyb3BTaGFkb3dPZmZzZXRZ
KV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFuc2xhdGVkUGF0
aC5wbGF0Zm9ybVBhdGgoKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93T3Bh
Y2l0eToxXTsKQEAgLTIwNCw3ICsxOTksNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFt
ZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0bwogICAg
ICAgICBbcmltU2hhZG93TGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5
ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldEZyYW1lOnll
bGxvd0hpZ2hsaWdodFJlY3RdOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93Q29s
b3I6cmltU2hhZG93Q29sb3IuZ2V0KCldOwotICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hh
ZG93UmFkaXVzOnJpbVNoYWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbcmltU2hhZG93TGF5ZXIg
c2V0U2hhZG93UmFkaXVzOldlYkNvcmU6OnJpbVNoYWRvd0JsdXJSYWRpdXNdOwogICAgICAgICBb
cmltU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFuc2xhdGVkUGF0aC5wbGF0Zm9ybVBhdGgo
KV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPZmZzZXQ6Q0dTaXplWmVyb107
CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPcGFjaXR5OjFdOwpAQCAtMjQ1LDcg
KzI0MCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0FLZXlmcmFtZUFuaW1hdGlvbj4gY3JlYXRlQm91
bmNlQW5pbWF0aW9uKENGVGltZUludGVydmFsIGR1cmF0CiAgICAgUmV0YWluUHRyPENBS2V5ZnJh
bWVBbmltYXRpb24+IGJvdW5jZUFuaW1hdGlvbiA9IFtDQUtleWZyYW1lQW5pbWF0aW9uIGFuaW1h
dGlvbldpdGhLZXlQYXRoOkAidHJhbnNmb3JtIl07CiAgICAgW2JvdW5jZUFuaW1hdGlvbiBzZXRW
YWx1ZXM6QFsKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpDQVRyYW5z
Zm9ybTNESWRlbnRpdHldLAotICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNE
OkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUobWlkQm91bmNlU2NhbGUsIG1pZEJvdW5jZVNjYWxlLCAx
KV0sCisgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0z
RE1ha2VTY2FsZShXZWJDb3JlOjptaWRCb3VuY2VTY2FsZSwgV2ViQ29yZTo6bWlkQm91bmNlU2Nh
bGUsIDEpXSwKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpDQVRyYW5z
Zm9ybTNESWRlbnRpdHldCiAgICAgICAgIF1dOwogICAgIFtib3VuY2VBbmltYXRpb24gc2V0RHVy
YXRpb246ZHVyYXRpb25dOwpAQCAtMjk0LDcgKzI4OSw3IEBAIC0gKENGVGltZUludGVydmFsKV9h
bmltYXRpb25EdXJhdGlvbgogICAgIGlmIChbc2VsZiBpbmRpY2F0b3JXYW50c0JvdW5jZToqX3Rl
eHRJbmRpY2F0b3JdKSB7CiAgICAgICAgIGlmIChpbmRpY2F0b3JXYW50c0NvbnRlbnRDcm9zc2Zh
ZGUoKl90ZXh0SW5kaWNhdG9yKSkKICAgICAgICAgICAgIHJldHVybiBib3VuY2VXaXRoQ3Jvc3Nm
YWRlQW5pbWF0aW9uRHVyYXRpb247Ci0gICAgICAgIHJldHVybiBib3VuY2VBbmltYXRpb25EdXJh
dGlvbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uLnZh
bHVlKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZhZGVJbkFuaW1hdGlvbkR1cmF0aW9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5oCmluZGV4IGMzYjMz
ZWJhMmM4YmMwZDc1NDU5ZGQyMTUwODliNjUyOWM1ZDMxNWQuLmY3ZmZmN2M3M2ExZDJmZjc1NGIy
Nzg3Y2EyMjk5NTIzODAzMTMzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L1RleHRJbmRpY2F0b3JXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0
SW5kaWNhdG9yV2luZG93LmgKQEAgLTM2LDE5ICszNiw2IEBAIE9CSkNfQ0xBU1MgV2ViVGV4dElu
ZGljYXRvckxheWVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgVGV4dElu
ZGljYXRvcldpbmRvd0xpZmV0aW1lIDogdWludDhfdCB7Ci0gICAgLy8gVGhlIFRleHRJbmRpY2F0
b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRpc21pc3NlZC4KLSAgICBQZXJtYW5l
bnQsCi0KLSAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgYnJpZWZseSBpbmRpY2F0ZSB0
aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21pc3MuCi0gICAgVGVtcG9yYXJ5Ci19
OwotCi1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gOiB1
aW50OF90IHsKLSAgICBOb25lLAotICAgIEZhZGVPdXQKLX07Ci0KICNpZiBQTEFURk9STShNQUMp
CiAKIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3cgewpAQCAtNTksOCArNDYsOCBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgVGV4dEluZGljYXRvcldpbmRvdyhOU1ZpZXcg
Kik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflRleHRJbmRpY2F0b3JXaW5kb3coKTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4sIENH
UmVjdCBjb250ZW50UmVjdCwgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aW9uKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRleHRJbmRpY2F0
b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBDR1JlY3QgY29udGVudFJlY3QsIFRleHRJbmRpY2F0b3JM
aWZldGltZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoVGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldEFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsKIApAQCAtODEsMyArNjgsNSBAQCBwcml2YXRl
OgogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4
IGY4NWZhNTNiM2I0YTlmNDU5Njk3NzZhMTJjYzQxMWY3OTIyZGY3N2MuLjE4MGJhYjdkMDJiYzNh
NWQxYjBjM2U3NDUyZTFkMzI5MjUyNDk3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQpAQCAtMzgsMTIgKzM4LDYgQEAKICNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvTlNDb2xvclNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpD
b3JlU1BJLmg+CiAKLWNvbnN0IENGVGltZUludGVydmFsIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9u
ID0gMC4xMjsKLWNvbnN0IENGVGltZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91
bmNlQW5pbWF0aW9uRHVyYXRpb24gKyAwLjI7Ci0KLWNvbnN0IENHRmxvYXQgbWlkQm91bmNlU2Nh
bGUgPSAxLjI1OwotY29uc3QgQ0dGbG9hdCBkcm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Ci0KIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Niw3ICs1
MCw3IEBAIFRleHRJbmRpY2F0b3JXaW5kb3c6OlRleHRJbmRpY2F0b3JXaW5kb3coTlNWaWV3ICp0
YXJnZXRWaWV3KQogCiBUZXh0SW5kaWNhdG9yV2luZG93Ojp+VGV4dEluZGljYXRvcldpbmRvdygp
CiB7Ci0gICAgY2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb246OkZhZGVPdXQpOworICAgIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKIH0KIAogdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCBwcm9ncmVzcykKQEAgLTY3
LDE0ICs2MSwxNCBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldEFuaW1hdGlvblByb2dy
ZXNzKGZsb2F0IHByb2dyZXNzKQogICAgIFttX3RleHRJbmRpY2F0b3JMYXllciBzZXRBbmltYXRp
b25Qcm9ncmVzczpwcm9ncmVzc107CiB9CiAKLXZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xl
YXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gYW5p
bWF0aW9uKQordm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpjbGVhclRleHRJbmRpY2F0b3IoV2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCiB7CiAgICAg
UmVmUHRyPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IgPSBXVEZNb3ZlKG1fdGV4dEluZGlj
YXRvcik7CiAKICAgICBpZiAoW21fdGV4dEluZGljYXRvckxheWVyIGlzRmFkaW5nT3V0XSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHRleHRJbmRpY2F0b3IgJiYgW21fdGV4dEluZGljYXRv
ckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5kaWNhdG9yXSAmJiBb
bV90ZXh0SW5kaWNhdG9yTGF5ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9uXSAmJiBhbmltYXRpb24g
PT0gVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCkgeworICAg
IGlmICh0ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50
c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYgW21fdGV4dEluZGljYXRvckxheWVy
IGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9uID09IFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKICAgICAgICAgc3RhcnRGYWRlT3V0
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04Miw3ICs3Niw3IEBAIHZvaWQgVGV4dElu
ZGljYXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JXaW5kb3dEaXNt
aXNzYWxBbmltYXRpCiAgICAgY2xvc2VXaW5kb3coKTsKIH0KIAotdm9pZCBUZXh0SW5kaWNhdG9y
V2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9y
LCBDR1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMsIFRleHRJbmRpY2F0
b3JXaW5kb3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0
VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgQ0dSZWN0IHRl
eHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUg
bGlmZXRpbWUpCiB7CiAgICAgaWYgKG1fdGV4dEluZGljYXRvciA9PSB0ZXh0SW5kaWNhdG9yLnB0
cigpKQogICAgICAgICByZXR1cm47CkBAIC05NSw4ICs4OSw4IEBAIHZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciwgQ0dSCiAgICAgQ0dGbG9hdCB2ZXJ0aWNhbE1hcmdpbiA9IGRyb3BTaGFkb3dCbHVyUmFkaXVz
ICogMiArIFRleHRJbmRpY2F0b3I6OmRlZmF1bHRWZXJ0aWNhbE1hcmdpbjsKICAgICAKICAgICBp
ZiAoW21fdGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzQm91bmNlOiptX3RleHRJbmRp
Y2F0b3JdKSB7Ci0gICAgICAgIGhvcml6b250YWxNYXJnaW4gPSBzdGQ6Om1heChob3Jpem9udGFs
TWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLndpZHRoICog
KG1pZEJvdW5jZVNjYWxlIC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsKLSAgICAgICAgdmVydGlj
YWxNYXJnaW4gPSBzdGQ6Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2Ny
ZWVuQ29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQgKiAobWlkQm91bmNlU2NhbGUgLSAxKSArIHZlcnRp
Y2FsTWFyZ2luKTsKKyAgICAgICAgaG9yaXpvbnRhbE1hcmdpbiA9IHN0ZDo6bWF4KGhvcml6b250
YWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLnNpemUud2lkdGgg
KiAoV2ViQ29yZTo6bWlkQm91bmNlU2NhbGUgLSAxKSArIGhvcml6b250YWxNYXJnaW4pOworICAg
ICAgICB2ZXJ0aWNhbE1hcmdpbiA9IHN0ZDo6bWF4KHZlcnRpY2FsTWFyZ2luLCB0ZXh0Qm91bmRp
bmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLmhlaWdodCAqIChXZWJDb3JlOjptaWRCb3Vu
Y2VTY2FsZSAtIDEpICsgdmVydGljYWxNYXJnaW4pOwogICAgIH0KIAogICAgIGhvcml6b250YWxN
YXJnaW4gPSBDR0NlaWxpbmcoaG9yaXpvbnRhbE1hcmdpbik7CkBAIC0xMjUsOCArMTE5LDggQEAg
dm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNh
dG9yPiB0ZXh0SW5kaWNhdG9yLCBDR1IKICAgICBpZiAobV90ZXh0SW5kaWNhdG9yLT5wcmVzZW50
YXRpb25UcmFuc2l0aW9uKCkgIT0gVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246
Ok5vbmUpCiAgICAgICAgIFttX3RleHRJbmRpY2F0b3JMYXllciBwcmVzZW50XTsKIAotICAgIGlm
IChsaWZldGltZSA9PSBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlRlbXBvcmFyeSkKLSAg
ICAgICAgbV90ZW1wb3JhcnlUZXh0SW5kaWNhdG9yVGltZXIuc3RhcnRPbmVTaG90KDFfcyAqIHRp
bWVCZWZvcmVGYWRlU3RhcnRzKTsKKyAgICBpZiAobGlmZXRpbWUgPT0gVGV4dEluZGljYXRvckxp
ZmV0aW1lOjpUZW1wb3JhcnkpCisgICAgICAgIG1fdGVtcG9yYXJ5VGV4dEluZGljYXRvclRpbWVy
LnN0YXJ0T25lU2hvdChXZWJDb3JlOjp0aW1lQmVmb3JlRmFkZVN0YXJ0cyk7CiB9CiAKIHZvaWQg
VGV4dEluZGljYXRvcldpbmRvdzo6Y2xvc2VXaW5kb3coKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggM2FkNTE0MmNkMTc3YWFkYWU1YzM4NTMyZDU3
ZmNhNDM4MGFjZDRiNi4uMTBiODkxOWIwZjg2MjQxODFlZWFiY2Y3OGMwMWMxOWJiM2JlMGMwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC00MTEs
OCArNDExLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgpOwog
Ci0gICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImLCBXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7Ci0gICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRp
b24pOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiwg
V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lID0gV2ViQ29yZTo6VGV4dEluZGljYXRvckxp
ZmV0aW1lOjpQZXJtYW5lbnQpOworICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKTsKICAgICB2b2lk
IHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAgICAgdm9pZCBkaXNt
aXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5KCk7CiAgICAgdm9pZCBk
aXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbihib29sKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggMjNhNTA0
NjgxMTQxMzM1MTlmMmVkMWJkY2Q4MjRjZDkyYTY1YjQxZi4uZGM1MGNkMmM1MTUwZDU1Nzk4NTRh
YjdlNjVlNzVkNjI1NWUzYjA5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KQEAgLTQyMyw3ICs0MjMsNyBAQCAtICh2b2lkKW9ic2VydmVWYWx1ZUZv
cktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZToo
TgogI2lmICFFTkFCTEUoUkVWRUFMKQogLSAodm9pZClfZGljdGlvbmFyeUxvb2t1cFBvcG92ZXJX
aWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7Ci0gICAgX2ltcGwtPmNs
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgX2ltcGwtPmNsZWFyVGV4dEluZGljYXRv
cldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6
Tm9uZSk7CiB9CiAjZW5kaWYKIApAQCAtMzQ5NSw3ICszNDk1LDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogICAgICAgICB1cGRhdGVXaW5kb3dBbmRWaWV3RnJh
bWVzKCk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6
VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0xpZmV0aW1lIGxpZmV0aW1lKQordm9pZCBXZWJWaWV3SW1wbDo6c2V0VGV4dEluZGljYXRvcihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yTGlmZXRpbWUgbGlmZXRpbWUpCiB7CiAgICAgaWYgKCFtX3RleHRJbmRpY2F0b3JXaW5kb3cp
CiAgICAgICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvdz4obV92aWV3LmdldEF1dG9yZWxlYXNlZCgpKTsKQEAgLTM1MDQsNyAr
MzUwNCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yCiAgICAgbV90ZXh0SW5kaWNhdG9yV2lu
ZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIE5TUmVjdFRvQ0dSZWN0KHRleHRC
b3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzKSwgbGlmZXRpbWUpOwogfQogCi12b2lkIFdl
YlZpZXdJbXBsOjpjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQordm9pZCBXZWJWaWV3
SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yRGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKIHsKICAgICBpZiAobV90ZXh0SW5kaWNh
dG9yV2luZG93KQogICAgICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGlj
YXRvcihhbmltYXRpb24pOwpAQCAtMzUyNyw3ICszNTI3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6
ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb25Gcm9tVmlld09u
bHkoYm8KICAgICAvLyBDYWxsaW5nIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uIGhl
cmUgd2lsbCB3aW4gb3V0IG92ZXIgdGhlIGFuaW1hdGVkIGNsZWFyIGluIGRpc21pc3NDb250ZW50
UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkuCiAgICAgLy8gV2UgY2FuJ3QgaW52ZXJ0
IHRoZXNlIGJlY2F1c2UgY2xpZW50cyBjYW4gb3ZlcnJpZGUgKGFuZCBoYXZlIG92ZXJyaWRkZW4p
IF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzLCBzbyBpdCBuZWVkcyB0byBiZSBj
YWxsZWQuCiAgICAgLy8gRm9yIHRoaXMgc2FtZSByZWFzb24sIHRoaXMgY2FuJ3QgYmUgbW92ZWQg
dG8gV2ViVmlld0ltcGwgd2l0aG91dCBjYXJlLgotICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb24oYW5pbWF0ZSA/IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb246OkZhZGVPdXQgOiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpOb25lKTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKGFu
aW1hdGUgPyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0
IDogV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CiAgICAg
W21fdmlldyBfd2ViX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwogfQogCkBA
IC0zNTQ0LDcgKzM1NDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaXNtaXNzQ29udGVudFJlbGF0
aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5KCkKICAgICAgICAgICAgIFtbZ2V0RERBY3Rpb25z
TWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gcmVxdWVzdEJ1YmJsZUNsb3N1cmVVbmFuY2hv
ck9uRmFpbHVyZTpZRVNdOwogICAgIH0KIAotICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmlt
YXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFk
ZU91dCk7CisgICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKIAogICAgIFttX2ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA0MTdlMTFkNDk2NjA3YTMwMGNm
YjY1ZmVkNmM3ZjRjYWNlMGM5MjZkLi5hMzU3MzFlYzAxZDllNWUxNTAyZTYwNWU1MjgyZmVmMGIw
NDVkNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xMDYsOCArMTA2
LDggQEAgY2xhc3MgU2VsZWN0aW9uRGF0YTsKIGVudW0gY2xhc3MgTW91c2VFdmVudFBvbGljeSA6
IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFNjcm9sbGJhclN0eWxlIDogdWludDhfdDsKLWVudW0gY2xhc3MgVGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lIDogdWludDhfdDsKLWVudW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JM
aWZldGltZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmlt
YXRpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWlu
dDhfdDsKIAogc3RydWN0IEFwcEhpZ2hsaWdodDsKQEAgLTM4NSw4ICszODUsOCBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0
SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGlj
YXRvcldpbmRvd0xpZmV0aW1lKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyVGV4dEluZGlj
YXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxB
bmltYXRpb24pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlv
blByb2dyZXNzKGZsb2F0KSA9IDA7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1E
aWN0aW9uYXJ5TG9va3VwKGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBhNDViMDJlMTFk
M2Y0ODBmMDMxMzdhNWEwODU1MjUxYmY2YTZkZjM0Li43N2IzMDdmYmU2YzZlOTZmNTU4MTAyZWM3
NTliNWFhMmIyYzY4ZGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTIxOCw3ICsyMTgsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQXR0cmlidXRlZFN0cmlu
Zy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcE9ic2VydmVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2lu
ZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW5jbHVkZSA8d3Rm
L01hY2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CkBA
IC02NTM0LDcgKzY1MzMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VGV4dEluZGljYXRvcihj
b25zdCBUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSwgdWludAogewogICAgIC8vIEZJ
WE1FOiBNYWtlIFRleHRJbmRpY2F0b3JXaW5kb3cgYSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBwcmVz
ZW50YXRpb25hbCB0aGluZyAoIlRleHRJbmRpY2F0b3JQcmVzZW50YXRpb24iPykuCiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgcGFnZUNsaWVudCgpLnNldFRleHRJbmRpY2F0b3IoVGV4dEluZGlj
YXRvcjo6Y3JlYXRlKGluZGljYXRvckRhdGEpLCBzdGF0aWNfY2FzdDxUZXh0SW5kaWNhdG9yV2lu
ZG93TGlmZXRpbWU+KGxpZmV0aW1lKSk7CisgICAgcGFnZUNsaWVudCgpLnNldFRleHRJbmRpY2F0
b3IoVGV4dEluZGljYXRvcjo6Y3JlYXRlKGluZGljYXRvckRhdGEpLCBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU+KGxpZmV0aW1lKSk7CiAjZWxzZQogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCkBAIC02NTQzLDcgKzY1NDIsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNh
dG9yRGF0YSwgdWludAogdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVGV4dEluZGljYXRvcigpCiB7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcGFnZUNsaWVudCgpLmNsZWFyVGV4dEluZGljYXRv
cihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICBw
YWdlQ2xpZW50KCkuY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNt
aXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogI2Vsc2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAxZTIz
OTgxYzU3ZWEyZjE2NzcyNzg3ZTc3ZWM4ODg2NDk1MDFkZTMyLi4wYjMzN2Y0NGJlOTdiODA4ODg4
MDFjZTBmZTMyODBmNjE0MmQ0ZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTE1Miw3ICsxMTUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgY291bnRTdHJpbmdN
YXRjaGVzKGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxGaW5kT3B0aW9ucz4sIHVuc2lnbmVkIG1h
eE1hdGNoQ291bnQpOwogICAgIHZvaWQgcmVwbGFjZU1hdGNoZXMoVmVjdG9yPHVpbnQzMl90PiYm
IG1hdGNoSW5kaWNlcywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQsIGJvb2wgc2VsZWN0
aW9uT25seSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwogICAgIHZvaWQg
ZGlkQ291bnRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIHVpbnQzMl90IG1hdGNoQ291bnQp
OwotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGF0YSYsIHVpbnQ2NF90IC8qIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSAq
LyBsaWZldGltZSA9IDAgLyogUGVybWFuZW50ICovKTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0
b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmLCB1aW50NjRfdCAvKiBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUgKi8gbGlmZXRpbWUgPSAwIC8qIFBlcm1hbmVudCAqLyk7
CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogICAg
IHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggM2ZiZTFiMTdmZjY2MDQ0OWU5OTNlZjdl
OGFmYzBiYTAwMjRmZDg3YS4uODFmYjAxODMzY2VlOWU1ZDkxNTk1NDE4ZDJiNWEwYWU0Yjg0NGNj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmgKQEAgLTEzOCw4ICsxMzgsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJEYXRlVGltZVBp
Y2tlcj4gY3JlYXRlRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5JikgZmluYWw7CiAjZW5kaWYK
IAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4s
IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGlzbWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JB
bmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNob3dTYWZlQnJv
d3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5pbmcmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLm1tCmluZGV4IDQwYjc2MjM2MzlmZmFkNDFiNDQyNDY4ZWIyZTE4MWFhMzRmMDE2NTMuLjhj
M2M4ZjI0MjFjZjBjYzJiM2Y1MDM3NGQxOWZiNWMyMmMxNTk5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTQ3OSwxNiArNDc5
LDE5IEBAIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBv
cHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZv
aWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRl
eHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3Is
IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkKIHsKKyAgICBbbV9jb250ZW50VmlldyBz
ZXRVcFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvcl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudElt
cGw6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gZGlzbWlzc2FsQW5pbWF0aW9uKQogeworICAg
IFttX2NvbnRlbnRWaWV3IGNsZWFyVGV4dEluZGljYXRvcjpkaXNtaXNzYWxBbmltYXRpb25dOwog
fQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jl
c3MoZmxvYXQpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9u
UHJvZ3Jlc3MoZmxvYXQgYW5pbWF0aW9uUHJvZ3Jlc3MpCiB7CisgICAgW21fY29udGVudFZpZXcg
c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOmFuaW1hdGlvblByb2dyZXNzXTsKIH0K
IAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShj
b25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4
IDg4NmFlNzVlNjdiNTZhZWIzODM3ODRmNTk2YzlkOGY3MjkxMjU2ZTcuLjhmZjkyYjdjOWI4YWI5
ZTcwN2E4NzE2MTMwNzM5ZTBkZjkzMTYyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTg5LDYgKzg5LDcg
QEAgc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNj
ZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBNb3VzZUV2ZW50UG9saWN5IDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKK2VudW0gY2xh
c3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7CiAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQogc3RydWN0IERyYWdJdGVtOwpAQCAtMTA0LDYgKzEwNSw3IEBAIGNs
YXNzIFdlYlBhZ2VQcm94eTsKIH0KIAogQGNsYXNzIFdlYkV2ZW50OworQGNsYXNzIFdlYlRleHRJ
bmRpY2F0b3JMYXllcjsKIEBjbGFzcyBXS0FjdGlvblNoZWV0QXNzaXN0YW50OwogQGNsYXNzIFdL
Q29udGV4dE1lbnVFbGVtZW50SW5mbzsKIEBjbGFzcyBXS0RhdGFMaXN0U3VnZ2VzdGlvbnNDb250
cm9sOwpAQCAtMzMxLDYgKzMzMyw5IEBAIGVudW0gY2xhc3MgUHJvY2VlZFdpdGhJbWFnZUV4dHJh
Y3Rpb24gOiBib29sIHsKICAgICBSZXRhaW5QdHI8VUlQcmV2aWV3SXRlbUNvbnRyb2xsZXI+IF9w
cmV2aWV3SXRlbUNvbnRyb2xsZXI7CiAjZW5kaWYKIAorICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yPiBfdGV4dEluZGljYXRvcjsKKyAgICBSZXRhaW5QdHI8V2ViVGV4dEluZGljYXRv
ckxheWVyPiBfdGV4dEluZGljYXRvckxheWVyOworCiAjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCiAg
ICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQcmV2aWV3PiBfY29udGV4dE1lbnVJbnRlcmFjdGlvblRh
cmdldGVkUHJldmlldzsKICNlbmRpZgpAQCAtNjcwLDYgKzY3NSwxMCBAQCBGT1JfRUFDSF9QUklW
QVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9S
X1dFQl9WSUVXKQogLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWU7
CiAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lOwogCistICh2b2lkKXNldFVwVGV4
dEluZGljYXRvcjooUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3I7Cist
ICh2b2lkKXNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQpTlNBbmltYXRp
b25Qcm9ncmVzczsKKy0gKHZvaWQpY2xlYXJUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKKwogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRVc2VDb250ZXh0TWVudXM7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZEF2b2lkUmVzaXppbmdXaGVuSW5wdXRWaWV3
Qm91bmRzQ2hhbmdlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91
bGRBdm9pZFNjcm9sbGluZ1doZW5Gb2N1c2VkQ29udGVudElzVmlzaWJsZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IGE2MDg2OWE3N2Y5MjU3MGIyMGM5ZjcxOTNkYWNkMTAxMTIxZmExN2EuLmY3OTBlNTAz
MjU3ODk1OGI5ODRhZTZmYWUwZmU4MmNhZmI5MDY2NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTE2
LDExICsxMTYsMTMgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVEYXRhLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0
SW5kaWNhdG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KICNp
bXBvcnQgPFdlYkNvcmUvVG91Y2hBY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0
aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNv
cmUvVmlzaWJsZVNlbGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgorI2lt
cG9ydCA8V2ViQ29yZS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V3JpdGluZ0RpcmVjdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlNlbGVjdGlvblJlY3QuaD4g
Ly8gRklYTUU6IFdlYktpdCBzaG91bGQgbm90IGluY2x1ZGUgV2ViS2l0TGVnYWN5IGhlYWRlcnMh
CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgpAQCAtOTU4Miw2ICs5NTg0
LDY3IEBAIC0gKHZvaWQpX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFn
ZUV4dHJhY3Rpb246KFdlYktpdDo6UHJvY2VlZFdpCiAKICNlbmRpZiAvLyBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKIAorLSAodm9pZClzZXRVcFRleHRJbmRpY2F0b3I6KFJlZjxXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yCit7CisgICAgaWYgKF90ZXh0SW5kaWNhdG9yID09
IHRleHRJbmRpY2F0b3IucHRyKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBbc2VsZiB0
ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07CisgICAgW05TT2JqZWN0IGNhbmNlbFByZXZpb3Vz
UGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihzdGFydEZh
ZGVPdXQpIG9iamVjdDpuaWxdOworICAgIAorICAgIF90ZXh0SW5kaWNhdG9yID0gdGV4dEluZGlj
YXRvci5wdHIoKTsKKworICAgIENHUmVjdCBmcmFtZSA9IF90ZXh0SW5kaWNhdG9yLT50ZXh0Qm91
bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CisgICAgX3RleHRJbmRpY2F0b3JMYXll
ciA9IGFkb3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgYWxsb2NdIGluaXRXaXRoRnJhbWU6
ZnJhbWUKKyAgICAgICAgdGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIG1hcmdpbjpDR1NpemVa
ZXJvIG9mZnNldDpDR1BvaW50WmVyb10pOworICAgIAorICAgIFtbc2VsZiBsYXllcl0gYWRkU3Vi
bGF5ZXI6X3RleHRJbmRpY2F0b3JMYXllci5nZXQoKV07CisKKyAgICBpZiAoX3RleHRJbmRpY2F0
b3ItPnByZXNlbnRhdGlvblRyYW5zaXRpb24oKSAhPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yUHJl
c2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSkKKyAgICAgICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIg
cHJlc2VudF07CisgICAgCisgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihzdGFy
dEZhZGVPdXQpIHdpdGhPYmplY3Q6c2VsZiBhZnRlckRlbGF5OldlYkNvcmU6OnRpbWVCZWZvcmVG
YWRlU3RhcnRzLnZhbHVlKCldOworfQorCistICh2b2lkKWNsZWFyVGV4dEluZGljYXRvcjooV2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb24KK3sKKyAgICBS
ZWZQdHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9IFdURk1vdmUoX3Rl
eHRJbmRpY2F0b3IpOworICAgIAorICAgIGlmIChbX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGlu
Z091dF0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFtfdGV4
dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5kaWNh
dG9yXSAmJiBbX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFu
aW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRl
T3V0KSB7CisgICAgICAgIFtzZWxmIHN0YXJ0RmFkZU91dF07CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07Cit9CisKKy0gKHZv
aWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClhbmltYXRpb25Qcm9n
cmVzcworeworICAgIGlmICghX3RleHRJbmRpY2F0b3IpCisgICAgICAgIHJldHVybjsKKworICAg
IFtfdGV4dEluZGljYXRvckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNzOmFuaW1hdGlvblByb2dy
ZXNzXTsKK30KKworLSAodm9pZCl0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcgoreworICAgIFtf
dGV4dEluZGljYXRvckxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICBfdGV4dEluZGlj
YXRvckxheWVyID0gbmlsOworfQorCistICh2b2lkKXN0YXJ0RmFkZU91dAoreworICAgIFtfdGV4
dEluZGljYXRvckxheWVyIHNldEZhZGluZ091dDpZRVNdOworICAgICAgICAKKyAgICBbX3RleHRJ
bmRpY2F0b3JMYXllciBoaWRlV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3ZWFrU2VsZiA9IFdlYWtP
YmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9
IHdlYWtTZWxmLmdldCgpOworICAgICAgICBbc3Ryb25nU2VsZiB0ZWFyZG93blRleHRJbmRpY2F0
b3JMYXllcl07CisgICAgfV07Cit9CisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2lt
cG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9uc0Fm
dGVyLm1tPgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5oCmluZGV4IDU4YmU0YTJjYWU0NTM3ZTU0NjNiZGQxYjZiNWJlMTY4YmE2OTI3
NmMuLjY3NTVmMDFiMzg4NDgwODViMGI1YWQyYWFjOGNlMWQxZTQ0YjdhZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBAIC0xNTYsOCAr
MTU2LDggQEAgcHJpdmF0ZToKIAogICAgIFJlZjxXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlPiBj
cmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgV2ViQ29y
ZTo6VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmKSBmaW5hbDsKIAotICAgIHZvaWQgc2V0VGV4
dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dMaWZldGltZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjbGVhclRleHRJbmRpY2F0
b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
PiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGNs
ZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9u
KSBvdmVycmlkZTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhm
bG9hdCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDc4OGEyNzk2ZGJiMWNm
NDU5ZWZlMTI0YzZmMGQ3ZDBhNjk4YjdlOWIuLjYxNGI1OTY2YzY0YWJjYzRkNDEwYjAzZGFkNGE3
MDM5Y2RmZmM0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMubW0KQEAgLTU2OSwxMiArNTY5LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6
OmNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFpbkZyYW1lTmF2aWdhdGlvbigpCiAgICAg
bV9pbXBsLT5jbGVhclNhZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5GcmFtZU5hdmlnYXRpb24o
KTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dElu
ZGljYXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0
aW1lIGxpZmV0aW1lKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8
VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0
aW1lIGxpZmV0aW1lKQogewogICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNh
dG9yLmdldCgpLCBsaWZldGltZSk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4
dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9u
IGRpc21pc3NhbEFuaW1hdGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGlj
YXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFu
aW1hdGlvbikKIHsKICAgICBtX2ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24o
ZGlzbWlzc2FsQW5pbWF0aW9uKTsKIH0KQEAgLTY3Miw5ICs2NzIsOSBAQCB2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJ
bmZvJiBkaWN0aQogICAgIG1faW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKIAog
ICAgIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBtX3Zp
ZXcsIFt0aGlzXShUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIG1faW1w
bC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlm
ZXRpbWU6OlBlcm1hbmVudCk7CisgICAgICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0
SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudCk7CiAg
ICAgfSwgbnVsbHB0ciwgW3RoaXNdKCkgewotICAgICAgICBtX2ltcGwtPmNsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbjo6Tm9uZSk7CisgICAgICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFu
aW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsK
ICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggOWJhYThiZTI0Yzc3Yzc0NmU3
OTNmNDEzNzhkY2QwMGIzY2Y0YzRmZS4uYmVjMGRjMTI4YzUwNjdkNmU5MjdkZmNlZGI0N2E3ZmJl
ZDgyZTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCkBAIC00OTAsOSArNDkwLDkgQEAgLSAoaWQ8
TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxl
ckZvclRleHQKICAgICBfdmlld0ltcGwtPnByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7CiAK
ICAgICByZXR1cm4gV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6YW5pbWF0aW9uQ29udHJvbGxl
ckZvclBvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIF92aWV3LCBbc2VsZl0oV2ViQ29yZTo6VGV4
dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBfdmlld0ltcGwtPnNldFRleHRJ
bmRpY2F0b3IodGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0
aW1lOjpQZXJtYW5lbnQpOworICAgICAgICBfdmlld0ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4
dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnQpOwog
ICAgIH0sIG51bGxwdHIsIFtzZWxmXSgpIHsKLSAgICAgICAgX3ZpZXdJbXBsLT5jbGVhclRleHRJ
bmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb246Ok5vbmUpOworICAgICAgICBfdmlld0ltcGwtPmNsZWFyVGV4dEluZGljYXRv
cldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6
Tm9uZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggM2YyZTlkNTBm
ZmIwMDFjMjQ2ZDQxNzEwZTAzYjQ0OWJkYzU4Njc4NC4uOTUxOTE3YzI0ZDlmMDJlODA2NjliY2Vk
Y2JjODNhMTAwNDViMzYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTg4LDYgKzg4LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUp
KQogI2luY2x1ZGUgIlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCIKQEAgLTEyNzEsNiArMTI3Miwx
MSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBw
SGlnaGxpZ2h0JiYgaGlnaGxpZ2h0KSBjb25zdAogfQogI2VuZGlmCiAKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRh
JiBpbmRpY2F0b3JEYXRhKSBjb25zdAoreworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yRGF0YSwgc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6VGVtcG9yYXJ5KSkpOworfQor
CiBTdHJpbmcgV2ViQ2hyb21lQ2xpZW50OjpzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJp
bmcodW5zaWduZWQga2V5U2l6ZUluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZVN0cmluZywg
Y29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgU3RyaW5nIHJlc3VsdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCA0ZWVmMWY4YWQxYzUyYWMwNTE2NTgyYmExNjE1NWNhZDAxYTE1NTcyLi40MTli
YTc4NDgzYWVlZTJjMWQ0M2RhMmIwYjQyZTkxZDdjMWIxZTlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC0zNTMsNiArMzUzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0
KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisgICAgdm9p
ZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJikgY29u
c3QgZmluYWw7CisKICNpZiBFTkFCTEUoV0VCX0NSWVBUTykKICAgICBib29sIHdyYXBDcnlwdG9L
ZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgVmVjdG9yPHVpbnQ4X3Q+JikgY29uc3QgZmluYWw7
CiAgICAgYm9vbCB1bndyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgVmVjdG9y
PHVpbnQ4X3Q+JikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKaW5kZXggMDA5MDE0YTUzNmJmOWQ2OGRmYmU1
ZGExNDBkZGI1MTdhZWFjZDIwNy4uY2UyMWQ2N2M0OGI5NjA5ZWZhMzk1NjZhZjAyOTNiOTNhY2Nl
ZGRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRD
b250cm9sbGVyLmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIGJvb2wgRmluZENvbnRyb2xsZXI6OnVw
ZGF0ZUZpbmRJbmRpY2F0b3IoRnJhbWUmIHNlbGVjdGVkRnJhbWUsIGJvb2wgaXNTaG93aW5nT3Zl
CiAKICAgICBtX2ZpbmRJbmRpY2F0b3JSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChpbmRpY2F0b3It
PnNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSk7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRleHRJ
bmRpY2F0b3IoaW5kaWNhdG9yLT5kYXRhKCksIHN0YXRpY19jYXN0PHVpbnQ2NF90Pihpc1Nob3dp
bmdPdmVybGF5ID8gVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQgOiBUZXh0
SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKKyAgICBtX3dlYlBhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0VGV4dEluZGljYXRvcihpbmRpY2F0b3ItPmRh
dGEoKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGlzU2hvd2luZ092ZXJsYXkgPyBXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudCA6IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JM
aWZldGltZTo6VGVtcG9yYXJ5KSkpOwogI2VuZGlmCiAgICAgbV9pc1Nob3dpbmdGaW5kSW5kaWNh
dG9yID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBmM2Q0NzE2YTg5MzNkOWYyNDJmOGVm
MTIxNWE4NjYyMzQwZjg5N2E1Li5iYWQ1MWYwYjIxMmRhZTdiNjcxMDFhMGFhYTYzZTQ5NDlkZTdk
MzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTU1LDYgKzE1NSw4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QgZmlu
YWw7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFsOworCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKICAgICBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpIGZpbmFsOwogICAgIHZvaWQgcmVxdWVz
dFBvaW50ZXJVbmxvY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA0NTM5Y2U2ZjY0
ZDAwYjBiYjAwMjgzZWFjODE1MzI5NzkwMDRjNGU4Li4wM2ViNjE0NzRlMjFmYmFiMTVlMTUyNzgw
MGIwYzQ2ZDkyYjQzM2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03MjAsNiArNzIwLDEwIEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdo
bGlnaHQmJikgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VGV4
dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0
YSkgY29uc3QKK3sKK30KKwogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiBib29sIFdlYkNocm9t
ZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2NrKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDBmZTJhNTA5NmM3ZTI2ZjMyMDMyNWUz
NjhiZmYwZGJiOWYwNzJjNzYuLjYxZDZmNGU4NjU5NGRjYWI3ZTYxNzkwNzA0YjcwOWVmNWNjYzJi
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bQpAQCAtNTk1Myw3ICs1OTUzLDcgQEAgLSAodm9pZClfbG9va1VwSW5EaWN0aW9uYXJ5RnJvbU1l
bnU6KGlkKXNlbmRlcgogCiAtICh2b2lkKXF1aWNrTG9va1dpdGhFdmVudDooTlNFdmVudCAqKWV2
ZW50CiB7Ci0gICAgW1tzZWxmIF93ZWJWaWV3XSBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRl
T3V0XTsKKyAgICBbW3NlbGYgX3dlYlZpZXddIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwog
ICAgIFtzdXBlciBxdWlja0xvb2tXaXRoRXZlbnQ6ZXZlbnRdOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIubW0KaW5kZXggY2U2MmJmYTUxNjE3N2M4YzM2YWVkZDdiYTVmYTRjMjc1MTBk
NmY3MS4uYmU1YjZhMmZiMDE1NGJjMzZmY2QzOGJiMWRhZDg5ZTA5YzcwZTMzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5tbQpAQCAtMTIyLDcgKzEyMiw3IEBAIC0gKHZvaWQpd2ViVmll
dzooV2ViVmlldyAqKXdlYlZpZXcgZGlkSGFuZGxlU2Nyb2xsV2hlZWw6KE5TRXZlbnQgKilldmVu
dAogewogICAgIFtfY3VycmVudFFMUHJldmlld01lbnVJdGVtIGNsb3NlXTsKICAgICBbc2VsZiBf
Y2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Ci0gICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb246Ok5vbmVdOworICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFu
aW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsK
IH0KIAogLSAoTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFj
dGlvblJlY29nbml6ZXIKQEAgLTEzOSw3ICsxMzksNyBAQCAtICh2b2lkKV9jYW5jZWxJbW1lZGlh
dGVBY3Rpb24KICAgICB9CiAKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07
Ci0gICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgIFtf
d2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKIH0KIAogLSAodm9pZClfY2xlYXJJ
bW1lZGlhdGVBY3Rpb25TdGF0ZQpAQCAtMjUxLDcgKzI1MSw3IEBAIC0gKHZvaWQpaW1tZWRpYXRl
QWN0aW9uUmVjb2duaXplckRpZENhbmNlbEFuaW1hdGlvbjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0
dXJlUmVjCiAKICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVz
czowXTsKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Ci0gICAgW193ZWJW
aWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOworICAgIFtfd2ViVmlldyBfY2xlYXJU
ZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uOjpOb25lXTsKICAgICBbX3dlYlZpZXcgX3NldE1haW50YWluc0luYWN0aXZlU2Vs
ZWN0aW9uOk5PXTsKIH0KIApAQCAtMjkzLDcgKzI5Myw3IEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9kZWZhdWx0QW5pbWF0aW9uQ29udHJvbGxlcgogICAg
ICAgICAgICAgYXV0byBsaW5rUmFuZ2UgPSBtYWtlUmFuZ2VTZWxlY3RpbmdOb2RlQ29udGVudHMo
Kl9oaXRUZXN0UmVzdWx0LlVSTEVsZW1lbnQoKSk7CiAgICAgICAgICAgICBhdXRvIGluZGljYXRv
ciA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhSYW5nZShsaW5rUmFuZ2UsIHsg
V2ViQ29yZTo6VGV4dEluZGljYXRvck9wdGlvbjo6VXNlQm91bmRpbmdSZWN0QW5kUGFpbnRBbGxD
b250ZW50Rm9yQ29tcGxleFJhbmdlcyB9LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yUHJlc2VudGF0
aW9uVHJhbnNpdGlvbjo6RmFkZUluKTsKICAgICAgICAgICAgIGlmIChpbmRpY2F0b3IpCi0gICAg
ICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExp
ZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsK
KyAgICAgICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3
aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwog
CiAgICAgICAgICAgICBRTFByZXZpZXdNZW51SXRlbSAqaXRlbSA9IFtOU01lbnVJdGVtIHN0YW5k
YXJkUXVpY2tMb29rTWVudUl0ZW1dOwogICAgICAgICAgICAgaXRlbS5wcmV2aWV3U3R5bGUgPSBR
TFByZXZpZXdTdHlsZVBvcG92ZXI7CkBAIC0zNzksNyArMzc5LDcgQEAgLSAoTlNSZWN0RWRnZSlt
ZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtIHByZWZlcnJlZEVkZ2VGb3JQb2ludDooTlNQ
b2ludClwb2kKIC0gKHZvaWQpbWVudUl0ZW1EaWRDbG9zZTooTlNNZW51SXRlbSAqKW1lbnVJdGVt
CiB7CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmll
dyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbX3dlYlZpZXcgX2NsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAKIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IGVsZW1l
bnRCb3VuZGluZ0JveEluV2luZG93Q29vcmRpbmF0ZXNGcm9tTm9kZShXZWJDb3JlOjpOb2RlKiBu
b2RlKQpAQCAtNDY0LDkgKzQ2NCw5IEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlv
bkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkCiAgICAgX2N1
cnJlbnRBY3Rpb25Db250ZXh0ID0gW2RldGVjdGVkSXRlbS0+YWN0aW9uQ29udGV4dCBjb250ZXh0
Rm9yVmlldzpfd2ViVmlldyBhbHRNb2RlOllFUyBpbnRlcmFjdGlvblN0YXJ0ZWRIYW5kbGVyOl4o
KSB7CiAgICAgfSBpbnRlcmFjdGlvbkNoYW5nZWRIYW5kbGVyOl4oKSB7CiAgICAgICAgIGlmIChp
bmRpY2F0b3IpCi0gICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGlj
YXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQ
ZXJtYW5lbnRdOworICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRp
Y2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFu
ZW50XTsKICAgICB9IGludGVyYWN0aW9uU3RvcHBlZEhhbmRsZXI6XigpIHsKLSAgICAgICAgW193
ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbX3dlYlZp
ZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfV07CiAKICAgICBbX2N1cnJlbnRB
Y3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfd2ViVmlldy53aW5kb3cgY29udmVydFJl
Y3RUb1NjcmVlbjpkZXRlY3RlZEl0ZW0tPmJvdW5kaW5nQm94XV07CkBAIC00OTcsOSArNDk3LDkg
QEAgLSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlv
bkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWQKICAgICBfY3VycmVudEFjdGlvbkNvbnRleHQgPSBb
YWN0aW9uQ29udGV4dCBjb250ZXh0Rm9yVmlldzpfd2ViVmlldyBhbHRNb2RlOllFUyBpbnRlcmFj
dGlvblN0YXJ0ZWRIYW5kbGVyOl4oKSB7CiAgICAgfSBpbnRlcmFjdGlvbkNoYW5nZWRIYW5kbGVy
Ol4oKSB7CiAgICAgICAgIGlmIChpbmRpY2F0b3IpCi0gICAgICAgICAgICBbX3dlYlZpZXcgX3Nl
dFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGlj
YXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICAgICAgW193ZWJWaWV3IF9z
ZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRp
Y2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKICAgICB9IGludGVyYWN0aW9uU3RvcHBlZEhhbmRs
ZXI6XigpIHsKLSAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVP
dXRdOworICAgICAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246
V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAg
fV07CiAKICAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfd2Vi
Vmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjplbGVtZW50Qm91bmRpbmdCb3hJbldpbmRv
d0Nvb3JkaW5hdGVzRnJvbU5vZGUoX2hpdFRlc3RSZXN1bHQuVVJMRWxlbWVudCgpKV1dOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDcyNjRiZmRjZDcy
ZGUxMzY5NjBhMzIzOGNiMDAyMTZmYjg5MmZmN2MuLjk5MmYzZTA5NzRkNjQ1YmZlMjVkNzMxOTgz
MmQ4NDFmNzcwZWU2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KQEAgLTkxMDAsMTEgKzkxMDAsMTEgQEAgLSAoaWQpX2FuaW1hdGlvbkNvbnRyb2xsZXJG
b3JEaWN0aW9uYXJ5TG9va3VwUG9wdXBJbmZvOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXIKICAg
ICBbc2VsZiBfcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXBdOwogCiAgICAgcmV0dXJuIFdlYkNv
cmU6OkRpY3Rpb25hcnlMb29rdXA6OmFuaW1hdGlvbkNvbnRyb2xsZXJGb3JQb3B1cChkaWN0aW9u
YXJ5UG9wdXBJbmZvLCBzZWxmLCBbc2VsZl0oV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dElu
ZGljYXRvcikgewotICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9y
IHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1h
bmVudF07CisgICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0
aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKICAg
ICB9LCBbc2VsZl0oV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMp
IHsKICAgICAgICAgcmV0dXJuIFtzZWxmIF9jb252ZXJ0UmVjdEZyb21Sb290VmlldzpyZWN0SW5S
b290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICB9LCBbc2VsZl0oKSB7Ci0gICAgICAgIFtzZWxmIF9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbc2VsZiBfY2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uOjpGYWRlT3V0XTsKICAgICB9KTsKIH0KIApAQCAtOTEyMCwxMCArOTEyMCwxMCBAQCAt
ICh2b2lkKV9zZXRQcmVzc3VyZUV2ZW50OihOU0V2ZW50ICopZXZlbnQKIAogLSAodm9pZClfc2V0
VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvcgogewot
ICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOldl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICBbc2Vs
ZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiB9CiAKLS0gKHZvaWQpX3NldFRleHRJ
bmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0
aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpbGlmZXRpbWUKKy0gKHZv
aWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0
b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpbGlmZXRpbWUK
IHsKICAgICBpZiAoIV9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93KQogICAgICAgICBfcHJp
dmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdyA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6VGV4dEluZGlj
YXRvcldpbmRvdz4oc2VsZik7CkBAIC05MTMzLDEwICs5MTMzLDEwIEBAIC0gKHZvaWQpX3NldFRl
eHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExp
ZmV0aW1lOihXCiAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPnNldFRleHRJbmRp
Y2F0b3IodGV4dEluZGljYXRvciwgTlNSZWN0VG9DR1JlY3QodGV4dEJvdW5kaW5nUmVjdEluU2Ny
ZWVuQ29vcmRpbmF0ZXMpLCBsaWZldGltZSk7CiB9CiAKLS0gKHZvaWQpX2NsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb24pYW5pbWF0aW9uCistICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbgog
ewogICAgIGlmIChfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdykKLSAgICAgICAgX3ByaXZh
dGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICAgICAgX3By
aXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKICAgICBfcHJpdmF0ZS0+
dGV4dEluZGljYXRvcldpbmRvdyA9IG51bGxwdHI7CiB9CiAKQEAgLTkxNjgsMTggKzkxNjgsMTgg
QEAgLSAodm9pZClfc2hvd0RpY3Rpb25hcnlMb29rdXBQb3B1cDooY29uc3QgV2ViQ29yZTo6RGlj
dGlvbmFyeVBvcHVwSW5mbyYpZGljdGlvbmEKICAgICBbc2VsZiBfcHJlcGFyZUZvckRpY3Rpb25h
cnlMb29rdXBdOwogCiAgICAgV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVwKGRp
Y3Rpb25hcnlQb3B1cEluZm8sIHNlbGYsIFtzZWxmXShXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0
ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRp
Y2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6
UGVybWFuZW50XTsKKyAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRv
ciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRd
OwogICAgIH0sIFtzZWxmXShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdEluUm9vdFZpZXdDb29yZGlu
YXRlcykgewogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRSZWN0RnJvbVJvb3RWaWV3OnJl
Y3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIH0sIFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRy
PFdlYlZpZXc+KHNlbGYpXSgpIHsKLSAgICAgICAgW3dlYWtTZWxmLmdldCgpIF9jbGVhclRleHRJ
bmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbd2Vha1NlbGYuZ2V0KCkgX2NsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFu
aW1hdGlvbjo6RmFkZU91dF07CiAgICAgfSk7CiB9CiAKICNpZiAhRU5BQkxFKFJFVkVBTCkKIC0g
KHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgogewotICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVP
dXRdOworICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6
OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogfQogI2VuZGlmIC8v
IEVOQUJMRShSRVZFQUwpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDczMzcyYTBiZGExNTNiZmEzNzYxMDIzY2Y0OTVkNzk2
ZmE3MThjYzEuLmJhZDVmZDhhMTUwYWNmMmMzN2E1N2MzNjRmODIxOWRjZDQzNzMwYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaApA
QCAtMzE5LDggKzMxOSw4IEBAIFdlYkxheW91dE1pbGVzdG9uZXMga2l0TGF5b3V0TWlsZXN0b25l
cyhPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPik7CiAKICNpZiBQTEFURk9STShN
QUMpICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCiAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yOwotLSAodm9pZClfc2V0VGV4dElu
ZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRoTGlmZXRp
bWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSlsaWZldGltZTsKLS0gKHZv
aWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOworLSAodm9pZClfc2V0VGV4dElu
ZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRoTGlmZXRp
bWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSlsaWZldGltZTsKKy0gKHZvaWQpX2Ns
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNt
aXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOwogLSAodm9pZClfc2V0VGV4dEluZGljYXRvckFuaW1h
dGlvblByb2dyZXNzOihmbG9hdClwcm9ncmVzczsKIC0gKHZvaWQpX3Nob3dEaWN0aW9uYXJ5TG9v
a3VwUG9wdXA6KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKWRpY3Rpb25hcnlQ
b3B1cEluZm87CiAtIChpZClfYW5pbWF0aW9uQ29udHJvbGxlckZvckRpY3Rpb25hcnlMb29rdXBQ
b3B1cEluZm86KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKWRpY3Rpb25hcnlQ
b3B1cEluZm87Cg==
</data>
<flag name="commit-queue"
          id="449432"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428527</attachid>
            <date>2021-05-13 10:27:04 -0700</date>
            <delta_ts>2021-05-13 10:50:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513102703.patch</filename>
            <type>text/plain</type>
            <size>52227</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRv
ci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLjAzNWRj
OTM5OWEyZTIxZDFhMmYzOWI1NTVkZDM5MjE1Zjg3NDkyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCkBAIC0zOSw2ICszOSwyNSBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIAorY29uc3RleHByIGZsb2F0IGRyb3BTaGFkb3dCbHVyUmFk
aXVzID0gMjsKK2NvbnN0ZXhwciBmbG9hdCByaW1TaGFkb3dCbHVyUmFkaXVzID0gMTsKK2NvbnN0
ZXhwciBTZWNvbmRzIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMl9zOworY29uc3RleHBy
IFNlY29uZHMgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25EdXJhdGlvbiAr
IDAuMl9zOworY29uc3RleHByIGZsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4yNTsKKworZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgOiB1aW50OF90IHsKKyAgICAvLyBUaGUgVGV4dElu
ZGljYXRvciBzaG91bGQgaW5kaWNhdGUgdGhlIHRleHQgdW50aWwgZGlzbWlzc2VkLgorICAgIFBl
cm1hbmVudCwKKworICAgIC8vIFRoZSBUZXh0SW5kaWNhdG9yIHNob3VsZCBicmllZmx5IGluZGlj
YXRlIHRoZSB0ZXh0IGFuZCB0aGVuIGF1dG9tYXRpY2FsbHkgZGlzbWlzcy4KKyAgICBUZW1wb3Jh
cnkKK307CisKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiA6IHVp
bnQ4X3QgeworICAgIE5vbmUsCisgICAgRmFkZU91dAorfTsKKwogLy8gRklYTUU6IE1vdmUgUHJl
c2VudGF0aW9uVHJhbnNpdGlvbiB0byBUZXh0SW5kaWNhdG9yV2luZG93LCBiZWNhdXNlIGl0J3Mg
YWJvdXQgcHJlc2VudGF0aW9uLgogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9u
VHJhbnNpdGlvbiA6IHVpbnQ4X3QgewogICAgIE5vbmUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaAppbmRleCBmZDEzZDA0MGVmZmI3NWIw
ZWEwMDRlYTU1MWUzMjIxNTRhZTE4ZmFmLi5iZWJmOTNhMzZlZDcwZTZiMzA5ZGU4OTU4MWExODM2
NjVlMzhjMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJ
bmRpY2F0b3JMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dElu
ZGljYXRvckxheWVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKLUBpbnRlcmZhY2UgV2ViVGV4dEluZGljYXRv
ckxheWVyIDogQ0FMYXllciB7CitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYlRleHRJbmRp
Y2F0b3JMYXllciA6IENBTGF5ZXIgewogICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
PiBfdGV4dEluZGljYXRvcjsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2JvdW5jZUxheWVyczsK
ICAgICBDR1NpemUgX21hcmdpbjsKQEAgLTUzLDMgKzUzLDQgQEAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBnZXR0ZXI9aXNGYWRpbmdPdXQpIEJPT0wgZmFkaW5nT3V0OwogCiBAZW5kCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1t
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KaW5k
ZXggYjhjNGQ4ZjA2N2JhY2VkMDlhODExODA4NzEwMzA2YzU3YTc5NDMwMC4uMWFjNWU4NmYwNzgy
ZTUyY2M2NTc2NzY0NmNiMWJlMmNmY2ZiOTk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNp
bXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiUGF0aFV0aWxpdGllcy5oIgogI2lt
cG9ydCAiVGV4dEluZGljYXRvci5oIgorI2ltcG9ydCAiVGV4dEluZGljYXRvcldpbmRvdy5oIgog
I2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmgiCiAjaW1wb3J0IDxw
YWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFy
dHpDb3JlU1BJLmg+CkBAIC0zOCwxOSArMzksMTUgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
TlNDb2xvclNQSS5oPgogI2VuZGlmCiAKLWNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBib3VuY2VB
bmltYXRpb25EdXJhdGlvbiA9IDAuMTI7CisKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBib3Vu
Y2VXaXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjM7CiBjb25zdGV4cHIgQ0ZUaW1l
SW50ZXJ2YWwgZmFkZUluQW5pbWF0aW9uRHVyYXRpb24gPSAwLjE1OwotY29uc3RleHByIENGVGlt
ZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5pbWF0aW9uRHVyYXRpb24g
KyAwLjI7CiBjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgZmFkZU91dEFuaW1hdGlvbkR1cmF0aW9u
ID0gMC4zOwogCi1jb25zdGV4cHIgQ0dGbG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEuMjU7CiBjb25z
dGV4cHIgQ0dGbG9hdCBib3JkZXJXaWR0aCA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBjb3JuZXJS
YWRpdXMgPSAwOwogY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09mZnNldFggPSAwOwogY29u
c3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09mZnNldFkgPSAxOwotY29uc3RleHByIENHRmxvYXQg
ZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotY29uc3RleHByIENHRmxvYXQgcmltU2hhZG93Qmx1
clJhZGl1cyA9IDE7CiAKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IHRleHRMYXllcktleSA9
IEAiVGV4dExheWVyIjsKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IGRyb3BTaGFkb3dMYXll
cktleSA9IEAiRHJvcFNoYWRvd0xheWVyIjsKQEAgLTEzMiwxMyArMTI5LDEyIEBAIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29y
ZTo6VGV4dEluZGljYXRvCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAg
IHJldHVybiBuaWw7CiAgICAgCisgICAgc2VsZi5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOwog
ICAgIHNlbGYuZnJhbWUgPSBmcmFtZTsKIAogICAgIF90ZXh0SW5kaWNhdG9yID0gJnRleHRJbmRp
Y2F0b3I7CiAgICAgX21hcmdpbiA9IG1hcmdpbjsKIAotICAgIHNlbGYuYW5jaG9yUG9pbnQgPSBD
R1BvaW50WmVybzsKLQogICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29udGVudHNJ
bWFnZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgY29udGVudHNJbWFnZUxvZ2ljYWxTaXplIHsg
MSwgMSB9OwogICAgIGlmIChhdXRvKiBjb250ZW50SW1hZ2UgPSBfdGV4dEluZGljYXRvci0+Y29u
dGVudEltYWdlKCkpIHsKQEAgLTE5Miw3ICsxODgsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0
bwogICAgICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gZHJvcFNoYWRvd0xheWVyID0gYWRvcHROUyhb
W0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXREZWxl
Z2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlIHNoYXJlZF1dOwogICAgICAg
ICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd0NvbG9yOmRyb3BTaGFkb3dDb2xvci5nZXQoKV07
Ci0gICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UmFkaXVzOmRyb3BTaGFkb3dCbHVy
UmFkaXVzXTsKKyAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6V2ViQ29y
ZTo6ZHJvcFNoYWRvd0JsdXJSYWRpdXNdOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNo
YWRvd09mZnNldDpDR1NpemVNYWtlKGRyb3BTaGFkb3dPZmZzZXRYLCBkcm9wU2hhZG93T2Zmc2V0
WSldOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRlZFBh
dGgucGxhdGZvcm1QYXRoKCldOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd09w
YWNpdHk6MV07CkBAIC0yMDQsNyArMjAwLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJh
bWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAg
ICAgICAgW3JpbVNoYWRvd0xheWVyIHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxh
eWVyRGVsZWdhdGUgc2hhcmVkXV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRGcmFtZTp5
ZWxsb3dIaWdobGlnaHRSZWN0XTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd0Nv
bG9yOnJpbVNoYWRvd0NvbG9yLmdldCgpXTsKLSAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNo
YWRvd1JhZGl1czpyaW1TaGFkb3dCbHVyUmFkaXVzXTsKKyAgICAgICAgW3JpbVNoYWRvd0xheWVy
IHNldFNoYWRvd1JhZGl1czpXZWJDb3JlOjpyaW1TaGFkb3dCbHVyUmFkaXVzXTsKICAgICAgICAg
W3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRlZFBhdGgucGxhdGZvcm1QYXRo
KCldOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93T2Zmc2V0OkNHU2l6ZVplcm9d
OwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93T3BhY2l0eToxXTsKQEAgLTI0NSw3
ICsyNDEsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENBS2V5ZnJhbWVBbmltYXRpb24+IGNyZWF0ZUJv
dW5jZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZhbCBkdXJhdAogICAgIFJldGFpblB0cjxDQUtleWZy
YW1lQW5pbWF0aW9uPiBib3VuY2VBbmltYXRpb24gPSBbQ0FLZXlmcmFtZUFuaW1hdGlvbiBhbmlt
YXRpb25XaXRoS2V5UGF0aDpAInRyYW5zZm9ybSJdOwogICAgIFtib3VuY2VBbmltYXRpb24gc2V0
VmFsdWVzOkBbCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFu
c2Zvcm0zRElkZW50aXR5XSwKLSAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKG1pZEJvdW5jZVNjYWxlLCBtaWRCb3VuY2VTY2FsZSwg
MSldLAorICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOkNBVHJhbnNmb3Jt
M0RNYWtlU2NhbGUoV2ViQ29yZTo6bWlkQm91bmNlU2NhbGUsIFdlYkNvcmU6Om1pZEJvdW5jZVNj
YWxlLCAxKV0sCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFu
c2Zvcm0zRElkZW50aXR5XQogICAgICAgICBdXTsKICAgICBbYm91bmNlQW5pbWF0aW9uIHNldER1
cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTI5NCw3ICsyOTAsNyBAQCAtIChDRlRpbWVJbnRlcnZhbClf
YW5pbWF0aW9uRHVyYXRpb24KICAgICBpZiAoW3NlbGYgaW5kaWNhdG9yV2FudHNCb3VuY2U6Kl90
ZXh0SW5kaWNhdG9yXSkgewogICAgICAgICBpZiAoaW5kaWNhdG9yV2FudHNDb250ZW50Q3Jvc3Nm
YWRlKCpfdGV4dEluZGljYXRvcikpCiAgICAgICAgICAgICByZXR1cm4gYm91bmNlV2l0aENyb3Nz
ZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwotICAgICAgICByZXR1cm4gYm91bmNlQW5pbWF0aW9uRHVy
YXRpb247CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpib3VuY2VBbmltYXRpb25EdXJhdGlvbi52
YWx1ZSgpOwogICAgIH0KIAogICAgIHJldHVybiBmYWRlSW5BbmltYXRpb25EdXJhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCBjM2Iz
M2ViYTJjOGJjMGQ3NTQ1OWRkMjE1MDg5YjY1MjljNWQzMTVkLi5mN2ZmZjdjNzNhMWQyZmY3NTRi
Mjc4N2NhMjI5OTUyMzgwMzEzMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4
dEluZGljYXRvcldpbmRvdy5oCkBAIC0zNiwxOSArMzYsNiBAQCBPQkpDX0NMQVNTIFdlYlRleHRJ
bmRpY2F0b3JMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3QgewotICAgIC8vIFRoZSBUZXh0SW5kaWNh
dG9yIHNob3VsZCBpbmRpY2F0ZSB0aGUgdGV4dCB1bnRpbCBkaXNtaXNzZWQuCi0gICAgUGVybWFu
ZW50LAotCi0gICAgLy8gVGhlIFRleHRJbmRpY2F0b3Igc2hvdWxkIGJyaWVmbHkgaW5kaWNhdGUg
dGhlIHRleHQgYW5kIHRoZW4gYXV0b21hdGljYWxseSBkaXNtaXNzLgotICAgIFRlbXBvcmFyeQot
fTsKLQotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDog
dWludDhfdCB7Ci0gICAgTm9uZSwKLSAgICBGYWRlT3V0Ci19OwotCiAjaWYgUExBVEZPUk0oTUFD
KQogCiBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93IHsKQEAgLTU5LDggKzQ2LDggQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFRleHRJbmRpY2F0b3JXaW5kb3coTlNWaWV3
ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5UZXh0SW5kaWNhdG9yV2luZG93KCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBD
R1JlY3QgY29udGVudFJlY3QsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKFJlZjxUZXh0SW5kaWNhdG9yPiwgQ0dSZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAKQEAgLTgxLDMgKzY4LDUgQEAgcHJpdmF0
ZToKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRl
eCBmODVmYTUzYjNiNGE5ZjQ1OTY5Nzc2YTEyY2M0MTFmNzkyMmRmNzdjLi4xODBiYWI3ZDAyYmMz
YTVkMWIwYzNlNzQ1MmUxZDMyOTI1MjQ5NzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTM4LDEyICszOCw2IEBACiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oPgogCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlv
biA9IDAuMTI7Ci1jb25zdCBDRlRpbWVJbnRlcnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJv
dW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4yOwotCi1jb25zdCBDR0Zsb2F0IG1pZEJvdW5jZVNj
YWxlID0gMS4yNTsKLWNvbnN0IENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsNyAr
NTAsNyBAQCBUZXh0SW5kaWNhdG9yV2luZG93OjpUZXh0SW5kaWNhdG9yV2luZG93KE5TVmlldyAq
dGFyZ2V0VmlldykKIAogVGV4dEluZGljYXRvcldpbmRvdzo6flRleHRJbmRpY2F0b3JXaW5kb3co
KQogewotICAgIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiB9CiAKIHZvaWQgVGV4dElu
ZGljYXRvcldpbmRvdzo6c2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCkBAIC02
NywxNCArNjEsMTQgQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9n
cmVzcyhmbG9hdCBwcm9ncmVzcykKICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0QW5pbWF0
aW9uUHJvZ3Jlc3M6cHJvZ3Jlc3NdOwogfQogCi12b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNs
ZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFu
aW1hdGlvbikKK3ZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQogewogICAg
IFJlZlB0cjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yID0gV1RGTW92ZShtX3RleHRJbmRp
Y2F0b3IpOwogCiAgICAgaWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091dF0pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0
b3JMYXllciBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYg
W21fdGV4dEluZGljYXRvckxheWVyIGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9u
ID09IFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKKyAg
ICBpZiAodGV4dEluZGljYXRvciAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2Fu
dHNNYW51YWxBbmltYXRpb246KnRleHRJbmRpY2F0b3JdICYmIFttX3RleHRJbmRpY2F0b3JMYXll
ciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7CiAgICAgICAgIHN0YXJ0RmFkZU91
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODIsNyArNzYsNyBAQCB2b2lkIFRleHRJ
bmRpY2F0b3JXaW5kb3c6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aQogICAgIGNsb3NlV2luZG93KCk7CiB9CiAKLXZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciwgQ0dSZWN0IHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNl
dFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUmVjdCB0
ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcywgVGV4dEluZGljYXRvckxpZmV0aW1l
IGxpZmV0aW1lKQogewogICAgIGlmIChtX3RleHRJbmRpY2F0b3IgPT0gdGV4dEluZGljYXRvci5w
dHIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTUsOCArODksOCBAQCB2b2lkIFRleHRJbmRpY2F0
b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0
b3IsIENHUgogICAgIENHRmxvYXQgdmVydGljYWxNYXJnaW4gPSBkcm9wU2hhZG93Qmx1clJhZGl1
cyAqIDIgKyBUZXh0SW5kaWNhdG9yOjpkZWZhdWx0VmVydGljYWxNYXJnaW47CiAgICAgCiAgICAg
aWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50c0JvdW5jZToqbV90ZXh0SW5k
aWNhdG9yXSkgewotICAgICAgICBob3Jpem9udGFsTWFyZ2luID0gc3RkOjptYXgoaG9yaXpvbnRh
bE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS53aWR0aCAq
IChtaWRCb3VuY2VTY2FsZSAtIDEpICsgaG9yaXpvbnRhbE1hcmdpbik7Ci0gICAgICAgIHZlcnRp
Y2FsTWFyZ2luID0gc3RkOjptYXgodmVydGljYWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNj
cmVlbkNvb3JkaW5hdGVzLnNpemUuaGVpZ2h0ICogKG1pZEJvdW5jZVNjYWxlIC0gMSkgKyB2ZXJ0
aWNhbE1hcmdpbik7CisgICAgICAgIGhvcml6b250YWxNYXJnaW4gPSBzdGQ6Om1heChob3Jpem9u
dGFsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLndpZHRo
ICogKFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxlIC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsKKyAg
ICAgICAgdmVydGljYWxNYXJnaW4gPSBzdGQ6Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJvdW5k
aW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQgKiAoV2ViQ29yZTo6bWlkQm91
bmNlU2NhbGUgLSAxKSArIHZlcnRpY2FsTWFyZ2luKTsKICAgICB9CiAKICAgICBob3Jpem9udGFs
TWFyZ2luID0gQ0dDZWlsaW5nKGhvcml6b250YWxNYXJnaW4pOwpAQCAtMTI1LDggKzExOSw4IEBA
IHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGlj
YXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgaWYgKG1fdGV4dEluZGljYXRvci0+cHJlc2Vu
dGF0aW9uVHJhbnNpdGlvbigpICE9IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9u
OjpOb25lKQogICAgICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgcHJlc2VudF07CiAKLSAgICBp
ZiAobGlmZXRpbWUgPT0gVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpCi0g
ICAgICAgIG1fdGVtcG9yYXJ5VGV4dEluZGljYXRvclRpbWVyLnN0YXJ0T25lU2hvdCgxX3MgKiB0
aW1lQmVmb3JlRmFkZVN0YXJ0cyk7CisgICAgaWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0b3JM
aWZldGltZTo6VGVtcG9yYXJ5KQorICAgICAgICBtX3RlbXBvcmFyeVRleHRJbmRpY2F0b3JUaW1l
ci5zdGFydE9uZVNob3QoV2ViQ29yZTo6dGltZUJlZm9yZUZhZGVTdGFydHMpOwogfQogCiB2b2lk
IFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsb3NlV2luZG93KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDNhZDUxNDJjZDE3N2FhZGFlNWMzODUzMmQ1
N2ZjYTQzODBhY2Q0YjYuLjEwYjg5MTliMGY4NjI0MTgxZWVhYmNmNzhjMDFjMTliYjNiZTBjMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNDEx
LDggKzQxMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsK
IAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiwgV2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lID0gV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwotICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uKTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYs
IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JM
aWZldGltZTo6UGVybWFuZW50KTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmlt
YXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbik7CiAgICAgdm9p
ZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogICAgIHZvaWQgZGlz
bWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpOwogICAgIHZvaWQg
ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oYm9vbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDIzYTUw
NDY4MTE0MTMzNTE5ZjJlZDFiZGNkODI0Y2Q5MmE2NWI0MWYuLmRjNTBjZDJjNTE1MGQ1NTc5ODU0
YWI3ZTY1ZTc1ZDYyNTVlM2IwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC00MjMsNyArNDIzLDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVG
b3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6
KE4KICNpZiAhRU5BQkxFKFJFVkVBTCkKIC0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVy
V2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotICAgIF9pbXBsLT5j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgIF9pbXBsLT5jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246
Ok5vbmUpOwogfQogI2VuZGlmCiAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICAgICAgdXBkYXRlV2luZG93QW5kVmlld0Zy
YW1lcygpOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6
OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3Io
V2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGlj
YXRvckxpZmV0aW1lIGxpZmV0aW1lKQogewogICAgIGlmICghbV90ZXh0SW5kaWNhdG9yV2luZG93
KQogICAgICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JXaW5kb3c+KG1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSk7CkBAIC0zNTA0LDcg
KzM1MDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcgogICAgIG1fdGV4dEluZGljYXRvcldp
bmRvdy0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0
Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcyksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBX
ZWJWaWV3SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKK3ZvaWQgV2ViVmll
d0ltcGw6OmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCiB7CiAgICAgaWYgKG1fdGV4dEluZGlj
YXRvcldpbmRvdykKICAgICAgICAgbV90ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRp
Y2F0b3IoYW5pbWF0aW9uKTsKQEAgLTM1MjcsNyArMzUyNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdP
bmx5KGJvCiAgICAgLy8gQ2FsbGluZyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBo
ZXJlIHdpbGwgd2luIG91dCBvdmVyIHRoZSBhbmltYXRlZCBjbGVhciBpbiBkaXNtaXNzQ29udGVu
dFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5LgogICAgIC8vIFdlIGNhbid0IGludmVy
dCB0aGVzZSBiZWNhdXNlIGNsaWVudHMgY2FuIG92ZXJyaWRlIChhbmQgaGF2ZSBvdmVycmlkZGVu
KSBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93cywgc28gaXQgbmVlZHMgdG8gYmUg
Y2FsbGVkLgogICAgIC8vIEZvciB0aGlzIHNhbWUgcmVhc29uLCB0aGlzIGNhbid0IGJlIG1vdmVk
IHRvIFdlYlZpZXdJbXBsIHdpdGhvdXQgY2FyZS4KLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRo
QW5pbWF0aW9uKGFuaW1hdGUgPyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0IDogV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihh
bmltYXRlID8gV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91
dCA6IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAg
IFttX3ZpZXcgX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKIH0KIApA
QCAtMzU0NCw3ICszNTQ0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpCiAgICAgICAgICAgICBbW2dldEREQWN0aW9u
c01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNo
b3JPbkZhaWx1cmU6WUVTXTsKICAgICB9CiAKLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXQpOworICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiAKICAgICBbbV9pbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNDE3ZTExZDQ5NjYwN2EzMDBj
ZmI2NWZlZDZjN2Y0Y2FjZTBjOTI2ZC4uYTM1NzMxZWMwMWQ5ZTVlMTUwMmU2MDVlNTI4MmZlZjBi
MDQ1ZDY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTA2LDggKzEw
Niw4IEBAIGNsYXNzIFNlbGVjdGlvbkRhdGE7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kg
OiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51
bSBjbGFzcyBTY3JvbGxiYXJTdHlsZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0
b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUgOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVp
bnQ4X3Q7CiAKIHN0cnVjdCBBcHBIaWdobGlnaHQ7CkBAIC0zODUsOCArMzg1LDggQEAgcHVibGlj
OgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4
dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dMaWZldGltZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRp
Y2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRp
b25Qcm9ncmVzcyhmbG9hdCkgPSAwOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWE1YzM0OTA3
MzNjMmIwZTkxZGU4NDg4OGUzMDA0YWU5YmFiODQ1ZC4uNDk5MzE0MzQ2NzFjMmRiYWUxZjU2MGZl
MzdiMDYxZTljNjI4NGQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0yMTgsNyArMjE4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJp
bmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU3lzdGVtQmF0dGVyeS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvcldp
bmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2luY2x1ZGUgPHd0
Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAjaW5jbHVkZSA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgpA
QCAtNjUxMSw3ICs2NTEwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3Io
Y29uc3QgVGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEsIHVpbnQKIHsKICAgICAvLyBG
SVhNRTogTWFrZSBUZXh0SW5kaWNhdG9yV2luZG93IGEgcGxhdGZvcm0taW5kZXBlbmRlbnQgcHJl
c2VudGF0aW9uYWwgdGhpbmcgKCJUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uIj8pLgogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRleHRJbmRp
Y2F0b3I6OmNyZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8VGV4dEluZGljYXRvcldp
bmRvd0xpZmV0aW1lPihsaWZldGltZSkpOworICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNh
dG9yKFRleHRJbmRpY2F0b3I6OmNyZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lPihsaWZldGltZSkpOwogI2Vsc2UKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgpAQCAtNjUyMCw3ICs2NTE5LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRhdGEmIGluZGlj
YXRvckRhdGEsIHVpbnQKIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVhclRleHRJbmRpY2F0b3IoKQog
ewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBhZ2VDbGllbnQoKS5jbGVhclRleHRJbmRpY2F0
b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAg
cGFnZUNsaWVudCgpLmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlz
bWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNWI0
NTdkZmI2MDMxZWY2MzlhZDNhZTNmY2JmZmZhZTZhNmQ4NTcwMi4uZmNiZDQ5NjhkNDE1ZGY2NzY3
YTFhZjk5OGJiOWNkY2JlMWEwZWMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTExNDksNyArMTE0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvdW50U3RyaW5n
TWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8RmluZE9wdGlvbnM+LCB1bnNpZ25lZCBt
YXhNYXRjaENvdW50KTsKICAgICB2b2lkIHJlcGxhY2VNYXRjaGVzKFZlY3Rvcjx1aW50MzJfdD4m
JiBtYXRjaEluZGljZXMsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0LCBib29sIHNlbGVj
dGlvbk9ubHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKICAgICB2b2lk
IGRpZENvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCB1aW50MzJfdCBtYXRjaENvdW50
KTsKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRhdGEmLCB1aW50NjRfdCAvKiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUg
Ki8gbGlmZXRpbWUgPSAwIC8qIFBlcm1hbmVudCAqLyk7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJiwgdWludDY0X3QgLyogV2ViQ29y
ZTo6VGV4dEluZGljYXRvckxpZmV0aW1lICovIGxpZmV0aW1lID0gMCAvKiBQZXJtYW5lbnQgKi8p
OwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsKICAg
ICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDNmYmUxYjE3ZmY2NjA0NDllOTkzZWY3
ZThhZmMwYmEwMDI0ZmQ4N2EuLjgxZmIwMTgzM2NlZTllNWQ5MTU5NTQxOGQyYjVhMGFlNGI4NDRj
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCkBAIC0xMzgsOCArMTM4LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViRGF0ZVRpbWVQ
aWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYpIGZpbmFsOwogI2VuZGlm
CiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+
LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJyaWRlOwotICAgIHZv
aWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2Vi
Q29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9y
QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzaG93U2FmZUJy
b3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQppbmRleCA0MGI3NjIzNjM5ZmZhZDQxYjQ0MjQ2OGViMmUxODFhYTM0ZjAxNjUzLi5i
MzBlZjFhY2QxNTIzNzg0OWQwOTZhZmYyZDY3ZjI1ZGZjNWExYWQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00NzksMTYgKzQ3
OSwxOSBAQCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVQ
b3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi12
b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0
ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9y
LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpCiB7CisgICAgW21fY29udGVu
dFZpZXcgc2V0VXBUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3JdOwogfQogCi12b2lkIFBhZ2VD
bGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1h
dGlvbikKIHsKKyAgICBbbV9jb250ZW50VmlldyBjbGVhclRleHRJbmRpY2F0b3I6ZGlzbWlzc2Fs
QW5pbWF0aW9uXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFu
aW1hdGlvblByb2dyZXNzKGZsb2F0KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGlj
YXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0IGFuaW1hdGlvblByb2dyZXNzKQogeworICAgIFtt
X2NvbnRlbnRWaWV3IHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczphbmltYXRpb25Q
cm9ncmVzc107CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaAppbmRleCA4ODZhZTc1ZTY3YjU2YWViMzgzNzg0ZjU5NmM5ZDhmNzI5MTI1NmU3Li5i
YWE4ZTQ0NGJiMjljYWI1YTFjMDI2ZmQ5Y2Y4ZDhkNDZjMzQ5MmNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBA
IC04OSw2ICs4OSw3IEBAIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogZW51bSBjbGFz
cyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3MgTW91c2VFdmVu
dFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4
X3Q7CitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90
OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIHN0cnVjdCBEcmFnSXRlbTsKQEAgLTEwNCw2
ICsxMDUsNyBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiB9CiAKIEBjbGFzcyBXZWJFdmVudDsKK0Bj
bGFzcyBXZWJUZXh0SW5kaWNhdG9yTGF5ZXI7CiBAY2xhc3MgV0tBY3Rpb25TaGVldEFzc2lzdGFu
dDsKIEBjbGFzcyBXS0NvbnRleHRNZW51RWxlbWVudEluZm87CiBAY2xhc3MgV0tEYXRhTGlzdFN1
Z2dlc3Rpb25zQ29udHJvbDsKQEAgLTMzMCw2ICszMzIsOSBAQCBlbnVtIGNsYXNzIFByb2NlZWRX
aXRoSW1hZ2VFeHRyYWN0aW9uIDogYm9vbCB7CiAjZW5kaWYKICAgICBSZXRhaW5QdHI8VUlQcmV2
aWV3SXRlbUNvbnRyb2xsZXI+IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI7CiAjZW5kaWYKKyAgICAK
KyAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gX3RleHRJbmRpY2F0b3I7CisgICAg
UmV0YWluUHRyPFdlYlRleHRJbmRpY2F0b3JMYXllcj4gX3RleHRJbmRpY2F0b3JMYXllcjsKIAog
I2lmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFJldGFpblB0cjxVSVRhcmdldGVkUHJldmlldz4g
X2NvbnRleHRNZW51SW50ZXJhY3Rpb25UYXJnZXRlZFByZXZpZXc7CkBAIC02NzAsNiArNjc1LDEw
IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRF
TlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9kaWRTdGFydFByb3Zpc2lvbmFs
TG9hZEZvck1haW5GcmFtZTsKIC0gKHZvaWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWU7CiAK
Ky0gKHZvaWQpc2V0VXBUZXh0SW5kaWNhdG9yOihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4p
dGV4dEluZGljYXRvcjsKKy0gKHZvaWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNz
OihmbG9hdClOU0FuaW1hdGlvblByb2dyZXNzOworLSAodm9pZCljbGVhclRleHRJbmRpY2F0b3I6
KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOworCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZFVzZUNvbnRleHRNZW51
czsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkQXZvaWRSZXNp
emluZ1doZW5JbnB1dFZpZXdCb3VuZHNDaGFuZ2U7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIEJPT0wgX3Nob3VsZEF2b2lkU2Nyb2xsaW5nV2hlbkZvY3VzZWRDb250ZW50SXNWaXNp
YmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggYTYwODY5YTc3ZjkyNTcwYjIwYzlmNzE5M2RhY2QxMDEx
MjFmYTE3YS4uZTVjMGRiNjZkYmYwMWZiYTU1MWQ4MDBkZGE4MGI2Zjk0MjJiMjgzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCkBAIC0xMTYsMTEgKzExNiwxMyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZURh
dGEuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGlj
YXRvcldpbmRvdy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ub3VjaEFjdGlvbi5oPgogI2ltcG9ydCA8
V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkV2ZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYlRleHRJbmRpY2F0b3JMYXllci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Xcml0aW5nRGlyZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2Vi
U2VsZWN0aW9uUmVjdC5oPiAvLyBGSVhNRTogV2ViS2l0IHNob3VsZCBub3QgaW5jbHVkZSBXZWJL
aXRMZWdhY3kgaGVhZGVycyEKICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+
CkBAIC05NTgyLDYgKzk1ODQsNjcgQEAgLSAodm9pZClfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9y
bUFmdGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjooV2ViS2l0OjpQcm9jZWVkV2kKIAogI2VuZGlm
IC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogCistICh2b2lkKXNldFVwVGV4dEluZGljYXRv
cjooUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3IKK3sKKyAgICBpZiAo
X3RleHRJbmRpY2F0b3IgPT0gdGV4dEluZGljYXRvci5wdHIoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIAorICAgIFtzZWxmIHRlYXJkb3duVGV4dEluZGljYXRvckxheWVyXTsKKyAgICBbTlNPYmpl
Y3QgY2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6
QHNlbGVjdG9yKHN0YXJ0RmFkZU91dCkgb2JqZWN0Om5pbF07CisgICAgCisgICAgX3RleHRJbmRp
Y2F0b3IgPSB0ZXh0SW5kaWNhdG9yLnB0cigpOworCisgICAgQ0dSZWN0IGZyYW1lID0gX3RleHRJ
bmRpY2F0b3ItPnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKTsKKyAgICBf
dGV4dEluZGljYXRvckxheWVyID0gYWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JMYXllciBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpmcmFtZQorICAgICAgICB0ZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0
b3IgbWFyZ2luOkNHU2l6ZVplcm8gb2Zmc2V0OkNHUG9pbnRaZXJvXSk7CisgICAgCisgICAgW1tz
ZWxmIGxheWVyXSBhZGRTdWJsYXllcjpfdGV4dEluZGljYXRvckxheWVyLmdldCgpXTsKKworICAg
IGlmIChfdGV4dEluZGljYXRvci0+cHJlc2VudGF0aW9uVHJhbnNpdGlvbigpICE9IFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpOb25lKQorICAgICAgICBbX3Rl
eHRJbmRpY2F0b3JMYXllciBwcmVzZW50XTsKKyAgICAKKyAgICBbc2VsZiBwZXJmb3JtU2VsZWN0
b3I6QHNlbGVjdG9yKHN0YXJ0RmFkZU91dCkgd2l0aE9iamVjdDpzZWxmIGFmdGVyRGVsYXk6V2Vi
Q29yZTo6dGltZUJlZm9yZUZhZGVTdGFydHNdOworfQorCistICh2b2lkKWNsZWFyVGV4dEluZGlj
YXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb24K
K3sKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9IFdU
Rk1vdmUoX3RleHRJbmRpY2F0b3IpOworICAgIAorICAgIGlmIChbX3RleHRJbmRpY2F0b3JMYXll
ciBpc0ZhZGluZ091dF0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0ZXh0SW5kaWNhdG9y
ICYmIFtfdGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0
ZXh0SW5kaWNhdG9yXSAmJiBbX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmltYXRp
b25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uOjpGYWRlT3V0KSB7CisgICAgICAgIFtzZWxmIHN0YXJ0RmFkZU91dF07CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07Cit9
CisKKy0gKHZvaWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClhbmlt
YXRpb25Qcm9ncmVzcworeworICAgIGlmICghX3RleHRJbmRpY2F0b3IpCisgICAgICAgIHJldHVy
bjsKKworICAgIFtfdGV4dEluZGljYXRvckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNzOmFuaW1h
dGlvblByb2dyZXNzXTsKK30KKworLSAodm9pZCl0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcgor
eworICAgIFtfdGV4dEluZGljYXRvckxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICBf
dGV4dEluZGljYXRvckxheWVyID0gbmlsOworfQorCistICh2b2lkKXN0YXJ0RmFkZU91dAorewor
ICAgIFtfdGV4dEluZGljYXRvckxheWVyIHNldEZhZGluZ091dDpZRVNdOworICAgICAgICAKKyAg
ICBbX3RleHRJbmRpY2F0b3JMYXllciBoaWRlV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3ZWFrU2Vs
ZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gc3Ry
b25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBbc3Ryb25nU2VsZiB0ZWFyZG93blRl
eHRJbmRpY2F0b3JMYXllcl07CisgICAgfV07Cit9CisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFk
ZGl0aW9uc0FmdGVyLm1tPgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDU4YmU0YTJjYWU0NTM3ZTU0NjNiZGQxYjZiNWJl
MTY4YmE2OTI3NmMuLjY3NTVmMDFiMzg4NDgwODViMGI1YWQyYWFjOGNlMWQxZTQ0YjdhZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBA
IC0xNTYsOCArMTU2LDggQEAgcHJpdmF0ZToKIAogICAgIFJlZjxXZWJDb3JlOjpWYWxpZGF0aW9u
QnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmKSBmaW5hbDsKIAotICAgIHZv
aWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjbGVhclRl
eHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlv
bikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Q
cm9ncmVzcyhmbG9hdCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDc4OGEy
Nzk2ZGJiMWNmNDU5ZWZlMTI0YzZmMGQ3ZDBhNjk4YjdlOWIuLjYxNGI1OTY2YzY0YWJjYzRkNDEw
YjAzZGFkNGE3MDM5Y2RmZmM0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTU2OSwxMiArNTY5LDEyIEBAIHZvaWQgUGFnZUNs
aWVudEltcGw6OmNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFpbkZyYW1lTmF2aWdhdGlv
bigpCiAgICAgbV9pbXBsLT5jbGVhclNhZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5GcmFtZU5h
dmlnYXRpb24oKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihS
ZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldp
bmRvd0xpZmV0aW1lIGxpZmV0aW1lKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGlj
YXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGlj
YXRvckxpZmV0aW1lIGxpZmV0aW1lKQogewogICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0
ZXh0SW5kaWNhdG9yLmdldCgpLCBsaWZldGltZSk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6
OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFy
VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGRp
c21pc3NhbEFuaW1hdGlvbikKIHsKICAgICBtX2ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb24oZGlzbWlzc2FsQW5pbWF0aW9uKTsKIH0KQEAgLTY3Miw5ICs2NzIsOSBAQCB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9u
YXJ5UG9wdXBJbmZvJiBkaWN0aQogICAgIG1faW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29r
dXAoKTsKIAogICAgIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJ
bmZvLCBtX3ZpZXcsIFt0aGlzXShUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAg
ICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9y
V2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7CisgICAgICAgIG1faW1wbC0+c2V0VGV4dEluZGlj
YXRvcih0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1h
bmVudCk7CiAgICAgfSwgbnVsbHB0ciwgW3RoaXNdKCkgewotICAgICAgICBtX2ltcGwtPmNsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9u
OjpOb25lKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggOWJhYThiZTI0
Yzc3Yzc0NmU3OTNmNDEzNzhkY2QwMGIzY2Y0YzRmZS4uYmVjMGRjMTI4YzUwNjdkNmU5MjdkZmNl
ZGI0N2E3ZmJlZDgyZTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCkBAIC00OTAsOSArNDkwLDkg
QEAgLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9u
Q29udHJvbGxlckZvclRleHQKICAgICBfdmlld0ltcGwtPnByZXBhcmVGb3JEaWN0aW9uYXJ5TG9v
a3VwKCk7CiAKICAgICByZXR1cm4gV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6YW5pbWF0aW9u
Q29udHJvbGxlckZvclBvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIF92aWV3LCBbc2VsZl0oV2Vi
Q29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBfdmlld0ltcGwt
PnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldp
bmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOworICAgICAgICBfdmlld0ltcGwtPnNldFRleHRJbmRp
Y2F0b3IodGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJt
YW5lbnQpOwogICAgIH0sIG51bGxwdHIsIFtzZWxmXSgpIHsKLSAgICAgICAgX3ZpZXdJbXBsLT5j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgICAgICBfdmlld0ltcGwtPmNsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFu
aW1hdGlvbjo6Tm9uZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXgg
M2YyZTlkNTBmZmIwMDFjMjQ2ZDQxNzEwZTAzYjQ0OWJkYzU4Njc4NC4uZWU2ZWE2M2Q3NzA3NjU1
ZTU3MTVlYjA0MTIzYjA0ODU2YTIzMDAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTg4
LDYgKzg4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRp
bmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpKQogI2luY2x1ZGUgIlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCIKQEAgLTEyNjks
OCArMTI3MCwxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGlnaHQoV2Vi
Q29yZTo6QXBwSGlnaGxpZ2h0JiYgaGlnaGxpZ2h0KSBjb25zdAogICAgIGhpZ2hsaWdodC5yZXF1
ZXN0T3JpZ2luYXRlZEluQXBwID0gbV9wYWdlLmhpZ2hsaWdodFJlcXVlc3RPcmlnaW5hdGVkSW5B
cHAoKTsKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9yZUFwcEhp
Z2hsaWdodChoaWdobGlnaHQpKTsKIH0KK30KICNlbmRpZgogCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5k
aWNhdG9yRGF0YSkgY29uc3QKK3sKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTZXRUZXh0SW5kaWNhdG9yKGluZGljYXRvckRhdGEsIHN0YXRpY19jYXN0PHVpbnQ2NF90
PihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKKworCiBTdHJp
bmcgV2ViQ2hyb21lQ2xpZW50OjpzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5z
aWduZWQga2V5U2l6ZUluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZVN0cmluZywgY29uc3Qg
VVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgU3RyaW5nIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApp
bmRleCA0ZWVmMWY4YWQxYzUyYWMwNTE2NTgyYmExNjE1NWNhZDAxYTE1NTcyLi40ODNhYjExZGMx
MTM5NjFmYzI0OGQ2Mzg5YjdkYTI1MGJkYzBjOGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0z
NTIsNiArMzUyLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAg
dm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QgZmlu
YWw7CiAjZW5kaWYKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4
dEluZGljYXRvckRhdGEmKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShXRUJfQ1JZUFRPKQog
ICAgIGJvb2wgd3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mLCBWZWN0b3I8dWlu
dDhfdD4mKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAppbmRleCAwMDkwMTRhNTM2YmY5ZDY4ZGZiZTVkYTE0
MGRkYjUxN2FlYWNkMjA3Li5jZTIxZDY3YzQ4Yjk2MDllZmEzOTU2NmFmMDI5M2I5M2FjY2VkZGNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRy
b2xsZXIuY3BwCkBAIC0zODAsNyArMzgwLDcgQEAgYm9vbCBGaW5kQ29udHJvbGxlcjo6dXBkYXRl
RmluZEluZGljYXRvcihGcmFtZSYgc2VsZWN0ZWRGcmFtZSwgYm9vbCBpc1Nob3dpbmdPdmUKIAog
ICAgIG1fZmluZEluZGljYXRvclJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KGluZGljYXRvci0+c2Vs
ZWN0aW9uUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcygpKTsKICNpZiBQTEFURk9STShDT0NPQSkK
LSAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0VGV4dEluZGlj
YXRvcihpbmRpY2F0b3ItPmRhdGEoKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGlzU2hvd2luZ092
ZXJsYXkgPyBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCA6IFRleHRJbmRp
Y2F0b3JXaW5kb3dMaWZldGltZTo6VGVtcG9yYXJ5KSkpOworICAgIG1fd2ViUGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9yKGluZGljYXRvci0+ZGF0YSgp
LCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaXNTaG93aW5nT3ZlcmxheSA/IFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50IDogV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0
aW1lOjpUZW1wb3JhcnkpKSk7CiAjZW5kaWYKICAgICBtX2lzU2hvd2luZ0ZpbmRJbmRpY2F0b3Ig
PSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGYzZDQ3MTZhODkzM2Q5ZjI0MmY4ZWYxMjE1
YTg2NjIzNDBmODk3YTUuLjZlMThmMmIyNDIxNzEzYTJjNDBkNzQ0MThkNTI0Yjg1MzY0MTE2NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVO
QUJMRShBUFBfSElHSExJR0hUUykKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6
OkFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3Io
Y29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmKSBjb25zdCBmaW5hbDsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA0NTM5Y2U2
ZjY0ZDAwYjBiYjAwMjgzZWFjODE1MzI5NzkwMDRjNGU4Li5iN2IzOGU1ODgzOTZlNTRiMTgzMTJh
OWM2NTMyYTIwZjQ5MjFmZGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03MjAsNiArNzIwLDEx
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBI
aWdobGlnaHQmJikgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0
VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9y
RGF0YSkgY29uc3QKK3sKK30KKworCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKIGJvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2soKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMGZlMmE1MDk2YzdlMjZmMzIw
MzI1ZTM2OGJmZjBkYmI5ZjA3MmM3Ni4uNjFkNmY0ZTg2NTk0ZGNhYjdlNjE3OTA3MDRiNzA5ZWY1
Y2NjMmJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJI
VE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tCkBAIC01OTUzLDcgKzU5NTMsNyBAQCAtICh2b2lkKV9sb29rVXBJbkRpY3Rpb25hcnlG
cm9tTWVudTooaWQpc2VuZGVyCiAKIC0gKHZvaWQpcXVpY2tMb29rV2l0aEV2ZW50OihOU0V2ZW50
ICopZXZlbnQKIHsKLSAgICBbW3NlbGYgX3dlYlZpZXddIF9jbGVhclRleHRJbmRpY2F0b3JXaXRo
QW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246
OkZhZGVPdXRdOworICAgIFtbc2VsZiBfd2ViVmlld10gX2NsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91
dF07CiAgICAgW3N1cGVyIHF1aWNrTG9va1dpdGhFdmVudDpldmVudF07CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29u
dHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5tbQppbmRleCBjZTYyYmZhNTE2MTc3YzhjMzZhZWRkN2JhNWZhNGMy
NzUxMGQ2ZjcxLi5iZTViNmEyZmIwMTU0YmMzNmZjZDM4YmIxZGFkODllMDljNzBlMzNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCkBAIC0xMjIsNyArMTIyLDcgQEAgLSAodm9pZCl3
ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkaWRIYW5kbGVTY3JvbGxXaGVlbDooTlNFdmVudCAq
KWV2ZW50CiB7CiAgICAgW19jdXJyZW50UUxQcmV2aWV3TWVudUl0ZW0gY2xvc2VdOwogICAgIFtz
ZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dlYlZpZXcgX2NsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21p
c3NhbEFuaW1hdGlvbjo6Tm9uZV07CisgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5v
bmVdOwogfQogCiAtIChOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopaW1tZWRp
YXRlQWN0aW9uUmVjb2duaXplcgpAQCAtMTM5LDcgKzEzOSw3IEBAIC0gKHZvaWQpX2NhbmNlbElt
bWVkaWF0ZUFjdGlvbgogICAgIH0KIAogICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0
YXRlXTsKLSAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07Cisg
ICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogfQogCiAtICh2b2lkKV9j
bGVhckltbWVkaWF0ZUFjdGlvblN0YXRlCkBAIC0yNTEsNyArMjUxLDcgQEAgLSAodm9pZClpbW1l
ZGlhdGVBY3Rpb25SZWNvZ25pemVyRGlkQ2FuY2VsQW5pbWF0aW9uOihOU0ltbWVkaWF0ZUFjdGlv
bkdlc3R1cmVSZWMKIAogICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzOjBdOwogICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBb
X3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07CisgICAgW193ZWJWaWV3IF9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNt
aXNzYWxBbmltYXRpb246Ok5vbmVdOwogICAgIFtfd2ViVmlldyBfc2V0TWFpbnRhaW5zSW5hY3Rp
dmVTZWxlY3Rpb246Tk9dOwogfQogCkBAIC0yOTMsNyArMjkzLDcgQEAgLSAoaWQgPE5TSW1tZWRp
YXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2RlZmF1bHRBbmltYXRpb25Db250cm9sbGVy
CiAgICAgICAgICAgICBhdXRvIGxpbmtSYW5nZSA9IG1ha2VSYW5nZVNlbGVjdGluZ05vZGVDb250
ZW50cygqX2hpdFRlc3RSZXN1bHQuVVJMRWxlbWVudCgpKTsKICAgICAgICAgICAgIGF1dG8gaW5k
aWNhdG9yID0gV2ViQ29yZTo6VGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFJhbmdlKGxpbmtSYW5n
ZSwgeyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yT3B0aW9uOjpVc2VCb3VuZGluZ1JlY3RBbmRQYWlu
dEFsbENvbnRlbnRGb3JDb21wbGV4UmFuZ2VzIH0sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JQcmVz
ZW50YXRpb25UcmFuc2l0aW9uOjpGYWRlSW4pOwogICAgICAgICAgICAgaWYgKGluZGljYXRvcikK
LSAgICAgICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3
aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5l
bnRdOworICAgICAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNh
dG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVu
dF07CiAKICAgICAgICAgICAgIFFMUHJldmlld01lbnVJdGVtICppdGVtID0gW05TTWVudUl0ZW0g
c3RhbmRhcmRRdWlja0xvb2tNZW51SXRlbV07CiAgICAgICAgICAgICBpdGVtLnByZXZpZXdTdHls
ZSA9IFFMUHJldmlld1N0eWxlUG9wb3ZlcjsKQEAgLTM3OSw3ICszNzksNyBAQCAtIChOU1JlY3RF
ZGdlKW1lbnVJdGVtOihOU01lbnVJdGVtICopbWVudUl0ZW0gcHJlZmVycmVkRWRnZUZvclBvaW50
OihOU1BvaW50KXBvaQogLSAodm9pZCltZW51SXRlbURpZENsb3NlOihOU01lbnVJdGVtICopbWVu
dUl0ZW0KIHsKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Ci0gICAgW193
ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgIFtfd2ViVmlldyBf
Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlz
bWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKIH0KIAogc3RhdGljIFdlYkNvcmU6OkludFJlY3Qg
ZWxlbWVudEJvdW5kaW5nQm94SW5XaW5kb3dDb29yZGluYXRlc0Zyb21Ob2RlKFdlYkNvcmU6Ok5v
ZGUqIG5vZGUpCkBAIC00NjQsOSArNDY0LDkgQEAgLSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWQKICAg
ICBfY3VycmVudEFjdGlvbkNvbnRleHQgPSBbZGV0ZWN0ZWRJdGVtLT5hY3Rpb25Db250ZXh0IGNv
bnRleHRGb3JWaWV3Ol93ZWJWaWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhhbmRs
ZXI6XigpIHsKICAgICB9IGludGVyYWN0aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsKICAgICAgICAg
aWYgKGluZGljYXRvcikKLSAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoq
aW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRp
bWU6OlBlcm1hbmVudF07CisgICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6
KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQ
ZXJtYW5lbnRdOwogICAgIH0gaW50ZXJhY3Rpb25TdG9wcGVkSGFuZGxlcjpeKCkgewotICAgICAg
ICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgICAgIFtf
d2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICB9XTsKIAogICAgIFtfY3Vy
cmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0RnJhbWU6W193ZWJWaWV3LndpbmRvdyBjb252
ZXJ0UmVjdFRvU2NyZWVuOmRldGVjdGVkSXRlbS0+Ym91bmRpbmdCb3hdXTsKQEAgLTQ5Nyw5ICs0
OTcsOSBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5p
bWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZAogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4
dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol93ZWJWaWV3IGFsdE1vZGU6WUVTIGlu
dGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAgICB9IGludGVyYWN0aW9uQ2hhbmdlZEhh
bmRsZXI6XigpIHsKICAgICAgICAgaWYgKGluZGljYXRvcikKLSAgICAgICAgICAgIFtfd2ViVmll
dyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgICAgICBbX3dlYlZp
ZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4
dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwogICAgIH0gaW50ZXJhY3Rpb25TdG9wcGVk
SGFuZGxlcjpeKCkgewotICAgICAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6
RmFkZU91dF07CisgICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsK
ICAgICB9XTsKIAogICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0RnJhbWU6
W193ZWJWaWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOmVsZW1lbnRCb3VuZGluZ0JveElu
V2luZG93Q29vcmRpbmF0ZXNGcm9tTm9kZShfaGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50KCkpXV07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNzI2NGJm
ZGNkNzJkZTEzNjk2MGEzMjM4Y2IwMDIxNmZiODkyZmY3Yy4uOTkyZjNlMDk3NGQ2NDViZmUyNWQ3
MzE5ODMyZDg0MWY3NzBlZTZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQpAQCAtOTEwMCwxMSArOTEwMCwxMSBAQCAtIChpZClfYW5pbWF0aW9uQ29udHJv
bGxlckZvckRpY3Rpb25hcnlMb29rdXBQb3B1cEluZm86KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25h
cgogICAgIFtzZWxmIF9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cF07CiAKICAgICByZXR1cm4g
V2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6YW5pbWF0aW9uQ29udHJvbGxlckZvclBvcHVwKGRp
Y3Rpb25hcnlQb3B1cEluZm8sIHNlbGYsIFtzZWxmXShXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0
ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRp
Y2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6
UGVybWFuZW50XTsKKyAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRv
ciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRd
OwogICAgIH0sIFtzZWxmXShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdEluUm9vdFZpZXdDb29yZGlu
YXRlcykgewogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRSZWN0RnJvbVJvb3RWaWV3OnJl
Y3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIH0sIFtzZWxmXSgpIHsKLSAgICAgICAgW3Nl
bGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgICAgIFtzZWxmIF9jbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNz
YWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH0pOwogfQogCkBAIC05MTIwLDEwICs5MTIwLDEw
IEBAIC0gKHZvaWQpX3NldFByZXNzdXJlRXZlbnQ6KE5TRXZlbnQgKilldmVudAogCiAtICh2b2lk
KV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9y
CiB7Ci0gICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRp
bWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAg
IFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNv
cmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKIH0KIAotLSAodm9pZClfc2V0
VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRo
TGlmZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSlsaWZldGltZQor
LSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dElu
ZGljYXRvciB3aXRoTGlmZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSlsaWZl
dGltZQogewogICAgIGlmICghX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cpCiAgICAgICAg
IF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93ID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93PihzZWxmKTsKQEAgLTkxMzMsMTAgKzkxMzMsMTAgQEAgLSAodm9pZClf
c2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3
aXRoTGlmZXRpbWU6KFcKICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdy0+c2V0VGV4
dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdSZWN0
SW5TY3JlZW5Db29yZGluYXRlcyksIGxpZmV0aW1lKTsKIH0KIAotLSAodm9pZClfY2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21p
c3NhbEFuaW1hdGlvbilhbmltYXRpb24KKy0gKHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0
aW9uCiB7CiAgICAgaWYgKF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93KQotICAgICAgICBf
cHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdy0+Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAgICAg
ICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdy0+Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogICAgIF9wcml2
YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93ID0gbnVsbHB0cjsKIH0KIApAQCAtOTE2OCwxOCArOTE2
OCwxOCBAQCAtICh2b2lkKV9zaG93RGljdGlvbmFyeUxvb2t1cFBvcHVwOihjb25zdCBXZWJDb3Jl
OjpEaWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9uYQogICAgIFtzZWxmIF9wcmVwYXJlRm9yRGlj
dGlvbmFyeUxvb2t1cF07CiAKICAgICBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9w
dXAoZGljdGlvbmFyeVBvcHVwSW5mbywgc2VsZiwgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4
dEluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0
aW1lOjpQZXJtYW5lbnRdOworICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5k
aWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1h
bmVudF07CiAgICAgfSwgW3NlbGZdKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0SW5Sb290Vmlld0Nv
b3JkaW5hdGVzKSB7CiAgICAgICAgIHJldHVybiBbc2VsZiBfY29udmVydFJlY3RGcm9tUm9vdFZp
ZXc6cmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CiAgICAgfSwgW3dlYWtTZWxmID0gV2Vha09i
akNQdHI8V2ViVmlldz4oc2VsZildKCkgewotICAgICAgICBbd2Vha1NlbGYuZ2V0KCkgX2NsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgICAgIFt3ZWFrU2VsZi5nZXQoKSBfY2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlz
c2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICB9KTsKIH0KIAogI2lmICFFTkFCTEUoUkVWRUFM
KQogLSAodm9pZClfZGljdGlvbmFyeUxvb2t1cFBvcG92ZXJXaWxsQ2xvc2U6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCiB7Ci0gICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6
RmFkZU91dF07CisgICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAjZW5k
aWYgLy8gRU5BQkxFKFJFVkVBTCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlld0ludGVybmFsLmgKaW5kZXggNzMzNzJhMGJkYTE1M2JmYTM3NjEwMjNjZjQ5
NWQ3OTZmYTcxOGNjMS4uYmFkNWZkOGExNTBhY2YyYzM3YTU3YzM2NGY4MjE5ZGNkNDM3MzBiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5h
bC5oCkBAIC0zMTksOCArMzE5LDggQEAgV2ViTGF5b3V0TWlsZXN0b25lcyBraXRMYXlvdXRNaWxl
c3RvbmVzKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KTsKIAogI2lmIFBMQVRG
T1JNKE1BQykgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0
b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3I7Ci0tICh2b2lkKV9zZXRU
ZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhM
aWZldGltZTooV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKWxpZmV0aW1lOwot
LSAodm9pZClfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb247CistICh2b2lkKV9zZXRU
ZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhM
aWZldGltZTooV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKWxpZmV0aW1lOworLSAodm9p
ZClfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb247CiAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9y
QW5pbWF0aW9uUHJvZ3Jlc3M6KGZsb2F0KXByb2dyZXNzOwogLSAodm9pZClfc2hvd0RpY3Rpb25h
cnlMb29rdXBQb3B1cDooY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpZGljdGlv
bmFyeVBvcHVwSW5mbzsKIC0gKGlkKV9hbmltYXRpb25Db250cm9sbGVyRm9yRGljdGlvbmFyeUxv
b2t1cFBvcHVwSW5mbzooY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpZGljdGlv
bmFyeVBvcHVwSW5mbzsK
</data>
<flag name="commit-queue"
          id="449458"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428531</attachid>
            <date>2021-05-13 10:50:15 -0700</date>
            <delta_ts>2021-05-13 12:55:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513105015.patch</filename>
            <type>text/plain</type>
            <size>52215</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRv
ci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLjAzNWRj
OTM5OWEyZTIxZDFhMmYzOWI1NTVkZDM5MjE1Zjg3NDkyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCkBAIC0zOSw2ICszOSwyNSBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIAorY29uc3RleHByIGZsb2F0IGRyb3BTaGFkb3dCbHVyUmFk
aXVzID0gMjsKK2NvbnN0ZXhwciBmbG9hdCByaW1TaGFkb3dCbHVyUmFkaXVzID0gMTsKK2NvbnN0
ZXhwciBTZWNvbmRzIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMl9zOworY29uc3RleHBy
IFNlY29uZHMgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25EdXJhdGlvbiAr
IDAuMl9zOworY29uc3RleHByIGZsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4yNTsKKworZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgOiB1aW50OF90IHsKKyAgICAvLyBUaGUgVGV4dElu
ZGljYXRvciBzaG91bGQgaW5kaWNhdGUgdGhlIHRleHQgdW50aWwgZGlzbWlzc2VkLgorICAgIFBl
cm1hbmVudCwKKworICAgIC8vIFRoZSBUZXh0SW5kaWNhdG9yIHNob3VsZCBicmllZmx5IGluZGlj
YXRlIHRoZSB0ZXh0IGFuZCB0aGVuIGF1dG9tYXRpY2FsbHkgZGlzbWlzcy4KKyAgICBUZW1wb3Jh
cnkKK307CisKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiA6IHVp
bnQ4X3QgeworICAgIE5vbmUsCisgICAgRmFkZU91dAorfTsKKwogLy8gRklYTUU6IE1vdmUgUHJl
c2VudGF0aW9uVHJhbnNpdGlvbiB0byBUZXh0SW5kaWNhdG9yV2luZG93LCBiZWNhdXNlIGl0J3Mg
YWJvdXQgcHJlc2VudGF0aW9uLgogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9u
VHJhbnNpdGlvbiA6IHVpbnQ4X3QgewogICAgIE5vbmUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaAppbmRleCBmZDEzZDA0MGVmZmI3NWIw
ZWEwMDRlYTU1MWUzMjIxNTRhZTE4ZmFmLi5iZWJmOTNhMzZlZDcwZTZiMzA5ZGU4OTU4MWExODM2
NjVlMzhjMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJ
bmRpY2F0b3JMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dElu
ZGljYXRvckxheWVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKLUBpbnRlcmZhY2UgV2ViVGV4dEluZGljYXRv
ckxheWVyIDogQ0FMYXllciB7CitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYlRleHRJbmRp
Y2F0b3JMYXllciA6IENBTGF5ZXIgewogICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
PiBfdGV4dEluZGljYXRvcjsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2JvdW5jZUxheWVyczsK
ICAgICBDR1NpemUgX21hcmdpbjsKQEAgLTUzLDMgKzUzLDQgQEAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBnZXR0ZXI9aXNGYWRpbmdPdXQpIEJPT0wgZmFkaW5nT3V0OwogCiBAZW5kCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1t
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KaW5k
ZXggYjhjNGQ4ZjA2N2JhY2VkMDlhODExODA4NzEwMzA2YzU3YTc5NDMwMC4uMWFjNWU4NmYwNzgy
ZTUyY2M2NTc2NzY0NmNiMWJlMmNmY2ZiOTk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNp
bXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiUGF0aFV0aWxpdGllcy5oIgogI2lt
cG9ydCAiVGV4dEluZGljYXRvci5oIgorI2ltcG9ydCAiVGV4dEluZGljYXRvcldpbmRvdy5oIgog
I2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmgiCiAjaW1wb3J0IDxw
YWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFy
dHpDb3JlU1BJLmg+CkBAIC0zOCwxOSArMzksMTUgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
TlNDb2xvclNQSS5oPgogI2VuZGlmCiAKLWNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBib3VuY2VB
bmltYXRpb25EdXJhdGlvbiA9IDAuMTI7CisKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBib3Vu
Y2VXaXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjM7CiBjb25zdGV4cHIgQ0ZUaW1l
SW50ZXJ2YWwgZmFkZUluQW5pbWF0aW9uRHVyYXRpb24gPSAwLjE1OwotY29uc3RleHByIENGVGlt
ZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5pbWF0aW9uRHVyYXRpb24g
KyAwLjI7CiBjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgZmFkZU91dEFuaW1hdGlvbkR1cmF0aW9u
ID0gMC4zOwogCi1jb25zdGV4cHIgQ0dGbG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEuMjU7CiBjb25z
dGV4cHIgQ0dGbG9hdCBib3JkZXJXaWR0aCA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBjb3JuZXJS
YWRpdXMgPSAwOwogY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09mZnNldFggPSAwOwogY29u
c3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09mZnNldFkgPSAxOwotY29uc3RleHByIENHRmxvYXQg
ZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotY29uc3RleHByIENHRmxvYXQgcmltU2hhZG93Qmx1
clJhZGl1cyA9IDE7CiAKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IHRleHRMYXllcktleSA9
IEAiVGV4dExheWVyIjsKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IGRyb3BTaGFkb3dMYXll
cktleSA9IEAiRHJvcFNoYWRvd0xheWVyIjsKQEAgLTEzMiwxMyArMTI5LDEyIEBAIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29y
ZTo6VGV4dEluZGljYXRvCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAg
IHJldHVybiBuaWw7CiAgICAgCisgICAgc2VsZi5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOwog
ICAgIHNlbGYuZnJhbWUgPSBmcmFtZTsKIAogICAgIF90ZXh0SW5kaWNhdG9yID0gJnRleHRJbmRp
Y2F0b3I7CiAgICAgX21hcmdpbiA9IG1hcmdpbjsKIAotICAgIHNlbGYuYW5jaG9yUG9pbnQgPSBD
R1BvaW50WmVybzsKLQogICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29udGVudHNJ
bWFnZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgY29udGVudHNJbWFnZUxvZ2ljYWxTaXplIHsg
MSwgMSB9OwogICAgIGlmIChhdXRvKiBjb250ZW50SW1hZ2UgPSBfdGV4dEluZGljYXRvci0+Y29u
dGVudEltYWdlKCkpIHsKQEAgLTE5Miw3ICsxODgsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0
bwogICAgICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gZHJvcFNoYWRvd0xheWVyID0gYWRvcHROUyhb
W0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXREZWxl
Z2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlIHNoYXJlZF1dOwogICAgICAg
ICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd0NvbG9yOmRyb3BTaGFkb3dDb2xvci5nZXQoKV07
Ci0gICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UmFkaXVzOmRyb3BTaGFkb3dCbHVy
UmFkaXVzXTsKKyAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6V2ViQ29y
ZTo6ZHJvcFNoYWRvd0JsdXJSYWRpdXNdOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNo
YWRvd09mZnNldDpDR1NpemVNYWtlKGRyb3BTaGFkb3dPZmZzZXRYLCBkcm9wU2hhZG93T2Zmc2V0
WSldOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRlZFBh
dGgucGxhdGZvcm1QYXRoKCldOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd09w
YWNpdHk6MV07CkBAIC0yMDQsNyArMjAwLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJh
bWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAg
ICAgICAgW3JpbVNoYWRvd0xheWVyIHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxh
eWVyRGVsZWdhdGUgc2hhcmVkXV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRGcmFtZTp5
ZWxsb3dIaWdobGlnaHRSZWN0XTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd0Nv
bG9yOnJpbVNoYWRvd0NvbG9yLmdldCgpXTsKLSAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNo
YWRvd1JhZGl1czpyaW1TaGFkb3dCbHVyUmFkaXVzXTsKKyAgICAgICAgW3JpbVNoYWRvd0xheWVy
IHNldFNoYWRvd1JhZGl1czpXZWJDb3JlOjpyaW1TaGFkb3dCbHVyUmFkaXVzXTsKICAgICAgICAg
W3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRlZFBhdGgucGxhdGZvcm1QYXRo
KCldOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93T2Zmc2V0OkNHU2l6ZVplcm9d
OwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93T3BhY2l0eToxXTsKQEAgLTI0NSw3
ICsyNDEsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENBS2V5ZnJhbWVBbmltYXRpb24+IGNyZWF0ZUJv
dW5jZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZhbCBkdXJhdAogICAgIFJldGFpblB0cjxDQUtleWZy
YW1lQW5pbWF0aW9uPiBib3VuY2VBbmltYXRpb24gPSBbQ0FLZXlmcmFtZUFuaW1hdGlvbiBhbmlt
YXRpb25XaXRoS2V5UGF0aDpAInRyYW5zZm9ybSJdOwogICAgIFtib3VuY2VBbmltYXRpb24gc2V0
VmFsdWVzOkBbCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFu
c2Zvcm0zRElkZW50aXR5XSwKLSAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKG1pZEJvdW5jZVNjYWxlLCBtaWRCb3VuY2VTY2FsZSwg
MSldLAorICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOkNBVHJhbnNmb3Jt
M0RNYWtlU2NhbGUoV2ViQ29yZTo6bWlkQm91bmNlU2NhbGUsIFdlYkNvcmU6Om1pZEJvdW5jZVNj
YWxlLCAxKV0sCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFu
c2Zvcm0zRElkZW50aXR5XQogICAgICAgICBdXTsKICAgICBbYm91bmNlQW5pbWF0aW9uIHNldER1
cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTI5NCw3ICsyOTAsNyBAQCAtIChDRlRpbWVJbnRlcnZhbClf
YW5pbWF0aW9uRHVyYXRpb24KICAgICBpZiAoW3NlbGYgaW5kaWNhdG9yV2FudHNCb3VuY2U6Kl90
ZXh0SW5kaWNhdG9yXSkgewogICAgICAgICBpZiAoaW5kaWNhdG9yV2FudHNDb250ZW50Q3Jvc3Nm
YWRlKCpfdGV4dEluZGljYXRvcikpCiAgICAgICAgICAgICByZXR1cm4gYm91bmNlV2l0aENyb3Nz
ZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwotICAgICAgICByZXR1cm4gYm91bmNlQW5pbWF0aW9uRHVy
YXRpb247CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpib3VuY2VBbmltYXRpb25EdXJhdGlvbi52
YWx1ZSgpOwogICAgIH0KIAogICAgIHJldHVybiBmYWRlSW5BbmltYXRpb25EdXJhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCBjM2Iz
M2ViYTJjOGJjMGQ3NTQ1OWRkMjE1MDg5YjY1MjljNWQzMTVkLi5mN2ZmZjdjNzNhMWQyZmY3NTRi
Mjc4N2NhMjI5OTUyMzgwMzEzMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4
dEluZGljYXRvcldpbmRvdy5oCkBAIC0zNiwxOSArMzYsNiBAQCBPQkpDX0NMQVNTIFdlYlRleHRJ
bmRpY2F0b3JMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3QgewotICAgIC8vIFRoZSBUZXh0SW5kaWNh
dG9yIHNob3VsZCBpbmRpY2F0ZSB0aGUgdGV4dCB1bnRpbCBkaXNtaXNzZWQuCi0gICAgUGVybWFu
ZW50LAotCi0gICAgLy8gVGhlIFRleHRJbmRpY2F0b3Igc2hvdWxkIGJyaWVmbHkgaW5kaWNhdGUg
dGhlIHRleHQgYW5kIHRoZW4gYXV0b21hdGljYWxseSBkaXNtaXNzLgotICAgIFRlbXBvcmFyeQot
fTsKLQotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDog
dWludDhfdCB7Ci0gICAgTm9uZSwKLSAgICBGYWRlT3V0Ci19OwotCiAjaWYgUExBVEZPUk0oTUFD
KQogCiBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93IHsKQEAgLTU5LDggKzQ2LDggQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFRleHRJbmRpY2F0b3JXaW5kb3coTlNWaWV3
ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5UZXh0SW5kaWNhdG9yV2luZG93KCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBD
R1JlY3QgY29udGVudFJlY3QsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKFJlZjxUZXh0SW5kaWNhdG9yPiwgQ0dSZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAKQEAgLTgxLDMgKzY4LDUgQEAgcHJpdmF0
ZToKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRl
eCBmODVmYTUzYjNiNGE5ZjQ1OTY5Nzc2YTEyY2M0MTFmNzkyMmRmNzdjLi4xODBiYWI3ZDAyYmMz
YTVkMWIwYzNlNzQ1MmUxZDMyOTI1MjQ5NzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTM4LDEyICszOCw2IEBACiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oPgogCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlv
biA9IDAuMTI7Ci1jb25zdCBDRlRpbWVJbnRlcnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJv
dW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4yOwotCi1jb25zdCBDR0Zsb2F0IG1pZEJvdW5jZVNj
YWxlID0gMS4yNTsKLWNvbnN0IENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsNyAr
NTAsNyBAQCBUZXh0SW5kaWNhdG9yV2luZG93OjpUZXh0SW5kaWNhdG9yV2luZG93KE5TVmlldyAq
dGFyZ2V0VmlldykKIAogVGV4dEluZGljYXRvcldpbmRvdzo6flRleHRJbmRpY2F0b3JXaW5kb3co
KQogewotICAgIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiB9CiAKIHZvaWQgVGV4dElu
ZGljYXRvcldpbmRvdzo6c2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCkBAIC02
NywxNCArNjEsMTQgQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9n
cmVzcyhmbG9hdCBwcm9ncmVzcykKICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0QW5pbWF0
aW9uUHJvZ3Jlc3M6cHJvZ3Jlc3NdOwogfQogCi12b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNs
ZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFu
aW1hdGlvbikKK3ZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQogewogICAg
IFJlZlB0cjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yID0gV1RGTW92ZShtX3RleHRJbmRp
Y2F0b3IpOwogCiAgICAgaWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091dF0pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0
b3JMYXllciBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYg
W21fdGV4dEluZGljYXRvckxheWVyIGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9u
ID09IFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKKyAg
ICBpZiAodGV4dEluZGljYXRvciAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2Fu
dHNNYW51YWxBbmltYXRpb246KnRleHRJbmRpY2F0b3JdICYmIFttX3RleHRJbmRpY2F0b3JMYXll
ciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7CiAgICAgICAgIHN0YXJ0RmFkZU91
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODIsNyArNzYsNyBAQCB2b2lkIFRleHRJ
bmRpY2F0b3JXaW5kb3c6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aQogICAgIGNsb3NlV2luZG93KCk7CiB9CiAKLXZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciwgQ0dSZWN0IHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNl
dFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUmVjdCB0
ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcywgVGV4dEluZGljYXRvckxpZmV0aW1l
IGxpZmV0aW1lKQogewogICAgIGlmIChtX3RleHRJbmRpY2F0b3IgPT0gdGV4dEluZGljYXRvci5w
dHIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTUsOCArODksOCBAQCB2b2lkIFRleHRJbmRpY2F0
b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0
b3IsIENHUgogICAgIENHRmxvYXQgdmVydGljYWxNYXJnaW4gPSBkcm9wU2hhZG93Qmx1clJhZGl1
cyAqIDIgKyBUZXh0SW5kaWNhdG9yOjpkZWZhdWx0VmVydGljYWxNYXJnaW47CiAgICAgCiAgICAg
aWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50c0JvdW5jZToqbV90ZXh0SW5k
aWNhdG9yXSkgewotICAgICAgICBob3Jpem9udGFsTWFyZ2luID0gc3RkOjptYXgoaG9yaXpvbnRh
bE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS53aWR0aCAq
IChtaWRCb3VuY2VTY2FsZSAtIDEpICsgaG9yaXpvbnRhbE1hcmdpbik7Ci0gICAgICAgIHZlcnRp
Y2FsTWFyZ2luID0gc3RkOjptYXgodmVydGljYWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNj
cmVlbkNvb3JkaW5hdGVzLnNpemUuaGVpZ2h0ICogKG1pZEJvdW5jZVNjYWxlIC0gMSkgKyB2ZXJ0
aWNhbE1hcmdpbik7CisgICAgICAgIGhvcml6b250YWxNYXJnaW4gPSBzdGQ6Om1heChob3Jpem9u
dGFsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLndpZHRo
ICogKFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxlIC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsKKyAg
ICAgICAgdmVydGljYWxNYXJnaW4gPSBzdGQ6Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJvdW5k
aW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQgKiAoV2ViQ29yZTo6bWlkQm91
bmNlU2NhbGUgLSAxKSArIHZlcnRpY2FsTWFyZ2luKTsKICAgICB9CiAKICAgICBob3Jpem9udGFs
TWFyZ2luID0gQ0dDZWlsaW5nKGhvcml6b250YWxNYXJnaW4pOwpAQCAtMTI1LDggKzExOSw4IEBA
IHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGlj
YXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgaWYgKG1fdGV4dEluZGljYXRvci0+cHJlc2Vu
dGF0aW9uVHJhbnNpdGlvbigpICE9IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9u
OjpOb25lKQogICAgICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgcHJlc2VudF07CiAKLSAgICBp
ZiAobGlmZXRpbWUgPT0gVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpCi0g
ICAgICAgIG1fdGVtcG9yYXJ5VGV4dEluZGljYXRvclRpbWVyLnN0YXJ0T25lU2hvdCgxX3MgKiB0
aW1lQmVmb3JlRmFkZVN0YXJ0cyk7CisgICAgaWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0b3JM
aWZldGltZTo6VGVtcG9yYXJ5KQorICAgICAgICBtX3RlbXBvcmFyeVRleHRJbmRpY2F0b3JUaW1l
ci5zdGFydE9uZVNob3QoV2ViQ29yZTo6dGltZUJlZm9yZUZhZGVTdGFydHMpOwogfQogCiB2b2lk
IFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsb3NlV2luZG93KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDNhZDUxNDJjZDE3N2FhZGFlNWMzODUzMmQ1
N2ZjYTQzODBhY2Q0YjYuLjEwYjg5MTliMGY4NjI0MTgxZWVhYmNmNzhjMDFjMTliYjNiZTBjMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNDEx
LDggKzQxMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsK
IAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiwgV2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lID0gV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwotICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uKTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYs
IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JM
aWZldGltZTo6UGVybWFuZW50KTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmlt
YXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbik7CiAgICAgdm9p
ZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogICAgIHZvaWQgZGlz
bWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpOwogICAgIHZvaWQg
ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oYm9vbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDIzYTUw
NDY4MTE0MTMzNTE5ZjJlZDFiZGNkODI0Y2Q5MmE2NWI0MWYuLmRjNTBjZDJjNTE1MGQ1NTc5ODU0
YWI3ZTY1ZTc1ZDYyNTVlM2IwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC00MjMsNyArNDIzLDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVG
b3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6
KE4KICNpZiAhRU5BQkxFKFJFVkVBTCkKIC0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVy
V2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotICAgIF9pbXBsLT5j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgIF9pbXBsLT5jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246
Ok5vbmUpOwogfQogI2VuZGlmCiAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICAgICAgdXBkYXRlV2luZG93QW5kVmlld0Zy
YW1lcygpOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6
OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3Io
V2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGlj
YXRvckxpZmV0aW1lIGxpZmV0aW1lKQogewogICAgIGlmICghbV90ZXh0SW5kaWNhdG9yV2luZG93
KQogICAgICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JXaW5kb3c+KG1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSk7CkBAIC0zNTA0LDcg
KzM1MDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcgogICAgIG1fdGV4dEluZGljYXRvcldp
bmRvdy0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0
Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcyksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBX
ZWJWaWV3SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKK3ZvaWQgV2ViVmll
d0ltcGw6OmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCiB7CiAgICAgaWYgKG1fdGV4dEluZGlj
YXRvcldpbmRvdykKICAgICAgICAgbV90ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRp
Y2F0b3IoYW5pbWF0aW9uKTsKQEAgLTM1MjcsNyArMzUyNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdP
bmx5KGJvCiAgICAgLy8gQ2FsbGluZyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBo
ZXJlIHdpbGwgd2luIG91dCBvdmVyIHRoZSBhbmltYXRlZCBjbGVhciBpbiBkaXNtaXNzQ29udGVu
dFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5LgogICAgIC8vIFdlIGNhbid0IGludmVy
dCB0aGVzZSBiZWNhdXNlIGNsaWVudHMgY2FuIG92ZXJyaWRlIChhbmQgaGF2ZSBvdmVycmlkZGVu
KSBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93cywgc28gaXQgbmVlZHMgdG8gYmUg
Y2FsbGVkLgogICAgIC8vIEZvciB0aGlzIHNhbWUgcmVhc29uLCB0aGlzIGNhbid0IGJlIG1vdmVk
IHRvIFdlYlZpZXdJbXBsIHdpdGhvdXQgY2FyZS4KLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRo
QW5pbWF0aW9uKGFuaW1hdGUgPyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0IDogV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihh
bmltYXRlID8gV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91
dCA6IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAg
IFttX3ZpZXcgX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKIH0KIApA
QCAtMzU0NCw3ICszNTQ0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpCiAgICAgICAgICAgICBbW2dldEREQWN0aW9u
c01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNo
b3JPbkZhaWx1cmU6WUVTXTsKICAgICB9CiAKLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXQpOworICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiAKICAgICBbbV9pbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNDE3ZTExZDQ5NjYwN2EzMDBj
ZmI2NWZlZDZjN2Y0Y2FjZTBjOTI2ZC4uYTM1NzMxZWMwMWQ5ZTVlMTUwMmU2MDVlNTI4MmZlZjBi
MDQ1ZDY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTA2LDggKzEw
Niw4IEBAIGNsYXNzIFNlbGVjdGlvbkRhdGE7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kg
OiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51
bSBjbGFzcyBTY3JvbGxiYXJTdHlsZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0
b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUgOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVp
bnQ4X3Q7CiAKIHN0cnVjdCBBcHBIaWdobGlnaHQ7CkBAIC0zODUsOCArMzg1LDggQEAgcHVibGlj
OgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4
dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dMaWZldGltZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRp
Y2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRp
b25Qcm9ncmVzcyhmbG9hdCkgPSAwOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWE1YzM0OTA3
MzNjMmIwZTkxZGU4NDg4OGUzMDA0YWU5YmFiODQ1ZC4uNDk5MzE0MzQ2NzFjMmRiYWUxZjU2MGZl
MzdiMDYxZTljNjI4NGQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0yMTgsNyArMjE4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJp
bmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU3lzdGVtQmF0dGVyeS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvcldp
bmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2luY2x1ZGUgPHd0
Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAjaW5jbHVkZSA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgpA
QCAtNjUxMSw3ICs2NTEwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3Io
Y29uc3QgVGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEsIHVpbnQKIHsKICAgICAvLyBG
SVhNRTogTWFrZSBUZXh0SW5kaWNhdG9yV2luZG93IGEgcGxhdGZvcm0taW5kZXBlbmRlbnQgcHJl
c2VudGF0aW9uYWwgdGhpbmcgKCJUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uIj8pLgogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRleHRJbmRp
Y2F0b3I6OmNyZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8VGV4dEluZGljYXRvcldp
bmRvd0xpZmV0aW1lPihsaWZldGltZSkpOworICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNh
dG9yKFRleHRJbmRpY2F0b3I6OmNyZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lPihsaWZldGltZSkpOwogI2Vsc2UKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgpAQCAtNjUyMCw3ICs2NTE5LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRhdGEmIGluZGlj
YXRvckRhdGEsIHVpbnQKIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVhclRleHRJbmRpY2F0b3IoKQog
ewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBhZ2VDbGllbnQoKS5jbGVhclRleHRJbmRpY2F0
b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAg
cGFnZUNsaWVudCgpLmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlz
bWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNWI0
NTdkZmI2MDMxZWY2MzlhZDNhZTNmY2JmZmZhZTZhNmQ4NTcwMi4uZmNiZDQ5NjhkNDE1ZGY2NzY3
YTFhZjk5OGJiOWNkY2JlMWEwZWMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTExNDksNyArMTE0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvdW50U3RyaW5n
TWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8RmluZE9wdGlvbnM+LCB1bnNpZ25lZCBt
YXhNYXRjaENvdW50KTsKICAgICB2b2lkIHJlcGxhY2VNYXRjaGVzKFZlY3Rvcjx1aW50MzJfdD4m
JiBtYXRjaEluZGljZXMsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0LCBib29sIHNlbGVj
dGlvbk9ubHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKICAgICB2b2lk
IGRpZENvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCB1aW50MzJfdCBtYXRjaENvdW50
KTsKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRhdGEmLCB1aW50NjRfdCAvKiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUg
Ki8gbGlmZXRpbWUgPSAwIC8qIFBlcm1hbmVudCAqLyk7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJiwgdWludDY0X3QgLyogV2ViQ29y
ZTo6VGV4dEluZGljYXRvckxpZmV0aW1lICovIGxpZmV0aW1lID0gMCAvKiBQZXJtYW5lbnQgKi8p
OwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsKICAg
ICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDNmYmUxYjE3ZmY2NjA0NDllOTkzZWY3
ZThhZmMwYmEwMDI0ZmQ4N2EuLjgxZmIwMTgzM2NlZTllNWQ5MTU5NTQxOGQyYjVhMGFlNGI4NDRj
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCkBAIC0xMzgsOCArMTM4LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViRGF0ZVRpbWVQ
aWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYpIGZpbmFsOwogI2VuZGlm
CiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+
LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJyaWRlOwotICAgIHZv
aWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2Vi
Q29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9y
QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzaG93U2FmZUJy
b3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQppbmRleCA0MGI3NjIzNjM5ZmZhZDQxYjQ0MjQ2OGViMmUxODFhYTM0ZjAxNjUzLi44
YzNjOGYyNDIxY2YwY2MyYjNmNTAzNzRkMTlmYjVjMjJjMTU5OTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00NzksMTYgKzQ3
OSwxOSBAQCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVQ
b3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi12
b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0
ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9y
LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpCiB7CisgICAgW21fY29udGVudFZpZXcg
c2V0VXBUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3JdOwogfQogCi12b2lkIFBhZ2VDbGllbnRJ
bXBsOjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKIHsKKyAg
ICBbbV9jb250ZW50VmlldyBjbGVhclRleHRJbmRpY2F0b3I6ZGlzbWlzc2FsQW5pbWF0aW9uXTsK
IH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzKGZsb2F0KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlv
blByb2dyZXNzKGZsb2F0IGFuaW1hdGlvblByb2dyZXNzKQogeworICAgIFttX2NvbnRlbnRWaWV3
IHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczphbmltYXRpb25Qcm9ncmVzc107CiB9
CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
Y29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRl
eCA4ODZhZTc1ZTY3YjU2YWViMzgzNzg0ZjU5NmM5ZDhmNzI5MTI1NmU3Li5iYWE4ZTQ0NGJiMjlj
YWI1YTFjMDI2ZmQ5Y2Y4ZDhkNDZjMzQ5MmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC04OSw2ICs4OSw3
IEBAIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogZW51bSBjbGFzcyBET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3MgTW91c2VFdmVudFBvbGljeSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CitlbnVtIGNs
YXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90OwogCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKIHN0cnVjdCBEcmFnSXRlbTsKQEAgLTEwNCw2ICsxMDUsNyBAQCBj
bGFzcyBXZWJQYWdlUHJveHk7CiB9CiAKIEBjbGFzcyBXZWJFdmVudDsKK0BjbGFzcyBXZWJUZXh0
SW5kaWNhdG9yTGF5ZXI7CiBAY2xhc3MgV0tBY3Rpb25TaGVldEFzc2lzdGFudDsKIEBjbGFzcyBX
S0NvbnRleHRNZW51RWxlbWVudEluZm87CiBAY2xhc3MgV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29u
dHJvbDsKQEAgLTMzMCw2ICszMzIsOSBAQCBlbnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRy
YWN0aW9uIDogYm9vbCB7CiAjZW5kaWYKICAgICBSZXRhaW5QdHI8VUlQcmV2aWV3SXRlbUNvbnRy
b2xsZXI+IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI7CiAjZW5kaWYKKyAgICAKKyAgICBSZWZQdHI8
V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gX3RleHRJbmRpY2F0b3I7CisgICAgUmV0YWluUHRyPFdl
YlRleHRJbmRpY2F0b3JMYXllcj4gX3RleHRJbmRpY2F0b3JMYXllcjsKIAogI2lmIFVTRShVSUNP
TlRFWFRNRU5VKQogICAgIFJldGFpblB0cjxVSVRhcmdldGVkUHJldmlldz4gX2NvbnRleHRNZW51
SW50ZXJhY3Rpb25UYXJnZXRlZFByZXZpZXc7CkBAIC02NzAsNiArNjc1LDEwIEBAIEZPUl9FQUNI
X1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElP
Tl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5G
cmFtZTsKIC0gKHZvaWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWU7CiAKKy0gKHZvaWQpc2V0
VXBUZXh0SW5kaWNhdG9yOihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4pdGV4dEluZGljYXRv
cjsKKy0gKHZvaWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClOU0Fu
aW1hdGlvblByb2dyZXNzOworLSAodm9pZCljbGVhclRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOworCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZFVzZUNvbnRleHRNZW51czsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkQXZvaWRSZXNpemluZ1doZW5JbnB1
dFZpZXdCb3VuZHNDaGFuZ2U7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wg
X3Nob3VsZEF2b2lkU2Nyb2xsaW5nV2hlbkZvY3VzZWRDb250ZW50SXNWaXNpYmxlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggYTYwODY5YTc3ZjkyNTcwYjIwYzlmNzE5M2RhY2QxMDExMjFmYTE3YS4uZTVj
MGRiNjZkYmYwMWZiYTU1MWQ4MDBkZGE4MGI2Zjk0MjJiMjgzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC0xMTYsMTEgKzExNiwxMyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZURhdGEuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1RleHRJbmRpY2F0b3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Ub3VjaEFjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElV
dGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+
CisjaW1wb3J0IDxXZWJDb3JlL1dlYlRleHRJbmRpY2F0b3JMYXllci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Xcml0aW5nRGlyZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViU2VsZWN0aW9uUmVj
dC5oPiAvLyBGSVhNRTogV2ViS2l0IHNob3VsZCBub3QgaW5jbHVkZSBXZWJLaXRMZWdhY3kgaGVh
ZGVycyEKICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CkBAIC05NTgyLDYg
Kzk1ODQsNjcgQEAgLSAodm9pZClfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGlu
Z0ltYWdlRXh0cmFjdGlvbjooV2ViS2l0OjpQcm9jZWVkV2kKIAogI2VuZGlmIC8vIEVOQUJMRShJ
TUFHRV9FWFRSQUNUSU9OKQogCistICh2b2lkKXNldFVwVGV4dEluZGljYXRvcjooUmVmPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3IKK3sKKyAgICBpZiAoX3RleHRJbmRpY2F0
b3IgPT0gdGV4dEluZGljYXRvci5wdHIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFtz
ZWxmIHRlYXJkb3duVGV4dEluZGljYXRvckxheWVyXTsKKyAgICBbTlNPYmplY3QgY2FuY2VsUHJl
dmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHN0
YXJ0RmFkZU91dCkgb2JqZWN0Om5pbF07CisgICAgCisgICAgX3RleHRJbmRpY2F0b3IgPSB0ZXh0
SW5kaWNhdG9yLnB0cigpOworCisgICAgQ0dSZWN0IGZyYW1lID0gX3RleHRJbmRpY2F0b3ItPnRl
eHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKTsKKyAgICBfdGV4dEluZGljYXRv
ckxheWVyID0gYWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JMYXllciBhbGxvY10gaW5pdFdpdGhG
cmFtZTpmcmFtZQorICAgICAgICB0ZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3IgbWFyZ2luOkNH
U2l6ZVplcm8gb2Zmc2V0OkNHUG9pbnRaZXJvXSk7CisgICAgCisgICAgW1tzZWxmIGxheWVyXSBh
ZGRTdWJsYXllcjpfdGV4dEluZGljYXRvckxheWVyLmdldCgpXTsKKworICAgIGlmIChfdGV4dElu
ZGljYXRvci0+cHJlc2VudGF0aW9uVHJhbnNpdGlvbigpICE9IFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpOb25lKQorICAgICAgICBbX3RleHRJbmRpY2F0b3JM
YXllciBwcmVzZW50XTsKKyAgICAKKyAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9y
KHN0YXJ0RmFkZU91dCkgd2l0aE9iamVjdDpzZWxmIGFmdGVyRGVsYXk6V2ViQ29yZTo6dGltZUJl
Zm9yZUZhZGVTdGFydHNdOworfQorCistICh2b2lkKWNsZWFyVGV4dEluZGljYXRvcjooV2ViQ29y
ZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb24KK3sKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9IFdURk1vdmUoX3RleHRJ
bmRpY2F0b3IpOworICAgIAorICAgIGlmIChbX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091
dF0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFtfdGV4dElu
ZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5kaWNhdG9y
XSAmJiBbX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1h
dGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0
KSB7CisgICAgICAgIFtzZWxmIHN0YXJ0RmFkZU91dF07CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07Cit9CisKKy0gKHZvaWQp
c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClhbmltYXRpb25Qcm9ncmVz
cworeworICAgIGlmICghX3RleHRJbmRpY2F0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIFtf
dGV4dEluZGljYXRvckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNzOmFuaW1hdGlvblByb2dyZXNz
XTsKK30KKworLSAodm9pZCl0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcgoreworICAgIFtfdGV4
dEluZGljYXRvckxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICBfdGV4dEluZGljYXRv
ckxheWVyID0gbmlsOworfQorCistICh2b2lkKXN0YXJ0RmFkZU91dAoreworICAgIFtfdGV4dElu
ZGljYXRvckxheWVyIHNldEZhZGluZ091dDpZRVNdOworICAgICAgICAKKyAgICBbX3RleHRJbmRp
Y2F0b3JMYXllciBoaWRlV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3ZWFrU2VsZiA9IFdlYWtPYmpD
UHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdl
YWtTZWxmLmdldCgpOworICAgICAgICBbc3Ryb25nU2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JM
YXllcl07CisgICAgfV07Cit9CisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9y
dCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9uc0FmdGVy
Lm1tPgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbE1hYy5oCmluZGV4IDU4YmU0YTJjYWU0NTM3ZTU0NjNiZGQxYjZiNWJlMTY4YmE2OTI3NmMu
LjY3NTVmMDFiMzg4NDgwODViMGI1YWQyYWFjOGNlMWQxZTQ0YjdhZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBAIC0xNTYsOCArMTU2
LDggQEAgcHJpdmF0ZToKIAogICAgIFJlZjxXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlPiBjcmVh
dGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgV2ViQ29yZTo6
VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmKSBmaW5hbDsKIAotICAgIHZvaWQgc2V0VGV4dElu
ZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dMaWZldGltZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3Io
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwg
V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFy
VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKSBv
dmVycmlkZTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9h
dCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
Y29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDc4OGEyNzk2ZGJiMWNmNDU5
ZWZlMTI0YzZmMGQ3ZDBhNjk4YjdlOWIuLjYxNGI1OTY2YzY0YWJjYzRkNDEwYjAzZGFkNGE3MDM5
Y2RmZmM0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMubW0KQEAgLTU2OSwxMiArNTY5LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmNs
ZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFpbkZyYW1lTmF2aWdhdGlvbigpCiAgICAgbV9p
bXBsLT5jbGVhclNhZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5GcmFtZU5hdmlnYXRpb24oKTsK
IH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGlj
YXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1l
IGxpZmV0aW1lKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4
dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1l
IGxpZmV0aW1lKQogewogICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9y
LmdldCgpLCBsaWZldGltZSk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dElu
ZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGRp
c21pc3NhbEFuaW1hdGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRv
cihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1h
dGlvbikKIHsKICAgICBtX2ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oZGlz
bWlzc2FsQW5pbWF0aW9uKTsKIH0KQEAgLTY3Miw5ICs2NzIsOSBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZv
JiBkaWN0aQogICAgIG1faW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKIAogICAg
IERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBtX3ZpZXcs
IFt0aGlzXShUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIG1faW1wbC0+
c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRp
bWU6OlBlcm1hbmVudCk7CisgICAgICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5k
aWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudCk7CiAgICAg
fSwgbnVsbHB0ciwgW3RoaXNdKCkgewotICAgICAgICBtX2ltcGwtPmNsZWFyVGV4dEluZGljYXRv
cldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbjo6Tm9uZSk7CisgICAgICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKICAg
ICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggOWJhYThiZTI0Yzc3Yzc0NmU3OTNm
NDEzNzhkY2QwMGIzY2Y0YzRmZS4uYmVjMGRjMTI4YzUwNjdkNmU5MjdkZmNlZGI0N2E3ZmJlZDgy
ZTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCkBAIC00OTAsOSArNDkwLDkgQEAgLSAoaWQ8TlNJ
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZv
clRleHQKICAgICBfdmlld0ltcGwtPnByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7CiAKICAg
ICByZXR1cm4gV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6YW5pbWF0aW9uQ29udHJvbGxlckZv
clBvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIF92aWV3LCBbc2VsZl0oV2ViQ29yZTo6VGV4dElu
ZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBfdmlld0ltcGwtPnNldFRleHRJbmRp
Y2F0b3IodGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1l
OjpQZXJtYW5lbnQpOworICAgICAgICBfdmlld0ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dElu
ZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnQpOwogICAg
IH0sIG51bGxwdHIsIFtzZWxmXSgpIHsKLSAgICAgICAgX3ZpZXdJbXBsLT5jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb246Ok5vbmUpOworICAgICAgICBfdmlld0ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldp
dGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9u
ZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggM2YyZTlkNTBmZmIw
MDFjMjQ2ZDQxNzEwZTAzYjQ0OWJkYzU4Njc4NC4uZWU2ZWE2M2Q3NzA3NjU1ZTU3MTVlYjA0MTIz
YjA0ODU2YTIzMDAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTg4LDYgKzg4LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQog
I2luY2x1ZGUgIlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCIKQEAgLTEyNjksOCArMTI3MCwxNCBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGln
aGxpZ2h0JiYgaGlnaGxpZ2h0KSBjb25zdAogICAgIGhpZ2hsaWdodC5yZXF1ZXN0T3JpZ2luYXRl
ZEluQXBwID0gbV9wYWdlLmhpZ2hsaWdodFJlcXVlc3RPcmlnaW5hdGVkSW5BcHAoKTsKICAgICBt
X3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9yZUFwcEhpZ2hsaWdodChoaWdo
bGlnaHQpKTsKIH0KK30KICNlbmRpZgogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dElu
ZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSkg
Y29uc3QKK3sKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0
SW5kaWNhdG9yKGluZGljYXRvckRhdGEsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKKworCiBTdHJpbmcgV2ViQ2hyb21l
Q2xpZW50OjpzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6
ZUluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZVN0cmluZywgY29uc3QgVVJMJiB1cmwpIGNv
bnN0CiB7CiAgICAgU3RyaW5nIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA0ZWVmMWY4
YWQxYzUyYWMwNTE2NTgyYmExNjE1NWNhZDAxYTE1NTcyLi40ODNhYjExZGMxMTM5NjFmYzI0OGQ2
Mzg5YjdkYTI1MGJkYzBjOGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNTIsNiArMzUyLDcg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgdm9pZCBzdG9yZUFw
cEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QgZmluYWw7CiAjZW5kaWYK
KyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRh
dGEmKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShXRUJfQ1JZUFRPKQogICAgIGJvb2wgd3Jh
cENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mLCBWZWN0b3I8dWludDhfdD4mKSBjb25z
dCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Zp
bmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRD
b250cm9sbGVyLmNwcAppbmRleCAwMDkwMTRhNTM2YmY5ZDY4ZGZiZTVkYTE0MGRkYjUxN2FlYWNk
MjA3Li5jZTIxZDY3YzQ4Yjk2MDllZmEzOTU2NmFmMDI5M2I5M2FjY2VkZGNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCkBA
IC0zODAsNyArMzgwLDcgQEAgYm9vbCBGaW5kQ29udHJvbGxlcjo6dXBkYXRlRmluZEluZGljYXRv
cihGcmFtZSYgc2VsZWN0ZWRGcmFtZSwgYm9vbCBpc1Nob3dpbmdPdmUKIAogICAgIG1fZmluZElu
ZGljYXRvclJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KGluZGljYXRvci0+c2VsZWN0aW9uUmVjdElu
Um9vdFZpZXdDb29yZGluYXRlcygpKTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBtX3dlYlBh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0VGV4dEluZGljYXRvcihpbmRpY2F0
b3ItPmRhdGEoKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGlzU2hvd2luZ092ZXJsYXkgPyBUZXh0
SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCA6IFRleHRJbmRpY2F0b3JXaW5kb3dM
aWZldGltZTo6VGVtcG9yYXJ5KSkpOworICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9yKGluZGljYXRvci0+ZGF0YSgpLCBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oaXNTaG93aW5nT3ZlcmxheSA/IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZl
dGltZTo6UGVybWFuZW50IDogV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpUZW1wb3Jh
cnkpKSk7CiAjZW5kaWYKICAgICBtX2lzU2hvd2luZ0ZpbmRJbmRpY2F0b3IgPSB0cnVlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCmluZGV4IGYzZDQ3MTZhODkzM2Q5ZjI0MmY4ZWYxMjE1YTg2NjIzNDBmODk3
YTUuLjZlMThmMmIyNDIxNzEzYTJjNDBkNzQ0MThkNTI0Yjg1MzY0MTE2NWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShBUFBfSElH
SExJR0hUUykKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdo
dCYmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29y
ZTo6VGV4dEluZGljYXRvckRhdGEmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA0NTM5Y2U2ZjY0ZDAwYjBiYjAw
MjgzZWFjODE1MzI5NzkwMDRjNGU4Li5iN2IzOGU1ODgzOTZlNTRiMTgzMTJhOWM2NTMyYTIwZjQ5
MjFmZGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03MjAsNiArNzIwLDExIEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikg
Y29uc3QKIH0KICNlbmRpZgogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRv
cihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSkgY29uc3QK
K3sKK30KKworCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKIGJvb2wgV2ViQ2hyb21lQ2xpZW50
OjpyZXF1ZXN0UG9pbnRlckxvY2soKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMGZlMmE1MDk2YzdlMjZmMzIwMzI1ZTM2OGJmZjBk
YmI5ZjA3MmM3Ni4uNjFkNmY0ZTg2NTk0ZGNhYjdlNjE3OTA3MDRiNzA5ZWY1Y2NjMmJlMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC01
OTUzLDcgKzU5NTMsNyBAQCAtICh2b2lkKV9sb29rVXBJbkRpY3Rpb25hcnlGcm9tTWVudTooaWQp
c2VuZGVyCiAKIC0gKHZvaWQpcXVpY2tMb29rV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsK
LSAgICBbW3NlbGYgX3dlYlZpZXddIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwor
ICAgIFtbc2VsZiBfd2ViVmlld10gX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgW3N1
cGVyIHF1aWNrTG9va1dpdGhFdmVudDpldmVudF07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlci5tbQppbmRleCBjZTYyYmZhNTE2MTc3YzhjMzZhZWRkN2JhNWZhNGMyNzUxMGQ2ZjcxLi5i
ZTViNmEyZmIwMTU0YmMzNmZjZDM4YmIxZGFkODllMDljNzBlMzNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyLm1tCkBAIC0xMjIsNyArMTIyLDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJW
aWV3ICopd2ViVmlldyBkaWRIYW5kbGVTY3JvbGxXaGVlbDooTlNFdmVudCAqKWV2ZW50CiB7CiAg
ICAgW19jdXJyZW50UUxQcmV2aWV3TWVudUl0ZW0gY2xvc2VdOwogICAgIFtzZWxmIF9jbGVhcklt
bWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldp
dGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlv
bjo6Tm9uZV07CisgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9u
OldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOwogfQogCiAt
IChOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopaW1tZWRpYXRlQWN0aW9uUmVj
b2duaXplcgpAQCAtMTM5LDcgKzEzOSw3IEBAIC0gKHZvaWQpX2NhbmNlbEltbWVkaWF0ZUFjdGlv
bgogICAgIH0KIAogICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBb
X3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW193ZWJWaWV3
IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JE
aXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogfQogCiAtICh2b2lkKV9jbGVhckltbWVkaWF0
ZUFjdGlvblN0YXRlCkBAIC0yNTEsNyArMjUxLDcgQEAgLSAodm9pZClpbW1lZGlhdGVBY3Rpb25S
ZWNvZ25pemVyRGlkQ2FuY2VsQW5pbWF0aW9uOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWMK
IAogICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOjBdOwog
ICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dlYlZpZXcgX2Ns
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07CisgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRp
b246Ok5vbmVdOwogICAgIFtfd2ViVmlldyBfc2V0TWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rpb246
Tk9dOwogfQogCkBAIC0yOTMsNyArMjkzLDcgQEAgLSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uQ29udHJvbGxlcj4pX2RlZmF1bHRBbmltYXRpb25Db250cm9sbGVyCiAgICAgICAgICAg
ICBhdXRvIGxpbmtSYW5nZSA9IG1ha2VSYW5nZVNlbGVjdGluZ05vZGVDb250ZW50cygqX2hpdFRl
c3RSZXN1bHQuVVJMRWxlbWVudCgpKTsKICAgICAgICAgICAgIGF1dG8gaW5kaWNhdG9yID0gV2Vi
Q29yZTo6VGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFJhbmdlKGxpbmtSYW5nZSwgeyBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yT3B0aW9uOjpVc2VCb3VuZGluZ1JlY3RBbmRQYWludEFsbENvbnRlbnRG
b3JDb21wbGV4UmFuZ2VzIH0sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFu
c2l0aW9uOjpGYWRlSW4pOwogICAgICAgICAgICAgaWYgKGluZGljYXRvcikKLSAgICAgICAgICAg
ICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAg
ICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZl
dGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAKICAgICAg
ICAgICAgIFFMUHJldmlld01lbnVJdGVtICppdGVtID0gW05TTWVudUl0ZW0gc3RhbmRhcmRRdWlj
a0xvb2tNZW51SXRlbV07CiAgICAgICAgICAgICBpdGVtLnByZXZpZXdTdHlsZSA9IFFMUHJldmll
d1N0eWxlUG9wb3ZlcjsKQEAgLTM3OSw3ICszNzksNyBAQCAtIChOU1JlY3RFZGdlKW1lbnVJdGVt
OihOU01lbnVJdGVtICopbWVudUl0ZW0gcHJlZmVycmVkRWRnZUZvclBvaW50OihOU1BvaW50KXBv
aQogLSAodm9pZCltZW51SXRlbURpZENsb3NlOihOU01lbnVJdGVtICopbWVudUl0ZW0KIHsKICAg
ICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Ci0gICAgW193ZWJWaWV3IF9jbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dE
aXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uOjpGYWRlT3V0XTsKIH0KIAogc3RhdGljIFdlYkNvcmU6OkludFJlY3QgZWxlbWVudEJvdW5k
aW5nQm94SW5XaW5kb3dDb29yZGluYXRlc0Zyb21Ob2RlKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCkBA
IC00NjQsOSArNDY0LDkgQEAgLSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJv
bGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWQKICAgICBfY3VycmVudEFj
dGlvbkNvbnRleHQgPSBbZGV0ZWN0ZWRJdGVtLT5hY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3
Ol93ZWJWaWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAg
ICB9IGludGVyYWN0aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsKICAgICAgICAgaWYgKGluZGljYXRv
cikKLSAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdp
dGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVu
dF07CisgICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3
aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwog
ICAgIH0gaW50ZXJhY3Rpb25TdG9wcGVkSGFuZGxlcjpeKCkgewotICAgICAgICBbX3dlYlZpZXcg
X2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgICAgIFtfd2ViVmlldyBfY2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlz
c2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICB9XTsKIAogICAgIFtfY3VycmVudEFjdGlvbkNv
bnRleHQgc2V0SGlnaGxpZ2h0RnJhbWU6W193ZWJWaWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2Ny
ZWVuOmRldGVjdGVkSXRlbS0+Ym91bmRpbmdCb3hdXTsKQEAgLTQ5Nyw5ICs0OTcsOSBAQCAtIChp
ZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJv
bGxlckZvckRhdGFEZXRlY3RlZAogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25D
b250ZXh0IGNvbnRleHRGb3JWaWV3Ol93ZWJWaWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3Rh
cnRlZEhhbmRsZXI6XigpIHsKICAgICB9IGludGVyYWN0aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsK
ICAgICAgICAgaWYgKGluZGljYXRvcikKLSAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dElu
ZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJ
bmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxp
ZmV0aW1lOjpQZXJtYW5lbnRdOwogICAgIH0gaW50ZXJhY3Rpb25TdG9wcGVkSGFuZGxlcjpeKCkg
ewotICAgICAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07Cisg
ICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICB9XTsKIAog
ICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0RnJhbWU6W193ZWJWaWV3Lndp
bmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOmVsZW1lbnRCb3VuZGluZ0JveEluV2luZG93Q29vcmRp
bmF0ZXNGcm9tTm9kZShfaGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50KCkpXV07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNzI2NGJmZGNkNzJkZTEzNjk2
MGEzMjM4Y2IwMDIxNmZiODkyZmY3Yy4uOTkyZjNlMDk3NGQ2NDViZmUyNWQ3MzE5ODMyZDg0MWY3
NzBlZTZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpA
QCAtOTEwMCwxMSArOTEwMCwxMSBAQCAtIChpZClfYW5pbWF0aW9uQ29udHJvbGxlckZvckRpY3Rp
b25hcnlMb29rdXBQb3B1cEluZm86KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcgogICAgIFtzZWxm
IF9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cF07CiAKICAgICByZXR1cm4gV2ViQ29yZTo6RGlj
dGlvbmFyeUxvb2t1cDo6YW5pbWF0aW9uQ29udHJvbGxlckZvclBvcHVwKGRpY3Rpb25hcnlQb3B1
cEluZm8sIHNlbGYsIFtzZWxmXShXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9y
KSB7Ci0gICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExp
ZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsK
KyAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRp
bWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwogICAgIH0sIFtz
ZWxmXShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdEluUm9vdFZpZXdDb29yZGluYXRlcykgewogICAg
ICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRSZWN0RnJvbVJvb3RWaWV3OnJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXNdOwogICAgIH0sIFtzZWxmXSgpIHsKLSAgICAgICAgW3NlbGYgX2NsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21p
c3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246
OkZhZGVPdXRdOwogICAgIH0pOwogfQogCkBAIC05MTIwLDEwICs5MTIwLDEwIEBAIC0gKHZvaWQp
X3NldFByZXNzdXJlRXZlbnQ6KE5TRXZlbnQgKilldmVudAogCiAtICh2b2lkKV9zZXRUZXh0SW5k
aWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yCiB7Ci0gICAgW3Nl
bGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6
VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgIFtzZWxmIF9zZXRU
ZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRp
Y2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKIH0KIAotLSAodm9pZClfc2V0VGV4dEluZGljYXRv
cjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6KFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSlsaWZldGltZQorLSAodm9pZClfc2V0
VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRo
TGlmZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSlsaWZldGltZQogewogICAg
IGlmICghX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cpCiAgICAgICAgIF9wcml2YXRlLT50
ZXh0SW5kaWNhdG9yV2luZG93ID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93PihzZWxmKTsKQEAgLTkxMzMsMTAgKzkxMzMsMTAgQEAgLSAodm9pZClfc2V0VGV4dEluZGlj
YXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6
KFcKICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdy0+c2V0VGV4dEluZGljYXRvcih0
ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29y
ZGluYXRlcyksIGxpZmV0aW1lKTsKIH0KIAotLSAodm9pZClfY2xlYXJUZXh0SW5kaWNhdG9yV2l0
aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlv
bilhbmltYXRpb24KKy0gKHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uCiB7CiAgICAg
aWYgKF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93KQotICAgICAgICBfcHJpdmF0ZS0+dGV4
dEluZGljYXRvcldpbmRvdy0+Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAgICAgICBfcHJpdmF0ZS0+
dGV4dEluZGljYXRvcldpbmRvdy0+Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogICAgIF9wcml2YXRlLT50ZXh0SW5k
aWNhdG9yV2luZG93ID0gbnVsbHB0cjsKIH0KIApAQCAtOTE2OCwxOCArOTE2OCwxOCBAQCAtICh2
b2lkKV9zaG93RGljdGlvbmFyeUxvb2t1cFBvcHVwOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5
UG9wdXBJbmZvJilkaWN0aW9uYQogICAgIFtzZWxmIF9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1
cF07CiAKICAgICBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoZGljdGlvbmFy
eVBvcHVwSW5mbywgc2VsZiwgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRp
Y2F0b3IpIHsKLSAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3
aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5l
bnRdOworICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhM
aWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAg
fSwgW3NlbGZdKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSB7
CiAgICAgICAgIHJldHVybiBbc2VsZiBfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6cmVjdEluUm9v
dFZpZXdDb29yZGluYXRlc107CiAgICAgfSwgW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V2ViVmll
dz4oc2VsZildKCkgewotICAgICAgICBbd2Vha1NlbGYuZ2V0KCkgX2NsZWFyVGV4dEluZGljYXRv
cldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbjo6RmFkZU91dF07CisgICAgICAgIFt3ZWFrU2VsZi5nZXQoKSBfY2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9u
OjpGYWRlT3V0XTsKICAgICB9KTsKIH0KIAogI2lmICFFTkFCTEUoUkVWRUFMKQogLSAodm9pZClf
ZGljdGlvbmFyeUxvb2t1cFBvcG92ZXJXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZp
Y2F0aW9uCiB7Ci0gICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07Cisg
ICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dElu
ZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAjZW5kaWYgLy8gRU5BQkxF
KFJFVkVBTCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
d0ludGVybmFsLmgKaW5kZXggNzMzNzJhMGJkYTE1M2JmYTM3NjEwMjNjZjQ5NWQ3OTZmYTcxOGNj
MS4uYmFkNWZkOGExNTBhY2YyYzM3YTU3YzM2NGY4MjE5ZGNkNDM3MzBiMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0zMTks
OCArMzE5LDggQEAgV2ViTGF5b3V0TWlsZXN0b25lcyBraXRMYXlvdXRNaWxlc3RvbmVzKE9wdGlv
blNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KTsKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYg
ZGVmaW5lZChfX2NwbHVzcGx1cykKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6
OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3I7Ci0tICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9y
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooV2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKWxpZmV0aW1lOwotLSAodm9pZClfY2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb247CistICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9y
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooV2Vi
Q29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKWxpZmV0aW1lOworLSAodm9pZClfY2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFu
aW1hdGlvbilhbmltYXRpb247CiAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJv
Z3Jlc3M6KGZsb2F0KXByb2dyZXNzOwogLSAodm9pZClfc2hvd0RpY3Rpb25hcnlMb29rdXBQb3B1
cDooY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpZGljdGlvbmFyeVBvcHVwSW5m
bzsKIC0gKGlkKV9hbmltYXRpb25Db250cm9sbGVyRm9yRGljdGlvbmFyeUxvb2t1cFBvcHVwSW5m
bzooY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpZGljdGlvbmFyeVBvcHVwSW5m
bzsK
</data>
<flag name="commit-queue"
          id="449463"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428549</attachid>
            <date>2021-05-13 12:51:50 -0700</date>
            <delta_ts>2021-05-13 13:21:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513125149.patch</filename>
            <type>text/plain</type>
            <size>52717</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRv
ci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLjAzNWRj
OTM5OWEyZTIxZDFhMmYzOWI1NTVkZDM5MjE1Zjg3NDkyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCkBAIC0zOSw2ICszOSwyNSBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIAorY29uc3RleHByIGZsb2F0IGRyb3BTaGFkb3dCbHVyUmFk
aXVzID0gMjsKK2NvbnN0ZXhwciBmbG9hdCByaW1TaGFkb3dCbHVyUmFkaXVzID0gMTsKK2NvbnN0
ZXhwciBTZWNvbmRzIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMl9zOworY29uc3RleHBy
IFNlY29uZHMgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25EdXJhdGlvbiAr
IDAuMl9zOworY29uc3RleHByIGZsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4yNTsKKworZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgOiB1aW50OF90IHsKKyAgICAvLyBUaGUgVGV4dElu
ZGljYXRvciBzaG91bGQgaW5kaWNhdGUgdGhlIHRleHQgdW50aWwgZGlzbWlzc2VkLgorICAgIFBl
cm1hbmVudCwKKworICAgIC8vIFRoZSBUZXh0SW5kaWNhdG9yIHNob3VsZCBicmllZmx5IGluZGlj
YXRlIHRoZSB0ZXh0IGFuZCB0aGVuIGF1dG9tYXRpY2FsbHkgZGlzbWlzcy4KKyAgICBUZW1wb3Jh
cnkKK307CisKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiA6IHVp
bnQ4X3QgeworICAgIE5vbmUsCisgICAgRmFkZU91dAorfTsKKwogLy8gRklYTUU6IE1vdmUgUHJl
c2VudGF0aW9uVHJhbnNpdGlvbiB0byBUZXh0SW5kaWNhdG9yV2luZG93LCBiZWNhdXNlIGl0J3Mg
YWJvdXQgcHJlc2VudGF0aW9uLgogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9u
VHJhbnNpdGlvbiA6IHVpbnQ4X3QgewogICAgIE5vbmUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaAppbmRleCBmZDEzZDA0MGVmZmI3NWIw
ZWEwMDRlYTU1MWUzMjIxNTRhZTE4ZmFmLi5iZWJmOTNhMzZlZDcwZTZiMzA5ZGU4OTU4MWExODM2
NjVlMzhjMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJ
bmRpY2F0b3JMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dElu
ZGljYXRvckxheWVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKLUBpbnRlcmZhY2UgV2ViVGV4dEluZGljYXRv
ckxheWVyIDogQ0FMYXllciB7CitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYlRleHRJbmRp
Y2F0b3JMYXllciA6IENBTGF5ZXIgewogICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
PiBfdGV4dEluZGljYXRvcjsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2JvdW5jZUxheWVyczsK
ICAgICBDR1NpemUgX21hcmdpbjsKQEAgLTUzLDMgKzUzLDQgQEAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBnZXR0ZXI9aXNGYWRpbmdPdXQpIEJPT0wgZmFkaW5nT3V0OwogCiBAZW5kCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1t
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KaW5k
ZXggYjhjNGQ4ZjA2N2JhY2VkMDlhODExODA4NzEwMzA2YzU3YTc5NDMwMC4uMWFjNWU4NmYwNzgy
ZTUyY2M2NTc2NzY0NmNiMWJlMmNmY2ZiOTk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNp
bXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiUGF0aFV0aWxpdGllcy5oIgogI2lt
cG9ydCAiVGV4dEluZGljYXRvci5oIgorI2ltcG9ydCAiVGV4dEluZGljYXRvcldpbmRvdy5oIgog
I2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmgiCiAjaW1wb3J0IDxw
YWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFy
dHpDb3JlU1BJLmg+CkBAIC0zOCwxOSArMzksMTUgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
TlNDb2xvclNQSS5oPgogI2VuZGlmCiAKLWNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBib3VuY2VB
bmltYXRpb25EdXJhdGlvbiA9IDAuMTI7CisKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBib3Vu
Y2VXaXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjM7CiBjb25zdGV4cHIgQ0ZUaW1l
SW50ZXJ2YWwgZmFkZUluQW5pbWF0aW9uRHVyYXRpb24gPSAwLjE1OwotY29uc3RleHByIENGVGlt
ZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5pbWF0aW9uRHVyYXRpb24g
KyAwLjI7CiBjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgZmFkZU91dEFuaW1hdGlvbkR1cmF0aW9u
ID0gMC4zOwogCi1jb25zdGV4cHIgQ0dGbG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEuMjU7CiBjb25z
dGV4cHIgQ0dGbG9hdCBib3JkZXJXaWR0aCA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBjb3JuZXJS
YWRpdXMgPSAwOwogY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09mZnNldFggPSAwOwogY29u
c3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09mZnNldFkgPSAxOwotY29uc3RleHByIENHRmxvYXQg
ZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotY29uc3RleHByIENHRmxvYXQgcmltU2hhZG93Qmx1
clJhZGl1cyA9IDE7CiAKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IHRleHRMYXllcktleSA9
IEAiVGV4dExheWVyIjsKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IGRyb3BTaGFkb3dMYXll
cktleSA9IEAiRHJvcFNoYWRvd0xheWVyIjsKQEAgLTEzMiwxMyArMTI5LDEyIEBAIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29y
ZTo6VGV4dEluZGljYXRvCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAg
IHJldHVybiBuaWw7CiAgICAgCisgICAgc2VsZi5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOwog
ICAgIHNlbGYuZnJhbWUgPSBmcmFtZTsKIAogICAgIF90ZXh0SW5kaWNhdG9yID0gJnRleHRJbmRp
Y2F0b3I7CiAgICAgX21hcmdpbiA9IG1hcmdpbjsKIAotICAgIHNlbGYuYW5jaG9yUG9pbnQgPSBD
R1BvaW50WmVybzsKLQogICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29udGVudHNJ
bWFnZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgY29udGVudHNJbWFnZUxvZ2ljYWxTaXplIHsg
MSwgMSB9OwogICAgIGlmIChhdXRvKiBjb250ZW50SW1hZ2UgPSBfdGV4dEluZGljYXRvci0+Y29u
dGVudEltYWdlKCkpIHsKQEAgLTE5Miw3ICsxODgsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0
bwogICAgICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gZHJvcFNoYWRvd0xheWVyID0gYWRvcHROUyhb
W0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXREZWxl
Z2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlIHNoYXJlZF1dOwogICAgICAg
ICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd0NvbG9yOmRyb3BTaGFkb3dDb2xvci5nZXQoKV07
Ci0gICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UmFkaXVzOmRyb3BTaGFkb3dCbHVy
UmFkaXVzXTsKKyAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6V2ViQ29y
ZTo6ZHJvcFNoYWRvd0JsdXJSYWRpdXNdOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNo
YWRvd09mZnNldDpDR1NpemVNYWtlKGRyb3BTaGFkb3dPZmZzZXRYLCBkcm9wU2hhZG93T2Zmc2V0
WSldOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRlZFBh
dGgucGxhdGZvcm1QYXRoKCldOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd09w
YWNpdHk6MV07CkBAIC0yMDQsNyArMjAwLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJh
bWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAg
ICAgICAgW3JpbVNoYWRvd0xheWVyIHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxh
eWVyRGVsZWdhdGUgc2hhcmVkXV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRGcmFtZTp5
ZWxsb3dIaWdobGlnaHRSZWN0XTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd0Nv
bG9yOnJpbVNoYWRvd0NvbG9yLmdldCgpXTsKLSAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNo
YWRvd1JhZGl1czpyaW1TaGFkb3dCbHVyUmFkaXVzXTsKKyAgICAgICAgW3JpbVNoYWRvd0xheWVy
IHNldFNoYWRvd1JhZGl1czpXZWJDb3JlOjpyaW1TaGFkb3dCbHVyUmFkaXVzXTsKICAgICAgICAg
W3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRlZFBhdGgucGxhdGZvcm1QYXRo
KCldOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93T2Zmc2V0OkNHU2l6ZVplcm9d
OwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93T3BhY2l0eToxXTsKQEAgLTI0NSw3
ICsyNDEsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENBS2V5ZnJhbWVBbmltYXRpb24+IGNyZWF0ZUJv
dW5jZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZhbCBkdXJhdAogICAgIFJldGFpblB0cjxDQUtleWZy
YW1lQW5pbWF0aW9uPiBib3VuY2VBbmltYXRpb24gPSBbQ0FLZXlmcmFtZUFuaW1hdGlvbiBhbmlt
YXRpb25XaXRoS2V5UGF0aDpAInRyYW5zZm9ybSJdOwogICAgIFtib3VuY2VBbmltYXRpb24gc2V0
VmFsdWVzOkBbCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFu
c2Zvcm0zRElkZW50aXR5XSwKLSAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKG1pZEJvdW5jZVNjYWxlLCBtaWRCb3VuY2VTY2FsZSwg
MSldLAorICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOkNBVHJhbnNmb3Jt
M0RNYWtlU2NhbGUoV2ViQ29yZTo6bWlkQm91bmNlU2NhbGUsIFdlYkNvcmU6Om1pZEJvdW5jZVNj
YWxlLCAxKV0sCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFu
c2Zvcm0zRElkZW50aXR5XQogICAgICAgICBdXTsKICAgICBbYm91bmNlQW5pbWF0aW9uIHNldER1
cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTI5NCw3ICsyOTAsNyBAQCAtIChDRlRpbWVJbnRlcnZhbClf
YW5pbWF0aW9uRHVyYXRpb24KICAgICBpZiAoW3NlbGYgaW5kaWNhdG9yV2FudHNCb3VuY2U6Kl90
ZXh0SW5kaWNhdG9yXSkgewogICAgICAgICBpZiAoaW5kaWNhdG9yV2FudHNDb250ZW50Q3Jvc3Nm
YWRlKCpfdGV4dEluZGljYXRvcikpCiAgICAgICAgICAgICByZXR1cm4gYm91bmNlV2l0aENyb3Nz
ZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwotICAgICAgICByZXR1cm4gYm91bmNlQW5pbWF0aW9uRHVy
YXRpb247CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpib3VuY2VBbmltYXRpb25EdXJhdGlvbi52
YWx1ZSgpOwogICAgIH0KIAogICAgIHJldHVybiBmYWRlSW5BbmltYXRpb25EdXJhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCBjM2Iz
M2ViYTJjOGJjMGQ3NTQ1OWRkMjE1MDg5YjY1MjljNWQzMTVkLi5mN2ZmZjdjNzNhMWQyZmY3NTRi
Mjc4N2NhMjI5OTUyMzgwMzEzMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4
dEluZGljYXRvcldpbmRvdy5oCkBAIC0zNiwxOSArMzYsNiBAQCBPQkpDX0NMQVNTIFdlYlRleHRJ
bmRpY2F0b3JMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3QgewotICAgIC8vIFRoZSBUZXh0SW5kaWNh
dG9yIHNob3VsZCBpbmRpY2F0ZSB0aGUgdGV4dCB1bnRpbCBkaXNtaXNzZWQuCi0gICAgUGVybWFu
ZW50LAotCi0gICAgLy8gVGhlIFRleHRJbmRpY2F0b3Igc2hvdWxkIGJyaWVmbHkgaW5kaWNhdGUg
dGhlIHRleHQgYW5kIHRoZW4gYXV0b21hdGljYWxseSBkaXNtaXNzLgotICAgIFRlbXBvcmFyeQot
fTsKLQotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDog
dWludDhfdCB7Ci0gICAgTm9uZSwKLSAgICBGYWRlT3V0Ci19OwotCiAjaWYgUExBVEZPUk0oTUFD
KQogCiBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93IHsKQEAgLTU5LDggKzQ2LDggQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFRleHRJbmRpY2F0b3JXaW5kb3coTlNWaWV3
ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5UZXh0SW5kaWNhdG9yV2luZG93KCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBD
R1JlY3QgY29udGVudFJlY3QsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKFJlZjxUZXh0SW5kaWNhdG9yPiwgQ0dSZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAKQEAgLTgxLDMgKzY4LDUgQEAgcHJpdmF0
ZToKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRl
eCBmODVmYTUzYjNiNGE5ZjQ1OTY5Nzc2YTEyY2M0MTFmNzkyMmRmNzdjLi4xODBiYWI3ZDAyYmMz
YTVkMWIwYzNlNzQ1MmUxZDMyOTI1MjQ5NzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTM4LDEyICszOCw2IEBACiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oPgogCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlv
biA9IDAuMTI7Ci1jb25zdCBDRlRpbWVJbnRlcnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJv
dW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4yOwotCi1jb25zdCBDR0Zsb2F0IG1pZEJvdW5jZVNj
YWxlID0gMS4yNTsKLWNvbnN0IENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsNyAr
NTAsNyBAQCBUZXh0SW5kaWNhdG9yV2luZG93OjpUZXh0SW5kaWNhdG9yV2luZG93KE5TVmlldyAq
dGFyZ2V0VmlldykKIAogVGV4dEluZGljYXRvcldpbmRvdzo6flRleHRJbmRpY2F0b3JXaW5kb3co
KQogewotICAgIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiB9CiAKIHZvaWQgVGV4dElu
ZGljYXRvcldpbmRvdzo6c2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCkBAIC02
NywxNCArNjEsMTQgQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9n
cmVzcyhmbG9hdCBwcm9ncmVzcykKICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0QW5pbWF0
aW9uUHJvZ3Jlc3M6cHJvZ3Jlc3NdOwogfQogCi12b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNs
ZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFu
aW1hdGlvbikKK3ZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQogewogICAg
IFJlZlB0cjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yID0gV1RGTW92ZShtX3RleHRJbmRp
Y2F0b3IpOwogCiAgICAgaWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091dF0pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0
b3JMYXllciBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYg
W21fdGV4dEluZGljYXRvckxheWVyIGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9u
ID09IFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKKyAg
ICBpZiAodGV4dEluZGljYXRvciAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2Fu
dHNNYW51YWxBbmltYXRpb246KnRleHRJbmRpY2F0b3JdICYmIFttX3RleHRJbmRpY2F0b3JMYXll
ciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7CiAgICAgICAgIHN0YXJ0RmFkZU91
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODIsNyArNzYsNyBAQCB2b2lkIFRleHRJ
bmRpY2F0b3JXaW5kb3c6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aQogICAgIGNsb3NlV2luZG93KCk7CiB9CiAKLXZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciwgQ0dSZWN0IHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNl
dFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUmVjdCB0
ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcywgVGV4dEluZGljYXRvckxpZmV0aW1l
IGxpZmV0aW1lKQogewogICAgIGlmIChtX3RleHRJbmRpY2F0b3IgPT0gdGV4dEluZGljYXRvci5w
dHIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTUsOCArODksOCBAQCB2b2lkIFRleHRJbmRpY2F0
b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0
b3IsIENHUgogICAgIENHRmxvYXQgdmVydGljYWxNYXJnaW4gPSBkcm9wU2hhZG93Qmx1clJhZGl1
cyAqIDIgKyBUZXh0SW5kaWNhdG9yOjpkZWZhdWx0VmVydGljYWxNYXJnaW47CiAgICAgCiAgICAg
aWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50c0JvdW5jZToqbV90ZXh0SW5k
aWNhdG9yXSkgewotICAgICAgICBob3Jpem9udGFsTWFyZ2luID0gc3RkOjptYXgoaG9yaXpvbnRh
bE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS53aWR0aCAq
IChtaWRCb3VuY2VTY2FsZSAtIDEpICsgaG9yaXpvbnRhbE1hcmdpbik7Ci0gICAgICAgIHZlcnRp
Y2FsTWFyZ2luID0gc3RkOjptYXgodmVydGljYWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNj
cmVlbkNvb3JkaW5hdGVzLnNpemUuaGVpZ2h0ICogKG1pZEJvdW5jZVNjYWxlIC0gMSkgKyB2ZXJ0
aWNhbE1hcmdpbik7CisgICAgICAgIGhvcml6b250YWxNYXJnaW4gPSBzdGQ6Om1heChob3Jpem9u
dGFsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLndpZHRo
ICogKFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxlIC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsKKyAg
ICAgICAgdmVydGljYWxNYXJnaW4gPSBzdGQ6Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJvdW5k
aW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQgKiAoV2ViQ29yZTo6bWlkQm91
bmNlU2NhbGUgLSAxKSArIHZlcnRpY2FsTWFyZ2luKTsKICAgICB9CiAKICAgICBob3Jpem9udGFs
TWFyZ2luID0gQ0dDZWlsaW5nKGhvcml6b250YWxNYXJnaW4pOwpAQCAtMTI1LDggKzExOSw4IEBA
IHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGlj
YXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgaWYgKG1fdGV4dEluZGljYXRvci0+cHJlc2Vu
dGF0aW9uVHJhbnNpdGlvbigpICE9IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9u
OjpOb25lKQogICAgICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgcHJlc2VudF07CiAKLSAgICBp
ZiAobGlmZXRpbWUgPT0gVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpCi0g
ICAgICAgIG1fdGVtcG9yYXJ5VGV4dEluZGljYXRvclRpbWVyLnN0YXJ0T25lU2hvdCgxX3MgKiB0
aW1lQmVmb3JlRmFkZVN0YXJ0cyk7CisgICAgaWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0b3JM
aWZldGltZTo6VGVtcG9yYXJ5KQorICAgICAgICBtX3RlbXBvcmFyeVRleHRJbmRpY2F0b3JUaW1l
ci5zdGFydE9uZVNob3QoV2ViQ29yZTo6dGltZUJlZm9yZUZhZGVTdGFydHMpOwogfQogCiB2b2lk
IFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsb3NlV2luZG93KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDNhZDUxNDJjZDE3N2FhZGFlNWMzODUzMmQ1
N2ZjYTQzODBhY2Q0YjYuLjEwYjg5MTliMGY4NjI0MTgxZWVhYmNmNzhjMDFjMTliYjNiZTBjMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNDEx
LDggKzQxMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsK
IAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiwgV2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lID0gV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwotICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uKTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYs
IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JM
aWZldGltZTo6UGVybWFuZW50KTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmlt
YXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbik7CiAgICAgdm9p
ZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogICAgIHZvaWQgZGlz
bWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpOwogICAgIHZvaWQg
ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oYm9vbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDIzYTUw
NDY4MTE0MTMzNTE5ZjJlZDFiZGNkODI0Y2Q5MmE2NWI0MWYuLmRjNTBjZDJjNTE1MGQ1NTc5ODU0
YWI3ZTY1ZTc1ZDYyNTVlM2IwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC00MjMsNyArNDIzLDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVG
b3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6
KE4KICNpZiAhRU5BQkxFKFJFVkVBTCkKIC0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVy
V2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotICAgIF9pbXBsLT5j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgIF9pbXBsLT5jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246
Ok5vbmUpOwogfQogI2VuZGlmCiAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICAgICAgdXBkYXRlV2luZG93QW5kVmlld0Zy
YW1lcygpOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6
OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3Io
V2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGlj
YXRvckxpZmV0aW1lIGxpZmV0aW1lKQogewogICAgIGlmICghbV90ZXh0SW5kaWNhdG9yV2luZG93
KQogICAgICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JXaW5kb3c+KG1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSk7CkBAIC0zNTA0LDcg
KzM1MDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcgogICAgIG1fdGV4dEluZGljYXRvcldp
bmRvdy0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0
Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcyksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBX
ZWJWaWV3SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKK3ZvaWQgV2ViVmll
d0ltcGw6OmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCiB7CiAgICAgaWYgKG1fdGV4dEluZGlj
YXRvcldpbmRvdykKICAgICAgICAgbV90ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRp
Y2F0b3IoYW5pbWF0aW9uKTsKQEAgLTM1MjcsNyArMzUyNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdP
bmx5KGJvCiAgICAgLy8gQ2FsbGluZyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBo
ZXJlIHdpbGwgd2luIG91dCBvdmVyIHRoZSBhbmltYXRlZCBjbGVhciBpbiBkaXNtaXNzQ29udGVu
dFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5LgogICAgIC8vIFdlIGNhbid0IGludmVy
dCB0aGVzZSBiZWNhdXNlIGNsaWVudHMgY2FuIG92ZXJyaWRlIChhbmQgaGF2ZSBvdmVycmlkZGVu
KSBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93cywgc28gaXQgbmVlZHMgdG8gYmUg
Y2FsbGVkLgogICAgIC8vIEZvciB0aGlzIHNhbWUgcmVhc29uLCB0aGlzIGNhbid0IGJlIG1vdmVk
IHRvIFdlYlZpZXdJbXBsIHdpdGhvdXQgY2FyZS4KLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRo
QW5pbWF0aW9uKGFuaW1hdGUgPyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0IDogV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihh
bmltYXRlID8gV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91
dCA6IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAg
IFttX3ZpZXcgX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKIH0KIApA
QCAtMzU0NCw3ICszNTQ0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpCiAgICAgICAgICAgICBbW2dldEREQWN0aW9u
c01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNo
b3JPbkZhaWx1cmU6WUVTXTsKICAgICB9CiAKLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXQpOworICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiAKICAgICBbbV9pbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNDE3ZTExZDQ5NjYwN2EzMDBj
ZmI2NWZlZDZjN2Y0Y2FjZTBjOTI2ZC4uYTM1NzMxZWMwMWQ5ZTVlMTUwMmU2MDVlNTI4MmZlZjBi
MDQ1ZDY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTA2LDggKzEw
Niw4IEBAIGNsYXNzIFNlbGVjdGlvbkRhdGE7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kg
OiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51
bSBjbGFzcyBTY3JvbGxiYXJTdHlsZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0
b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUgOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVp
bnQ4X3Q7CiAKIHN0cnVjdCBBcHBIaWdobGlnaHQ7CkBAIC0zODUsOCArMzg1LDggQEAgcHVibGlj
OgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4
dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dMaWZldGltZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRp
Y2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRp
b25Qcm9ncmVzcyhmbG9hdCkgPSAwOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWE1YzM0OTA3
MzNjMmIwZTkxZGU4NDg4OGUzMDA0YWU5YmFiODQ1ZC4uNDk5MzE0MzQ2NzFjMmRiYWUxZjU2MGZl
MzdiMDYxZTljNjI4NGQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0yMTgsNyArMjE4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJp
bmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU3lzdGVtQmF0dGVyeS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvcldp
bmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2luY2x1ZGUgPHd0
Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAjaW5jbHVkZSA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgpA
QCAtNjUxMSw3ICs2NTEwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3Io
Y29uc3QgVGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEsIHVpbnQKIHsKICAgICAvLyBG
SVhNRTogTWFrZSBUZXh0SW5kaWNhdG9yV2luZG93IGEgcGxhdGZvcm0taW5kZXBlbmRlbnQgcHJl
c2VudGF0aW9uYWwgdGhpbmcgKCJUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uIj8pLgogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRleHRJbmRp
Y2F0b3I6OmNyZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8VGV4dEluZGljYXRvcldp
bmRvd0xpZmV0aW1lPihsaWZldGltZSkpOworICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNh
dG9yKFRleHRJbmRpY2F0b3I6OmNyZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lPihsaWZldGltZSkpOwogI2Vsc2UKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgpAQCAtNjUyMCw3ICs2NTE5LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRhdGEmIGluZGlj
YXRvckRhdGEsIHVpbnQKIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVhclRleHRJbmRpY2F0b3IoKQog
ewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBhZ2VDbGllbnQoKS5jbGVhclRleHRJbmRpY2F0
b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAg
cGFnZUNsaWVudCgpLmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlz
bWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNWI0
NTdkZmI2MDMxZWY2MzlhZDNhZTNmY2JmZmZhZTZhNmQ4NTcwMi4uZmNiZDQ5NjhkNDE1ZGY2NzY3
YTFhZjk5OGJiOWNkY2JlMWEwZWMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTExNDksNyArMTE0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvdW50U3RyaW5n
TWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8RmluZE9wdGlvbnM+LCB1bnNpZ25lZCBt
YXhNYXRjaENvdW50KTsKICAgICB2b2lkIHJlcGxhY2VNYXRjaGVzKFZlY3Rvcjx1aW50MzJfdD4m
JiBtYXRjaEluZGljZXMsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0LCBib29sIHNlbGVj
dGlvbk9ubHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKICAgICB2b2lk
IGRpZENvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCB1aW50MzJfdCBtYXRjaENvdW50
KTsKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRhdGEmLCB1aW50NjRfdCAvKiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUg
Ki8gbGlmZXRpbWUgPSAwIC8qIFBlcm1hbmVudCAqLyk7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJiwgdWludDY0X3QgLyogV2ViQ29y
ZTo6VGV4dEluZGljYXRvckxpZmV0aW1lICovIGxpZmV0aW1lID0gMCAvKiBQZXJtYW5lbnQgKi8p
OwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsKICAg
ICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDNmYmUxYjE3ZmY2NjA0NDllOTkzZWY3
ZThhZmMwYmEwMDI0ZmQ4N2EuLjgxZmIwMTgzM2NlZTllNWQ5MTU5NTQxOGQyYjVhMGFlNGI4NDRj
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCkBAIC0xMzgsOCArMTM4LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViRGF0ZVRpbWVQ
aWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYpIGZpbmFsOwogI2VuZGlm
CiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+
LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJyaWRlOwotICAgIHZv
aWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2Vi
Q29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9y
QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzaG93U2FmZUJy
b3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQppbmRleCA0MGI3NjIzNjM5ZmZhZDQxYjQ0MjQ2OGViMmUxODFhYTM0ZjAxNjUzLi44
YzNjOGYyNDIxY2YwY2MyYjNmNTAzNzRkMTlmYjVjMjJjMTU5OTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00NzksMTYgKzQ3
OSwxOSBAQCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVQ
b3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi12
b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0
ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9y
LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpCiB7CisgICAgW21fY29udGVudFZpZXcg
c2V0VXBUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3JdOwogfQogCi12b2lkIFBhZ2VDbGllbnRJ
bXBsOjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKIHsKKyAg
ICBbbV9jb250ZW50VmlldyBjbGVhclRleHRJbmRpY2F0b3I6ZGlzbWlzc2FsQW5pbWF0aW9uXTsK
IH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzKGZsb2F0KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlv
blByb2dyZXNzKGZsb2F0IGFuaW1hdGlvblByb2dyZXNzKQogeworICAgIFttX2NvbnRlbnRWaWV3
IHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczphbmltYXRpb25Qcm9ncmVzc107CiB9
CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
Y29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRl
eCA4ODZhZTc1ZTY3YjU2YWViMzgzNzg0ZjU5NmM5ZDhmNzI5MTI1NmU3Li5iYWE4ZTQ0NGJiMjlj
YWI1YTFjMDI2ZmQ5Y2Y4ZDhkNDZjMzQ5MmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC04OSw2ICs4OSw3
IEBAIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogZW51bSBjbGFzcyBET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3MgTW91c2VFdmVudFBvbGljeSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CitlbnVtIGNs
YXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90OwogCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKIHN0cnVjdCBEcmFnSXRlbTsKQEAgLTEwNCw2ICsxMDUsNyBAQCBj
bGFzcyBXZWJQYWdlUHJveHk7CiB9CiAKIEBjbGFzcyBXZWJFdmVudDsKK0BjbGFzcyBXZWJUZXh0
SW5kaWNhdG9yTGF5ZXI7CiBAY2xhc3MgV0tBY3Rpb25TaGVldEFzc2lzdGFudDsKIEBjbGFzcyBX
S0NvbnRleHRNZW51RWxlbWVudEluZm87CiBAY2xhc3MgV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29u
dHJvbDsKQEAgLTMzMCw2ICszMzIsOSBAQCBlbnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRy
YWN0aW9uIDogYm9vbCB7CiAjZW5kaWYKICAgICBSZXRhaW5QdHI8VUlQcmV2aWV3SXRlbUNvbnRy
b2xsZXI+IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI7CiAjZW5kaWYKKyAgICAKKyAgICBSZWZQdHI8
V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gX3RleHRJbmRpY2F0b3I7CisgICAgUmV0YWluUHRyPFdl
YlRleHRJbmRpY2F0b3JMYXllcj4gX3RleHRJbmRpY2F0b3JMYXllcjsKIAogI2lmIFVTRShVSUNP
TlRFWFRNRU5VKQogICAgIFJldGFpblB0cjxVSVRhcmdldGVkUHJldmlldz4gX2NvbnRleHRNZW51
SW50ZXJhY3Rpb25UYXJnZXRlZFByZXZpZXc7CkBAIC02NzAsNiArNjc1LDEwIEBAIEZPUl9FQUNI
X1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElP
Tl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5G
cmFtZTsKIC0gKHZvaWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWU7CiAKKy0gKHZvaWQpc2V0
VXBUZXh0SW5kaWNhdG9yOihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4pdGV4dEluZGljYXRv
cjsKKy0gKHZvaWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClOU0Fu
aW1hdGlvblByb2dyZXNzOworLSAodm9pZCljbGVhclRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOworCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZFVzZUNvbnRleHRNZW51czsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkQXZvaWRSZXNpemluZ1doZW5JbnB1
dFZpZXdCb3VuZHNDaGFuZ2U7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wg
X3Nob3VsZEF2b2lkU2Nyb2xsaW5nV2hlbkZvY3VzZWRDb250ZW50SXNWaXNpYmxlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggYTYwODY5YTc3ZjkyNTcwYjIwYzlmNzE5M2RhY2QxMDExMjFmYTE3YS4uZjc5
MGU1MDMyNTc4OTU4Yjk4NGFlNmZhZTBmZTgyY2FmYjkwNjY2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC0xMTYsMTEgKzExNiwxMyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZURhdGEuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1RleHRJbmRpY2F0b3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Ub3VjaEFjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElV
dGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+
CisjaW1wb3J0IDxXZWJDb3JlL1dlYlRleHRJbmRpY2F0b3JMYXllci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Xcml0aW5nRGlyZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViU2VsZWN0aW9uUmVj
dC5oPiAvLyBGSVhNRTogV2ViS2l0IHNob3VsZCBub3QgaW5jbHVkZSBXZWJLaXRMZWdhY3kgaGVh
ZGVycyEKICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CkBAIC05NTgyLDYg
Kzk1ODQsNjcgQEAgLSAodm9pZClfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGlu
Z0ltYWdlRXh0cmFjdGlvbjooV2ViS2l0OjpQcm9jZWVkV2kKIAogI2VuZGlmIC8vIEVOQUJMRShJ
TUFHRV9FWFRSQUNUSU9OKQogCistICh2b2lkKXNldFVwVGV4dEluZGljYXRvcjooUmVmPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3IKK3sKKyAgICBpZiAoX3RleHRJbmRpY2F0
b3IgPT0gdGV4dEluZGljYXRvci5wdHIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFtz
ZWxmIHRlYXJkb3duVGV4dEluZGljYXRvckxheWVyXTsKKyAgICBbTlNPYmplY3QgY2FuY2VsUHJl
dmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHN0
YXJ0RmFkZU91dCkgb2JqZWN0Om5pbF07CisgICAgCisgICAgX3RleHRJbmRpY2F0b3IgPSB0ZXh0
SW5kaWNhdG9yLnB0cigpOworCisgICAgQ0dSZWN0IGZyYW1lID0gX3RleHRJbmRpY2F0b3ItPnRl
eHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKTsKKyAgICBfdGV4dEluZGljYXRv
ckxheWVyID0gYWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JMYXllciBhbGxvY10gaW5pdFdpdGhG
cmFtZTpmcmFtZQorICAgICAgICB0ZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3IgbWFyZ2luOkNH
U2l6ZVplcm8gb2Zmc2V0OkNHUG9pbnRaZXJvXSk7CisgICAgCisgICAgW1tzZWxmIGxheWVyXSBh
ZGRTdWJsYXllcjpfdGV4dEluZGljYXRvckxheWVyLmdldCgpXTsKKworICAgIGlmIChfdGV4dElu
ZGljYXRvci0+cHJlc2VudGF0aW9uVHJhbnNpdGlvbigpICE9IFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpOb25lKQorICAgICAgICBbX3RleHRJbmRpY2F0b3JM
YXllciBwcmVzZW50XTsKKyAgICAKKyAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9y
KHN0YXJ0RmFkZU91dCkgd2l0aE9iamVjdDpzZWxmIGFmdGVyRGVsYXk6V2ViQ29yZTo6dGltZUJl
Zm9yZUZhZGVTdGFydHMudmFsdWUoKV07Cit9CisKKy0gKHZvaWQpY2xlYXJUZXh0SW5kaWNhdG9y
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbgorewor
ICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yID0gV1RGTW92
ZShfdGV4dEluZGljYXRvcik7CisgICAgCisgICAgaWYgKFtfdGV4dEluZGljYXRvckxheWVyIGlz
RmFkaW5nT3V0XSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHRleHRJbmRpY2F0b3IgJiYg
W190ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2FudHNNYW51YWxBbmltYXRpb246KnRleHRJ
bmRpY2F0b3JdICYmIFtfdGV4dEluZGljYXRvckxheWVyIGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0g
JiYgYW5pbWF0aW9uID09IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246
OkZhZGVPdXQpIHsKKyAgICAgICAgW3NlbGYgc3RhcnRGYWRlT3V0XTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIFtzZWxmIHRlYXJkb3duVGV4dEluZGljYXRvckxheWVyXTsKK30KKwor
LSAodm9pZClzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6KGZsb2F0KWFuaW1hdGlv
blByb2dyZXNzCit7CisgICAgaWYgKCFfdGV4dEluZGljYXRvcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0QW5pbWF0aW9uUHJvZ3Jlc3M6YW5pbWF0aW9u
UHJvZ3Jlc3NdOworfQorCistICh2b2lkKXRlYXJkb3duVGV4dEluZGljYXRvckxheWVyCit7Cisg
ICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAgIF90ZXh0
SW5kaWNhdG9yTGF5ZXIgPSBuaWw7Cit9CisKKy0gKHZvaWQpc3RhcnRGYWRlT3V0Cit7CisgICAg
W190ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0RmFkaW5nT3V0OllFU107CisgICAgICAgIAorICAgIFtf
dGV4dEluZGljYXRvckxheWVyIGhpZGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6W3dlYWtTZWxmID0g
V2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZildIHsKKyAgICAgICAgYXV0byBzdHJvbmdT
ZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIFtzdHJvbmdTZWxmIHRlYXJkb3duVGV4dElu
ZGljYXRvckxheWVyXTsKKyAgICB9XTsKK30KKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRp
b25zQWZ0ZXIubW0+CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLmgKaW5kZXggNThiZTRhMmNhZTQ1MzdlNTQ2M2JkZDFiNmI1YmUxNjhi
YTY5Mjc2Yy4uNjc1NWYwMWIzODg0ODA4NWIwYjVhZDJhYWM4Y2UxZDFlNDRiN2FkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTE1
Niw4ICsxNTYsOCBAQCBwcml2YXRlOgogCiAgICAgUmVmPFdlYkNvcmU6OlZhbGlkYXRpb25CdWJi
bGU+IGNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBX
ZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpTZXR0aW5ncyYpIGZpbmFsOwogCi0gICAgdm9pZCBz
ZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFyVGV4dElu
ZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKSBv
dmVycmlkZTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpIG92ZXJyaWRlOworICAgIHZv
aWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmlt
YXRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzKGZsb2F0KSBvdmVycmlkZTsKIAogICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggNzg4YTI3OTZk
YmIxY2Y0NTllZmUxMjRjNmYwZDdkMGE2OThiN2U5Yi4uNjE0YjU5NjZjNjRhYmNjNGQ0MTBiMDNk
YWQ0YTcwMzljZGZmYzQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtNTY5LDEyICs1NjksMTIgQEAgdm9pZCBQYWdlQ2xpZW50
SW1wbDo6Y2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKCkK
ICAgICBtX2ltcGwtPmNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFpbkZyYW1lTmF2aWdh
dGlvbigpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxU
ZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9y
KFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
TGlmZXRpbWUgbGlmZXRpbWUpCiB7CiAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJ
bmRpY2F0b3IuZ2V0KCksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xl
YXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmlt
YXRpb24gZGlzbWlzc2FsQW5pbWF0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0
SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gZGlzbWlz
c2FsQW5pbWF0aW9uKQogewogICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbihkaXNtaXNzYWxBbmltYXRpb24pOwogfQpAQCAtNjcyLDkgKzY3Miw5IEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0IERpY3Rpb25hcnlQ
b3B1cEluZm8mIGRpY3RpCiAgICAgbV9pbXBsLT5wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cCgp
OwogCiAgICAgRGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8s
IG1fdmlldywgW3RoaXNdKFRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAg
bV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZTo6UGVybWFuZW50KTsKKyAgICAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9y
KHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50
KTsKICAgICB9LCBudWxscHRyLCBbdGhpc10oKSB7Ci0gICAgICAgIG1faW1wbC0+Y2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlz
c2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICAgICAgbV9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5v
bmUpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQppbmRleCA5YmFhOGJlMjRjNzdj
NzQ2ZTc5M2Y0MTM3OGRjZDAwYjNjZjRjNGZlLi5iZWMwZGMxMjhjNTA2N2Q2ZTkyN2RmY2VkYjQ3
YTdmYmVkODJlNDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTQ5MCw5ICs0OTAsOSBAQCAt
IChpZDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250
cm9sbGVyRm9yVGV4dAogICAgIF92aWV3SW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAo
KTsKIAogICAgIHJldHVybiBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250
cm9sbGVyRm9yUG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgX3ZpZXcsIFtzZWxmXShXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIF92aWV3SW1wbC0+c2V0
VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
TGlmZXRpbWU6OlBlcm1hbmVudCk7CisgICAgICAgIF92aWV3SW1wbC0+c2V0VGV4dEluZGljYXRv
cih0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVu
dCk7CiAgICAgfSwgbnVsbHB0ciwgW3NlbGZdKCkgewotICAgICAgICBfdmlld0ltcGwtPmNsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgICAgIF92aWV3SW1wbC0+Y2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uOjpOb25lKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzZjJl
OWQ1MGZmYjAwMWMyNDZkNDE3MTBlMDNiNDQ5YmRjNTg2Nzg0Li45NTE5MTdjMjRkOWYwMmU4MDY2
OWJjZWRjYmM4M2ExMDA0NWIzNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODgsNiAr
ODgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkpCiAjaW5jbHVkZSAiUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIgpAQCAtMTI3MSw2ICsx
MjcyLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3Jl
OjpBcHBIaWdobGlnaHQmJiBoaWdobGlnaHQpIGNvbnN0CiB9CiAjZW5kaWYKIAordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRhdGEmIGluZGljYXRvckRhdGEpIGNvbnN0Cit7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U2V0VGV4dEluZGljYXRvcihpbmRpY2F0b3JEYXRhLCBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpUZW1wb3JhcnkpKSk7
Cit9CisKIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OnNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5n
ZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplSW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlU3Ry
aW5nLCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKICAgICBTdHJpbmcgcmVzdWx0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCmluZGV4IDRlZWYxZjhhZDFjNTJhYzA1MTY1ODJiYTE2MTU1Y2FkMDFhMTU1NzIu
LjQ4M2FiMTFkYzExMzk2MWZjMjQ4ZDYzODliN2RhMjUwYmRjMGM4YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKQEAgLTM1Miw2ICszNTIsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYm
KSBjb25zdCBmaW5hbDsKICNlbmRpZgorICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKFdF
Ql9DUllQVE8pCiAgICAgYm9vbCB3cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYs
IFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IDAwOTAxNGE1MzZiZjlk
NjhkZmJlNWRhMTQwZGRiNTE3YWVhY2QyMDcuLmNlMjFkNjdjNDhiOTYwOWVmYTM5NTY2YWYwMjkz
YjkzYWNjZWRkY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTM4MCw3ICszODAsNyBAQCBib29sIEZpbmRDb250cm9s
bGVyOjp1cGRhdGVGaW5kSW5kaWNhdG9yKEZyYW1lJiBzZWxlY3RlZEZyYW1lLCBib29sIGlzU2hv
d2luZ092ZQogCiAgICAgbV9maW5kSW5kaWNhdG9yUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoaW5k
aWNhdG9yLT5zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkpOwogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
ZXRUZXh0SW5kaWNhdG9yKGluZGljYXRvci0+ZGF0YSgpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4o
aXNTaG93aW5nT3ZlcmxheSA/IFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50
IDogVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpKSk7CisgICAgbV93ZWJQ
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNh
dG9yLT5kYXRhKCksIHN0YXRpY19jYXN0PHVpbnQ2NF90Pihpc1Nob3dpbmdPdmVybGF5ID8gV2Vi
Q29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnQgOiBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKICNlbmRpZgogICAgIG1faXNTaG93aW5nRmlu
ZEluZGljYXRvciA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjNkNDcxNmE4OTMzZDlm
MjQyZjhlZjEyMTVhODY2MjM0MGY4OTdhNS4uNmUxOGYyYjI0MjE3MTNhMmM0MGQ3NDQxOGQ1MjRi
ODUzNjQxMTY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE1Myw2ICsxNTMsNyBAQCBwcml2YXRl
OgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGln
aHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4
dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFs
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmlu
ZGV4IDQ1MzljZTZmNjRkMDBiMGJiMDAyODNlYWM4MTUzMjk3OTAwNGM0ZTguLmI3YjM4ZTU4ODM5
NmU1NGIxODMxMmE5YzY1MzJhMjBmNDkyMWZkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTcy
MCw2ICs3MjAsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnN0b3JlQXBwSGlnaGxpZ2h0KFdl
YkNvcmU6OkFwcEhpZ2hsaWdodCYmKSBjb25zdAogfQogI2VuZGlmCiAKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRh
JiBpbmRpY2F0b3JEYXRhKSBjb25zdAoreworfQorCisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jaygpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAwZmUyYTUw
OTZjN2UyNmYzMjAzMjVlMzY4YmZmMGRiYjlmMDcyYzc2Li42MWQ2ZjRlODY1OTRkY2FiN2U2MTc5
MDcwNGI3MDllZjVjY2MyYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0KQEAgLTU5NTMsNyArNTk1Myw3IEBAIC0gKHZvaWQpX2xvb2tVcElu
RGljdGlvbmFyeUZyb21NZW51OihpZClzZW5kZXIKIAogLSAodm9pZClxdWlja0xvb2tXaXRoRXZl
bnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIFtbc2VsZiBfd2ViVmlld10gX2NsZWFyVGV4dElu
ZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW1tzZWxmIF93ZWJWaWV3XSBfY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uOjpGYWRlT3V0XTsKICAgICBbc3VwZXIgcXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IGNlNjJiZmE1MTYxNzdjOGMzNmFl
ZGQ3YmE1ZmE0YzI3NTEwZDZmNzEuLmJlNWI2YTJmYjAxNTRiYzM2ZmNkMzhiYjFkYWQ4OWUwOWM3
MGUzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTEyMiw3ICsxMjIsNyBA
QCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRpZEhhbmRsZVNjcm9sbFdoZWVs
OihOU0V2ZW50ICopZXZlbnQKIHsKICAgICBbX2N1cnJlbnRRTFByZXZpZXdNZW51SXRlbSBjbG9z
ZV07CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmll
dyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFu
aW1hdGlvbjo6Tm9uZV07CiB9CiAKIC0gKE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6
ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCkBAIC0xMzksNyArMTM5LDcgQEAgLSAodm9p
ZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uCiAgICAgfQogCiAgICAgW3NlbGYgX2NsZWFySW1tZWRp
YXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFu
aW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpG
YWRlT3V0XTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246
V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAK
IC0gKHZvaWQpX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGUKQEAgLTI1MSw3ICsyNTEsNyBAQCAt
ICh2b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJEaWRDYW5jZWxBbmltYXRpb246KE5TSW1t
ZWRpYXRlQWN0aW9uR2VzdHVyZVJlYwogCiAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9y
QW5pbWF0aW9uUHJvZ3Jlc3M6MF07CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3Rh
dGVdOwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKKyAgICBb
X3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dElu
ZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07CiAgICAgW193ZWJWaWV3IF9zZXRNYWlu
dGFpbnNJbmFjdGl2ZVNlbGVjdGlvbjpOT107CiB9CiAKQEAgLTI5Myw3ICsyOTMsNyBAQCAtIChp
ZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfZGVmYXVsdEFuaW1hdGlv
bkNvbnRyb2xsZXIKICAgICAgICAgICAgIGF1dG8gbGlua1JhbmdlID0gbWFrZVJhbmdlU2VsZWN0
aW5nTm9kZUNvbnRlbnRzKCpfaGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50KCkpOwogICAgICAgICAg
ICAgYXV0byBpbmRpY2F0b3IgPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFu
Z2UobGlua1JhbmdlLCB7IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JPcHRpb246OlVzZUJvdW5kaW5n
UmVjdEFuZFBhaW50QWxsQ29udGVudEZvckNvbXBsZXhSYW5nZXMgfSwgV2ViQ29yZTo6VGV4dElu
ZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246OkZhZGVJbik7CiAgICAgICAgICAgICBpZiAo
aW5kaWNhdG9yKQotICAgICAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoq
aW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRp
bWU6OlBlcm1hbmVudF07CisgICAgICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNh
dG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGlt
ZTo6UGVybWFuZW50XTsKIAogICAgICAgICAgICAgUUxQcmV2aWV3TWVudUl0ZW0gKml0ZW0gPSBb
TlNNZW51SXRlbSBzdGFuZGFyZFF1aWNrTG9va01lbnVJdGVtXTsKICAgICAgICAgICAgIGl0ZW0u
cHJldmlld1N0eWxlID0gUUxQcmV2aWV3U3R5bGVQb3BvdmVyOwpAQCAtMzc5LDcgKzM3OSw3IEBA
IC0gKE5TUmVjdEVkZ2UpbWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSBwcmVmZXJyZWRF
ZGdlRm9yUG9pbnQ6KE5TUG9pbnQpcG9pCiAtICh2b2lkKW1lbnVJdGVtRGlkQ2xvc2U6KE5TTWVu
dUl0ZW0gKiltZW51SXRlbQogewogICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRl
XTsKLSAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29y
ZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAg
W193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJ
bmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogfQogCiBzdGF0aWMgV2ViQ29y
ZTo6SW50UmVjdCBlbGVtZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzRnJvbU5vZGUo
V2ViQ29yZTo6Tm9kZSogbm9kZSkKQEAgLTQ2NCw5ICs0NjQsOSBAQCAtIChpZCA8TlNJbW1lZGlh
dGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFE
ZXRlY3RlZAogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFtkZXRlY3RlZEl0ZW0tPmFjdGlv
bkNvbnRleHQgY29udGV4dEZvclZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25T
dGFydGVkSGFuZGxlcjpeKCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkg
ewogICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0
SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4
dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
TGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5kbGVyOl4o
KSB7Ci0gICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsK
KyAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNv
cmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwog
CiAgICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcu
d2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46ZGV0ZWN0ZWRJdGVtLT5ib3VuZGluZ0JveF1dOwpA
QCAtNDk3LDkgKzQ5Nyw5IEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRy
b2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkCiAgICAgX2N1cnJlbnRB
Y3Rpb25Db250ZXh0ID0gW2FjdGlvbkNvbnRleHQgY29udGV4dEZvclZpZXc6X3dlYlZpZXcgYWx0
TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgewogICAgIH0gaW50ZXJhY3Rp
b25DaGFuZ2VkSGFuZGxlcjpeKCkgewogICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAg
ICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAg
ICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSBpbnRlcmFj
dGlvblN0b3BwZWRIYW5kbGVyOl4oKSB7Ci0gICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246
OkZhZGVPdXRdOwogICAgIH1dOwogCiAgICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdo
bGlnaHRGcmFtZTpbX3dlYlZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46ZWxlbWVudEJv
dW5kaW5nQm94SW5XaW5kb3dDb29yZGluYXRlc0Zyb21Ob2RlKF9oaXRUZXN0UmVzdWx0LlVSTEVs
ZW1lbnQoKSldXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpp
bmRleCA3MjY0YmZkY2Q3MmRlMTM2OTYwYTMyMzhjYjAwMjE2ZmI4OTJmZjdjLi45OTJmM2UwOTc0
ZDY0NWJmZTI1ZDczMTk4MzJkODQxZjc3MGVlNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC05MTAwLDExICs5MTAwLDExIEBAIC0gKGlkKV9hbmlt
YXRpb25Db250cm9sbGVyRm9yRGljdGlvbmFyeUxvb2t1cFBvcHVwSW5mbzooY29uc3QgV2ViQ29y
ZTo6RGljdGlvbmFyCiAgICAgW3NlbGYgX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAog
ICAgIHJldHVybiBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVy
Rm9yUG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgc2VsZiwgW3NlbGZdKFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0
b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0
ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6
OlBlcm1hbmVudF07CiAgICAgfSwgW3NlbGZdKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0SW5Sb290
Vmlld0Nvb3JkaW5hdGVzKSB7CiAgICAgICAgIHJldHVybiBbc2VsZiBfY29udmVydFJlY3RGcm9t
Um9vdFZpZXc6cmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CiAgICAgfSwgW3NlbGZdKCkgewot
ICAgICAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAg
W3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfSk7CiB9CiAKQEAgLTkxMjAs
MTAgKzkxMjAsMTAgQEAgLSAodm9pZClfc2V0UHJlc3N1cmVFdmVudDooTlNFdmVudCAqKWV2ZW50
CiAKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRl
eHRJbmRpY2F0b3IKIHsKLSAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9y
IHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1h
bmVudF07CisgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlm
ZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwogfQogCi0t
ICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5k
aWNhdG9yIHdpdGhMaWZldGltZTooV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1l
KWxpZmV0aW1lCistICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooV2ViQ29yZTo6VGV4dEluZGljYXRvckxp
ZmV0aW1lKWxpZmV0aW1lCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRv
dykKICAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+KHNlbGYpOwpAQCAtOTEzMywxMCArOTEzMywxMCBA
QCAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0
SW5kaWNhdG9yIHdpdGhMaWZldGltZTooVwogICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2lu
ZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIE5TUmVjdFRvQ0dSZWN0KHRleHRC
b3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzKSwgbGlmZXRpbWUpOwogfQogCi0tICh2b2lk
KV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbgorLSAodm9pZClfY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1h
dGlvbilhbmltYXRpb24KIHsKICAgICBpZiAoX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cp
Ci0gICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0
b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91
dCk7CisgICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRp
Y2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7
CiAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cgPSBudWxscHRyOwogfQogCkBAIC05
MTY4LDE4ICs5MTY4LDE4IEBAIC0gKHZvaWQpX3Nob3dEaWN0aW9uYXJ5TG9va3VwUG9wdXA6KGNv
bnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKWRpY3Rpb25hCiAgICAgW3NlbGYgX3By
ZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAogICAgIFdlYkNvcmU6OkRpY3Rpb25hcnlMb29r
dXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBzZWxmLCBbc2VsZl0oV2ViQ29yZTo6
VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBbc2VsZiBfc2V0VGV4dElu
ZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNh
dG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZl
dGltZTo6UGVybWFuZW50XTsKICAgICB9LCBbc2VsZl0oV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RJ
blJvb3RWaWV3Q29vcmRpbmF0ZXMpIHsKICAgICAgICAgcmV0dXJuIFtzZWxmIF9jb252ZXJ0UmVj
dEZyb21Sb290VmlldzpyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICB9LCBbd2Vha1Nl
bGYgPSBXZWFrT2JqQ1B0cjxXZWJWaWV3PihzZWxmKV0oKSB7Ci0gICAgICAgIFt3ZWFrU2VsZi5n
ZXQoKSBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW3dlYWtTZWxm
LmdldCgpIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH0pOwogfQogCiAjaWYgIUVO
QUJMRShSRVZFQUwpCiAtICh2b2lkKV9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZToo
TlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBbc2VsZiBfY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFu
aW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0
XTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoUkVWRUFMKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCA3MzM3MmEwYmRhMTUzYmZh
Mzc2MTAyM2NmNDk1ZDc5NmZhNzE4Y2MxLi5iYWQ1ZmQ4YTE1MGFjZjJjMzdhNTdjMzY0ZjgyMTlk
Y2Q0MzczMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlld0ludGVybmFsLmgKQEAgLTMxOSw4ICszMTksOCBAQCBXZWJMYXlvdXRNaWxlc3RvbmVzIGtp
dExheW91dE1pbGVzdG9uZXMoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pOwog
CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogLSAodm9pZClfc2V0
VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvcjsKLS0g
KHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRp
Y2F0b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUp
bGlmZXRpbWU7Ci0tICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKKy0g
KHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRp
Y2F0b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpbGlmZXRp
bWU7CistICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKIC0gKHZvaWQpX3NldFRl
eHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQpcHJvZ3Jlc3M7CiAtICh2b2lkKV9z
aG93RGljdGlvbmFyeUxvb2t1cFBvcHVwOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJ
bmZvJilkaWN0aW9uYXJ5UG9wdXBJbmZvOwogLSAoaWQpX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JE
aWN0aW9uYXJ5TG9va3VwUG9wdXBJbmZvOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJ
bmZvJilkaWN0aW9uYXJ5UG9wdXBJbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAzMTk4ZGUyMTll
ODkyNzFmZTA4ZTM2MmQyNTg1MjJiZmQzY2MzODlmLi5lNDcwNTE2NWQwZDA4YjYwMTcwODRjZjZj
YTA1ZTcxZWE3MDBhNzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTY2LDYgKzE2Niw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCYpIGZpbmFsOwogICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVs
ZW1lbnQqKSBmaW5hbDsKICNlbmRpZgorICAgIAorICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihj
b25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFsIHsgfQogCiAgICAg
dm9pZCB3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQogCg==
</data>
<flag name="commit-queue"
          id="449484"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428553</attachid>
            <date>2021-05-13 13:13:30 -0700</date>
            <delta_ts>2021-05-13 13:41:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513131329.patch</filename>
            <type>text/plain</type>
            <size>52753</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uNDBkNjI3ZDEyY2Q4MmI1Y2NjZTU3NzU3ZGI0ZjNj
YzMyMTcwZDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEyICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21l
Q2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2Vi
VGV4dEluZGljYXRvckxheWVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIg
aW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgICog
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMzM4YmVlMTgyMWZjNTIyNTEzOGE4NDIzYjBiOGYzMmYzNWM0ODhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNS0xMiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZmFjdG9yZWQgb3V0IHRleHRJbmRpY2F0b3IgY29kZSB0
byBhZGQgYSBib3VuY2UgdG8gYW4gYXBwSGlnaGxpZ2h0CisgICAgICAgIHdoZW4gaXQgaXMgc2Ny
b2xsZWQgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9lbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0
VXBUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dElu
ZGljYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0
SW5kaWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAyMS0wNS0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3Jt
YWxpemVyZCcgd2hlbiBjYW52YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTVi
OWFhNWM0NDdjN2QwMDE0OTI5ZmUxLi5hMzgxMDQ1M2FlZDY3NWRiZjE3MDllZmE5MzQ4MTZiYTI5
NmE4OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDUtMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRp
Y2F0b3IgY29uc3QpOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRjZWE0MGY4Zjk3
NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3N2IxNzA0Njc5
NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1Jh
bmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBAIGJvb2wgQXBw
SGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBI
aWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJl
Z2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAg
ICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgIGlmIChz
Y3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOworICAgICAg
ICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNtb290aFNjcm9s
bCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9sbEZlYXR1cmVF
bmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJjYjhiMTc3M2Iw
MTBiYjIwNjczNWUuLjE5MDc4Yjg4M2M0NjJiZjU2N2IxMTQzYmQ0YWMxNTg1MGNmNDBhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTMsNiArNTUzLDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGkKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBw
SGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAogewogfQordm9pZCBFbXB0eUNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7
Cit9CiAjZW5kaWYKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogRW1wdHlDaHJvbWVD
bGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIy
ZmE1NGFmYmYuLmM0YWRiMjRkMjhhZWQxMGM3Njg3YjcwYTc3ZDNkYjI5MDU1MmRkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZj
ODg2YTUxYTM3OGYyZDdkLi4zNWNmMjlkNGQ3M2FjMmU4ZWUzOTdkYjJhNDNmYWNjNWYwYjc3ZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBT
aGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTMsNiAr
MzE0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRv
ci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIuLjAzNWRj
OTM5OWEyZTIxZDFhMmYzOWI1NTVkZDM5MjE1Zjg3NDkyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCkBAIC0zOSw2ICszOSwyNSBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIAorY29uc3RleHByIGZsb2F0IGRyb3BTaGFkb3dCbHVyUmFk
aXVzID0gMjsKK2NvbnN0ZXhwciBmbG9hdCByaW1TaGFkb3dCbHVyUmFkaXVzID0gMTsKK2NvbnN0
ZXhwciBTZWNvbmRzIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMl9zOworY29uc3RleHBy
IFNlY29uZHMgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRpb25EdXJhdGlvbiAr
IDAuMl9zOworY29uc3RleHByIGZsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4yNTsKKworZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgOiB1aW50OF90IHsKKyAgICAvLyBUaGUgVGV4dElu
ZGljYXRvciBzaG91bGQgaW5kaWNhdGUgdGhlIHRleHQgdW50aWwgZGlzbWlzc2VkLgorICAgIFBl
cm1hbmVudCwKKworICAgIC8vIFRoZSBUZXh0SW5kaWNhdG9yIHNob3VsZCBicmllZmx5IGluZGlj
YXRlIHRoZSB0ZXh0IGFuZCB0aGVuIGF1dG9tYXRpY2FsbHkgZGlzbWlzcy4KKyAgICBUZW1wb3Jh
cnkKK307CisKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiA6IHVp
bnQ4X3QgeworICAgIE5vbmUsCisgICAgRmFkZU91dAorfTsKKwogLy8gRklYTUU6IE1vdmUgUHJl
c2VudGF0aW9uVHJhbnNpdGlvbiB0byBUZXh0SW5kaWNhdG9yV2luZG93LCBiZWNhdXNlIGl0J3Mg
YWJvdXQgcHJlc2VudGF0aW9uLgogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9u
VHJhbnNpdGlvbiA6IHVpbnQ4X3QgewogICAgIE5vbmUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaAppbmRleCBmZDEzZDA0MGVmZmI3NWIw
ZWEwMDRlYTU1MWUzMjIxNTRhZTE4ZmFmLi5iZWJmOTNhMzZlZDcwZTZiMzA5ZGU4OTU4MWExODM2
NjVlMzhjMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJ
bmRpY2F0b3JMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dElu
ZGljYXRvckxheWVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKLUBpbnRlcmZhY2UgV2ViVGV4dEluZGljYXRv
ckxheWVyIDogQ0FMYXllciB7CitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYlRleHRJbmRp
Y2F0b3JMYXllciA6IENBTGF5ZXIgewogICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
PiBfdGV4dEluZGljYXRvcjsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2JvdW5jZUxheWVyczsK
ICAgICBDR1NpemUgX21hcmdpbjsKQEAgLTUzLDMgKzUzLDQgQEAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBnZXR0ZXI9aXNGYWRpbmdPdXQpIEJPT0wgZmFkaW5nT3V0OwogCiBAZW5kCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1t
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KaW5k
ZXggYjhjNGQ4ZjA2N2JhY2VkMDlhODExODA4NzEwMzA2YzU3YTc5NDMwMC4uMWFjNWU4NmYwNzgy
ZTUyY2M2NTc2NzY0NmNiMWJlMmNmY2ZiOTk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNp
bXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiUGF0aFV0aWxpdGllcy5oIgogI2lt
cG9ydCAiVGV4dEluZGljYXRvci5oIgorI2ltcG9ydCAiVGV4dEluZGljYXRvcldpbmRvdy5oIgog
I2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmgiCiAjaW1wb3J0IDxw
YWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFy
dHpDb3JlU1BJLmg+CkBAIC0zOCwxOSArMzksMTUgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
TlNDb2xvclNQSS5oPgogI2VuZGlmCiAKLWNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBib3VuY2VB
bmltYXRpb25EdXJhdGlvbiA9IDAuMTI7CisKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBib3Vu
Y2VXaXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjM7CiBjb25zdGV4cHIgQ0ZUaW1l
SW50ZXJ2YWwgZmFkZUluQW5pbWF0aW9uRHVyYXRpb24gPSAwLjE1OwotY29uc3RleHByIENGVGlt
ZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5pbWF0aW9uRHVyYXRpb24g
KyAwLjI7CiBjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgZmFkZU91dEFuaW1hdGlvbkR1cmF0aW9u
ID0gMC4zOwogCi1jb25zdGV4cHIgQ0dGbG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEuMjU7CiBjb25z
dGV4cHIgQ0dGbG9hdCBib3JkZXJXaWR0aCA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBjb3JuZXJS
YWRpdXMgPSAwOwogY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09mZnNldFggPSAwOwogY29u
c3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09mZnNldFkgPSAxOwotY29uc3RleHByIENHRmxvYXQg
ZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotY29uc3RleHByIENHRmxvYXQgcmltU2hhZG93Qmx1
clJhZGl1cyA9IDE7CiAKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IHRleHRMYXllcktleSA9
IEAiVGV4dExheWVyIjsKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IGRyb3BTaGFkb3dMYXll
cktleSA9IEAiRHJvcFNoYWRvd0xheWVyIjsKQEAgLTEzMiwxMyArMTI5LDEyIEBAIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29y
ZTo6VGV4dEluZGljYXRvCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAg
IHJldHVybiBuaWw7CiAgICAgCisgICAgc2VsZi5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOwog
ICAgIHNlbGYuZnJhbWUgPSBmcmFtZTsKIAogICAgIF90ZXh0SW5kaWNhdG9yID0gJnRleHRJbmRp
Y2F0b3I7CiAgICAgX21hcmdpbiA9IG1hcmdpbjsKIAotICAgIHNlbGYuYW5jaG9yUG9pbnQgPSBD
R1BvaW50WmVybzsKLQogICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29udGVudHNJ
bWFnZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgY29udGVudHNJbWFnZUxvZ2ljYWxTaXplIHsg
MSwgMSB9OwogICAgIGlmIChhdXRvKiBjb250ZW50SW1hZ2UgPSBfdGV4dEluZGljYXRvci0+Y29u
dGVudEltYWdlKCkpIHsKQEAgLTE5Miw3ICsxODgsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0
bwogICAgICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gZHJvcFNoYWRvd0xheWVyID0gYWRvcHROUyhb
W0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXREZWxl
Z2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlIHNoYXJlZF1dOwogICAgICAg
ICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd0NvbG9yOmRyb3BTaGFkb3dDb2xvci5nZXQoKV07
Ci0gICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UmFkaXVzOmRyb3BTaGFkb3dCbHVy
UmFkaXVzXTsKKyAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6V2ViQ29y
ZTo6ZHJvcFNoYWRvd0JsdXJSYWRpdXNdOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNo
YWRvd09mZnNldDpDR1NpemVNYWtlKGRyb3BTaGFkb3dPZmZzZXRYLCBkcm9wU2hhZG93T2Zmc2V0
WSldOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRlZFBh
dGgucGxhdGZvcm1QYXRoKCldOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd09w
YWNpdHk6MV07CkBAIC0yMDQsNyArMjAwLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJh
bWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAg
ICAgICAgW3JpbVNoYWRvd0xheWVyIHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxh
eWVyRGVsZWdhdGUgc2hhcmVkXV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRGcmFtZTp5
ZWxsb3dIaWdobGlnaHRSZWN0XTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd0Nv
bG9yOnJpbVNoYWRvd0NvbG9yLmdldCgpXTsKLSAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNo
YWRvd1JhZGl1czpyaW1TaGFkb3dCbHVyUmFkaXVzXTsKKyAgICAgICAgW3JpbVNoYWRvd0xheWVy
IHNldFNoYWRvd1JhZGl1czpXZWJDb3JlOjpyaW1TaGFkb3dCbHVyUmFkaXVzXTsKICAgICAgICAg
W3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRlZFBhdGgucGxhdGZvcm1QYXRo
KCldOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93T2Zmc2V0OkNHU2l6ZVplcm9d
OwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93T3BhY2l0eToxXTsKQEAgLTI0NSw3
ICsyNDEsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENBS2V5ZnJhbWVBbmltYXRpb24+IGNyZWF0ZUJv
dW5jZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZhbCBkdXJhdAogICAgIFJldGFpblB0cjxDQUtleWZy
YW1lQW5pbWF0aW9uPiBib3VuY2VBbmltYXRpb24gPSBbQ0FLZXlmcmFtZUFuaW1hdGlvbiBhbmlt
YXRpb25XaXRoS2V5UGF0aDpAInRyYW5zZm9ybSJdOwogICAgIFtib3VuY2VBbmltYXRpb24gc2V0
VmFsdWVzOkBbCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFu
c2Zvcm0zRElkZW50aXR5XSwKLSAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKG1pZEJvdW5jZVNjYWxlLCBtaWRCb3VuY2VTY2FsZSwg
MSldLAorICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOkNBVHJhbnNmb3Jt
M0RNYWtlU2NhbGUoV2ViQ29yZTo6bWlkQm91bmNlU2NhbGUsIFdlYkNvcmU6Om1pZEJvdW5jZVNj
YWxlLCAxKV0sCiAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFu
c2Zvcm0zRElkZW50aXR5XQogICAgICAgICBdXTsKICAgICBbYm91bmNlQW5pbWF0aW9uIHNldER1
cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTI5NCw3ICsyOTAsNyBAQCAtIChDRlRpbWVJbnRlcnZhbClf
YW5pbWF0aW9uRHVyYXRpb24KICAgICBpZiAoW3NlbGYgaW5kaWNhdG9yV2FudHNCb3VuY2U6Kl90
ZXh0SW5kaWNhdG9yXSkgewogICAgICAgICBpZiAoaW5kaWNhdG9yV2FudHNDb250ZW50Q3Jvc3Nm
YWRlKCpfdGV4dEluZGljYXRvcikpCiAgICAgICAgICAgICByZXR1cm4gYm91bmNlV2l0aENyb3Nz
ZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwotICAgICAgICByZXR1cm4gYm91bmNlQW5pbWF0aW9uRHVy
YXRpb247CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpib3VuY2VBbmltYXRpb25EdXJhdGlvbi52
YWx1ZSgpOwogICAgIH0KIAogICAgIHJldHVybiBmYWRlSW5BbmltYXRpb25EdXJhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCBjM2Iz
M2ViYTJjOGJjMGQ3NTQ1OWRkMjE1MDg5YjY1MjljNWQzMTVkLi5mN2ZmZjdjNzNhMWQyZmY3NTRi
Mjc4N2NhMjI5OTUyMzgwMzEzMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4
dEluZGljYXRvcldpbmRvdy5oCkBAIC0zNiwxOSArMzYsNiBAQCBPQkpDX0NMQVNTIFdlYlRleHRJ
bmRpY2F0b3JMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3QgewotICAgIC8vIFRoZSBUZXh0SW5kaWNh
dG9yIHNob3VsZCBpbmRpY2F0ZSB0aGUgdGV4dCB1bnRpbCBkaXNtaXNzZWQuCi0gICAgUGVybWFu
ZW50LAotCi0gICAgLy8gVGhlIFRleHRJbmRpY2F0b3Igc2hvdWxkIGJyaWVmbHkgaW5kaWNhdGUg
dGhlIHRleHQgYW5kIHRoZW4gYXV0b21hdGljYWxseSBkaXNtaXNzLgotICAgIFRlbXBvcmFyeQot
fTsKLQotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDog
dWludDhfdCB7Ci0gICAgTm9uZSwKLSAgICBGYWRlT3V0Ci19OwotCiAjaWYgUExBVEZPUk0oTUFD
KQogCiBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93IHsKQEAgLTU5LDggKzQ2LDggQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFRleHRJbmRpY2F0b3JXaW5kb3coTlNWaWV3
ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5UZXh0SW5kaWNhdG9yV2luZG93KCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBD
R1JlY3QgY29udGVudFJlY3QsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKFJlZjxUZXh0SW5kaWNhdG9yPiwgQ0dSZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAKQEAgLTgxLDMgKzY4LDUgQEAgcHJpdmF0
ZToKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRl
eCBmODVmYTUzYjNiNGE5ZjQ1OTY5Nzc2YTEyY2M0MTFmNzkyMmRmNzdjLi4xODBiYWI3ZDAyYmMz
YTVkMWIwYzNlNzQ1MmUxZDMyOTI1MjQ5NzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTM4LDEyICszOCw2IEBACiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oPgogCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlv
biA9IDAuMTI7Ci1jb25zdCBDRlRpbWVJbnRlcnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJv
dW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4yOwotCi1jb25zdCBDR0Zsb2F0IG1pZEJvdW5jZVNj
YWxlID0gMS4yNTsKLWNvbnN0IENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsNyAr
NTAsNyBAQCBUZXh0SW5kaWNhdG9yV2luZG93OjpUZXh0SW5kaWNhdG9yV2luZG93KE5TVmlldyAq
dGFyZ2V0VmlldykKIAogVGV4dEluZGljYXRvcldpbmRvdzo6flRleHRJbmRpY2F0b3JXaW5kb3co
KQogewotICAgIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiB9CiAKIHZvaWQgVGV4dElu
ZGljYXRvcldpbmRvdzo6c2V0QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCkBAIC02
NywxNCArNjEsMTQgQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9n
cmVzcyhmbG9hdCBwcm9ncmVzcykKICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0QW5pbWF0
aW9uUHJvZ3Jlc3M6cHJvZ3Jlc3NdOwogfQogCi12b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNs
ZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFu
aW1hdGlvbikKK3ZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQogewogICAg
IFJlZlB0cjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yID0gV1RGTW92ZShtX3RleHRJbmRp
Y2F0b3IpOwogCiAgICAgaWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpc0ZhZGluZ091dF0pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0
b3JMYXllciBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYg
W21fdGV4dEluZGljYXRvckxheWVyIGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9u
ID09IFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKKyAg
ICBpZiAodGV4dEluZGljYXRvciAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2Fu
dHNNYW51YWxBbmltYXRpb246KnRleHRJbmRpY2F0b3JdICYmIFttX3RleHRJbmRpY2F0b3JMYXll
ciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KSB7CiAgICAgICAgIHN0YXJ0RmFkZU91
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODIsNyArNzYsNyBAQCB2b2lkIFRleHRJ
bmRpY2F0b3JXaW5kb3c6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aQogICAgIGNsb3NlV2luZG93KCk7CiB9CiAKLXZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciwgQ0dSZWN0IHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNl
dFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUmVjdCB0
ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcywgVGV4dEluZGljYXRvckxpZmV0aW1l
IGxpZmV0aW1lKQogewogICAgIGlmIChtX3RleHRJbmRpY2F0b3IgPT0gdGV4dEluZGljYXRvci5w
dHIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTUsOCArODksOCBAQCB2b2lkIFRleHRJbmRpY2F0
b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0
b3IsIENHUgogICAgIENHRmxvYXQgdmVydGljYWxNYXJnaW4gPSBkcm9wU2hhZG93Qmx1clJhZGl1
cyAqIDIgKyBUZXh0SW5kaWNhdG9yOjpkZWZhdWx0VmVydGljYWxNYXJnaW47CiAgICAgCiAgICAg
aWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50c0JvdW5jZToqbV90ZXh0SW5k
aWNhdG9yXSkgewotICAgICAgICBob3Jpem9udGFsTWFyZ2luID0gc3RkOjptYXgoaG9yaXpvbnRh
bE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS53aWR0aCAq
IChtaWRCb3VuY2VTY2FsZSAtIDEpICsgaG9yaXpvbnRhbE1hcmdpbik7Ci0gICAgICAgIHZlcnRp
Y2FsTWFyZ2luID0gc3RkOjptYXgodmVydGljYWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNj
cmVlbkNvb3JkaW5hdGVzLnNpemUuaGVpZ2h0ICogKG1pZEJvdW5jZVNjYWxlIC0gMSkgKyB2ZXJ0
aWNhbE1hcmdpbik7CisgICAgICAgIGhvcml6b250YWxNYXJnaW4gPSBzdGQ6Om1heChob3Jpem9u
dGFsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLndpZHRo
ICogKFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxlIC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsKKyAg
ICAgICAgdmVydGljYWxNYXJnaW4gPSBzdGQ6Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJvdW5k
aW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQgKiAoV2ViQ29yZTo6bWlkQm91
bmNlU2NhbGUgLSAxKSArIHZlcnRpY2FsTWFyZ2luKTsKICAgICB9CiAKICAgICBob3Jpem9udGFs
TWFyZ2luID0gQ0dDZWlsaW5nKGhvcml6b250YWxNYXJnaW4pOwpAQCAtMTI1LDggKzExOSw4IEBA
IHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGlj
YXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgaWYgKG1fdGV4dEluZGljYXRvci0+cHJlc2Vu
dGF0aW9uVHJhbnNpdGlvbigpICE9IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9u
OjpOb25lKQogICAgICAgICBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgcHJlc2VudF07CiAKLSAgICBp
ZiAobGlmZXRpbWUgPT0gVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpCi0g
ICAgICAgIG1fdGVtcG9yYXJ5VGV4dEluZGljYXRvclRpbWVyLnN0YXJ0T25lU2hvdCgxX3MgKiB0
aW1lQmVmb3JlRmFkZVN0YXJ0cyk7CisgICAgaWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0b3JM
aWZldGltZTo6VGVtcG9yYXJ5KQorICAgICAgICBtX3RlbXBvcmFyeVRleHRJbmRpY2F0b3JUaW1l
ci5zdGFydE9uZVNob3QoV2ViQ29yZTo6dGltZUJlZm9yZUZhZGVTdGFydHMpOwogfQogCiB2b2lk
IFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsb3NlV2luZG93KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDNhZDUxNDJjZDE3N2FhZGFlNWMzODUzMmQ1
N2ZjYTQzODBhY2Q0YjYuLjEwYjg5MTliMGY4NjI0MTgxZWVhYmNmNzhjMDFjMTliYjNiZTBjMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNDEx
LDggKzQxMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsK
IAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiwgV2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lID0gV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwotICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uKTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYs
IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JM
aWZldGltZTo6UGVybWFuZW50KTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmlt
YXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbik7CiAgICAgdm9p
ZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOwogICAgIHZvaWQgZGlz
bWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpOwogICAgIHZvaWQg
ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oYm9vbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDIzYTUw
NDY4MTE0MTMzNTE5ZjJlZDFiZGNkODI0Y2Q5MmE2NWI0MWYuLmRjNTBjZDJjNTE1MGQ1NTc5ODU0
YWI3ZTY1ZTc1ZDYyNTVlM2IwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC00MjMsNyArNDIzLDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVG
b3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6
KE4KICNpZiAhRU5BQkxFKFJFVkVBTCkKIC0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVy
V2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotICAgIF9pbXBsLT5j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgIF9pbXBsLT5jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246
Ok5vbmUpOwogfQogI2VuZGlmCiAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICAgICAgdXBkYXRlV2luZG93QW5kVmlld0Zy
YW1lcygpOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6
OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3Io
V2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGlj
YXRvckxpZmV0aW1lIGxpZmV0aW1lKQogewogICAgIGlmICghbV90ZXh0SW5kaWNhdG9yV2luZG93
KQogICAgICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JXaW5kb3c+KG1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSk7CkBAIC0zNTA0LDcg
KzM1MDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IsIFdlYkNvcgogICAgIG1fdGV4dEluZGljYXRvcldp
bmRvdy0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0
Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcyksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBX
ZWJWaWV3SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKK3ZvaWQgV2ViVmll
d0ltcGw6OmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRpb24pCiB7CiAgICAgaWYgKG1fdGV4dEluZGlj
YXRvcldpbmRvdykKICAgICAgICAgbV90ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRp
Y2F0b3IoYW5pbWF0aW9uKTsKQEAgLTM1MjcsNyArMzUyNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdP
bmx5KGJvCiAgICAgLy8gQ2FsbGluZyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBo
ZXJlIHdpbGwgd2luIG91dCBvdmVyIHRoZSBhbmltYXRlZCBjbGVhciBpbiBkaXNtaXNzQ29udGVu
dFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5LgogICAgIC8vIFdlIGNhbid0IGludmVy
dCB0aGVzZSBiZWNhdXNlIGNsaWVudHMgY2FuIG92ZXJyaWRlIChhbmQgaGF2ZSBvdmVycmlkZGVu
KSBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93cywgc28gaXQgbmVlZHMgdG8gYmUg
Y2FsbGVkLgogICAgIC8vIEZvciB0aGlzIHNhbWUgcmVhc29uLCB0aGlzIGNhbid0IGJlIG1vdmVk
IHRvIFdlYlZpZXdJbXBsIHdpdGhvdXQgY2FyZS4KLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRo
QW5pbWF0aW9uKGFuaW1hdGUgPyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0IDogV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihh
bmltYXRlID8gV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91
dCA6IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAg
IFttX3ZpZXcgX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKIH0KIApA
QCAtMzU0NCw3ICszNTQ0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpCiAgICAgICAgICAgICBbW2dldEREQWN0aW9u
c01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNo
b3JPbkZhaWx1cmU6WUVTXTsKICAgICB9CiAKLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXQpOworICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4
dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiAKICAgICBbbV9pbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNDE3ZTExZDQ5NjYwN2EzMDBj
ZmI2NWZlZDZjN2Y0Y2FjZTBjOTI2ZC4uYTM1NzMxZWMwMWQ5ZTVlMTUwMmU2MDVlNTI4MmZlZjBi
MDQ1ZDY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTA2LDggKzEw
Niw4IEBAIGNsYXNzIFNlbGVjdGlvbkRhdGE7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kg
OiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51
bSBjbGFzcyBTY3JvbGxiYXJTdHlsZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0
b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUgOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVp
bnQ4X3Q7CiAKIHN0cnVjdCBBcHBIaWdobGlnaHQ7CkBAIC0zODUsOCArMzg1LDggQEAgcHVibGlj
OgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4
dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dMaWZldGltZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRp
Y2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRp
b25Qcm9ncmVzcyhmbG9hdCkgPSAwOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWE1YzM0OTA3
MzNjMmIwZTkxZGU4NDg4OGUzMDA0YWU5YmFiODQ1ZC4uNDk5MzE0MzQ2NzFjMmRiYWUxZjU2MGZl
MzdiMDYxZTljNjI4NGQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0yMTgsNyArMjE4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJp
bmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU3lzdGVtQmF0dGVyeS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvcldp
bmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2luY2x1ZGUgPHd0
Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAjaW5jbHVkZSA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgpA
QCAtNjUxMSw3ICs2NTEwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3Io
Y29uc3QgVGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEsIHVpbnQKIHsKICAgICAvLyBG
SVhNRTogTWFrZSBUZXh0SW5kaWNhdG9yV2luZG93IGEgcGxhdGZvcm0taW5kZXBlbmRlbnQgcHJl
c2VudGF0aW9uYWwgdGhpbmcgKCJUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uIj8pLgogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRleHRJbmRp
Y2F0b3I6OmNyZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8VGV4dEluZGljYXRvcldp
bmRvd0xpZmV0aW1lPihsaWZldGltZSkpOworICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNh
dG9yKFRleHRJbmRpY2F0b3I6OmNyZWF0ZShpbmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lPihsaWZldGltZSkpOwogI2Vsc2UKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgpAQCAtNjUyMCw3ICs2NTE5LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRhdGEmIGluZGlj
YXRvckRhdGEsIHVpbnQKIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVhclRleHRJbmRpY2F0b3IoKQog
ewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBhZ2VDbGllbnQoKS5jbGVhclRleHRJbmRpY2F0
b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAg
cGFnZUNsaWVudCgpLmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlz
bWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNWI0
NTdkZmI2MDMxZWY2MzlhZDNhZTNmY2JmZmZhZTZhNmQ4NTcwMi4uZmNiZDQ5NjhkNDE1ZGY2NzY3
YTFhZjk5OGJiOWNkY2JlMWEwZWMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTExNDksNyArMTE0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvdW50U3RyaW5n
TWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8RmluZE9wdGlvbnM+LCB1bnNpZ25lZCBt
YXhNYXRjaENvdW50KTsKICAgICB2b2lkIHJlcGxhY2VNYXRjaGVzKFZlY3Rvcjx1aW50MzJfdD4m
JiBtYXRjaEluZGljZXMsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0LCBib29sIHNlbGVj
dGlvbk9ubHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKICAgICB2b2lk
IGRpZENvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCB1aW50MzJfdCBtYXRjaENvdW50
KTsKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRhdGEmLCB1aW50NjRfdCAvKiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUg
Ki8gbGlmZXRpbWUgPSAwIC8qIFBlcm1hbmVudCAqLyk7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJiwgdWludDY0X3QgLyogV2ViQ29y
ZTo6VGV4dEluZGljYXRvckxpZmV0aW1lICovIGxpZmV0aW1lID0gMCAvKiBQZXJtYW5lbnQgKi8p
OwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsKICAg
ICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDNmYmUxYjE3ZmY2NjA0NDllOTkzZWY3
ZThhZmMwYmEwMDI0ZmQ4N2EuLjgxZmIwMTgzM2NlZTllNWQ5MTU5NTQxOGQyYjVhMGFlNGI4NDRj
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCkBAIC0xMzgsOCArMTM4LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViRGF0ZVRpbWVQ
aWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYpIGZpbmFsOwogI2VuZGlm
CiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+
LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJyaWRlOwotICAgIHZv
aWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2Vi
Q29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9y
QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzaG93U2FmZUJy
b3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQppbmRleCA0MGI3NjIzNjM5ZmZhZDQxYjQ0MjQ2OGViMmUxODFhYTM0ZjAxNjUzLi44
YzNjOGYyNDIxY2YwY2MyYjNmNTAzNzRkMTlmYjVjMjJjMTU5OTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00NzksMTYgKzQ3
OSwxOSBAQCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVQ
b3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi12
b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0
ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9y
LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpCiB7CisgICAgW21fY29udGVudFZpZXcg
c2V0VXBUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3JdOwogfQogCi12b2lkIFBhZ2VDbGllbnRJ
bXBsOjpjbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKIHsKKyAg
ICBbbV9jb250ZW50VmlldyBjbGVhclRleHRJbmRpY2F0b3I6ZGlzbWlzc2FsQW5pbWF0aW9uXTsK
IH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzKGZsb2F0KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlv
blByb2dyZXNzKGZsb2F0IGFuaW1hdGlvblByb2dyZXNzKQogeworICAgIFttX2NvbnRlbnRWaWV3
IHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczphbmltYXRpb25Qcm9ncmVzc107CiB9
CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
Y29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRl
eCA4ODZhZTc1ZTY3YjU2YWViMzgzNzg0ZjU5NmM5ZDhmNzI5MTI1NmU3Li5iYWE4ZTQ0NGJiMjlj
YWI1YTFjMDI2ZmQ5Y2Y4ZDhkNDZjMzQ5MmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC04OSw2ICs4OSw3
IEBAIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogZW51bSBjbGFzcyBET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3MgTW91c2VFdmVudFBvbGljeSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CitlbnVtIGNs
YXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90OwogCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKIHN0cnVjdCBEcmFnSXRlbTsKQEAgLTEwNCw2ICsxMDUsNyBAQCBj
bGFzcyBXZWJQYWdlUHJveHk7CiB9CiAKIEBjbGFzcyBXZWJFdmVudDsKK0BjbGFzcyBXZWJUZXh0
SW5kaWNhdG9yTGF5ZXI7CiBAY2xhc3MgV0tBY3Rpb25TaGVldEFzc2lzdGFudDsKIEBjbGFzcyBX
S0NvbnRleHRNZW51RWxlbWVudEluZm87CiBAY2xhc3MgV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29u
dHJvbDsKQEAgLTMzMCw2ICszMzIsOSBAQCBlbnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRy
YWN0aW9uIDogYm9vbCB7CiAjZW5kaWYKICAgICBSZXRhaW5QdHI8VUlQcmV2aWV3SXRlbUNvbnRy
b2xsZXI+IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI7CiAjZW5kaWYKKyAgICAKKyAgICBSZWZQdHI8
V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gX3RleHRJbmRpY2F0b3I7CisgICAgUmV0YWluUHRyPFdl
YlRleHRJbmRpY2F0b3JMYXllcj4gX3RleHRJbmRpY2F0b3JMYXllcjsKIAogI2lmIFVTRShVSUNP
TlRFWFRNRU5VKQogICAgIFJldGFpblB0cjxVSVRhcmdldGVkUHJldmlldz4gX2NvbnRleHRNZW51
SW50ZXJhY3Rpb25UYXJnZXRlZFByZXZpZXc7CkBAIC02NzAsNiArNjc1LDEwIEBAIEZPUl9FQUNI
X1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElP
Tl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5G
cmFtZTsKIC0gKHZvaWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWU7CiAKKy0gKHZvaWQpc2V0
VXBUZXh0SW5kaWNhdG9yOihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4pdGV4dEluZGljYXRv
cjsKKy0gKHZvaWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClOU0Fu
aW1hdGlvblByb2dyZXNzOworLSAodm9pZCljbGVhclRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOworCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZFVzZUNvbnRleHRNZW51czsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkQXZvaWRSZXNpemluZ1doZW5JbnB1
dFZpZXdCb3VuZHNDaGFuZ2U7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wg
X3Nob3VsZEF2b2lkU2Nyb2xsaW5nV2hlbkZvY3VzZWRDb250ZW50SXNWaXNpYmxlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggYTYwODY5YTc3ZjkyNTcwYjIwYzlmNzE5M2RhY2QxMDExMjFmYTE3YS4uZjc5
MGU1MDMyNTc4OTU4Yjk4NGFlNmZhZTBmZTgyY2FmYjkwNjY2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC0xMTYsMTEgKzExNiwxMyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZURhdGEuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1RleHRJbmRpY2F0b3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Ub3VjaEFjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElV
dGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+
CisjaW1wb3J0IDxXZWJDb3JlL1dlYlRleHRJbmRpY2F0b3JMYXllci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Xcml0aW5nRGlyZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViU2VsZWN0aW9uUmVj
dC5oPiAvLyBGSVhNRTogV2ViS2l0IHNob3VsZCBub3QgaW5jbHVkZSBXZWJLaXRMZWdhY3kgaGVh
ZGVycyEKICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CkBAIC05NTgyLDYg
Kzk1ODQsNjcgQEAgLSAodm9pZClfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGlu
Z0ltYWdlRXh0cmFjdGlvbjooV2ViS2l0OjpQcm9jZWVkV2kKIAogI2VuZGlmIC8vIEVOQUJMRShJ
TUFHRV9FWFRSQUNUSU9OKQogCistICh2b2lkKXNldFVwVGV4dEluZGljYXRvcjooUmVmPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3IKK3sKKyAgICBpZiAoX3RleHRJbmRpY2F0
b3IgPT0gdGV4dEluZGljYXRvci5wdHIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFtz
ZWxmIHRlYXJkb3duVGV4dEluZGljYXRvckxheWVyXTsKKyAgICBbTlNPYmplY3QgY2FuY2VsUHJl
dmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHN0
YXJ0RmFkZU91dCkgb2JqZWN0Om5pbF07CisgICAgCisgICAgX3RleHRJbmRpY2F0b3IgPSB0ZXh0
SW5kaWNhdG9yLnB0cigpOworCisgICAgQ0dSZWN0IGZyYW1lID0gX3RleHRJbmRpY2F0b3ItPnRl
eHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKTsKKyAgICBfdGV4dEluZGljYXRv
ckxheWVyID0gYWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JMYXllciBhbGxvY10gaW5pdFdpdGhG
cmFtZTpmcmFtZQorICAgICAgICB0ZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3IgbWFyZ2luOkNH
U2l6ZVplcm8gb2Zmc2V0OkNHUG9pbnRaZXJvXSk7CisgICAgCisgICAgW1tzZWxmIGxheWVyXSBh
ZGRTdWJsYXllcjpfdGV4dEluZGljYXRvckxheWVyLmdldCgpXTsKKworICAgIGlmIChfdGV4dElu
ZGljYXRvci0+cHJlc2VudGF0aW9uVHJhbnNpdGlvbigpICE9IFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpOb25lKQorICAgICAgICBbX3RleHRJbmRpY2F0b3JM
YXllciBwcmVzZW50XTsKKyAgICAKKyAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9y
KHN0YXJ0RmFkZU91dCkgd2l0aE9iamVjdDpzZWxmIGFmdGVyRGVsYXk6V2ViQ29yZTo6dGltZUJl
Zm9yZUZhZGVTdGFydHMudmFsdWUoKV07Cit9CisKKy0gKHZvaWQpY2xlYXJUZXh0SW5kaWNhdG9y
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbgorewor
ICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yID0gV1RGTW92
ZShfdGV4dEluZGljYXRvcik7CisgICAgCisgICAgaWYgKFtfdGV4dEluZGljYXRvckxheWVyIGlz
RmFkaW5nT3V0XSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHRleHRJbmRpY2F0b3IgJiYg
W190ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2FudHNNYW51YWxBbmltYXRpb246KnRleHRJ
bmRpY2F0b3JdICYmIFtfdGV4dEluZGljYXRvckxheWVyIGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0g
JiYgYW5pbWF0aW9uID09IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246
OkZhZGVPdXQpIHsKKyAgICAgICAgW3NlbGYgc3RhcnRGYWRlT3V0XTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIFtzZWxmIHRlYXJkb3duVGV4dEluZGljYXRvckxheWVyXTsKK30KKwor
LSAodm9pZClzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6KGZsb2F0KWFuaW1hdGlv
blByb2dyZXNzCit7CisgICAgaWYgKCFfdGV4dEluZGljYXRvcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0QW5pbWF0aW9uUHJvZ3Jlc3M6YW5pbWF0aW9u
UHJvZ3Jlc3NdOworfQorCistICh2b2lkKXRlYXJkb3duVGV4dEluZGljYXRvckxheWVyCit7Cisg
ICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAgIF90ZXh0
SW5kaWNhdG9yTGF5ZXIgPSBuaWw7Cit9CisKKy0gKHZvaWQpc3RhcnRGYWRlT3V0Cit7CisgICAg
W190ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0RmFkaW5nT3V0OllFU107CisgICAgICAgIAorICAgIFtf
dGV4dEluZGljYXRvckxheWVyIGhpZGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6W3dlYWtTZWxmID0g
V2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZildIHsKKyAgICAgICAgYXV0byBzdHJvbmdT
ZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIFtzdHJvbmdTZWxmIHRlYXJkb3duVGV4dElu
ZGljYXRvckxheWVyXTsKKyAgICB9XTsKK30KKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRp
b25zQWZ0ZXIubW0+CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLmgKaW5kZXggNThiZTRhMmNhZTQ1MzdlNTQ2M2JkZDFiNmI1YmUxNjhi
YTY5Mjc2Yy4uNjc1NWYwMWIzODg0ODA4NWIwYjVhZDJhYWM4Y2UxZDFlNDRiN2FkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTE1
Niw4ICsxNTYsOCBAQCBwcml2YXRlOgogCiAgICAgUmVmPFdlYkNvcmU6OlZhbGlkYXRpb25CdWJi
bGU+IGNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBX
ZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpTZXR0aW5ncyYpIGZpbmFsOwogCi0gICAgdm9pZCBz
ZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFyVGV4dElu
ZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKSBv
dmVycmlkZTsKKyAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpIG92ZXJyaWRlOworICAgIHZv
aWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmlt
YXRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzKGZsb2F0KSBvdmVycmlkZTsKIAogICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggNzg4YTI3OTZk
YmIxY2Y0NTllZmUxMjRjNmYwZDdkMGE2OThiN2U5Yi4uNjE0YjU5NjZjNjRhYmNjNGQ0MTBiMDNk
YWQ0YTcwMzljZGZmYzQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtNTY5LDEyICs1NjksMTIgQEAgdm9pZCBQYWdlQ2xpZW50
SW1wbDo6Y2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKCkK
ICAgICBtX2ltcGwtPmNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFpbkZyYW1lTmF2aWdh
dGlvbigpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxU
ZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
TGlmZXRpbWUgbGlmZXRpbWUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9y
KFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
TGlmZXRpbWUgbGlmZXRpbWUpCiB7CiAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJ
bmRpY2F0b3IuZ2V0KCksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xl
YXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmlt
YXRpb24gZGlzbWlzc2FsQW5pbWF0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0
SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gZGlzbWlz
c2FsQW5pbWF0aW9uKQogewogICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbihkaXNtaXNzYWxBbmltYXRpb24pOwogfQpAQCAtNjcyLDkgKzY3Miw5IEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0IERpY3Rpb25hcnlQ
b3B1cEluZm8mIGRpY3RpCiAgICAgbV9pbXBsLT5wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cCgp
OwogCiAgICAgRGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8s
IG1fdmlldywgW3RoaXNdKFRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAg
bV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZTo6UGVybWFuZW50KTsKKyAgICAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9y
KHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50
KTsKICAgICB9LCBudWxscHRyLCBbdGhpc10oKSB7Ci0gICAgICAgIG1faW1wbC0+Y2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlz
c2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICAgICAgbV9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5v
bmUpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQppbmRleCA5YmFhOGJlMjRjNzdj
NzQ2ZTc5M2Y0MTM3OGRjZDAwYjNjZjRjNGZlLi5iZWMwZGMxMjhjNTA2N2Q2ZTkyN2RmY2VkYjQ3
YTdmYmVkODJlNDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTQ5MCw5ICs0OTAsOSBAQCAt
IChpZDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250
cm9sbGVyRm9yVGV4dAogICAgIF92aWV3SW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAo
KTsKIAogICAgIHJldHVybiBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250
cm9sbGVyRm9yUG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgX3ZpZXcsIFtzZWxmXShXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIF92aWV3SW1wbC0+c2V0
VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
TGlmZXRpbWU6OlBlcm1hbmVudCk7CisgICAgICAgIF92aWV3SW1wbC0+c2V0VGV4dEluZGljYXRv
cih0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVu
dCk7CiAgICAgfSwgbnVsbHB0ciwgW3NlbGZdKCkgewotICAgICAgICBfdmlld0ltcGwtPmNsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgICAgIF92aWV3SW1wbC0+Y2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uOjpOb25lKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzZjJl
OWQ1MGZmYjAwMWMyNDZkNDE3MTBlMDNiNDQ5YmRjNTg2Nzg0Li45NTE5MTdjMjRkOWYwMmU4MDY2
OWJjZWRjYmM4M2ExMDA0NWIzNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODgsNiAr
ODgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkpCiAjaW5jbHVkZSAiUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIgpAQCAtMTI3MSw2ICsx
MjcyLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3Jl
OjpBcHBIaWdobGlnaHQmJiBoaWdobGlnaHQpIGNvbnN0CiB9CiAjZW5kaWYKIAordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRhdGEmIGluZGljYXRvckRhdGEpIGNvbnN0Cit7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U2V0VGV4dEluZGljYXRvcihpbmRpY2F0b3JEYXRhLCBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpUZW1wb3JhcnkpKSk7
Cit9CisKIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OnNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5n
ZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplSW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlU3Ry
aW5nLCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKICAgICBTdHJpbmcgcmVzdWx0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCmluZGV4IDRlZWYxZjhhZDFjNTJhYzA1MTY1ODJiYTE2MTU1Y2FkMDFhMTU1NzIu
LjQ4M2FiMTFkYzExMzk2MWZjMjQ4ZDYzODliN2RhMjUwYmRjMGM4YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKQEAgLTM1Miw2ICszNTIsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYm
KSBjb25zdCBmaW5hbDsKICNlbmRpZgorICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKFdF
Ql9DUllQVE8pCiAgICAgYm9vbCB3cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYs
IFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IDAwOTAxNGE1MzZiZjlk
NjhkZmJlNWRhMTQwZGRiNTE3YWVhY2QyMDcuLmNlMjFkNjdjNDhiOTYwOWVmYTM5NTY2YWYwMjkz
YjkzYWNjZWRkY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTM4MCw3ICszODAsNyBAQCBib29sIEZpbmRDb250cm9s
bGVyOjp1cGRhdGVGaW5kSW5kaWNhdG9yKEZyYW1lJiBzZWxlY3RlZEZyYW1lLCBib29sIGlzU2hv
d2luZ092ZQogCiAgICAgbV9maW5kSW5kaWNhdG9yUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoaW5k
aWNhdG9yLT5zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkpOwogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
ZXRUZXh0SW5kaWNhdG9yKGluZGljYXRvci0+ZGF0YSgpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4o
aXNTaG93aW5nT3ZlcmxheSA/IFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50
IDogVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpKSk7CisgICAgbV93ZWJQ
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNh
dG9yLT5kYXRhKCksIHN0YXRpY19jYXN0PHVpbnQ2NF90Pihpc1Nob3dpbmdPdmVybGF5ID8gV2Vi
Q29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnQgOiBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKICNlbmRpZgogICAgIG1faXNTaG93aW5nRmlu
ZEluZGljYXRvciA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjNkNDcxNmE4OTMzZDlm
MjQyZjhlZjEyMTVhODY2MjM0MGY4OTdhNS4uOTQyZjI1NzEwZjQ5ZmE5YjFjMDQ4ZWYzNzhkMzM2
MGJkYjM3OThhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE1NCw2ICsxNTQsNyBAQCBwcml2YXRl
OgogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0
KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKICNlbmRpZgorICAgIHZvaWQg
c2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0
IGZpbmFsOwogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICBib29sIHJlcXVlc3RQb2lu
dGVyTG9jaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDQ1MzljZTZmNjRkMDBiMGJi
MDAyODNlYWM4MTUzMjk3OTAwNGM0ZTguLmI3YjM4ZTU4ODM5NmU1NGIxODMxMmE5YzY1MzJhMjBm
NDkyMWZkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTcyMCw2ICs3MjAsMTEgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYm
KSBjb25zdAogfQogI2VuZGlmCiAKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUZXh0SW5kaWNh
dG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJiBpbmRpY2F0b3JEYXRhKSBjb25z
dAoreworfQorCisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJlcXVlc3RQb2ludGVyTG9jaygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAwZmUyYTUwOTZjN2UyNmYzMjAzMjVlMzY4YmZm
MGRiYjlmMDcyYzc2Li42MWQ2ZjRlODY1OTRkY2FiN2U2MTc5MDcwNGI3MDllZjVjY2MyYmUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAg
LTU5NTMsNyArNTk1Myw3IEBAIC0gKHZvaWQpX2xvb2tVcEluRGljdGlvbmFyeUZyb21NZW51Oihp
ZClzZW5kZXIKIAogLSAodm9pZClxdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAog
ewotICAgIFtbc2VsZiBfd2ViVmlld10gX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07
CisgICAgW1tzZWxmIF93ZWJWaWV3XSBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICBb
c3VwZXIgcXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLm1tCmluZGV4IGNlNjJiZmE1MTYxNzdjOGMzNmFlZGQ3YmE1ZmE0YzI3NTEwZDZmNzEu
LmJlNWI2YTJmYjAxNTRiYzM2ZmNkMzhiYjFkYWQ4OWUwOWM3MGUzM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdl
YlZpZXcgKil3ZWJWaWV3IGRpZEhhbmRsZVNjcm9sbFdoZWVsOihOU0V2ZW50ICopZXZlbnQKIHsK
ICAgICBbX2N1cnJlbnRRTFByZXZpZXdNZW51SXRlbSBjbG9zZV07CiAgICAgW3NlbGYgX2NsZWFy
SW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uOjpOb25lXTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRp
b246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07CiB9CiAK
IC0gKE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25S
ZWNvZ25pemVyCkBAIC0xMzksNyArMTM5LDcgQEAgLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0
aW9uCiAgICAgfQogCiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAg
IFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbX3dlYlZp
ZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAKIC0gKHZvaWQpX2NsZWFySW1tZWRp
YXRlQWN0aW9uU3RhdGUKQEAgLTI1MSw3ICsyNTEsNyBAQCAtICh2b2lkKWltbWVkaWF0ZUFjdGlv
blJlY29nbml6ZXJEaWRDYW5jZWxBbmltYXRpb246KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJl
YwogCiAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6MF07
CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBf
Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dElu
ZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1h
dGlvbjo6Tm9uZV07CiAgICAgW193ZWJWaWV3IF9zZXRNYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlv
bjpOT107CiB9CiAKQEAgLTI5Myw3ICsyOTMsNyBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25B
bmltYXRpb25Db250cm9sbGVyPilfZGVmYXVsdEFuaW1hdGlvbkNvbnRyb2xsZXIKICAgICAgICAg
ICAgIGF1dG8gbGlua1JhbmdlID0gbWFrZVJhbmdlU2VsZWN0aW5nTm9kZUNvbnRlbnRzKCpfaGl0
VGVzdFJlc3VsdC5VUkxFbGVtZW50KCkpOwogICAgICAgICAgICAgYXV0byBpbmRpY2F0b3IgPSBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UobGlua1JhbmdlLCB7IFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JPcHRpb246OlVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29udGVu
dEZvckNvbXBsZXhSYW5nZXMgfSwgV2ViQ29yZTo6VGV4dEluZGljYXRvclByZXNlbnRhdGlvblRy
YW5zaXRpb246OkZhZGVJbik7CiAgICAgICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAg
ICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGlt
ZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAg
ICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExp
ZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKIAogICAg
ICAgICAgICAgUUxQcmV2aWV3TWVudUl0ZW0gKml0ZW0gPSBbTlNNZW51SXRlbSBzdGFuZGFyZFF1
aWNrTG9va01lbnVJdGVtXTsKICAgICAgICAgICAgIGl0ZW0ucHJldmlld1N0eWxlID0gUUxQcmV2
aWV3U3R5bGVQb3BvdmVyOwpAQCAtMzc5LDcgKzM3OSw3IEBAIC0gKE5TUmVjdEVkZ2UpbWVudUl0
ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSBwcmVmZXJyZWRFZGdlRm9yUG9pbnQ6KE5TUG9pbnQp
cG9pCiAtICh2b2lkKW1lbnVJdGVtRGlkQ2xvc2U6KE5TTWVudUl0ZW0gKiltZW51SXRlbQogewog
ICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dlYlZpZXcgX2Ns
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW193ZWJWaWV3IF9jbGVhclRleHRJ
bmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmlt
YXRpb246OkZhZGVPdXRdOwogfQogCiBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50Qm91
bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzRnJvbU5vZGUoV2ViQ29yZTo6Tm9kZSogbm9kZSkK
QEAgLTQ2NCw5ICs0NjQsOSBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250
cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZAogICAgIF9jdXJyZW50
QWN0aW9uQ29udGV4dCA9IFtkZXRlY3RlZEl0ZW0tPmFjdGlvbkNvbnRleHQgY29udGV4dEZvclZp
ZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgewog
ICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkgewogICAgICAgICBpZiAoaW5kaWNh
dG9yKQotICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Ig
d2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFu
ZW50XTsKKyAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9y
IHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07
CiAgICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5kbGVyOl4oKSB7Ci0gICAgICAgIFtfd2ViVmll
dyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW193ZWJWaWV3IF9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNt
aXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwogCiAgICAgW19jdXJyZW50QWN0aW9u
Q29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9T
Y3JlZW46ZGV0ZWN0ZWRJdGVtLT5ib3VuZGluZ0JveF1dOwpAQCAtNDk3LDkgKzQ5Nyw5IEBAIC0g
KGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250
cm9sbGVyRm9yRGF0YURldGVjdGVkCiAgICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0gW2FjdGlv
bkNvbnRleHQgY29udGV4dEZvclZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25T
dGFydGVkSGFuZGxlcjpeKCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkg
ewogICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0
SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4
dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
TGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5kbGVyOl4o
KSB7Ci0gICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsK
KyAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNv
cmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwog
CiAgICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcu
d2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46ZWxlbWVudEJvdW5kaW5nQm94SW5XaW5kb3dDb29y
ZGluYXRlc0Zyb21Ob2RlKF9oaXRUZXN0UmVzdWx0LlVSTEVsZW1lbnQoKSldXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3MjY0YmZkY2Q3MmRlMTM2
OTYwYTMyMzhjYjAwMjE2ZmI4OTJmZjdjLi45OTJmM2UwOTc0ZDY0NWJmZTI1ZDczMTk4MzJkODQx
Zjc3MGVlNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CkBAIC05MTAwLDExICs5MTAwLDExIEBAIC0gKGlkKV9hbmltYXRpb25Db250cm9sbGVyRm9yRGlj
dGlvbmFyeUxvb2t1cFBvcHVwSW5mbzooY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyCiAgICAgW3Nl
bGYgX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAogICAgIHJldHVybiBXZWJDb3JlOjpE
aWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVyRm9yUG9wdXAoZGljdGlvbmFyeVBv
cHVwSW5mbywgc2VsZiwgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0
b3IpIHsKLSAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRo
TGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRd
OworICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZl
dGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSwg
W3NlbGZdKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSB7CiAg
ICAgICAgIHJldHVybiBbc2VsZiBfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6cmVjdEluUm9vdFZp
ZXdDb29yZGluYXRlc107CiAgICAgfSwgW3NlbGZdKCkgewotICAgICAgICBbc2VsZiBfY2xlYXJU
ZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW3NlbGYgX2NsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlv
bjo6RmFkZU91dF07CiAgICAgfSk7CiB9CiAKQEAgLTkxMjAsMTAgKzkxMjAsMTAgQEAgLSAodm9p
ZClfc2V0UHJlc3N1cmVFdmVudDooTlNFdmVudCAqKWV2ZW50CiAKIC0gKHZvaWQpX3NldFRleHRJ
bmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IKIHsKLSAgICBb
c2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgW3NlbGYgX3Nl
dFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dElu
ZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnRdOwogfQogCi0tICh2b2lkKV9zZXRUZXh0SW5kaWNh
dG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZToo
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKWxpZmV0aW1lCistICh2b2lkKV9z
ZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdp
dGhMaWZldGltZTooV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKWxpZmV0aW1lCiB7CiAg
ICAgaWYgKCFfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdykKICAgICAgICAgX3ByaXZhdGUt
PnRleHRJbmRpY2F0b3JXaW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3c+KHNlbGYpOwpAQCAtOTEzMywxMCArOTEzMywxMCBAQCAtICh2b2lkKV9zZXRUZXh0SW5k
aWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGlt
ZTooVwogICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93LT5zZXRUZXh0SW5kaWNhdG9y
KHRleHRJbmRpY2F0b3IsIE5TUmVjdFRvQ0dSZWN0KHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNv
b3JkaW5hdGVzKSwgbGlmZXRpbWUpOwogfQogCi0tICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uKWFuaW1hdGlvbgorLSAodm9pZClfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjoo
V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb24KIHsKICAg
ICBpZiAoX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cpCi0gICAgICAgIF9wcml2YXRlLT50
ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGlj
YXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAgICAgIF9wcml2YXRl
LT50ZXh0SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dElu
ZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CiAgICAgX3ByaXZhdGUtPnRleHRJ
bmRpY2F0b3JXaW5kb3cgPSBudWxscHRyOwogfQogCkBAIC05MTY4LDE4ICs5MTY4LDE4IEBAIC0g
KHZvaWQpX3Nob3dEaWN0aW9uYXJ5TG9va3VwUG9wdXA6KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25h
cnlQb3B1cEluZm8mKWRpY3Rpb25hCiAgICAgW3NlbGYgX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9v
a3VwXTsKIAogICAgIFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9u
YXJ5UG9wdXBJbmZvLCBzZWxmLCBbc2VsZl0oV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dElu
ZGljYXRvcikgewotICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9y
IHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1h
bmVudF07CisgICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0
aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKICAg
ICB9LCBbc2VsZl0oV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMp
IHsKICAgICAgICAgcmV0dXJuIFtzZWxmIF9jb252ZXJ0UmVjdEZyb21Sb290VmlldzpyZWN0SW5S
b290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICB9LCBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXZWJW
aWV3PihzZWxmKV0oKSB7Ci0gICAgICAgIFt3ZWFrU2VsZi5nZXQoKSBfY2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5p
bWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW3dlYWtTZWxmLmdldCgpIF9jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRp
b246OkZhZGVPdXRdOwogICAgIH0pOwogfQogCiAjaWYgIUVOQUJMRShSRVZFQUwpCiAtICh2b2lk
KV9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3Rp
ZmljYXRpb24KIHsKLSAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsK
KyAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKIH0KICNlbmRpZiAvLyBFTkFC
TEUoUkVWRUFMKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3SW50ZXJuYWwuaAppbmRleCA3MzM3MmEwYmRhMTUzYmZhMzc2MTAyM2NmNDk1ZDc5NmZhNzE4
Y2MxLi5iYWQ1ZmQ4YTE1MGFjZjJjMzdhNTdjMzY0ZjgyMTlkY2Q0MzczMGIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTMx
OSw4ICszMTksOCBAQCBXZWJMYXlvdXRNaWxlc3RvbmVzIGtpdExheW91dE1pbGVzdG9uZXMoT3B0
aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pOwogCiAjaWYgUExBVEZPUk0oTUFDKSAm
JiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29y
ZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvcjsKLS0gKHZvaWQpX3NldFRleHRJbmRpY2F0
b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpbGlmZXRpbWU7Ci0tICh2b2lkKV9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKKy0gKHZvaWQpX3NldFRleHRJbmRpY2F0
b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpbGlmZXRpbWU7CistICh2b2lkKV9jbGVhclRl
eHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uKWFuaW1hdGlvbjsKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Q
cm9ncmVzczooZmxvYXQpcHJvZ3Jlc3M7CiAtICh2b2lkKV9zaG93RGljdGlvbmFyeUxvb2t1cFBv
cHVwOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9uYXJ5UG9wdXBJ
bmZvOwogLSAoaWQpX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEaWN0aW9uYXJ5TG9va3VwUG9wdXBJ
bmZvOihjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9uYXJ5UG9wdXBJ
bmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAzMTk4ZGUyMTllODkyNzFmZTA4ZTM2MmQyNTg1MjJi
ZmQzY2MzODlmLi5lNDcwNTE2NWQwZDA4YjYwMTcwODRjZjZjYTA1ZTcxZWE3MDBhNzVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaApAQCAtMTY2LDYgKzE2Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOwogICAgIHZvaWQg
ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKICNlbmRp
ZgorICAgIAorICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFsIHsgfQogCiAgICAgdm9pZCB3aGVlbEV2ZW50SGFuZGxl
cnNDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQogCg==
</data>
<flag name="commit-queue"
          id="449492"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428556</attachid>
            <date>2021-05-13 13:36:15 -0700</date>
            <delta_ts>2021-05-13 13:40:11 -0700</delta_ts>
            <desc>a modest proposal</desc>
            <filename>bug-225727-20210513133614.patch</filename>
            <type>text/plain</type>
            <size>53911</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjZTAzODVjY2Q4NzM1
MGIwYjg4YzM4MDA3ZWY5NmU2OTMxZDMwOS4uMWNiMmU2MDEwZTAyMzQ0MzA2YjEwZDAxYzIxN2Ix
NDNjYmI5M2Y5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEzICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgdG8gYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAg
IFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9B
cHBIaWdobGlnaHRTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcEhpZ2hsaWdodFN0
b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdobGlnaHRBbmRTY3JvbGwpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGll
bnQ6OnNldFRleHRJbmRpY2F0b3IgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvY29j
b2EvV2ViVGV4dEluZGljYXRvckxheWVyLmg6CisgICAgICAgICogcGFnZS9jb2NvYS9XZWJUZXh0
SW5kaWNhdG9yTGF5ZXIubW06CisgICAgICAgICgtW1dlYlRleHRJbmRpY2F0b3JMYXllciBpbml0
V2l0aEZyYW1lOnRleHRJbmRpY2F0b3I6bWFyZ2luOm9mZnNldDpdKToKKyAgICAgICAgKiBwYWdl
L21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tOgorCiAyMDIxLTA1LTEyICBGcmVkZXJpYyBXYW5n
ICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3NlbGVjdGlv
bi0+aXNOb25lKCkpIGZhaWxzIGluIERvY3VtZW50OjpyZW1vdmVkTGFzdFJlZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAyMzk2ZmUxMjAwODBhOGY2NWMzMDAzN2FmOTg4YjgxNTFjZjE2YzI0Li5hYTc5MDk4NjQzMjA0
ZDIzYzdhNWQzOGEwYTkxM2U0YWJmYTFkMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisy
MDIxLTA1LTEzICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHRleHRJbmRpY2F0b3IgYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9s
bC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcy
NworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgVXNlIGZhY3Rv
cmVkIG91dCB0ZXh0SW5kaWNhdG9yIGNvZGUgdG8gYWRkIGEgYm91bmNlIHRvIGFuIGFwcEhpZ2hs
aWdodAorICAgICAgICB3aGVuIGl0IGlzIHNjcm9sbGVkIHRvLgorCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OnNldFRleHRJbmRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6Y2xlYXJUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZW5kRWRpdGluZ10pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNldFVwVGV4dEluZGljYXRvcjpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBjbGVhclRleHRJbmRpY2F0b3I6XSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IHRlYXJkb3duVGV4dEluZGljYXRvckxheWVyXSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgc3RhcnRGYWRlT3V0XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OnNldFRleHRJbmRpY2F0b3IgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMjEtMDUtMTMgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjI3NzI2Mik6IHRlc3QgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0
b3JzL2ZvY3VzLXZpc2libGUtMDAyLmh0bWwgaXMgY3Jhc2hpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwppbmRleCAzYjhhMzU0YjAxYzVjYWRmYzI3NzlhZDk5MTg4YThlNTIyNjRlNTQ4Li43
MWJkYjQ1MmQxNmY3Njg1MTczMmY4MGQxMzMyYzFlMTk1OGNhMmRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDUtMTMgIE1lZ2FuIEdhcmRuZXIg
IDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgdGV4dEluZGljYXRvciBi
b3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xsLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VGltIEhvcnRvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBjb25zdCk6CisKIDIwMjEtMDUtMTIg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBOb3RpZmljYXRpb24u
cmVxdWVzdFBlcm1pc3Npb24oKSBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCmluZGV4IDMwZThjMWNmZDU0Njk0ZTU3NGRkZmYxZjBlZWNmMTZjNjQyYTM2
MDEuLmIwYmM4NzczMTk5NDU1YTAzZGJmOWE2YWVkYTk3MDRlMzZmMGUzNWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNS0xMyAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNh
dG9yIHRvIGJvdW5jZSBmb3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZp
ZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lmg6CisKIDIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBzaG91bGQgcmV0dXJu
IGEgUHJvbWlzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcAppbmRleCAwZmI2ZGNlYTQwZjhmOTc0NGMwOWQ4MmEy
ZDA5MzkxNTg2NzRlMzNlLi5kYTRmNzBhYzJmYzYxNjcxZjc3YTc3YjE3MDQ2Nzk2NGI4OWYzOTRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGln
aHRTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBI
aWdobGlnaHRTdG9yYWdlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkFwcEhpZ2hs
aWdodC5oIgogI2luY2x1ZGUgIkFwcEhpZ2hsaWdodFJhbmdlRGF0YS5oIgogI2luY2x1ZGUgIkNo
cm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9y
LmgiCkBAIC00MCw2ICs0MSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5o
IgogI2luY2x1ZGUgIlNpbXBsZVJhbmdlLmgiCiAjaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKKyNp
bmNsdWRlICJUZXh0SW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTI2MCw4ICsyNjIsMTMgQEAgYm9vbCBBcHBIaWdobGlnaHRT
dG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKEFwcEhpZ2hsaWdodFJh
bmdlRGEKICAgICAKICAgICBzdHJvbmdEb2N1bWVudC0+YXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKS5h
ZGRBcHBIaWdobGlnaHQoU3RhdGljUmFuZ2U6OmNyZWF0ZSgqcmFuZ2UpKTsKICAgICAKLSAgICBp
ZiAoc2Nyb2xsID09IFNjcm9sbFRvSGlnaGxpZ2h0OjpZZXMpCisgICAgaWYgKHNjcm9sbCA9PSBT
Y3JvbGxUb0hpZ2hsaWdodDo6WWVzKSB7CisgICAgICAgIGF1dG8gdGV4dEluZGljYXRvciA9IFRl
eHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhSYW5nZShyYW5nZS52YWx1ZSgpLCB7IFRleHRJbmRpY2F0
b3JPcHRpb246OkRvTm90Q2xpcFRvVmlzaWJsZVJlY3QgfSwgV2ViQ29yZTo6VGV4dEluZGljYXRv
clByZXNlbnRhdGlvblRyYW5zaXRpb246OkJvdW5jZSk7CisgICAgICAgIGlmICh0ZXh0SW5kaWNh
dG9yKQorICAgICAgICAgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5z
ZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3ItPmRhdGEoKSk7CisgICAgICAgIAogICAgICAg
ICBUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2Ugc2VsZWN0aW9uQ2hhbmdlKCpzdHJvbmdEb2N1bWVu
dCwgeyByYW5nZS52YWx1ZSgpIH0sIHsgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpSZXZlYWxT
ZWxlY3Rpb24sIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21vb3RoU2Nyb2xsLCBUZW1wb3Jh
cnlTZWxlY3Rpb25PcHRpb246Ok92ZXJyaWRlU21vb3RoU2Nyb2xsRmVhdHVyZUVuYWJsbWVudCB9
KTsKKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAKaW5kZXggZDllMDM4N2M5NmIyOGQzODdhYmNiOGIxNzczYjAxMGJiMjA2NzM1
ZS4uN2I5MDI4MWNhNzYyNzdiMzdmNGY5NmZlZTRlYzE1MzkyMmVjNGI1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTU1NSw2ICs1NTUsMTAgQEAgdm9pZCBFbXB0
eUNocm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYpIGNvbnN0CiB9
CiAjZW5kaWYKIAordm9pZCBFbXB0eUNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvcihjb25z
dCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7Cit9CisKIERpc3BsYXlSZWZyZXNoTW9uaXRv
ckZhY3RvcnkqIEVtcHR5Q2hyb21lQ2xpZW50OjpkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5
KCkgY29uc3QKIHsKICAgICByZXR1cm4gRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5
OjpzaGFyZWRFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBkYjE1YjA5OGE0OTBhZTAzMzBlNTJjODBlMDAyOTQy
MmZhNTRhZmJmLi5hNzFkYzg1NGVmNTBjMzU5MmEwNGY1Mjc5YjVkNTE0OTk4NTE0ODU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xNDksNiArMTQ5LDggQEAgY2xhc3Mg
RW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIHN0b3Jl
QXBwSGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisgICAg
dm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0b3JEYXRhJikgY29uc3QgZmlu
YWw7CisKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1v
bml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFt
ZSYsIEZpbGVDaG9vc2VyJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRl
eCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZjODg2YTUxYTM3OGYyZDdkLi4xZmQ3YjA4ZTc3YTE2
YThkNzc0M2FiMTNmN2Y3MjFkYWJkMDliNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsK
IHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0
aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0
IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0IFdp
bmRvd0ZlYXR1cmVzOwogCkBAIC0zMTUsNiArMzE2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QgPSAw
OwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0
SW5kaWNhdG9yRGF0YSYpIGNvbnN0ID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFu
ZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NoYXJl
U2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgQ29udGFjdHNSZXF1ZXN0RGF0YSYsIFdURjo6Q29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8Q29udGFjdEluZm8+PiYmKT4mJiBj
YWxsYmFjaykgeyBjYWxsYmFjayhXVEY6Om51bGxvcHQpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dElu
ZGljYXRvci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1ZjIu
LjVlZjg1YTI5YmY2YjM4OWJkMGIxOGI0Nzk0YjIyMjQzYmYyNmE0N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvVGV4dEluZGljYXRvci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8d3RmL0VudW1U
cmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksNiArNDAsMjUgQEAgY2xhc3MgR3JhcGhp
Y3NDb250ZXh0OwogCiBzdHJ1Y3QgU2ltcGxlUmFuZ2U7CiAKK2NvbnN0ZXhwciBmbG9hdCBkcm9w
U2hhZG93Qmx1clJhZGl1cyA9IDI7Citjb25zdGV4cHIgZmxvYXQgcmltU2hhZG93Qmx1clJhZGl1
cyA9IDE7Citjb25zdGV4cHIgU2Vjb25kcyBib3VuY2VBbmltYXRpb25EdXJhdGlvbiA9IDAuMTJf
czsKK2NvbnN0ZXhwciBTZWNvbmRzIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5pbWF0
aW9uRHVyYXRpb24gKyAwLjJfczsKK2NvbnN0ZXhwciBmbG9hdCBtaWRCb3VuY2VTY2FsZSA9IDEu
MjU7CisKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckxpZmV0aW1lIDogdWludDhfdCB7CisgICAg
Ly8gVGhlIFRleHRJbmRpY2F0b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRpc21p
c3NlZC4KKyAgICBQZXJtYW5lbnQsCisKKyAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQg
YnJpZWZseSBpbmRpY2F0ZSB0aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21pc3Mu
CisgICAgVGVtcG9yYXJ5Cit9OworCitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxB
bmltYXRpb24gOiB1aW50OF90IHsKKyAgICBOb25lLAorICAgIEZhZGVPdXQKK307CisKIC8vIEZJ
WE1FOiBNb3ZlIFByZXNlbnRhdGlvblRyYW5zaXRpb24gdG8gVGV4dEluZGljYXRvcldpbmRvdywg
YmVjYXVzZSBpdCdzIGFib3V0IHByZXNlbnRhdGlvbi4KIGVudW0gY2xhc3MgVGV4dEluZGljYXRv
clByZXNlbnRhdGlvblRyYW5zaXRpb24gOiB1aW50OF90IHsKICAgICBOb25lLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmgKaW5kZXggZmQx
M2QwNDBlZmZiNzViMGVhMDA0ZWE1NTFlMzIyMTU0YWUxOGZhZi4uYmViZjkzYTM2ZWQ3MGU2YjMw
OWRlODk1ODFhMTgzNjY1ZTM4YzFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9j
b2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Nv
Y29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCi1AaW50ZXJmYWNlIFdl
YlRleHRJbmRpY2F0b3JMYXllciA6IENBTGF5ZXIgeworV0VCQ09SRV9FWFBPUlQgQGludGVyZmFj
ZSBXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgOiBDQUxheWVyIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6
VGV4dEluZGljYXRvcj4gX3RleHRJbmRpY2F0b3I7CiAgICAgUmV0YWluUHRyPE5TQXJyYXk+IF9i
b3VuY2VMYXllcnM7CiAgICAgQ0dTaXplIF9tYXJnaW47CkBAIC01MywzICs1Myw0IEBACiBAcHJv
cGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzRmFkaW5nT3V0KSBCT09MIGZhZGluZ091dDsKIAog
QGVuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRp
Y2F0b3JMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRv
ckxheWVyLm1tCmluZGV4IGI4YzRkOGYwNjdiYWNlZDA5YTgxMTgwODcxMDMwNmM1N2E3OTQzMDAu
LjRkMWE1ODRmMWIwMjgwNmE3M2MwZDFlOWEwODhiNmQ4MWNjMDAxODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1tCkBAIC0zMCw2
ICszMCw3IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIlBhdGhVdGls
aXRpZXMuaCIKICNpbXBvcnQgIlRleHRJbmRpY2F0b3IuaCIKKyNpbXBvcnQgIlRleHRJbmRpY2F0
b3JXaW5kb3cuaCIKICNpbXBvcnQgIldlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5o
IgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9z
cGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgpAQCAtMzgsMTkgKzM5LDE0IEBACiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KICNlbmRpZgogCi1jb25zdGV4cHIgQ0ZUaW1lSW50
ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjEyOwogY29uc3RleHByIENGVGltZUlu
dGVydmFsIGJvdW5jZVdpdGhDcm9zc2ZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIGNvbnN0
ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlSW5BbmltYXRpb25EdXJhdGlvbiA9IDAuMTU7Ci1jb25z
dGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmltYXRp
b25EdXJhdGlvbiArIDAuMjsKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlT3V0QW5pbWF0
aW9uRHVyYXRpb24gPSAwLjM7CiAKLWNvbnN0ZXhwciBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxlID0g
MS4yNTsKIGNvbnN0ZXhwciBDR0Zsb2F0IGJvcmRlcldpZHRoID0gMDsKIGNvbnN0ZXhwciBDR0Zs
b2F0IGNvcm5lclJhZGl1cyA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0
WCA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WSA9IDE7Ci1jb25zdGV4
cHIgQ0dGbG9hdCBkcm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Ci1jb25zdGV4cHIgQ0dGbG9hdCBy
aW1TaGFkb3dCbHVyUmFkaXVzID0gMTsKIAogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgdGV4
dExheWVyS2V5ID0gQCJUZXh0TGF5ZXIiOwogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgZHJv
cFNoYWRvd0xheWVyS2V5ID0gQCJEcm9wU2hhZG93TGF5ZXIiOwpAQCAtMTMyLDEzICsxMjgsMTIg
QEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNh
dG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRd
KSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAKKyAgICBzZWxmLmFuY2hvclBvaW50ID0gQ0dQ
b2ludFplcm87CiAgICAgc2VsZi5mcmFtZSA9IGZyYW1lOwogCiAgICAgX3RleHRJbmRpY2F0b3Ig
PSAmdGV4dEluZGljYXRvcjsKICAgICBfbWFyZ2luID0gbWFyZ2luOwogCi0gICAgc2VsZi5hbmNo
b3JQb2ludCA9IENHUG9pbnRaZXJvOwotCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdl
PiBjb250ZW50c0ltYWdlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBjb250ZW50c0ltYWdlTG9n
aWNhbFNpemUgeyAxLCAxIH07CiAgICAgaWYgKGF1dG8qIGNvbnRlbnRJbWFnZSA9IF90ZXh0SW5k
aWNhdG9yLT5jb250ZW50SW1hZ2UoKSkgewpAQCAtMTkyLDcgKzE4Nyw3IEBAIC0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29yZTo6
VGV4dEluZGljYXRvCiAgICAgICAgIFJldGFpblB0cjxDQUxheWVyPiBkcm9wU2hhZG93TGF5ZXIg
PSBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwogICAgICAgICBbZHJvcFNoYWRvd0xh
eWVyIHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVk
XV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93Q29sb3I6ZHJvcFNoYWRvd0Nv
bG9yLmdldCgpXTsKLSAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6ZHJv
cFNoYWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd1Jh
ZGl1czpXZWJDb3JlOjpkcm9wU2hhZG93Qmx1clJhZGl1c107CiAgICAgICAgIFtkcm9wU2hhZG93
TGF5ZXIgc2V0U2hhZG93T2Zmc2V0OkNHU2l6ZU1ha2UoZHJvcFNoYWRvd09mZnNldFgsIGRyb3BT
aGFkb3dPZmZzZXRZKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0
cmFuc2xhdGVkUGF0aC5wbGF0Zm9ybVBhdGgoKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIg
c2V0U2hhZG93T3BhY2l0eToxXTsKQEAgLTIwNCw3ICsxOTksNyBAQCAtIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJ
bmRpY2F0bwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRp
c2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVy
IHNldEZyYW1lOnllbGxvd0hpZ2hsaWdodFJlY3RdOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIg
c2V0U2hhZG93Q29sb3I6cmltU2hhZG93Q29sb3IuZ2V0KCldOwotICAgICAgICBbcmltU2hhZG93
TGF5ZXIgc2V0U2hhZG93UmFkaXVzOnJpbVNoYWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbcmlt
U2hhZG93TGF5ZXIgc2V0U2hhZG93UmFkaXVzOldlYkNvcmU6OnJpbVNoYWRvd0JsdXJSYWRpdXNd
OwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFuc2xhdGVkUGF0aC5w
bGF0Zm9ybVBhdGgoKV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPZmZzZXQ6
Q0dTaXplWmVyb107CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPcGFjaXR5OjFd
OwpAQCAtMjQ1LDcgKzI0MCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0FLZXlmcmFtZUFuaW1hdGlv
bj4gY3JlYXRlQm91bmNlQW5pbWF0aW9uKENGVGltZUludGVydmFsIGR1cmF0CiAgICAgUmV0YWlu
UHRyPENBS2V5ZnJhbWVBbmltYXRpb24+IGJvdW5jZUFuaW1hdGlvbiA9IFtDQUtleWZyYW1lQW5p
bWF0aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOkAidHJhbnNmb3JtIl07CiAgICAgW2JvdW5jZUFu
aW1hdGlvbiBzZXRWYWx1ZXM6QFsKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zv
cm0zRDpDQVRyYW5zZm9ybTNESWRlbnRpdHldLAotICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhD
QVRyYW5zZm9ybTNEOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUobWlkQm91bmNlU2NhbGUsIG1pZEJv
dW5jZVNjYWxlLCAxKV0sCisgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6
Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShXZWJDb3JlOjptaWRCb3VuY2VTY2FsZSwgV2ViQ29yZTo6
bWlkQm91bmNlU2NhbGUsIDEpXSwKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zv
cm0zRDpDQVRyYW5zZm9ybTNESWRlbnRpdHldCiAgICAgICAgIF1dOwogICAgIFtib3VuY2VBbmlt
YXRpb24gc2V0RHVyYXRpb246ZHVyYXRpb25dOwpAQCAtMjk0LDcgKzI4OSw3IEBAIC0gKENGVGlt
ZUludGVydmFsKV9hbmltYXRpb25EdXJhdGlvbgogICAgIGlmIChbc2VsZiBpbmRpY2F0b3JXYW50
c0JvdW5jZToqX3RleHRJbmRpY2F0b3JdKSB7CiAgICAgICAgIGlmIChpbmRpY2F0b3JXYW50c0Nv
bnRlbnRDcm9zc2ZhZGUoKl90ZXh0SW5kaWNhdG9yKSkKICAgICAgICAgICAgIHJldHVybiBib3Vu
Y2VXaXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb247Ci0gICAgICAgIHJldHVybiBib3VuY2VB
bmltYXRpb25EdXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmJvdW5jZUFuaW1hdGlv
bkR1cmF0aW9uLnZhbHVlKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZhZGVJbkFuaW1hdGlvbkR1
cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRv
cldpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5o
CmluZGV4IGMzYjMzZWJhMmM4YmMwZDc1NDU5ZGQyMTUwODliNjUyOWM1ZDMxNWQuLmY3ZmZmN2M3
M2ExZDJmZjc1NGIyNzg3Y2EyMjk5NTIzODAzMTMzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93LmgKQEAgLTM2LDE5ICszNiw2IEBAIE9CSkNfQ0xB
U1MgV2ViVGV4dEluZGljYXRvckxheWVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0g
Y2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIDogdWludDhfdCB7Ci0gICAgLy8gVGhl
IFRleHRJbmRpY2F0b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRpc21pc3NlZC4K
LSAgICBQZXJtYW5lbnQsCi0KLSAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgYnJpZWZs
eSBpbmRpY2F0ZSB0aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21pc3MuCi0gICAg
VGVtcG9yYXJ5Ci19OwotCi1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb24gOiB1aW50OF90IHsKLSAgICBOb25lLAotICAgIEZhZGVPdXQKLX07Ci0KICNpZiBQ
TEFURk9STShNQUMpCiAKIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3cgewpAQCAtNTksOCArNDYs
OCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgVGV4dEluZGljYXRvcldp
bmRvdyhOU1ZpZXcgKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflRleHRJbmRpY2F0b3JXaW5kb3co
KTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8VGV4dElu
ZGljYXRvcj4sIENHUmVjdCBjb250ZW50UmVjdCwgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1l
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNh
dG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBDR1JlY3QgY29udGVudFJlY3QsIFRl
eHRJbmRpY2F0b3JMaWZldGltZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhclRleHRJ
bmRpY2F0b3IoVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbik7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldEFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsKIApAQCAtODEsMyArNjgs
NSBAQCBwcml2YXRlOgogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRp
Y2F0b3JXaW5kb3cubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2lu
ZG93Lm1tCmluZGV4IGY4NWZhNTNiM2I0YTlmNDU5Njk3NzZhMTJjYzQxMWY3OTIyZGY3N2MuLjE4
MGJhYjdkMDJiYzNhNWQxYjBjM2U3NDUyZTFkMzI5MjUyNDk3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQpAQCAtMzgsMTIgKzM4LDYgQEAK
ICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNDb2xvclNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmg+CiAKLWNvbnN0IENGVGltZUludGVydmFsIGJvdW5jZUFuaW1h
dGlvbkR1cmF0aW9uID0gMC4xMjsKLWNvbnN0IENGVGltZUludGVydmFsIHRpbWVCZWZvcmVGYWRl
U3RhcnRzID0gYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gKyAwLjI7Ci0KLWNvbnN0IENHRmxvYXQg
bWlkQm91bmNlU2NhbGUgPSAxLjI1OwotY29uc3QgQ0dGbG9hdCBkcm9wU2hhZG93Qmx1clJhZGl1
cyA9IDI7Ci0KIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC01Niw3ICs1MCw3IEBAIFRleHRJbmRpY2F0b3JXaW5kb3c6OlRleHRJbmRpY2F0b3JXaW5k
b3coTlNWaWV3ICp0YXJnZXRWaWV3KQogCiBUZXh0SW5kaWNhdG9yV2luZG93Ojp+VGV4dEluZGlj
YXRvcldpbmRvdygpCiB7Ci0gICAgY2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAgIGNsZWFyVGV4dEluZGljYXRvcihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKIH0KIAog
dm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCBwcm9n
cmVzcykKQEAgLTY3LDE0ICs2MSwxNCBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldEFu
aW1hdGlvblByb2dyZXNzKGZsb2F0IHByb2dyZXNzKQogICAgIFttX3RleHRJbmRpY2F0b3JMYXll
ciBzZXRBbmltYXRpb25Qcm9ncmVzczpwcm9ncmVzc107CiB9CiAKLXZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb24gYW5pbWF0aW9uKQordm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpjbGVhclRleHRJ
bmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiBhbmltYXRp
b24pCiB7CiAgICAgUmVmUHRyPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IgPSBXVEZNb3Zl
KG1fdGV4dEluZGljYXRvcik7CiAKICAgICBpZiAoW21fdGV4dEluZGljYXRvckxheWVyIGlzRmFk
aW5nT3V0XSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHRleHRJbmRpY2F0b3IgJiYgW21f
dGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0SW5k
aWNhdG9yXSAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9uXSAm
JiBhbmltYXRpb24gPT0gVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFk
ZU91dCkgeworICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0b3JMYXllciBp
bmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYgW21fdGV4dElu
ZGljYXRvckxheWVyIGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9uID09IFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKICAgICAgICAg
c3RhcnRGYWRlT3V0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04Miw3ICs3Niw3IEBA
IHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpCiAgICAgY2xvc2VXaW5kb3coKTsKIH0KIAotdm9pZCBU
ZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0
ZXh0SW5kaWNhdG9yLCBDR1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMs
IFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciwgQ0dSZWN0IHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5kaWNh
dG9yTGlmZXRpbWUgbGlmZXRpbWUpCiB7CiAgICAgaWYgKG1fdGV4dEluZGljYXRvciA9PSB0ZXh0
SW5kaWNhdG9yLnB0cigpKQogICAgICAgICByZXR1cm47CkBAIC05NSw4ICs4OSw4IEBAIHZvaWQg
VGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4g
dGV4dEluZGljYXRvciwgQ0dSCiAgICAgQ0dGbG9hdCB2ZXJ0aWNhbE1hcmdpbiA9IGRyb3BTaGFk
b3dCbHVyUmFkaXVzICogMiArIFRleHRJbmRpY2F0b3I6OmRlZmF1bHRWZXJ0aWNhbE1hcmdpbjsK
ICAgICAKICAgICBpZiAoW21fdGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzQm91bmNl
OiptX3RleHRJbmRpY2F0b3JdKSB7Ci0gICAgICAgIGhvcml6b250YWxNYXJnaW4gPSBzdGQ6Om1h
eChob3Jpem9udGFsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5z
aXplLndpZHRoICogKG1pZEJvdW5jZVNjYWxlIC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsKLSAg
ICAgICAgdmVydGljYWxNYXJnaW4gPSBzdGQ6Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJvdW5k
aW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQgKiAobWlkQm91bmNlU2NhbGUg
LSAxKSArIHZlcnRpY2FsTWFyZ2luKTsKKyAgICAgICAgaG9yaXpvbnRhbE1hcmdpbiA9IHN0ZDo6
bWF4KGhvcml6b250YWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVz
LnNpemUud2lkdGggKiAoV2ViQ29yZTo6bWlkQm91bmNlU2NhbGUgLSAxKSArIGhvcml6b250YWxN
YXJnaW4pOworICAgICAgICB2ZXJ0aWNhbE1hcmdpbiA9IHN0ZDo6bWF4KHZlcnRpY2FsTWFyZ2lu
LCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLmhlaWdodCAqIChXZWJD
b3JlOjptaWRCb3VuY2VTY2FsZSAtIDEpICsgdmVydGljYWxNYXJnaW4pOwogICAgIH0KIAogICAg
IGhvcml6b250YWxNYXJnaW4gPSBDR0NlaWxpbmcoaG9yaXpvbnRhbE1hcmdpbik7CkBAIC0xMjUs
OCArMTE5LDggQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJl
ZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBDR1IKICAgICBpZiAobV90ZXh0SW5kaWNh
dG9yLT5wcmVzZW50YXRpb25UcmFuc2l0aW9uKCkgIT0gVGV4dEluZGljYXRvclByZXNlbnRhdGlv
blRyYW5zaXRpb246Ok5vbmUpCiAgICAgICAgIFttX3RleHRJbmRpY2F0b3JMYXllciBwcmVzZW50
XTsKIAotICAgIGlmIChsaWZldGltZSA9PSBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlRl
bXBvcmFyeSkKLSAgICAgICAgbV90ZW1wb3JhcnlUZXh0SW5kaWNhdG9yVGltZXIuc3RhcnRPbmVT
aG90KDFfcyAqIHRpbWVCZWZvcmVGYWRlU3RhcnRzKTsKKyAgICBpZiAobGlmZXRpbWUgPT0gVGV4
dEluZGljYXRvckxpZmV0aW1lOjpUZW1wb3JhcnkpCisgICAgICAgIG1fdGVtcG9yYXJ5VGV4dElu
ZGljYXRvclRpbWVyLnN0YXJ0T25lU2hvdChXZWJDb3JlOjp0aW1lQmVmb3JlRmFkZVN0YXJ0cyk7
CiB9CiAKIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xvc2VXaW5kb3coKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggM2FkNTE0MmNkMTc3YWFk
YWU1YzM4NTMyZDU3ZmNhNDM4MGFjZDRiNi4uMTBiODkxOWIwZjg2MjQxODFlZWFiY2Y3OGMwMWMx
OWJiM2JlMGMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oCkBAIC00MTEsOCArNDExLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBwcmVmZXJlbmNlc0Rp
ZENoYW5nZSgpOwogCi0gICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3ImLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgPSBXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7Ci0gICAgdm9pZCBjbGVhclRl
eHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNt
aXNzYWxBbmltYXRpb24pOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yJiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lID0gV2ViQ29yZTo6VGV4
dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnQpOworICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9u
KTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CiAg
ICAgdm9pZCBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5KCk7
CiAgICAgdm9pZCBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlv
bihib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
aW5kZXggMjNhNTA0NjgxMTQxMzM1MTlmMmVkMWJkY2Q4MjRjZDkyYTY1YjQxZi4uZGM1MGNkMmM1
MTUwZDU1Nzk4NTRhYjdlNjVlNzVkNjI1NWUzYjA5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTQyMyw3ICs0MjMsNyBAQCAtICh2b2lkKW9i
c2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2Jq
ZWN0IGNoYW5nZTooTgogI2lmICFFTkFCTEUoUkVWRUFMKQogLSAodm9pZClfZGljdGlvbmFyeUxv
b2t1cFBvcG92ZXJXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7Ci0g
ICAgX2ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgX2ltcGwtPmNsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbjo6Tm9uZSk7CiB9CiAjZW5kaWYKIApAQCAtMzQ5NSw3ICszNDk1LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogICAgICAgICB1cGRhdGVXaW5k
b3dBbmRWaWV3RnJhbWVzKCk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0
b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0xpZmV0aW1lIGxpZmV0aW1lKQordm9pZCBXZWJWaWV3SW1wbDo6c2V0VGV4
dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUgbGlmZXRpbWUpCiB7CiAgICAgaWYgKCFtX3RleHRJbmRp
Y2F0b3JXaW5kb3cpCiAgICAgICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9IG1ha2VVbmlxdWU8
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvdz4obV92aWV3LmdldEF1dG9yZWxlYXNlZCgpKTsK
QEAgLTM1MDQsNyArMzUwNCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3Io
V2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yCiAgICAgbV90ZXh0
SW5kaWNhdG9yV2luZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIE5TUmVjdFRv
Q0dSZWN0KHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzKSwgbGlmZXRpbWUpOwog
fQogCi12b2lkIFdlYlZpZXdJbXBsOjpjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQor
dm9pZCBXZWJWaWV3SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKIHsKICAgICBpZiAo
bV90ZXh0SW5kaWNhdG9yV2luZG93KQogICAgICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3ctPmNs
ZWFyVGV4dEluZGljYXRvcihhbmltYXRpb24pOwpAQCAtMzUyNyw3ICszNTI3LDcgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRp
b25Gcm9tVmlld09ubHkoYm8KICAgICAvLyBDYWxsaW5nIF9jbGVhclRleHRJbmRpY2F0b3JXaXRo
QW5pbWF0aW9uIGhlcmUgd2lsbCB3aW4gb3V0IG92ZXIgdGhlIGFuaW1hdGVkIGNsZWFyIGluIGRp
c21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkuCiAgICAgLy8gV2Ug
Y2FuJ3QgaW52ZXJ0IHRoZXNlIGJlY2F1c2UgY2xpZW50cyBjYW4gb3ZlcnJpZGUgKGFuZCBoYXZl
IG92ZXJyaWRkZW4pIF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzLCBzbyBpdCBu
ZWVkcyB0byBiZSBjYWxsZWQuCiAgICAgLy8gRm9yIHRoaXMgc2FtZSByZWFzb24sIHRoaXMgY2Fu
J3QgYmUgbW92ZWQgdG8gV2ViVmlld0ltcGwgd2l0aG91dCBjYXJlLgotICAgIGNsZWFyVGV4dElu
ZGljYXRvcldpdGhBbmltYXRpb24oYW5pbWF0ZSA/IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQgOiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRo
QW5pbWF0aW9uKGFuaW1hdGUgPyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uOjpGYWRlT3V0IDogV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6
Tm9uZSk7CiAgICAgW21fdmlldyBfd2ViX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRv
d3NdOwogfQogCkBAIC0zNTQ0LDcgKzM1NDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaXNtaXNz
Q29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5KCkKICAgICAgICAgICAgIFtb
Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gcmVxdWVzdEJ1YmJsZUNs
b3N1cmVVbmFuY2hvck9uRmFpbHVyZTpZRVNdOwogICAgIH0KIAotICAgIGNsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbjo6RmFkZU91dCk7CisgICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKIAogICAg
IFttX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxk
V2luZG93c107CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA0MTdlMTFk
NDk2NjA3YTMwMGNmYjY1ZmVkNmM3ZjRjYWNlMGM5MjZkLi5hMzU3MzFlYzAxZDllNWUxNTAyZTYw
NWU1MjgyZmVmMGIwNDVkNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBA
IC0xMDYsOCArMTA2LDggQEAgY2xhc3MgU2VsZWN0aW9uRGF0YTsKIGVudW0gY2xhc3MgTW91c2VF
dmVudFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFNjcm9sbGJhclN0eWxlIDogdWludDhfdDsKLWVudW0gY2xhc3Mg
VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIDogdWludDhfdDsKLWVudW0gY2xhc3MgVGV4dElu
ZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRl
eHRJbmRpY2F0b3JMaWZldGltZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JE
aXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jl
c3BvbnNlIDogdWludDhfdDsKIAogc3RydWN0IEFwcEhpZ2hsaWdodDsKQEAgLTM4NSw4ICszODUs
OCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZpcnR1YWwg
dm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29y
ZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNs
ZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5p
bWF0aW9uKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JEaXNtaXNzYWxBbmltYXRpb24pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGlj
YXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KSA9IDA7CiAgICAgCiAgICAgdmlydHVhbCB2b2lk
IGRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1
cEluZm8mKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCBhNDViMDJlMTFkM2Y0ODBmMDMxMzdhNWEwODU1MjUxYmY2YTZkZjM0Li43N2IzMDdmYmU2YzZl
OTZmNTU4MTAyZWM3NTliNWFhMmIyYzY4ZGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTIxOCw3ICsyMTgsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQXR0
cmlidXRlZFN0cmluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcE9ic2VydmVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9UZXh0
SW5kaWNhdG9yV2luZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAj
aW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvY29jb2EvRW50aXRs
ZW1lbnRzLmg+CkBAIC02NTM0LDcgKzY1MzMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VGV4
dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSwgdWludAog
ewogICAgIC8vIEZJWE1FOiBNYWtlIFRleHRJbmRpY2F0b3JXaW5kb3cgYSBwbGF0Zm9ybS1pbmRl
cGVuZGVudCBwcmVzZW50YXRpb25hbCB0aGluZyAoIlRleHRJbmRpY2F0b3JQcmVzZW50YXRpb24i
PykuCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcGFnZUNsaWVudCgpLnNldFRleHRJbmRpY2F0
b3IoVGV4dEluZGljYXRvcjo6Y3JlYXRlKGluZGljYXRvckRhdGEpLCBzdGF0aWNfY2FzdDxUZXh0
SW5kaWNhdG9yV2luZG93TGlmZXRpbWU+KGxpZmV0aW1lKSk7CisgICAgcGFnZUNsaWVudCgpLnNl
dFRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcjo6Y3JlYXRlKGluZGljYXRvckRhdGEpLCBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU+KGxpZmV0aW1lKSk7CiAjZWxz
ZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCkBAIC02NTQzLDcgKzY1NDIsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9y
RGF0YSYgaW5kaWNhdG9yRGF0YSwgdWludAogdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVGV4dElu
ZGljYXRvcigpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcGFnZUNsaWVudCgpLmNsZWFy
VGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRl
T3V0KTsKKyAgICBwYWdlQ2xpZW50KCkuY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogI2Vsc2UKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCAxZTIzOTgxYzU3ZWEyZjE2NzcyNzg3ZTc3ZWM4ODg2NDk1MDFkZTMyLi4wYjMzN2Y0
NGJlOTdiODA4ODg4MDFjZTBmZTMyODBmNjE0MmQ0ZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMTE1Miw3ICsxMTUyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
Y291bnRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxGaW5kT3B0aW9ucz4s
IHVuc2lnbmVkIG1heE1hdGNoQ291bnQpOwogICAgIHZvaWQgcmVwbGFjZU1hdGNoZXMoVmVjdG9y
PHVpbnQzMl90PiYmIG1hdGNoSW5kaWNlcywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQs
IGJvb2wgc2VsZWN0aW9uT25seSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYp
OwogICAgIHZvaWQgZGlkQ291bnRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIHVpbnQzMl90
IG1hdGNoQ291bnQpOwotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yRGF0YSYsIHVpbnQ2NF90IC8qIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZSAqLyBsaWZldGltZSA9IDAgLyogUGVybWFuZW50ICovKTsKKyAgICB2b2lkIHNl
dFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmLCB1aW50NjRf
dCAvKiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUgKi8gbGlmZXRpbWUgPSAwIC8qIFBl
cm1hbmVudCAqLyk7CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3Mo
ZmxvYXQpOwogICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggM2ZiZTFiMTdmZjY2
MDQ0OWU5OTNlZjdlOGFmYzBiYTAwMjRmZDg3YS4uODFmYjAxODMzY2VlOWU1ZDkxNTk1NDE4ZDJi
NWEwYWU0Yjg0NGNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgKQEAgLTEzOCw4ICsxMzgsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxX
ZWJEYXRlVGltZVBpY2tlcj4gY3JlYXRlRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5JikgZmlu
YWw7CiAjZW5kaWYKIAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4
dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNh
dG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxp
ZmV0aW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFRl
eHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IHNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5pbmcmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVS
TD4mJik+JiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDQwYjc2MjM2MzlmZmFkNDFiNDQyNDY4ZWIyZTE4MWFh
MzRmMDE2NTMuLjhjM2M4ZjI0MjFjZjBjYzJiM2Y1MDM3NGQxOWZiNWMyMmMxNTk5NTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAg
LTQ3OSwxNiArNDc5LDE5IEBAIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudElt
cGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpCiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJ
bmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkKK3Zv
aWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRl
eHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkKIHsKKyAgICBbbV9j
b250ZW50VmlldyBzZXRVcFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvcl07CiB9CiAKLXZvaWQg
UGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9y
KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gZGlzbWlzc2FsQW5pbWF0
aW9uKQogeworICAgIFttX2NvbnRlbnRWaWV3IGNsZWFyVGV4dEluZGljYXRvcjpkaXNtaXNzYWxB
bmltYXRpb25dOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3MoZmxvYXQpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNh
dG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgYW5pbWF0aW9uUHJvZ3Jlc3MpCiB7CisgICAgW21f
Y29udGVudFZpZXcgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOmFuaW1hdGlvblBy
b2dyZXNzXTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCmluZGV4IDg4NmFlNzVlNjdiNTZhZWIzODM3ODRmNTk2YzlkOGY3MjkxMjU2ZTcuLjhm
ZjkyYjdjOWI4YWI5ZTcwN2E4NzE2MTMwNzM5ZTBkZjkzMTYyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAg
LTg5LDYgKzg5LDcgQEAgc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiBlbnVtIGNsYXNz
IERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBNb3VzZUV2ZW50
UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhf
dDsKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7
CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogc3RydWN0IERyYWdJdGVtOwpAQCAtMTA0LDYg
KzEwNSw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIH0KIAogQGNsYXNzIFdlYkV2ZW50OworQGNs
YXNzIFdlYlRleHRJbmRpY2F0b3JMYXllcjsKIEBjbGFzcyBXS0FjdGlvblNoZWV0QXNzaXN0YW50
OwogQGNsYXNzIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mbzsKIEBjbGFzcyBXS0RhdGFMaXN0U3Vn
Z2VzdGlvbnNDb250cm9sOwpAQCAtMzMxLDYgKzMzMyw5IEBAIGVudW0gY2xhc3MgUHJvY2VlZFdp
dGhJbWFnZUV4dHJhY3Rpb24gOiBib29sIHsKICAgICBSZXRhaW5QdHI8VUlQcmV2aWV3SXRlbUNv
bnRyb2xsZXI+IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI7CiAjZW5kaWYKIAorICAgIFJlZlB0cjxX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiBfdGV4dEluZGljYXRvcjsKKyAgICBSZXRhaW5QdHI8V2Vi
VGV4dEluZGljYXRvckxheWVyPiBfdGV4dEluZGljYXRvckxheWVyOworCiAjaWYgVVNFKFVJQ09O
VEVYVE1FTlUpCiAgICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQcmV2aWV3PiBfY29udGV4dE1lbnVJ
bnRlcmFjdGlvblRhcmdldGVkUHJldmlldzsKICNlbmRpZgpAQCAtNjcwLDYgKzY3NSwxMCBAQCBG
T1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklF
V19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JNYWluRnJhbWU7CiAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lOwogCistICh2
b2lkKXNldFVwVGV4dEluZGljYXRvcjooUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+KXRleHRJ
bmRpY2F0b3I7CistICh2b2lkKXNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxv
YXQpTlNBbmltYXRpb25Qcm9ncmVzczsKKy0gKHZvaWQpY2xlYXJUZXh0SW5kaWNhdG9yOihXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKKwogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRVc2VDb250ZXh0TWVudXM7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZEF2b2lkUmVzaXppbmdX
aGVuSW5wdXRWaWV3Qm91bmRzQ2hhbmdlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBCT09MIF9zaG91bGRBdm9pZFNjcm9sbGluZ1doZW5Gb2N1c2VkQ29udGVudElzVmlzaWJsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCmluZGV4IGE2MDg2OWE3N2Y5MjU3MGIyMGM5ZjcxOTNkYWNkMTAxMTIxZmEx
N2EuLmY3OTBlNTAzMjU3ODk1OGI5ODRhZTZmYWUwZmU4MmNhZmI5MDY2NmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQpAQCAtMTE2LDExICsxMTYsMTMgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVEYXRhLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JX
aW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvVG91Y2hBY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNv
cmUvVVRJVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNp
bXBvcnQgPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJF
dmVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvV3JpdGluZ0RpcmVjdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlNlbGVj
dGlvblJlY3QuaD4gLy8gRklYTUU6IFdlYktpdCBzaG91bGQgbm90IGluY2x1ZGUgV2ViS2l0TGVn
YWN5IGhlYWRlcnMhCiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgpAQCAt
OTU4Miw2ICs5NTg0LDY3IEBAIC0gKHZvaWQpX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRl
clBlbmRpbmdJbWFnZUV4dHJhY3Rpb246KFdlYktpdDo6UHJvY2VlZFdpCiAKICNlbmRpZiAvLyBF
TkFCTEUoSU1BR0VfRVhUUkFDVElPTikKIAorLSAodm9pZClzZXRVcFRleHRJbmRpY2F0b3I6KFJl
ZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yCit7CisgICAgaWYgKF90ZXh0
SW5kaWNhdG9yID09IHRleHRJbmRpY2F0b3IucHRyKCkpCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07CisgICAgW05TT2JqZWN0IGNh
bmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3RvcihzdGFydEZhZGVPdXQpIG9iamVjdDpuaWxdOworICAgIAorICAgIF90ZXh0SW5kaWNhdG9y
ID0gdGV4dEluZGljYXRvci5wdHIoKTsKKworICAgIENHUmVjdCBmcmFtZSA9IF90ZXh0SW5kaWNh
dG9yLT50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CisgICAgX3RleHRJ
bmRpY2F0b3JMYXllciA9IGFkb3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6ZnJhbWUKKyAgICAgICAgdGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIG1h
cmdpbjpDR1NpemVaZXJvIG9mZnNldDpDR1BvaW50WmVyb10pOworICAgIAorICAgIFtbc2VsZiBs
YXllcl0gYWRkU3VibGF5ZXI6X3RleHRJbmRpY2F0b3JMYXllci5nZXQoKV07CisKKyAgICBpZiAo
X3RleHRJbmRpY2F0b3ItPnByZXNlbnRhdGlvblRyYW5zaXRpb24oKSAhPSBXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSkKKyAgICAgICAgW190ZXh0SW5k
aWNhdG9yTGF5ZXIgcHJlc2VudF07CisgICAgCisgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBz
ZWxlY3RvcihzdGFydEZhZGVPdXQpIHdpdGhPYmplY3Q6c2VsZiBhZnRlckRlbGF5OldlYkNvcmU6
OnRpbWVCZWZvcmVGYWRlU3RhcnRzLnZhbHVlKCldOworfQorCistICh2b2lkKWNsZWFyVGV4dElu
ZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRp
b24KK3sKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9
IFdURk1vdmUoX3RleHRJbmRpY2F0b3IpOworICAgIAorICAgIGlmIChbX3RleHRJbmRpY2F0b3JM
YXllciBpc0ZhZGluZ091dF0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0ZXh0SW5kaWNh
dG9yICYmIFtfdGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9u
Oip0ZXh0SW5kaWNhdG9yXSAmJiBbX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmlt
YXRpb25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uOjpGYWRlT3V0KSB7CisgICAgICAgIFtzZWxmIHN0YXJ0RmFkZU91dF07CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07
Cit9CisKKy0gKHZvaWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClh
bmltYXRpb25Qcm9ncmVzcworeworICAgIGlmICghX3RleHRJbmRpY2F0b3IpCisgICAgICAgIHJl
dHVybjsKKworICAgIFtfdGV4dEluZGljYXRvckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNzOmFu
aW1hdGlvblByb2dyZXNzXTsKK30KKworLSAodm9pZCl0ZWFyZG93blRleHRJbmRpY2F0b3JMYXll
cgoreworICAgIFtfdGV4dEluZGljYXRvckxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAg
ICBfdGV4dEluZGljYXRvckxheWVyID0gbmlsOworfQorCistICh2b2lkKXN0YXJ0RmFkZU91dAor
eworICAgIFtfdGV4dEluZGljYXRvckxheWVyIHNldEZhZGluZ091dDpZRVNdOworICAgICAgICAK
KyAgICBbX3RleHRJbmRpY2F0b3JMYXllciBoaWRlV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3ZWFr
U2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSB7CisgICAgICAgIGF1dG8g
c3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBbc3Ryb25nU2VsZiB0ZWFyZG93
blRleHRJbmRpY2F0b3JMYXllcl07CisgICAgfV07Cit9CisKICNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bkFkZGl0aW9uc0FmdGVyLm1tPgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDU4YmU0YTJjYWU0NTM3ZTU0NjNiZGQxYjZi
NWJlMTY4YmE2OTI3NmMuLjY3NTVmMDFiMzg4NDgwODViMGI1YWQyYWFjOGNlMWQxZTQ0YjdhZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5o
CkBAIC0xNTYsOCArMTU2LDggQEAgcHJpdmF0ZToKIAogICAgIFJlZjxXZWJDb3JlOjpWYWxpZGF0
aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmKSBmaW5hbDsKIAotICAg
IHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjbGVh
clRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKSBvdmVycmlkZTsK
KyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlz
c2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRp
b25Qcm9ncmVzcyhmbG9hdCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDc4
OGEyNzk2ZGJiMWNmNDU5ZWZlMTI0YzZmMGQ3ZDBhNjk4YjdlOWIuLjYxNGI1OTY2YzY0YWJjYzRk
NDEwYjAzZGFkNGE3MDM5Y2RmZmM0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTU2OSwxMiArNTY5LDEyIEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OmNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFpbkZyYW1lTmF2aWdh
dGlvbigpCiAgICAgbV9pbXBsLT5jbGVhclNhZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5GcmFt
ZU5hdmlnYXRpb24oKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRv
cihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lIGxpZmV0aW1lKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dElu
ZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dElu
ZGljYXRvckxpZmV0aW1lIGxpZmV0aW1lKQogewogICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRv
cih0ZXh0SW5kaWNhdG9yLmdldCgpLCBsaWZldGltZSk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudElt
cGw6OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlz
c2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNs
ZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9u
IGRpc21pc3NhbEFuaW1hdGlvbikKIHsKICAgICBtX2ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldp
dGhBbmltYXRpb24oZGlzbWlzc2FsQW5pbWF0aW9uKTsKIH0KQEAgLTY3Miw5ICs2NzIsOSBAQCB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0
aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aQogICAgIG1faW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlM
b29rdXAoKTsKIAogICAgIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9w
dXBJbmZvLCBtX3ZpZXcsIFt0aGlzXShUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0g
ICAgICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7CisgICAgICAgIG1faW1wbC0+c2V0VGV4dElu
ZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBl
cm1hbmVudCk7CiAgICAgfSwgbnVsbHB0ciwgW3RoaXNdKCkgewotICAgICAgICBtX2ltcGwtPmNs
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uOjpOb25lKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggOWJhYThi
ZTI0Yzc3Yzc0NmU3OTNmNDEzNzhkY2QwMGIzY2Y0YzRmZS4uYmVjMGRjMTI4YzUwNjdkNmU5Mjdk
ZmNlZGI0N2E3ZmJlZDgyZTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCkBAIC00OTAsOSArNDkw
LDkgQEAgLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0
aW9uQ29udHJvbGxlckZvclRleHQKICAgICBfdmlld0ltcGwtPnByZXBhcmVGb3JEaWN0aW9uYXJ5
TG9va3VwKCk7CiAKICAgICByZXR1cm4gV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6YW5pbWF0
aW9uQ29udHJvbGxlckZvclBvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIF92aWV3LCBbc2VsZl0o
V2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBfdmlld0lt
cGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOworICAgICAgICBfdmlld0ltcGwtPnNldFRleHRJ
bmRpY2F0b3IodGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQ
ZXJtYW5lbnQpOwogICAgIH0sIG51bGxwdHIsIFtzZWxmXSgpIHsKLSAgICAgICAgX3ZpZXdJbXBs
LT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgICAgICBfdmlld0ltcGwtPmNsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3Nh
bEFuaW1hdGlvbjo6Tm9uZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5k
ZXggM2YyZTlkNTBmZmIwMDFjMjQ2ZDQxNzEwZTAzYjQ0OWJkYzU4Njc4NC4uOTUxOTE3YzI0ZDlm
MDJlODA2NjliY2VkY2JjODNhMTAwNDViMzYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAg
LTg4LDYgKzg4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
dHRpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VO
VEFUSU9OX01PREUpKQogI2luY2x1ZGUgIlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCIKQEAgLTEy
NzEsNiArMTI3MiwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGlnaHQo
V2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYgaGlnaGxpZ2h0KSBjb25zdAogfQogI2VuZGlmCiAKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JEYXRhJiBpbmRpY2F0b3JEYXRhKSBjb25zdAoreworICAgIG1fcGFnZS5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yRGF0YSwgc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6VGVtcG9y
YXJ5KSkpOworfQorCiBTdHJpbmcgV2ViQ2hyb21lQ2xpZW50OjpzaWduZWRQdWJsaWNLZXlBbmRD
aGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZUluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxs
ZW5nZVN0cmluZywgY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgU3RyaW5nIHJlc3VsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAppbmRleCA0ZWVmMWY4YWQxYzUyYWMwNTE2NTgyYmExNjE1NWNhZDAx
YTE1NTcyLi40MTliYTc4NDgzYWVlZTJjMWQ0M2RhMmIwYjQyZTkxZDdjMWIxZTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0zNTMsNiArMzUzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3Jl
QXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKICNlbmRp
ZgogCisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgZmluYWw7CisKICNpZiBFTkFCTEUoV0VCX0NSWVBUTykKICAgICBib29s
IHdyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgVmVjdG9yPHVpbnQ4X3Q+Jikg
Y29uc3QgZmluYWw7CiAgICAgYm9vbCB1bndyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiwgVmVjdG9yPHVpbnQ4X3Q+JikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKaW5kZXggMDA5MDE0YTUz
NmJmOWQ2OGRmYmU1ZGExNDBkZGI1MTdhZWFjZDIwNy4uY2UyMWQ2N2M0OGI5NjA5ZWZhMzk1NjZh
ZjAyOTNiOTNhY2NlZGRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIGJvb2wgRmluZENv
bnRyb2xsZXI6OnVwZGF0ZUZpbmRJbmRpY2F0b3IoRnJhbWUmIHNlbGVjdGVkRnJhbWUsIGJvb2wg
aXNTaG93aW5nT3ZlCiAKICAgICBtX2ZpbmRJbmRpY2F0b3JSZWN0ID0gZW5jbG9zaW5nSW50UmVj
dChpbmRpY2F0b3ItPnNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSk7CiAjaWYg
UExBVEZPUk0oQ09DT0EpCi0gICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yLT5kYXRhKCksIHN0YXRpY19jYXN0PHVpbnQ2
NF90Pihpc1Nob3dpbmdPdmVybGF5ID8gVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJt
YW5lbnQgOiBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKKyAgICBt
X3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0VGV4dEluZGljYXRvcihp
bmRpY2F0b3ItPmRhdGEoKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGlzU2hvd2luZ092ZXJsYXkg
PyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudCA6IFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JMaWZldGltZTo6VGVtcG9yYXJ5KSkpOwogI2VuZGlmCiAgICAgbV9pc1Nob3dp
bmdGaW5kSW5kaWNhdG9yID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBmM2Q0NzE2YTg5
MzNkOWYyNDJmOGVmMTIxNWE4NjYyMzQwZjg5N2E1Li5iYWQ1MWYwYjIxMmRhZTdiNjcxMDFhMGFh
YTYzZTQ5NDlkZTdkMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTU1LDYgKzE1NSw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQm
JikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25z
dCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFsOworCiAjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKICAgICBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpIGZpbmFsOwogICAg
IHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRl
eCA0NTM5Y2U2ZjY0ZDAwYjBiYjAwMjgzZWFjODE1MzI5NzkwMDRjNGU4Li4wM2ViNjE0NzRlMjFm
YmFiMTVlMTUyNzgwMGIwYzQ2ZDkyYjQzM2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03MjAs
NiArNzIwLDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChXZWJD
b3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYg
aW5kaWNhdG9yRGF0YSkgY29uc3QKK3sKK30KKwogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiBi
b29sIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2NrKCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDBmZTJhNTA5NmM3
ZTI2ZjMyMDMyNWUzNjhiZmYwZGJiOWYwNzJjNzYuLjYxZDZmNGU4NjU5NGRjYWI3ZTYxNzkwNzA0
YjcwOWVmNWNjYzJiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQpAQCAtNTk1Myw3ICs1OTUzLDcgQEAgLSAodm9pZClfbG9va1VwSW5EaWN0
aW9uYXJ5RnJvbU1lbnU6KGlkKXNlbmRlcgogCiAtICh2b2lkKXF1aWNrTG9va1dpdGhFdmVudDoo
TlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgW1tzZWxmIF93ZWJWaWV3XSBfY2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5p
bWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbW3NlbGYgX3dlYlZpZXddIF9jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246
OkZhZGVPdXRdOwogICAgIFtzdXBlciBxdWlja0xvb2tXaXRoRXZlbnQ6ZXZlbnRdOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYklt
bWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggY2U2MmJmYTUxNjE3N2M4YzM2YWVkZDdi
YTVmYTRjMjc1MTBkNmY3MS4uYmU1YjZhMmZiMDE1NGJjMzZmY2QzOGJiMWRhZDg5ZTA5YzcwZTMz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQpAQCAtMTIyLDcgKzEyMiw3IEBAIC0g
KHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZGlkSGFuZGxlU2Nyb2xsV2hlZWw6KE5T
RXZlbnQgKilldmVudAogewogICAgIFtfY3VycmVudFFMUHJldmlld01lbnVJdGVtIGNsb3NlXTsK
ICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Ci0gICAgW193ZWJWaWV3IF9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOworICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uOjpOb25lXTsKIH0KIAogLSAoTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAq
KWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIKQEAgLTEzOSw3ICsxMzksNyBAQCAtICh2b2lkKV9j
YW5jZWxJbW1lZGlhdGVBY3Rpb24KICAgICB9CiAKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVB
Y3Rpb25TdGF0ZV07Ci0gICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVP
dXRdOworICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKIH0KIAogLSAo
dm9pZClfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZQpAQCAtMjUxLDcgKzI1MSw3IEBAIC0gKHZv
aWQpaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplckRpZENhbmNlbEFuaW1hdGlvbjooTlNJbW1lZGlh
dGVBY3Rpb25HZXN0dXJlUmVjCiAKICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3JBbmlt
YXRpb25Qcm9ncmVzczowXTsKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07
Ci0gICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOworICAgIFtfd2Vi
VmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKICAgICBbX3dlYlZpZXcgX3NldE1haW50YWlu
c0luYWN0aXZlU2VsZWN0aW9uOk5PXTsKIH0KIApAQCAtMjkzLDcgKzI5Myw3IEBAIC0gKGlkIDxO
U0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9kZWZhdWx0QW5pbWF0aW9uQ29u
dHJvbGxlcgogICAgICAgICAgICAgYXV0byBsaW5rUmFuZ2UgPSBtYWtlUmFuZ2VTZWxlY3RpbmdO
b2RlQ29udGVudHMoKl9oaXRUZXN0UmVzdWx0LlVSTEVsZW1lbnQoKSk7CiAgICAgICAgICAgICBh
dXRvIGluZGljYXRvciA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhSYW5nZShs
aW5rUmFuZ2UsIHsgV2ViQ29yZTo6VGV4dEluZGljYXRvck9wdGlvbjo6VXNlQm91bmRpbmdSZWN0
QW5kUGFpbnRBbGxDb250ZW50Rm9yQ29tcGxleFJhbmdlcyB9LCBXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6RmFkZUluKTsKICAgICAgICAgICAgIGlmIChpbmRp
Y2F0b3IpCi0gICAgICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRp
Y2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6
UGVybWFuZW50XTsKKyAgICAgICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6
KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQ
ZXJtYW5lbnRdOwogCiAgICAgICAgICAgICBRTFByZXZpZXdNZW51SXRlbSAqaXRlbSA9IFtOU01l
bnVJdGVtIHN0YW5kYXJkUXVpY2tMb29rTWVudUl0ZW1dOwogICAgICAgICAgICAgaXRlbS5wcmV2
aWV3U3R5bGUgPSBRTFByZXZpZXdTdHlsZVBvcG92ZXI7CkBAIC0zNzksNyArMzc5LDcgQEAgLSAo
TlNSZWN0RWRnZSltZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtIHByZWZlcnJlZEVkZ2VG
b3JQb2ludDooTlNQb2ludClwb2kKIC0gKHZvaWQpbWVudUl0ZW1EaWRDbG9zZTooTlNNZW51SXRl
bSAqKW1lbnVJdGVtCiB7CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwot
ICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbX3dl
YlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAKIHN0YXRpYyBXZWJDb3JlOjpJ
bnRSZWN0IGVsZW1lbnRCb3VuZGluZ0JveEluV2luZG93Q29vcmRpbmF0ZXNGcm9tTm9kZShXZWJD
b3JlOjpOb2RlKiBub2RlKQpAQCAtNDY0LDkgKzQ2NCw5IEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVj
dGVkCiAgICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0gW2RldGVjdGVkSXRlbS0+YWN0aW9uQ29u
dGV4dCBjb250ZXh0Rm9yVmlldzpfd2ViVmlldyBhbHRNb2RlOllFUyBpbnRlcmFjdGlvblN0YXJ0
ZWRIYW5kbGVyOl4oKSB7CiAgICAgfSBpbnRlcmFjdGlvbkNoYW5nZWRIYW5kbGVyOl4oKSB7CiAg
ICAgICAgIGlmIChpbmRpY2F0b3IpCi0gICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRp
Y2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5k
aWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZl
dGltZTo6UGVybWFuZW50XTsKICAgICB9IGludGVyYWN0aW9uU3RvcHBlZEhhbmRsZXI6XigpIHsK
LSAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAg
ICAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6
VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfV07CiAKICAg
ICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfd2ViVmlldy53aW5k
b3cgY29udmVydFJlY3RUb1NjcmVlbjpkZXRlY3RlZEl0ZW0tPmJvdW5kaW5nQm94XV07CkBAIC00
OTcsOSArNDk3LDkgQEAgLSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxl
cj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWQKICAgICBfY3VycmVudEFjdGlv
bkNvbnRleHQgPSBbYWN0aW9uQ29udGV4dCBjb250ZXh0Rm9yVmlldzpfd2ViVmlldyBhbHRNb2Rl
OllFUyBpbnRlcmFjdGlvblN0YXJ0ZWRIYW5kbGVyOl4oKSB7CiAgICAgfSBpbnRlcmFjdGlvbkNo
YW5nZWRIYW5kbGVyOl4oKSB7CiAgICAgICAgIGlmIChpbmRpY2F0b3IpCi0gICAgICAgICAgICBb
X3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29y
ZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICAgICAg
W193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNv
cmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKICAgICB9IGludGVyYWN0aW9u
U3RvcHBlZEhhbmRsZXI6XigpIHsKLSAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmlt
YXRpb246OkZhZGVPdXRdOworICAgICAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldp
dGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFk
ZU91dF07CiAgICAgfV07CiAKICAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdo
dEZyYW1lOltfd2ViVmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjplbGVtZW50Qm91bmRp
bmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzRnJvbU5vZGUoX2hpdFRlc3RSZXN1bHQuVVJMRWxlbWVu
dCgpKV1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IDcyNjRiZmRjZDcyZGUxMzY5NjBhMzIzOGNiMDAyMTZmYjg5MmZmN2MuLjk5MmYzZTA5NzRkNjQ1
YmZlMjVkNzMxOTgzMmQ4NDFmNzcwZWU2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkxMDAsMTEgKzkxMDAsMTEgQEAgLSAoaWQpX2FuaW1hdGlv
bkNvbnRyb2xsZXJGb3JEaWN0aW9uYXJ5TG9va3VwUG9wdXBJbmZvOihjb25zdCBXZWJDb3JlOjpE
aWN0aW9uYXIKICAgICBbc2VsZiBfcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXBdOwogCiAgICAg
cmV0dXJuIFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OmFuaW1hdGlvbkNvbnRyb2xsZXJGb3JQ
b3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBzZWxmLCBbc2VsZl0oV2ViQ29yZTo6VGV4dEluZGlj
YXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0
ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlm
ZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJ
bmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVy
bWFuZW50XTsKICAgICB9LCBbc2VsZl0oV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXMpIHsKICAgICAgICAgcmV0dXJuIFtzZWxmIF9jb252ZXJ0UmVjdEZyb21Sb290
VmlldzpyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICB9LCBbc2VsZl0oKSB7Ci0gICAg
ICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbc2Vs
ZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICB9KTsKIH0KIApAQCAtOTEyMCwxMCAr
OTEyMCwxMCBAQCAtICh2b2lkKV9zZXRQcmVzc3VyZUV2ZW50OihOU0V2ZW50ICopZXZlbnQKIAog
LSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dElu
ZGljYXRvcgogewotICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0
aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50
XTsKKyAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGlt
ZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiB9CiAKLS0gKHZv
aWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0
b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpbGlm
ZXRpbWUKKy0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3Im
KXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRp
bWUpbGlmZXRpbWUKIHsKICAgICBpZiAoIV9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93KQog
ICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdyA9IG1ha2VVbmlxdWU8V2ViQ29y
ZTo6VGV4dEluZGljYXRvcldpbmRvdz4oc2VsZik7CkBAIC05MTMzLDEwICs5MTMzLDEwIEBAIC0g
KHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRp
Y2F0b3Igd2l0aExpZmV0aW1lOihXCiAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ct
PnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgTlNSZWN0VG9DR1JlY3QodGV4dEJvdW5k
aW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMpLCBsaWZldGltZSk7CiB9CiAKLS0gKHZvaWQpX2Ns
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uCistICh2b2lkKV9jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9u
KWFuaW1hdGlvbgogewogICAgIGlmIChfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdykKLSAg
ICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRvcihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsK
KyAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRv
cihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKICAg
ICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdyA9IG51bGxwdHI7CiB9CiAKQEAgLTkxNjgs
MTggKzkxNjgsMTggQEAgLSAodm9pZClfc2hvd0RpY3Rpb25hcnlMb29rdXBQb3B1cDooY29uc3Qg
V2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpZGljdGlvbmEKICAgICBbc2VsZiBfcHJlcGFy
ZUZvckRpY3Rpb25hcnlMb29rdXBdOwogCiAgICAgV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6
c2hvd1BvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIHNlbGYsIFtzZWxmXShXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNh
dG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6
dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1l
OjpQZXJtYW5lbnRdOwogICAgIH0sIFtzZWxmXShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdEluUm9v
dFZpZXdDb29yZGluYXRlcykgewogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRSZWN0RnJv
bVJvb3RWaWV3OnJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIH0sIFt3ZWFrU2VsZiA9
IFdlYWtPYmpDUHRyPFdlYlZpZXc+KHNlbGYpXSgpIHsKLSAgICAgICAgW3dlYWtTZWxmLmdldCgp
IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbd2Vha1NlbGYuZ2V0
KCkgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfSk7CiB9CiAKICNpZiAhRU5BQkxF
KFJFVkVBTCkKIC0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmlt
YXRpb246OkZhZGVPdXRdOworICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwog
fQogI2VuZGlmIC8vIEVOQUJMRShSRVZFQUwpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDczMzcyYTBiZGExNTNiZmEzNzYx
MDIzY2Y0OTVkNzk2ZmE3MThjYzEuLmJhZDVmZDhhMTUwYWNmMmMzN2E1N2MzNjRmODIxOWRjZDQz
NzMwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
d0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
SW50ZXJuYWwuaApAQCAtMzE5LDggKzMxOSw4IEBAIFdlYkxheW91dE1pbGVzdG9uZXMga2l0TGF5
b3V0TWlsZXN0b25lcyhPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPik7CiAKICNp
ZiBQTEFURk9STShNQUMpICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCiAtICh2b2lkKV9zZXRUZXh0
SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yOwotLSAodm9p
ZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRv
ciB3aXRoTGlmZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSlsaWZl
dGltZTsKLS0gKHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOworLSAodm9p
ZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRv
ciB3aXRoTGlmZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSlsaWZldGltZTsK
Ky0gKHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOwogLSAodm9pZClfc2V0VGV4dElu
ZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClwcm9ncmVzczsKIC0gKHZvaWQpX3Nob3dE
aWN0aW9uYXJ5TG9va3VwUG9wdXA6KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8m
KWRpY3Rpb25hcnlQb3B1cEluZm87CiAtIChpZClfYW5pbWF0aW9uQ29udHJvbGxlckZvckRpY3Rp
b25hcnlMb29rdXBQb3B1cEluZm86KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8m
KWRpY3Rpb25hcnlQb3B1cEluZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDMxOThkZTIxOWU4OTI3
MWZlMDhlMzYyZDI1ODUyMmJmZDNjYzM4OWYuLmE3MjVmNWU2ZDRlNmU1NDdiYTgwYjc1ZDQ0Mzk3
NDRlYjU5ZjViOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODAsNiArMTgwLDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nSW1hZ2VGb3JFbGVtZW50KFdlYkNvcmU6OkhU
TUxJbWFnZUVsZW1lbnQmKSBmaW5hbDsKIAorICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25z
dCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFsIHsgfQorCiBwcml2YXRl
OgogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZSgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428558</attachid>
            <date>2021-05-13 13:38:54 -0700</date>
            <delta_ts>2021-05-13 14:43:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225727-20210513133853.patch</filename>
            <type>text/plain</type>
            <size>56443</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uOGY5ZmMyYWFiNWNhN2JkOTJmYzgzOTlhZGNiM2Y2
YmJiMDA2NmQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTEzICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGlnaHRT
dG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xp
ZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL1Rl
eHRJbmRpY2F0b3IuaDoKKyAgICAgICAgKiBwYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXll
ci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1tOgorICAg
ICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgaW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9y
Om1hcmdpbjpvZmZzZXQ6XSk6CisgICAgICAgIChjcmVhdGVCb3VuY2VBbmltYXRpb24pOgorICAg
ICAgICAoLVtXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgX2FuaW1hdGlvbkR1cmF0aW9uXSk6CisgICAg
ICAgICogcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvbWFj
L1RleHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93Ojp+VGV4dEluZGljYXRvcldpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93OjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcik6CisKIDIwMjEtMDUtMTEgIE1lZ2Fu
IEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGYWN0b3Igb3V0
IGZpbmQgYm91bmNlIGxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFmZmM2NGYyMTcwN2Q1M2NjOTQ2MzM0Yjg5
YjU0NjAxNzkwN2E0NWUuLmJmNTVlMjAzZjJlYjQzNzIyZGFkMzQxOTg5ODc4NjAwN2Q4YTEzYjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDUtMTMgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgdGV4dEluZGljYXRvciBib3Vu
Y2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xsLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGZhY3RvcmVkIG91dCB0ZXh0SW5kaWNhdG9yIGNv
ZGUgdG8gYWRkIGEgYm91bmNlIHRvIGFuIGFwcEhpZ2hsaWdodAorICAgICAgICB3aGVuIGl0IGlz
IHNjcm9sbGVkIHRvLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoLVtX
S1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBfZGljdGlvbmFyeUxvb2t1cFBvcG92ZXJXaWxsQ2xv
c2U6XSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmlt
YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb25Gcm9tVmlld09ubHkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21W
aWV3T25seSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjbGVh
clRleHRJbmRpY2F0b3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBzZXRVcFRleHRJbmRpY2F0b3I6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYXJU
ZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNldFRleHRJbmRpY2F0
b3JBbmltYXRpb25Qcm9ncmVzczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyB0ZWFyZG93
blRleHRJbmRpY2F0b3JMYXllcl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHN0YXJ0RmFk
ZU91dF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcik6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXApOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JUZXh0XSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRpY2F0b3IgY29u
c3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRJbmRpY2F0b3IpOgorCiAy
MDIxLTA1LTExICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFttYWNPU10gRXh0ZW5kIGFjY2VzcyB0byAnY29tLmFwcGxlLnByaW50Lm5vcm1hbGl6ZXJkJyB3
aGVuIGNhbnZhcyBkcmF3aW5nIGlzIGRvbmUgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGMyYmU3OTZiZjY4M2QxMjIxNWI5YWE1YzQ0N2M3
ZDAwMTQ5MjlmZTEuLmZhZjY2YmQ4ZjUwYjBkNTExNTRiN2ZhZWEyYmU4M2NlODM3M2M0NWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wNS0xMyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0
ZXh0SW5kaWNhdG9yIGJvdW5jZSBmb3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBjb25z
dCk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgcXVpY2tMb29rV2l0aEV2ZW50Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViSW1tZWRpYXRlQWN0aW9uQ29u
dHJvbGxlciB3ZWJWaWV3OmRpZEhhbmRsZVNjcm9sbFdoZWVsOl0pOgorICAgICAgICAoLVtXZWJJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9jYW5jZWxJbW1lZGlhdGVBY3Rpb25dKToKKyAgICAg
ICAgKC1bV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbW1lZGlhdGVBY3Rpb25SZWNvZ25p
emVyRGlkQ2FuY2VsQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXZWJJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyIF9kZWZhdWx0QW5pbWF0aW9uQ29udHJvbGxlcl0pOgorICAgICAgICAoLVtXZWJJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIG1lbnVJdGVtRGlkQ2xvc2U6XSk6CisgICAgICAgICgt
W1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRh
RGV0ZWN0ZWRUZXh0XSk6CisgICAgICAgICgtW1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIg
X2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWRMaW5rXSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9hbmltYXRpb25Db250cm9sbGVy
Rm9yRGljdGlvbmFyeUxvb2t1cFBvcHVwSW5mbzpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfc2V0
VGV4dEluZGljYXRvcjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjp3
aXRoTGlmZXRpbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldp
dGhBbmltYXRpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3Nob3dEaWN0aW9uYXJ5TG9va3Vw
UG9wdXA6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2ls
bENsb3NlOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFsLmg6CisKIDIwMjEt
MDUtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
TWFrZSBXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6UmVxdWVzdFR5cGUgYW4gZW51bSBjbGFzcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGViNjJjNzk4MDk3ZGJlNzU1YzNkZmFjY2Q4
NTZlZDUwMmZkZThjODguLmRjNTFhNWE4NGUzMWVlY2M0YjVjZDBmZDBhMDk4OTYzMDdjYmQ5ZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNS0x
MyAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBmb3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVl
c3Q6OlJlcXVlc3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggMGZiNmRj
ZWE0MGY4Zjk3NDRjMDlkODJhMmQwOTM5MTU4Njc0ZTMzZS4uZGE0ZjcwYWMyZmM2MTY3MWY3N2E3
N2IxNzA0Njc5NjRiODlmMzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJBcHBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJBcHBIaWdobGlnaHRSYW5nZURh
dGEuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRl
cmVkRG9jdW1lbnRNYXJrZXIuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUg
IlN0YXRpY1JhbmdlLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgIlRl
eHRJdGVyYXRvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjAsOCArMjYyLDEzIEBA
IGJvb2wgQXBwSGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNj
cm9sbChBcHBIaWdobGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhp
Z2hsaWdodFJlZ2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJh
bmdlKSk7CiAgICAgCi0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKQor
ICAgIGlmIChzY3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcykgeworICAgICAgICBhdXRv
IHRleHRJbmRpY2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFs
dWUoKSwgeyBUZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOworICAg
ICAgICBpZiAodGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+
Y2hyb21lKCkuY2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkp
OworICAgICAgICAKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNo
YW5nZSgqc3Ryb25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVj
dGlvbk9wdGlvbjo6UmV2ZWFsU2VsZWN0aW9uLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlNt
b290aFNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpPdmVycmlkZVNtb290aFNjcm9s
bEZlYXR1cmVFbmFibG1lbnQgfSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ5ZTAzODdjOTZiMjhkMzg3YWJj
YjhiMTc3M2IwMTBiYjIwNjczNWUuLjdiOTAyODFjYTc2Mjc3YjM3ZjRmOTZmZWU0ZWMxNTM5MjJl
YzRiNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NTUsNiAr
NTU1LDEwIEBAIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBwSGlnaGxpZ2h0KEFwcEhp
Z2hsaWdodCYmKSBjb25zdAogfQogI2VuZGlmCiAKK3ZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnNl
dFRleHRJbmRpY2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRhdGEmKSBjb25zdAoreworfQorCiBE
aXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiBFbXB0eUNocm9tZUNsaWVudDo6ZGlzcGxheVJl
ZnJlc2hNb25pdG9yRmFjdG9yeSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEVtcHR5RGlzcGxheVJl
ZnJlc2hNb25pdG9yRmFjdG9yeTo6c2hhcmVkRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0
b3J5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggZGIxNWIwOThhNDkw
YWUwMzMwZTUyYzgwZTAwMjk0MjJmYTU0YWZiZi4uYTcxZGM4NTRlZjUwYzM1OTJhMDRmNTI3OWI1
ZDUxNDk5ODUxNDg1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTQ5
LDYgKzE0OSw4IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVu
dCB7CiAgICAgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChBcHBIaWdobGlnaHQmJikgY29uc3QgZmlu
YWw7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYpIGNvbnN0IGZpbmFsOworCiAgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9y
eSogZGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9p
ZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKaW5kZXggMjU5YmFlOWFlMGQzYmY0MzIzZTMyNDJmYzg4NmE1MWEzNzhm
MmQ3ZC4uMWZkN2IwOGU3N2ExNmE4ZDc3NDNhYjEzZjdmNzIxZGFiZDA5YjU5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xMjUsNiArMTI1LDcgQEAgc3RydWN0IERhdGVUaW1l
Q2hvb3NlclBhcmFtZXRlcnM7CiBzdHJ1Y3QgR3JhcGhpY3NEZXZpY2VBZGFwdGVyOwogc3RydWN0
IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0
aFBhcnNlZFVSTDsKK3N0cnVjdCBUZXh0SW5kaWNhdG9yRGF0YTsKIHN0cnVjdCBWaWV3cG9ydEFy
Z3VtZW50czsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIApAQCAtMzE1LDYgKzMxNiw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGln
aGxpZ2h0JiYpIGNvbnN0ID0gMDsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIHNldFRleHRJ
bmRpY2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRhdGEmKSBjb25zdCA9IDA7CisKICAgICB2aXJ0
dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNob3dTaGFyZVNoZWV0KFNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soZmFsc2Up
OyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dDb250YWN0UGlja2VyKGNvbnN0IENvbnRhY3RzUmVx
dWVzdERhdGEmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPENv
bnRhY3RJbmZvPj4mJik+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soV1RGOjpudWxsb3B0KTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0SW5kaWNhdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0b3IuaAppbmRleCBhODkyZDY1YTczNDYyYTYyZjYyMjc0
NTBlNzk0MmI4ZGRjMTUxNWYyLi41ZWY4NWEyOWJmNmIzODliZDBiMThiNDc5NGIyMjI0M2JmMjZh
NDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0b3IuaApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDYgKzQw
LDI1IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIAogc3RydWN0IFNpbXBsZVJhbmdlOwogCitj
b25zdGV4cHIgZmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOworY29uc3RleHByIGZsb2F0
IHJpbVNoYWRvd0JsdXJSYWRpdXMgPSAxOworY29uc3RleHByIFNlY29uZHMgYm91bmNlQW5pbWF0
aW9uRHVyYXRpb24gPSAwLjEyX3M7Citjb25zdGV4cHIgU2Vjb25kcyB0aW1lQmVmb3JlRmFkZVN0
YXJ0cyA9IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4yX3M7Citjb25zdGV4cHIgZmxvYXQg
bWlkQm91bmNlU2NhbGUgPSAxLjI1OworCitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JMaWZldGlt
ZSA6IHVpbnQ4X3QgeworICAgIC8vIFRoZSBUZXh0SW5kaWNhdG9yIHNob3VsZCBpbmRpY2F0ZSB0
aGUgdGV4dCB1bnRpbCBkaXNtaXNzZWQuCisgICAgUGVybWFuZW50LAorCisgICAgLy8gVGhlIFRl
eHRJbmRpY2F0b3Igc2hvdWxkIGJyaWVmbHkgaW5kaWNhdGUgdGhlIHRleHQgYW5kIHRoZW4gYXV0
b21hdGljYWxseSBkaXNtaXNzLgorICAgIFRlbXBvcmFyeQorfTsKKworZW51bSBjbGFzcyBUZXh0
SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdCB7CisgICAgTm9uZSwKKyAgICBG
YWRlT3V0Cit9OworCiAvLyBGSVhNRTogTW92ZSBQcmVzZW50YXRpb25UcmFuc2l0aW9uIHRvIFRl
eHRJbmRpY2F0b3JXaW5kb3csIGJlY2F1c2UgaXQncyBhYm91dCBwcmVzZW50YXRpb24uCiBlbnVt
IGNsYXNzIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uIDogdWludDhfdCB7CiAg
ICAgTm9uZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dElu
ZGljYXRvckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0
b3JMYXllci5oCmluZGV4IGZkMTNkMDQwZWZmYjc1YjBlYTAwNGVhNTUxZTMyMjE1NGFlMThmYWYu
LmJlYmY5M2EzNmVkNzBlNmIzMDlkZTg5NTgxYTE4MzY2NWUzOGMxYjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaApAQCAtMzEsNyAr
MzEsNyBAQAogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3Au
aD4KIAotQGludGVyZmFjZSBXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgOiBDQUxheWVyIHsKK1dFQkNP
UkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViVGV4dEluZGljYXRvckxheWVyIDogQ0FMYXllciB7CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+IF90ZXh0SW5kaWNhdG9yOwogICAgIFJl
dGFpblB0cjxOU0FycmF5PiBfYm91bmNlTGF5ZXJzOwogICAgIENHU2l6ZSBfbWFyZ2luOwpAQCAt
NTMsMyArNTMsNCBAQAogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc0ZhZGluZ091dCkg
Qk9PTCBmYWRpbmdPdXQ7CiAKIEBlbmQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Nv
Y29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5tbQppbmRleCBiOGM0ZDhmMDY3YmFjZWQwOWE4MTE4
MDg3MTAzMDZjNTdhNzk0MzAwLi40ZDFhNTg0ZjFiMDI4MDZhNzNjMGQxZTlhMDg4YjZkODFjYzAw
MTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0
b3JMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJbmRpY2F0
b3JMYXllci5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Lmgi
CiAjaW1wb3J0ICJQYXRoVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXh0SW5kaWNhdG9yLmgiCisj
aW1wb3J0ICJUZXh0SW5kaWNhdG9yV2luZG93LmgiCiAjaW1wb3J0ICJXZWJBY3Rpb25EaXNhYmxp
bmdDQUxheWVyRGVsZWdhdGUuaCIKICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJ
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KQEAgLTM4LDE5ICsz
OSwxNCBAQAogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0NvbG9yU1BJLmg+CiAjZW5kaWYKIAot
Y29uc3RleHByIENGVGltZUludGVydmFsIGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4xMjsK
IGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBib3VuY2VXaXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjM7CiBjb25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgZmFkZUluQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjE1OwotY29uc3RleHByIENGVGltZUludGVydmFsIHRpbWVCZWZvcmVGYWRlU3Rh
cnRzID0gYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gKyAwLjI7CiBjb25zdGV4cHIgQ0ZUaW1lSW50
ZXJ2YWwgZmFkZU91dEFuaW1hdGlvbkR1cmF0aW9uID0gMC4zOwogCi1jb25zdGV4cHIgQ0dGbG9h
dCBtaWRCb3VuY2VTY2FsZSA9IDEuMjU7CiBjb25zdGV4cHIgQ0dGbG9hdCBib3JkZXJXaWR0aCA9
IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBjb3JuZXJSYWRpdXMgPSAwOwogY29uc3RleHByIENHRmxv
YXQgZHJvcFNoYWRvd09mZnNldFggPSAwOwogY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd09m
ZnNldFkgPSAxOwotY29uc3RleHByIENHRmxvYXQgZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwot
Y29uc3RleHByIENHRmxvYXQgcmltU2hhZG93Qmx1clJhZGl1cyA9IDE7CiAKIGNvbnN0ZXhwciBO
U1N0cmluZyAqIGNvbnN0IHRleHRMYXllcktleSA9IEAiVGV4dExheWVyIjsKIGNvbnN0ZXhwciBO
U1N0cmluZyAqIGNvbnN0IGRyb3BTaGFkb3dMYXllcktleSA9IEAiRHJvcFNoYWRvd0xheWVyIjsK
QEAgLTEzMiwxMyArMTI4LDEyIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1Jl
Y3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvCiAgICAgaWYgKCEo
c2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgCisgICAgc2Vs
Zi5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOwogICAgIHNlbGYuZnJhbWUgPSBmcmFtZTsKIAog
ICAgIF90ZXh0SW5kaWNhdG9yID0gJnRleHRJbmRpY2F0b3I7CiAgICAgX21hcmdpbiA9IG1hcmdp
bjsKIAotICAgIHNlbGYuYW5jaG9yUG9pbnQgPSBDR1BvaW50WmVybzsKLQogICAgIFJlZlB0cjxX
ZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29udGVudHNJbWFnZTsKICAgICBXZWJDb3JlOjpGbG9hdFNp
emUgY29udGVudHNJbWFnZUxvZ2ljYWxTaXplIHsgMSwgMSB9OwogICAgIGlmIChhdXRvKiBjb250
ZW50SW1hZ2UgPSBfdGV4dEluZGljYXRvci0+Y29udGVudEltYWdlKCkpIHsKQEAgLTE5Miw3ICsx
ODcsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJ
bmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0bwogICAgICAgICBSZXRhaW5QdHI8Q0FMYXll
cj4gZHJvcFNoYWRvd0xheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKICAg
ICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXREZWxlZ2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FM
YXllckRlbGVnYXRlIHNoYXJlZF1dOwogICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRv
d0NvbG9yOmRyb3BTaGFkb3dDb2xvci5nZXQoKV07Ci0gICAgICAgIFtkcm9wU2hhZG93TGF5ZXIg
c2V0U2hhZG93UmFkaXVzOmRyb3BTaGFkb3dCbHVyUmFkaXVzXTsKKyAgICAgICAgW2Ryb3BTaGFk
b3dMYXllciBzZXRTaGFkb3dSYWRpdXM6V2ViQ29yZTo6ZHJvcFNoYWRvd0JsdXJSYWRpdXNdOwog
ICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd09mZnNldDpDR1NpemVNYWtlKGRyb3BT
aGFkb3dPZmZzZXRYLCBkcm9wU2hhZG93T2Zmc2V0WSldOwogICAgICAgICBbZHJvcFNoYWRvd0xh
eWVyIHNldFNoYWRvd1BhdGg6dHJhbnNsYXRlZFBhdGgucGxhdGZvcm1QYXRoKCldOwogICAgICAg
ICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRvd09wYWNpdHk6MV07CkBAIC0yMDQsNyArMTk5LDcg
QEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5kaWNh
dG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldERl
bGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07CiAgICAg
ICAgIFtyaW1TaGFkb3dMYXllciBzZXRGcmFtZTp5ZWxsb3dIaWdobGlnaHRSZWN0XTsKICAgICAg
ICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd0NvbG9yOnJpbVNoYWRvd0NvbG9yLmdldCgpXTsK
LSAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1czpyaW1TaGFkb3dCbHVyUmFk
aXVzXTsKKyAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1JhZGl1czpXZWJDb3JlOjpy
aW1TaGFkb3dCbHVyUmFkaXVzXTsKICAgICAgICAgW3JpbVNoYWRvd0xheWVyIHNldFNoYWRvd1Bh
dGg6dHJhbnNsYXRlZFBhdGgucGxhdGZvcm1QYXRoKCldOwogICAgICAgICBbcmltU2hhZG93TGF5
ZXIgc2V0U2hhZG93T2Zmc2V0OkNHU2l6ZVplcm9dOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIg
c2V0U2hhZG93T3BhY2l0eToxXTsKQEAgLTI0NSw3ICsyNDAsNyBAQCBzdGF0aWMgUmV0YWluUHRy
PENBS2V5ZnJhbWVBbmltYXRpb24+IGNyZWF0ZUJvdW5jZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZh
bCBkdXJhdAogICAgIFJldGFpblB0cjxDQUtleWZyYW1lQW5pbWF0aW9uPiBib3VuY2VBbmltYXRp
b24gPSBbQ0FLZXlmcmFtZUFuaW1hdGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDpAInRyYW5zZm9y
bSJdOwogICAgIFtib3VuY2VBbmltYXRpb24gc2V0VmFsdWVzOkBbCiAgICAgICAgIFtOU1ZhbHVl
IHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XSwKLSAgICAgICAg
W05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKG1p
ZEJvdW5jZVNjYWxlLCBtaWRCb3VuY2VTY2FsZSwgMSldLAorICAgICAgICBbTlNWYWx1ZSB2YWx1
ZVdpdGhDQVRyYW5zZm9ybTNEOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUoV2ViQ29yZTo6bWlkQm91
bmNlU2NhbGUsIFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxlLCAxKV0sCiAgICAgICAgIFtOU1ZhbHVl
IHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XQogICAgICAgICBd
XTsKICAgICBbYm91bmNlQW5pbWF0aW9uIHNldER1cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTI5NCw3
ICsyODksNyBAQCAtIChDRlRpbWVJbnRlcnZhbClfYW5pbWF0aW9uRHVyYXRpb24KICAgICBpZiAo
W3NlbGYgaW5kaWNhdG9yV2FudHNCb3VuY2U6Kl90ZXh0SW5kaWNhdG9yXSkgewogICAgICAgICBp
ZiAoaW5kaWNhdG9yV2FudHNDb250ZW50Q3Jvc3NmYWRlKCpfdGV4dEluZGljYXRvcikpCiAgICAg
ICAgICAgICByZXR1cm4gYm91bmNlV2l0aENyb3NzZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwotICAg
ICAgICByZXR1cm4gYm91bmNlQW5pbWF0aW9uRHVyYXRpb247CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpib3VuY2VBbmltYXRpb25EdXJhdGlvbi52YWx1ZSgpOwogICAgIH0KIAogICAgIHJldHVy
biBmYWRlSW5BbmltYXRpb25EdXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCBjM2IzM2ViYTJjOGJjMGQ3NTQ1OWRkMjE1MDg5YjY1
MjljNWQzMTVkLi5mN2ZmZjdjNzNhMWQyZmY3NTRiMjc4N2NhMjI5OTUyMzgwMzEzMzhkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5oCkBAIC0zNiwx
OSArMzYsNiBAQCBPQkpDX0NMQVNTIFdlYlRleHRJbmRpY2F0b3JMYXllcjsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVp
bnQ4X3QgewotICAgIC8vIFRoZSBUZXh0SW5kaWNhdG9yIHNob3VsZCBpbmRpY2F0ZSB0aGUgdGV4
dCB1bnRpbCBkaXNtaXNzZWQuCi0gICAgUGVybWFuZW50LAotCi0gICAgLy8gVGhlIFRleHRJbmRp
Y2F0b3Igc2hvdWxkIGJyaWVmbHkgaW5kaWNhdGUgdGhlIHRleHQgYW5kIHRoZW4gYXV0b21hdGlj
YWxseSBkaXNtaXNzLgotICAgIFRlbXBvcmFyeQotfTsKLQotZW51bSBjbGFzcyBUZXh0SW5kaWNh
dG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdCB7Ci0gICAgTm9uZSwKLSAgICBG
YWRlT3V0Ci19OwotCiAjaWYgUExBVEZPUk0oTUFDKQogCiBjbGFzcyBUZXh0SW5kaWNhdG9yV2lu
ZG93IHsKQEAgLTU5LDggKzQ2LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxp
Y2l0IFRleHRJbmRpY2F0b3JXaW5kb3coTlNWaWV3ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5U
ZXh0SW5kaWNhdG9yV2luZG93KCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRleHRJ
bmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBDR1JlY3QgY29udGVudFJlY3QsIFRleHRJbmRp
Y2F0b3JXaW5kb3dMaWZldGltZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhclRleHRJ
bmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbik7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiwgQ0dS
ZWN0IGNvbnRlbnRSZWN0LCBUZXh0SW5kaWNhdG9yTGlmZXRpbWUpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRp
b24pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9h
dCk7CiAKQEAgLTgxLDMgKzY4LDUgQEAgcHJpdmF0ZToKICNlbmRpZiAvLyBQTEFURk9STShNQUMp
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRleCBmODVmYTUzYjNiNGE5ZjQ1OTY5Nzc2YTEy
Y2M0MTFmNzkyMmRmNzdjLi4xODBiYWI3ZDAyYmMzYTVkMWIwYzNlNzQ1MmUxZDMyOTI1MjQ5NzY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0K
QEAgLTM4LDEyICszOCw2IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgogCi1jb25zdCBDRlRpbWVJ
bnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJhdGlvbiA9IDAuMTI7Ci1jb25zdCBDRlRpbWVJbnRl
cnZhbCB0aW1lQmVmb3JlRmFkZVN0YXJ0cyA9IGJvdW5jZUFuaW1hdGlvbkR1cmF0aW9uICsgMC4y
OwotCi1jb25zdCBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxlID0gMS4yNTsKLWNvbnN0IENHRmxvYXQg
ZHJvcFNoYWRvd0JsdXJSYWRpdXMgPSAyOwotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsNyArNTAsNyBAQCBUZXh0SW5kaWNhdG9yV2luZG93
OjpUZXh0SW5kaWNhdG9yV2luZG93KE5TVmlldyAqdGFyZ2V0VmlldykKIAogVGV4dEluZGljYXRv
cldpbmRvdzo6flRleHRJbmRpY2F0b3JXaW5kb3coKQogewotICAgIGNsZWFyVGV4dEluZGljYXRv
cihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKKyAgICBj
bGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlv
bjo6RmFkZU91dCk7CiB9CiAKIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0QW5pbWF0aW9u
UHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCkBAIC02NywxNCArNjEsMTQgQEAgdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCBwcm9ncmVzcykKICAgICBb
bV90ZXh0SW5kaWNhdG9yTGF5ZXIgc2V0QW5pbWF0aW9uUHJvZ3Jlc3M6cHJvZ3Jlc3NdOwogfQog
Ci12b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNh
dG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKK3ZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNz
YWxBbmltYXRpb24gYW5pbWF0aW9uKQogewogICAgIFJlZlB0cjxUZXh0SW5kaWNhdG9yPiB0ZXh0
SW5kaWNhdG9yID0gV1RGTW92ZShtX3RleHRJbmRpY2F0b3IpOwogCiAgICAgaWYgKFttX3RleHRJ
bmRpY2F0b3JMYXllciBpc0ZhZGluZ091dF0pCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICh0
ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JXYW50c01hbnVh
bEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYgW21fdGV4dEluZGljYXRvckxheWVyIGhhc0Nv
bXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9uID09IFRleHRJbmRpY2F0b3JXaW5kb3dEaXNt
aXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKKyAgICBpZiAodGV4dEluZGljYXRvciAmJiBbbV90
ZXh0SW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yV2FudHNNYW51YWxBbmltYXRpb246KnRleHRJbmRp
Y2F0b3JdICYmIFttX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRBbmltYXRpb25dICYm
IGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpG
YWRlT3V0KSB7CiAgICAgICAgIHN0YXJ0RmFkZU91dCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtODIsNyArNzYsNyBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsZWFyVGV4dElu
ZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aQogICAgIGNsb3NlV2lu
ZG93KCk7CiB9CiAKLXZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihS
ZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgQ0dSZWN0IHRleHRCb3VuZGluZ1JlY3RJ
blNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUp
Cit2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRp
Y2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUmVjdCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29y
ZGluYXRlcywgVGV4dEluZGljYXRvckxpZmV0aW1lIGxpZmV0aW1lKQogewogICAgIGlmIChtX3Rl
eHRJbmRpY2F0b3IgPT0gdGV4dEluZGljYXRvci5wdHIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAt
OTUsOCArODksOCBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3Io
UmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUgogICAgIENHRmxvYXQgdmVydGlj
YWxNYXJnaW4gPSBkcm9wU2hhZG93Qmx1clJhZGl1cyAqIDIgKyBUZXh0SW5kaWNhdG9yOjpkZWZh
dWx0VmVydGljYWxNYXJnaW47CiAgICAgCiAgICAgaWYgKFttX3RleHRJbmRpY2F0b3JMYXllciBp
bmRpY2F0b3JXYW50c0JvdW5jZToqbV90ZXh0SW5kaWNhdG9yXSkgewotICAgICAgICBob3Jpem9u
dGFsTWFyZ2luID0gc3RkOjptYXgoaG9yaXpvbnRhbE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdElu
U2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS53aWR0aCAqIChtaWRCb3VuY2VTY2FsZSAtIDEpICsgaG9y
aXpvbnRhbE1hcmdpbik7Ci0gICAgICAgIHZlcnRpY2FsTWFyZ2luID0gc3RkOjptYXgodmVydGlj
YWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLnNpemUuaGVpZ2h0
ICogKG1pZEJvdW5jZVNjYWxlIC0gMSkgKyB2ZXJ0aWNhbE1hcmdpbik7CisgICAgICAgIGhvcml6
b250YWxNYXJnaW4gPSBzdGQ6Om1heChob3Jpem9udGFsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0
SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLndpZHRoICogKFdlYkNvcmU6Om1pZEJvdW5jZVNjYWxl
IC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsKKyAgICAgICAgdmVydGljYWxNYXJnaW4gPSBzdGQ6
Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMu
c2l6ZS5oZWlnaHQgKiAoV2ViQ29yZTo6bWlkQm91bmNlU2NhbGUgLSAxKSArIHZlcnRpY2FsTWFy
Z2luKTsKICAgICB9CiAKICAgICBob3Jpem9udGFsTWFyZ2luID0gQ0dDZWlsaW5nKGhvcml6b250
YWxNYXJnaW4pOwpAQCAtMTI1LDggKzExOSw4IEBAIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6
c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAg
ICAgaWYgKG1fdGV4dEluZGljYXRvci0+cHJlc2VudGF0aW9uVHJhbnNpdGlvbigpICE9IFRleHRJ
bmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpOb25lKQogICAgICAgICBbbV90ZXh0SW5k
aWNhdG9yTGF5ZXIgcHJlc2VudF07CiAKLSAgICBpZiAobGlmZXRpbWUgPT0gVGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lOjpUZW1wb3JhcnkpCi0gICAgICAgIG1fdGVtcG9yYXJ5VGV4dEluZGlj
YXRvclRpbWVyLnN0YXJ0T25lU2hvdCgxX3MgKiB0aW1lQmVmb3JlRmFkZVN0YXJ0cyk7CisgICAg
aWYgKGxpZmV0aW1lID09IFRleHRJbmRpY2F0b3JMaWZldGltZTo6VGVtcG9yYXJ5KQorICAgICAg
ICBtX3RlbXBvcmFyeVRleHRJbmRpY2F0b3JUaW1lci5zdGFydE9uZVNob3QoV2ViQ29yZTo6dGlt
ZUJlZm9yZUZhZGVTdGFydHMpOwogfQogCiB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OmNsb3Nl
V2luZG93KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmlu
ZGV4IDNhZDUxNDJjZDE3N2FhZGFlNWMzODUzMmQ1N2ZjYTQzODBhY2Q0YjYuLjEwYjg5MTliMGY4
NjI0MTgxZWVhYmNmNzhjMDFjMTliYjNiZTBjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNDExLDggKzQxMSw4IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRv
cihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xp
ZmV0aW1lID0gV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQp
OwotICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKTsKKyAgICB2b2lkIHNldFRleHRJbmRp
Y2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZl
dGltZSA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50KTsKKyAgICB2
b2lkIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbik7CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9u
UHJvZ3Jlc3MoZmxvYXQpOwogICAgIHZvaWQgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2lu
ZG93c0Zyb21WaWV3T25seSgpOwogICAgIHZvaWQgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxk
V2luZG93c1dpdGhBbmltYXRpb24oYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDIzYTUwNDY4MTE0MTMzNTE5ZjJlZDFiZGNkODI0Y2Q5
MmE2NWI0MWYuLmRjNTBjZDJjNTE1MGQ1NTc5ODU0YWI3ZTY1ZTc1ZDYyNTVlM2IwOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC00MjMsNyAr
NDIzLDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBh
dGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE4KICNpZiAhRU5BQkxFKFJFVkVBTCkKIC0g
KHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgogewotICAgIF9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUp
OworICAgIF9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogfQogI2VuZGlmCiAKQEAgLTM0
OTUsNyArMzQ5NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkK
ICAgICAgICAgdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygpOwogfQogCi12b2lkIFdlYlZpZXdJ
bXBsOjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0
b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQg
V2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4
dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lIGxpZmV0aW1lKQogewog
ICAgIGlmICghbV90ZXh0SW5kaWNhdG9yV2luZG93KQogICAgICAgICBtX3RleHRJbmRpY2F0b3JX
aW5kb3cgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+KG1fdmlldy5n
ZXRBdXRvcmVsZWFzZWQoKSk7CkBAIC0zNTA0LDcgKzM1MDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBs
OjpzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3Is
IFdlYkNvcgogICAgIG1fdGV4dEluZGljYXRvcldpbmRvdy0+c2V0VGV4dEluZGljYXRvcih0ZXh0
SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGlu
YXRlcyksIGxpZmV0aW1lKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6Y2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5p
bWF0aW9uIGFuaW1hdGlvbikKK3ZvaWQgV2ViVmlld0ltcGw6OmNsZWFyVGV4dEluZGljYXRvcldp
dGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiBhbmlt
YXRpb24pCiB7CiAgICAgaWYgKG1fdGV4dEluZGljYXRvcldpbmRvdykKICAgICAgICAgbV90ZXh0
SW5kaWNhdG9yV2luZG93LT5jbGVhclRleHRJbmRpY2F0b3IoYW5pbWF0aW9uKTsKQEAgLTM1Mjcs
NyArMzUyNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGls
ZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdPbmx5KGJvCiAgICAgLy8gQ2FsbGluZyBfY2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBoZXJlIHdpbGwgd2luIG91dCBvdmVyIHRoZSBh
bmltYXRlZCBjbGVhciBpbiBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZp
ZXdPbmx5LgogICAgIC8vIFdlIGNhbid0IGludmVydCB0aGVzZSBiZWNhdXNlIGNsaWVudHMgY2Fu
IG92ZXJyaWRlIChhbmQgaGF2ZSBvdmVycmlkZGVuKSBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNo
aWxkV2luZG93cywgc28gaXQgbmVlZHMgdG8gYmUgY2FsbGVkLgogICAgIC8vIEZvciB0aGlzIHNh
bWUgcmVhc29uLCB0aGlzIGNhbid0IGJlIG1vdmVkIHRvIFdlYlZpZXdJbXBsIHdpdGhvdXQgY2Fy
ZS4KLSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKGFuaW1hdGUgPyBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0IDogV2ViQ29y
ZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgY2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihhbmltYXRlID8gV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCA6IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JE
aXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAgIFttX3ZpZXcgX3dlYl9kaXNtaXNzQ29udGVu
dFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKIH0KIApAQCAtMzU0NCw3ICszNTQ0LDcgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25s
eSgpCiAgICAgICAgICAgICBbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFn
ZXJdIHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNob3JPbkZhaWx1cmU6WUVTXTsKICAgICB9CiAK
LSAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAgIGNsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlv
bjo6RmFkZU91dCk7CiAKICAgICBbbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGRpc21pc3ND
b250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgKaW5kZXggNDE3ZTExZDQ5NjYwN2EzMDBjZmI2NWZlZDZjN2Y0Y2FjZTBjOTI2ZC4uYTM1
NzMxZWMwMWQ5ZTVlMTUwMmU2MDVlNTI4MmZlZjBiMDQ1ZDY4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaApAQCAtMTA2LDggKzEwNiw4IEBAIGNsYXNzIFNlbGVjdGlvbkRhdGE7
CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0
ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTY3JvbGxiYXJTdHlsZSA6IHVp
bnQ4X3Q7Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSA6IHVpbnQ4X3Q7
Ci1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50
OF90OworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yTGlmZXRpbWUgOiB1aW50OF90OworZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdDsKIGVudW0gY2xh
c3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBBcHBIaWdobGln
aHQ7CkBAIC0zODUsOCArMzg1LDggQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4
dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0
SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGlj
YXRvckxpZmV0aW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgPSAwOwogICAg
IAogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJD
b3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggZWE1YzM0OTA3MzNjMmIwZTkxZGU4NDg4OGUzMDA0YWU5YmFi
ODQ1ZC4uNDk5MzE0MzQ2NzFjMmRiYWUxZjU2MGZlMzdiMDYxZTljNjI4NGQ3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTgsNyArMjE4LDYgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3BPYnNlcnZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VmVyc2lvbkNoZWNrcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAjaW5jbHVk
ZSA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgpAQCAtNjUxMSw3ICs2NTEwLDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgVGV4dEluZGljYXRvckRhdGEmIGlu
ZGljYXRvckRhdGEsIHVpbnQKIHsKICAgICAvLyBGSVhNRTogTWFrZSBUZXh0SW5kaWNhdG9yV2lu
ZG93IGEgcGxhdGZvcm0taW5kZXBlbmRlbnQgcHJlc2VudGF0aW9uYWwgdGhpbmcgKCJUZXh0SW5k
aWNhdG9yUHJlc2VudGF0aW9uIj8pLgogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBhZ2VDbGll
bnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3I6OmNyZWF0ZShpbmRpY2F0b3JEYXRh
KSwgc3RhdGljX2Nhc3Q8VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lPihsaWZldGltZSkpOwor
ICAgIHBhZ2VDbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3I6OmNyZWF0ZShp
bmRpY2F0b3JEYXRhKSwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1l
PihsaWZldGltZSkpOwogI2Vsc2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgpA
QCAtNjUyMCw3ICs2NTE5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRJbmRpY2F0b3Io
Y29uc3QgVGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEsIHVpbnQKIHZvaWQgV2ViUGFn
ZVByb3h5OjpjbGVhclRleHRJbmRpY2F0b3IoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IHBhZ2VDbGllbnQoKS5jbGVhclRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcldpbmRvd0Rpc21p
c3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAgcGFnZUNsaWVudCgpLmNsZWFyVGV4dEluZGlj
YXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsK
ICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNWI0NTdkZmI2MDMxZWY2MzlhZDNhZTNmY2JmZmZh
ZTZhNmQ4NTcwMi4uZmNiZDQ5NjhkNDE1ZGY2NzY3YTFhZjk5OGJiOWNkY2JlMWEwZWMyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTExNDksNyArMTE0OSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBPcHRp
b25TZXQ8RmluZE9wdGlvbnM+LCB1bnNpZ25lZCBtYXhNYXRjaENvdW50KTsKICAgICB2b2lkIHJl
cGxhY2VNYXRjaGVzKFZlY3Rvcjx1aW50MzJfdD4mJiBtYXRjaEluZGljZXMsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZW1lbnRUZXh0LCBib29sIHNlbGVjdGlvbk9ubHksIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQodWludDY0X3QpPiYmKTsKICAgICB2b2lkIGRpZENvdW50U3RyaW5nTWF0Y2hlcyhjb25z
dCBTdHJpbmcmLCB1aW50MzJfdCBtYXRjaENvdW50KTsKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0
b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmLCB1aW50NjRfdCAvKiBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgKi8gbGlmZXRpbWUgPSAwIC8qIFBlcm1hbmVu
dCAqLyk7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEYXRhJiwgdWludDY0X3QgLyogV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lICov
IGxpZmV0aW1lID0gMCAvKiBQZXJtYW5lbnQgKi8pOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRv
ckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsKICAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcigp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CmluZGV4IDNmYmUxYjE3ZmY2NjA0NDllOTkzZWY3ZThhZmMwYmEwMDI0ZmQ4N2EuLjgxZmIwMTgz
M2NlZTllNWQ5MTU5NTQxOGQyYjVhMGFlNGI4NDRjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMzgsOCArMTM4LDggQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2Vy
KFdlYlBhZ2VQcm94eSYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0
b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93TGlmZXRpbWUpIG92ZXJyaWRlOwotICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOworICAg
IHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclRleHRJ
bmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBzaG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJv
d3NpbmdXYXJuaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PFdlYktpdDo6Q29u
dGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA0MGI3NjIzNjM5ZmZh
ZDQxYjQ0MjQ2OGViMmUxODFhYTM0ZjAxNjUzLi44YzNjOGYyNDIxY2YwY2MyYjNmNTAzNzRkMTlm
YjVjMjJjMTU5OTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tCkBAIC00NzksMTYgKzQ3OSwxOSBAQCBSZWZQdHI8V2ViUG9wdXBNZW51
UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkm
KQogICAgIHJldHVybiBudWxscHRyOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0
SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9y
V2luZG93TGlmZXRpbWUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJl
ZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlm
ZXRpbWUpCiB7CisgICAgW21fY29udGVudFZpZXcgc2V0VXBUZXh0SW5kaWNhdG9yOnRleHRJbmRp
Y2F0b3JdOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IoVGV4
dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKIHsKKyAgICBbbV9jb250ZW50VmlldyBjbGVhclRleHRJ
bmRpY2F0b3I6ZGlzbWlzc2FsQW5pbWF0aW9uXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6
c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KQordm9pZCBQYWdlQ2xpZW50
SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0IGFuaW1hdGlvblBy
b2dyZXNzKQogeworICAgIFttX2NvbnRlbnRWaWV3IHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Q
cm9ncmVzczphbmltYXRpb25Qcm9ncmVzc107CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5
ZXJUcmVlQ29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA4ODZhZTc1ZTY3YjU2YWViMzgzNzg0ZjU5
NmM5ZDhmNzI5MTI1NmU3Li44ZmY5MmI3YzliOGFiOWU3MDdhODcxNjEzMDczOWUwZGY5MzE2Mjc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCkBAIC04OSw2ICs4OSw3IEBAIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFy
c2VkVVJMOwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVu
dW0gY2xhc3MgTW91c2VFdmVudFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hh
cmluZ1BvbGljeSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxB
bmltYXRpb24gOiB1aW50OF90OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIHN0cnVjdCBE
cmFnSXRlbTsKQEAgLTEwNCw2ICsxMDUsNyBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiB9CiAKIEBj
bGFzcyBXZWJFdmVudDsKK0BjbGFzcyBXZWJUZXh0SW5kaWNhdG9yTGF5ZXI7CiBAY2xhc3MgV0tB
Y3Rpb25TaGVldEFzc2lzdGFudDsKIEBjbGFzcyBXS0NvbnRleHRNZW51RWxlbWVudEluZm87CiBA
Y2xhc3MgV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbDsKQEAgLTMzMSw2ICszMzMsOSBAQCBl
bnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uIDogYm9vbCB7CiAgICAgUmV0YWlu
UHRyPFVJUHJldmlld0l0ZW1Db250cm9sbGVyPiBfcHJldmlld0l0ZW1Db250cm9sbGVyOwogI2Vu
ZGlmCiAKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gX3RleHRJbmRpY2F0b3I7
CisgICAgUmV0YWluUHRyPFdlYlRleHRJbmRpY2F0b3JMYXllcj4gX3RleHRJbmRpY2F0b3JMYXll
cjsKKwogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFJldGFpblB0cjxVSVRhcmdldGVkUHJl
dmlldz4gX2NvbnRleHRNZW51SW50ZXJhY3Rpb25UYXJnZXRlZFByZXZpZXc7CiAjZW5kaWYKQEAg
LTY3MCw2ICs2NzUsMTAgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihE
RUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX2RpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lOwogLSAodm9pZClfZGlkQ29tbWl0TG9hZEZv
ck1haW5GcmFtZTsKIAorLSAodm9pZClzZXRVcFRleHRJbmRpY2F0b3I6KFJlZjxXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yOworLSAodm9pZClzZXRUZXh0SW5kaWNhdG9yQW5p
bWF0aW9uUHJvZ3Jlc3M6KGZsb2F0KU5TQW5pbWF0aW9uUHJvZ3Jlc3M7CistICh2b2lkKWNsZWFy
VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilh
bmltYXRpb247CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxk
VXNlQ29udGV4dE1lbnVzOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9z
aG91bGRBdm9pZFJlc2l6aW5nV2hlbklucHV0Vmlld0JvdW5kc0NoYW5nZTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkQXZvaWRTY3JvbGxpbmdXaGVuRm9jdXNl
ZENvbnRlbnRJc1Zpc2libGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBhNjA4NjlhNzdmOTI1NzBiMjBj
OWY3MTkzZGFjZDEwMTEyMWZhMTdhLi5mNzkwZTUwMzI1Nzg5NThiOTg0YWU2ZmFlMGZlODJjYWZi
OTA2NjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTExNiwxMSArMTE2LDEzIEBACiAjaW1wb3J0IDxX
ZWJDb3JlL1NoYXJlRGF0YS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVXaXRo
UmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RvdWNoQWN0aW9u
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9W
ZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Zpc2libGVTZWxlY3Rpb24uaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViRXZlbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViVGV4dEluZGlj
YXRvckxheWVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dyaXRpbmdEaXJlY3Rpb24uaD4KICNpbXBv
cnQgPFdlYktpdC9XZWJTZWxlY3Rpb25SZWN0Lmg+IC8vIEZJWE1FOiBXZWJLaXQgc2hvdWxkIG5v
dCBpbmNsdWRlIFdlYktpdExlZ2FjeSBoZWFkZXJzIQogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3Jl
R3JhcGhpY3NTUEkuaD4KQEAgLTk1ODIsNiArOTU4NCw2NyBAQCAtICh2b2lkKV9pbnZva2VBbGxB
Y3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOihXZWJLaXQ6OlByb2Nl
ZWRXaQogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAKKy0gKHZvaWQpc2V0
VXBUZXh0SW5kaWNhdG9yOihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4pdGV4dEluZGljYXRv
cgoreworICAgIGlmIChfdGV4dEluZGljYXRvciA9PSB0ZXh0SW5kaWNhdG9yLnB0cigpKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgW3NlbGYgdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXJd
OworICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1SZXF1ZXN0c1dpdGhUYXJnZXQ6
c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Ioc3RhcnRGYWRlT3V0KSBvYmplY3Q6bmlsXTsKKyAgICAK
KyAgICBfdGV4dEluZGljYXRvciA9IHRleHRJbmRpY2F0b3IucHRyKCk7CisKKyAgICBDR1JlY3Qg
ZnJhbWUgPSBfdGV4dEluZGljYXRvci0+dGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGlu
YXRlcygpOworICAgIF90ZXh0SW5kaWNhdG9yTGF5ZXIgPSBhZG9wdE5TKFtbV2ViVGV4dEluZGlj
YXRvckxheWVyIGFsbG9jXSBpbml0V2l0aEZyYW1lOmZyYW1lCisgICAgICAgIHRleHRJbmRpY2F0
b3I6dGV4dEluZGljYXRvciBtYXJnaW46Q0dTaXplWmVybyBvZmZzZXQ6Q0dQb2ludFplcm9dKTsK
KyAgICAKKyAgICBbW3NlbGYgbGF5ZXJdIGFkZFN1YmxheWVyOl90ZXh0SW5kaWNhdG9yTGF5ZXIu
Z2V0KCldOworCisgICAgaWYgKF90ZXh0SW5kaWNhdG9yLT5wcmVzZW50YXRpb25UcmFuc2l0aW9u
KCkgIT0gV2ViQ29yZTo6VGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246Ok5vbmUp
CisgICAgICAgIFtfdGV4dEluZGljYXRvckxheWVyIHByZXNlbnRdOworICAgIAorICAgIFtzZWxm
IHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3Ioc3RhcnRGYWRlT3V0KSB3aXRoT2JqZWN0OnNlbGYg
YWZ0ZXJEZWxheTpXZWJDb3JlOjp0aW1lQmVmb3JlRmFkZVN0YXJ0cy52YWx1ZSgpXTsKK30KKwor
LSAodm9pZCljbGVhclRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNz
YWxBbmltYXRpb24pYW5pbWF0aW9uCit7CisgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJbmRpY2F0
b3I+IHRleHRJbmRpY2F0b3IgPSBXVEZNb3ZlKF90ZXh0SW5kaWNhdG9yKTsKKyAgICAKKyAgICBp
ZiAoW190ZXh0SW5kaWNhdG9yTGF5ZXIgaXNGYWRpbmdPdXRdKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAodGV4dEluZGljYXRvciAmJiBbX3RleHRJbmRpY2F0b3JMYXllciBpbmRpY2F0b3JX
YW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYgW190ZXh0SW5kaWNhdG9yTGF5
ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9uXSAmJiBhbmltYXRpb24gPT0gV2ViQ29yZTo6VGV4dElu
ZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCkgeworICAgICAgICBbc2VsZiBzdGFy
dEZhZGVPdXRdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW3NlbGYgdGVhcmRvd25U
ZXh0SW5kaWNhdG9yTGF5ZXJdOworfQorCistICh2b2lkKXNldFRleHRJbmRpY2F0b3JBbmltYXRp
b25Qcm9ncmVzczooZmxvYXQpYW5pbWF0aW9uUHJvZ3Jlc3MKK3sKKyAgICBpZiAoIV90ZXh0SW5k
aWNhdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciBzZXRB
bmltYXRpb25Qcm9ncmVzczphbmltYXRpb25Qcm9ncmVzc107Cit9CisKKy0gKHZvaWQpdGVhcmRv
d25UZXh0SW5kaWNhdG9yTGF5ZXIKK3sKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciByZW1vdmVG
cm9tU3VwZXJsYXllcl07CisgICAgX3RleHRJbmRpY2F0b3JMYXllciA9IG5pbDsKK30KKworLSAo
dm9pZClzdGFydEZhZGVPdXQKK3sKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciBzZXRGYWRpbmdP
dXQ6WUVTXTsKKyAgICAgICAgCisgICAgW190ZXh0SW5kaWNhdG9yTGF5ZXIgaGlkZVdpdGhDb21w
bGV0aW9uSGFuZGxlcjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxm
KV0geworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAg
W3N0cm9uZ1NlbGYgdGVhcmRvd25UZXh0SW5kaWNhdG9yTGF5ZXJdOworICAgIH1dOworfQorCiAj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnNBZnRlci5tbT4KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA1OGJlNGEy
Y2FlNDUzN2U1NDYzYmRkMWI2YjViZTE2OGJhNjkyNzZjLi42NzU1ZjAxYjM4ODQ4MDg1YjBiNWFk
MmFhYzhjZTFkMWU0NGI3YWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGxNYWMuaApAQCAtMTU2LDggKzE1Niw4IEBAIHByaXZhdGU6CiAKICAgICBS
ZWY8V2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZT4gY3JlYXRlVmFsaWRhdGlvbkJ1YmJsZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OlNldHRp
bmdzJikgZmluYWw7CiAKLSAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJy
aWRlOwotICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dEaXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VGV4dEluZGlj
YXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JM
aWZldGltZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6
VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRU
ZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpIG92ZXJyaWRlOwogCiAgICAgdm9p
ZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQm
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbE1hYy5tbQppbmRleCA3ODhhMjc5NmRiYjFjZjQ1OWVmZTEyNGM2ZjBkN2QwYTY5OGI3ZTli
Li42MTRiNTk2NmM2NGFiY2M0ZDQxMGIwM2RhZDRhNzAzOWNkZmZjNDg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC01NjksMTIg
KzU2OSwxMiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhclNhZmVCcm93c2luZ1dhcm5pbmdJ
ZkZvck1haW5GcmFtZU5hdmlnYXRpb24oKQogICAgIG1faW1wbC0+Y2xlYXJTYWZlQnJvd3NpbmdX
YXJuaW5nSWZGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudElt
cGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0
b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSBsaWZldGltZSkKIHsKICAgICBtX2lt
cGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvci5nZXQoKSwgbGlmZXRpbWUpOwogfQog
Ci12b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiBkaXNtaXNzYWxBbmltYXRpb24pCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbiBkaXNtaXNzYWxBbmltYXRpb24pCiB7CiAgICAgbV9pbXBsLT5j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKGRpc21pc3NhbEFuaW1hdGlvbik7CiB9CkBA
IC02NzIsOSArNjcyLDkgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25h
cnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGkKICAgICBtX2ltcGwtPnBy
ZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7CiAKICAgICBEaWN0aW9uYXJ5TG9va3VwOjpzaG93
UG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgbV92aWV3LCBbdGhpc10oVGV4dEluZGljYXRvciYg
dGV4dEluZGljYXRvcikgewotICAgICAgICBtX2ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dElu
ZGljYXRvciwgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOworICAgICAg
ICBtX2ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dElu
ZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnQpOwogICAgIH0sIG51bGxwdHIsIFt0aGlzXSgpIHsK
LSAgICAgICAgbV9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgICAgICBt
X2ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyLm1tCmluZGV4IDliYWE4YmUyNGM3N2M3NDZlNzkzZjQxMzc4ZGNkMDBiM2NmNGM0ZmUuLmJl
YzBkYzEyOGM1MDY3ZDZlOTI3ZGZjZWRiNDdhN2ZiZWQ4MmU0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ci5tbQpAQCAtNDkwLDkgKzQ5MCw5IEBAIC0gKGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
Q29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JUZXh0CiAgICAgX3ZpZXdJbXBsLT5w
cmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cCgpOwogCiAgICAgcmV0dXJuIFdlYkNvcmU6OkRpY3Rp
b25hcnlMb29rdXA6OmFuaW1hdGlvbkNvbnRyb2xsZXJGb3JQb3B1cChkaWN0aW9uYXJ5UG9wdXBJ
bmZvLCBfdmlldywgW3NlbGZdKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3Ip
IHsKLSAgICAgICAgX3ZpZXdJbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50KTsKKyAgICAgICAg
X3ZpZXdJbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50KTsKICAgICB9LCBudWxscHRyLCBbc2VsZl0oKSB7
Ci0gICAgICAgIF92aWV3SW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICAg
ICAgX3ZpZXdJbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwogICAgIH0pOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCmluZGV4IDNmMmU5ZDUwZmZiMDAxYzI0NmQ0MTcxMGUwM2I0NDliZGM1
ODY3ODQuLjk1MTkxN2MyNGQ5ZjAyZTgwNjY5YmNlZGNiYzgzYTEwMDQ1YjM2MmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCkBAIC04OCw2ICs4OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGlj
YXRvci5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICNpbmNsdWRlICJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyLmgiCkBAIC0xMjcxLDYgKzEyNzIsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnN0b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmIGhpZ2hsaWdodCkgY29u
c3QKIH0KICNlbmRpZgogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvcihj
b25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSkgY29uc3QKK3sK
KyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9y
KGluZGljYXRvckRhdGEsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKK30KKwogU3RyaW5nIFdlYkNocm9tZUNsaWVudDo6
c2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNpemVJbmRleCwg
Y29uc3QgU3RyaW5nJiBjaGFsbGVuZ2VTdHJpbmcsIGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewog
ICAgIFN0cmluZyByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNGVlZjFmOGFkMWM1MmFj
MDUxNjU4MmJhMTYxNTVjYWQwMWExNTU3Mi4uNDE5YmE3ODQ4M2FlZWUyYzFkNDNkYTJiMGI0MmU5
MWQ3YzFiMWU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzUzLDYgKzM1Myw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikg
Y29uc3QgZmluYWw7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFsOworCiAjaWYgRU5BQkxFKFdF
Ql9DUllQVE8pCiAgICAgYm9vbCB3cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYs
IFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgdW53cmFwQ3J5cHRvS2V5
KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0IGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIu
Y3BwCmluZGV4IDAwOTAxNGE1MzZiZjlkNjhkZmJlNWRhMTQwZGRiNTE3YWVhY2QyMDcuLmNlMjFk
NjdjNDhiOTYwOWVmYTM5NTY2YWYwMjkzYjkzYWNjZWRkY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTM4MCw3ICsz
ODAsNyBAQCBib29sIEZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kSW5kaWNhdG9yKEZyYW1lJiBz
ZWxlY3RlZEZyYW1lLCBib29sIGlzU2hvd2luZ092ZQogCiAgICAgbV9maW5kSW5kaWNhdG9yUmVj
dCA9IGVuY2xvc2luZ0ludFJlY3QoaW5kaWNhdG9yLT5zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nv
b3JkaW5hdGVzKCkpOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIG1fd2ViUGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUZXh0SW5kaWNhdG9yKGluZGljYXRvci0+ZGF0YSgp
LCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaXNTaG93aW5nT3ZlcmxheSA/IFRleHRJbmRpY2F0b3JX
aW5kb3dMaWZldGltZTo6UGVybWFuZW50IDogVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpU
ZW1wb3JhcnkpKSk7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yLT5kYXRhKCksIHN0YXRpY19jYXN0PHVpbnQ2NF90
Pihpc1Nob3dpbmdPdmVybGF5ID8gV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJt
YW5lbnQgOiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKICNl
bmRpZgogICAgIG1faXNTaG93aW5nRmluZEluZGljYXRvciA9IHRydWU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKaW5kZXggZjNkNDcxNmE4OTMzZDlmMjQyZjhlZjEyMTVhODY2MjM0MGY4OTdhNS4uYmFkNTFm
MGIyMTJkYWU3YjY3MTAxYTBhYWE2M2U0OTQ5ZGU3ZDM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAg
LTE1NSw2ICsxNTUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoV2Vi
Q29yZTo6QXBwSGlnaGxpZ2h0JiYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKKyAgICB2b2lkIHNl
dFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmKSBjb25zdCBm
aW5hbDsKKwogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgYm9vbCByZXF1ZXN0UG9pbnRl
ckxvY2soKSBmaW5hbDsKICAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW0KaW5kZXggNDUzOWNlNmY2NGQwMGIwYmIwMDI4M2VhYzgxNTMyOTc5MDA0
YzRlOC4uMDNlYjYxNDc0ZTIxZmJhYjE1ZTE1Mjc4MDBiMGM0NmQ5MmI0MzNhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbQpAQCAtNzIwLDYgKzcyMCwxMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c3Rv
cmVBcHBIaWdobGlnaHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYpIGNvbnN0CiB9CiAjZW5kaWYK
IAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6
VGV4dEluZGljYXRvckRhdGEmIGluZGljYXRvckRhdGEpIGNvbnN0Cit7Cit9CisKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9j
aygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bQppbmRleCAwZmUyYTUwOTZjN2UyNmYzMjAzMjVlMzY4YmZmMGRiYjlmMDcyYzc2Li42MWQ2ZjRl
ODY1OTRkY2FiN2U2MTc5MDcwNGI3MDllZjVjY2MyYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTU5NTMsNyArNTk1Myw3IEBAIC0g
KHZvaWQpX2xvb2tVcEluRGljdGlvbmFyeUZyb21NZW51OihpZClzZW5kZXIKIAogLSAodm9pZClx
dWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIFtbc2VsZiBfd2ViVmll
d10gX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CisgICAgW1tzZWxmIF93ZWJWaWV3
XSBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICBbc3VwZXIgcXVpY2tMb29rV2l0aEV2
ZW50OmV2ZW50XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IGNlNjJi
ZmE1MTYxNzdjOGMzNmFlZGQ3YmE1ZmE0YzI3NTEwZDZmNzEuLmJlNWI2YTJmYjAxNTRiYzM2ZmNk
MzhiYjFkYWQ4OWUwOWM3MGUzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAg
LTEyMiw3ICsxMjIsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRpZEhh
bmRsZVNjcm9sbFdoZWVsOihOU0V2ZW50ICopZXZlbnQKIHsKICAgICBbX2N1cnJlbnRRTFByZXZp
ZXdNZW51SXRlbSBjbG9zZV07CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVd
OwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKKyAgICBbX3dl
YlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07CiB9CiAKIC0gKE5TSW1tZWRpYXRlQWN0aW9u
R2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCkBAIC0xMzksNyAr
MTM5LDcgQEAgLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uCiAgICAgfQogCiAgICAgW3Nl
bGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlz
c2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRv
cldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6
RmFkZU91dF07CiB9CiAKIC0gKHZvaWQpX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGUKQEAgLTI1
MSw3ICsyNTEsNyBAQCAtICh2b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJEaWRDYW5jZWxB
bmltYXRpb246KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlYwogCiAgICAgW193ZWJWaWV3IF9z
ZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6MF07CiAgICAgW3NlbGYgX2NsZWFySW1t
ZWRpYXRlQWN0aW9uU3RhdGVdOwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0
aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9u
OjpOb25lXTsKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246
V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07CiAgICAgW193
ZWJWaWV3IF9zZXRNYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbjpOT107CiB9CiAKQEAgLTI5Myw3
ICsyOTMsNyBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilf
ZGVmYXVsdEFuaW1hdGlvbkNvbnRyb2xsZXIKICAgICAgICAgICAgIGF1dG8gbGlua1JhbmdlID0g
bWFrZVJhbmdlU2VsZWN0aW5nTm9kZUNvbnRlbnRzKCpfaGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50
KCkpOwogICAgICAgICAgICAgYXV0byBpbmRpY2F0b3IgPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
OjpjcmVhdGVXaXRoUmFuZ2UobGlua1JhbmdlLCB7IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JPcHRp
b246OlVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29udGVudEZvckNvbXBsZXhSYW5nZXMgfSwg
V2ViQ29yZTo6VGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246OkZhZGVJbik7CiAg
ICAgICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0
VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgICAgICAgICAgW193ZWJWaWV3
IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJ
bmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKIAogICAgICAgICAgICAgUUxQcmV2aWV3TWVu
dUl0ZW0gKml0ZW0gPSBbTlNNZW51SXRlbSBzdGFuZGFyZFF1aWNrTG9va01lbnVJdGVtXTsKICAg
ICAgICAgICAgIGl0ZW0ucHJldmlld1N0eWxlID0gUUxQcmV2aWV3U3R5bGVQb3BvdmVyOwpAQCAt
Mzc5LDcgKzM3OSw3IEBAIC0gKE5TUmVjdEVkZ2UpbWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51
SXRlbSBwcmVmZXJyZWRFZGdlRm9yUG9pbnQ6KE5TUG9pbnQpcG9pCiAtICh2b2lkKW1lbnVJdGVt
RGlkQ2xvc2U6KE5TTWVudUl0ZW0gKiltZW51SXRlbQogewogICAgIFtzZWxmIF9jbGVhckltbWVk
aWF0ZUFjdGlvblN0YXRlXTsKLSAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhB
bmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6
RmFkZU91dF07CisgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9u
OldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogfQog
CiBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3Jk
aW5hdGVzRnJvbU5vZGUoV2ViQ29yZTo6Tm9kZSogbm9kZSkKQEAgLTQ2NCw5ICs0NjQsOSBAQCAt
IChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29u
dHJvbGxlckZvckRhdGFEZXRlY3RlZAogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFtkZXRl
Y3RlZEl0ZW0tPmFjdGlvbkNvbnRleHQgY29udGV4dEZvclZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZ
RVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFu
Z2VkSGFuZGxlcjpeKCkgewogICAgICAgICBpZiAoaW5kaWNhdG9yKQotICAgICAgICAgICAgW193
ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgICAgIFtf
d2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSBpbnRlcmFjdGlvblN0
b3BwZWRIYW5kbGVyOl4oKSB7Ci0gICAgICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRo
QW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVP
dXRdOwogICAgIH1dOwogCiAgICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRG
cmFtZTpbX3dlYlZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46ZGV0ZWN0ZWRJdGVtLT5i
b3VuZGluZ0JveF1dOwpAQCAtNDk3LDkgKzQ5Nyw5IEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlv
bkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVk
CiAgICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0gW2FjdGlvbkNvbnRleHQgY29udGV4dEZvclZp
ZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgewog
ICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkgewogICAgICAgICBpZiAoaW5kaWNh
dG9yKQotICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Ig
d2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFu
ZW50XTsKKyAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqaW5kaWNhdG9y
IHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07
CiAgICAgfSBpbnRlcmFjdGlvblN0b3BwZWRIYW5kbGVyOl4oKSB7Ci0gICAgICAgIFtfd2ViVmll
dyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICAgICAgW193ZWJWaWV3IF9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNt
aXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwogCiAgICAgW19jdXJyZW50QWN0aW9u
Q29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9T
Y3JlZW46ZWxlbWVudEJvdW5kaW5nQm94SW5XaW5kb3dDb29yZGluYXRlc0Zyb21Ob2RlKF9oaXRU
ZXN0UmVzdWx0LlVSTEVsZW1lbnQoKSldXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQppbmRleCA3MjY0YmZkY2Q3MmRlMTM2OTYwYTMyMzhjYjAwMjE2ZmI4OTJm
ZjdjLi45OTJmM2UwOTc0ZDY0NWJmZTI1ZDczMTk4MzJkODQxZjc3MGVlNmRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC05MTAwLDExICs5MTAwLDEx
IEBAIC0gKGlkKV9hbmltYXRpb25Db250cm9sbGVyRm9yRGljdGlvbmFyeUxvb2t1cFBvcHVwSW5m
bzooY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyCiAgICAgW3NlbGYgX3ByZXBhcmVGb3JEaWN0aW9u
YXJ5TG9va3VwXTsKIAogICAgIHJldHVybiBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjphbmlt
YXRpb25Db250cm9sbGVyRm9yUG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgc2VsZiwgW3NlbGZd
KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAgW3NlbGYg
X3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICBbc2VsZiBfc2V0
VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiAgICAgfSwgW3NlbGZdKFdlYkNvcmU6OkZsb2F0
UmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSB7CiAgICAgICAgIHJldHVybiBbc2VsZiBf
Y29udmVydFJlY3RGcm9tUm9vdFZpZXc6cmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CiAgICAg
fSwgW3NlbGZdKCkgewotICAgICAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRl
T3V0XTsKKyAgICAgICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2Vi
Q29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfSk7
CiB9CiAKQEAgLTkxMjAsMTAgKzkxMjAsMTAgQEAgLSAodm9pZClfc2V0UHJlc3N1cmVFdmVudDoo
TlNFdmVudCAqKWV2ZW50CiAKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IKIHsKLSAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRv
cjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dElu
ZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJt
YW5lbnRdOwogfQogCi0tICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lKWxpZmV0aW1lCistICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooV2ViQ29yZTo6
VGV4dEluZGljYXRvckxpZmV0aW1lKWxpZmV0aW1lCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+dGV4
dEluZGljYXRvcldpbmRvdykKICAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cg
PSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+KHNlbGYpOwpAQCAtOTEz
MywxMCArOTEzMywxMCBAQCAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooVwogICAgIF9wcml2YXRlLT50
ZXh0SW5kaWNhdG9yV2luZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIE5TUmVj
dFRvQ0dSZWN0KHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzKSwgbGlmZXRpbWUp
OwogfQogCi0tICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbgorLSAodm9p
ZClfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooV2ViQ29yZTo6VGV4dEluZGljYXRv
ckRpc21pc3NhbEFuaW1hdGlvbilhbmltYXRpb24KIHsKICAgICBpZiAoX3ByaXZhdGUtPnRleHRJ
bmRpY2F0b3JXaW5kb3cpCi0gICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93LT5j
bGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbjo6RmFkZU91dCk7CisgICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93
LT5jbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1h
dGlvbjo6RmFkZU91dCk7CiAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cgPSBudWxs
cHRyOwogfQogCkBAIC05MTY4LDE4ICs5MTY4LDE4IEBAIC0gKHZvaWQpX3Nob3dEaWN0aW9uYXJ5
TG9va3VwUG9wdXA6KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKWRpY3Rpb25h
CiAgICAgW3NlbGYgX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAogICAgIFdlYkNvcmU6
OkRpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBzZWxmLCBb
c2VsZl0oV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBb
c2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgIFtzZWxm
IF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRl
eHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKICAgICB9LCBbc2VsZl0oV2ViQ29yZTo6
RmxvYXRSZWN0IHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMpIHsKICAgICAgICAgcmV0dXJuIFtz
ZWxmIF9jb252ZXJ0UmVjdEZyb21Sb290VmlldzpyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsK
ICAgICB9LCBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXZWJWaWV3PihzZWxmKV0oKSB7Ci0gICAg
ICAgIFt3ZWFrU2VsZi5nZXQoKSBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAg
ICAgICAgW3dlYWtTZWxmLmdldCgpIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH0p
OwogfQogCiAjaWYgIUVOQUJMRShSRVZFQUwpCiAtICh2b2lkKV9kaWN0aW9uYXJ5TG9va3VwUG9w
b3ZlcldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBbc2Vs
ZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbc2VsZiBfY2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uOjpGYWRlT3V0XTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoUkVWRUFMKQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCA3
MzM3MmEwYmRhMTUzYmZhMzc2MTAyM2NmNDk1ZDc5NmZhNzE4Y2MxLi5iYWQ1ZmQ4YTE1MGFjZjJj
MzdhNTdjMzY0ZjgyMTlkY2Q0MzczMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTMxOSw4ICszMTksOCBAQCBXZWJMYXlv
dXRNaWxlc3RvbmVzIGtpdExheW91dE1pbGVzdG9uZXMoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91
dE1pbGVzdG9uZT4pOwogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVz
KQogLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4
dEluZGljYXRvcjsKLS0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93TGlmZXRpbWUpbGlmZXRpbWU7Ci0tICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRo
QW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9u
KWFuaW1hdGlvbjsKKy0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
TGlmZXRpbWUpbGlmZXRpbWU7CistICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsK
IC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQpcHJvZ3Jl
c3M7CiAtICh2b2lkKV9zaG93RGljdGlvbmFyeUxvb2t1cFBvcHVwOihjb25zdCBXZWJDb3JlOjpE
aWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9uYXJ5UG9wdXBJbmZvOwogLSAoaWQpX2FuaW1hdGlv
bkNvbnRyb2xsZXJGb3JEaWN0aW9uYXJ5TG9va3VwUG9wdXBJbmZvOihjb25zdCBXZWJDb3JlOjpE
aWN0aW9uYXJ5UG9wdXBJbmZvJilkaWN0aW9uYXJ5UG9wdXBJbmZvOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApp
bmRleCAzMTk4ZGUyMTllODkyNzFmZTA4ZTM2MmQyNTg1MjJiZmQzY2MzODlmLi44NWYyMjQ2NDAz
ZGYxNGE1MGJiYzljNjczMGYwNDA4YjIwYWUyNGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTY5
LDYgKzE2OSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdl
ZChib29sKSBmaW5hbCB7IH0KIAorICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFsIHsgfQorCiAgICAgV2ViVmlldyog
d2ViVmlldygpIHsgcmV0dXJuIG1fd2ViVmlldzsgfQogCiAgICAgdm9pZCBBWFN0YXJ0RnJhbWVM
b2FkKCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428563</attachid>
            <date>2021-05-13 14:43:10 -0700</date>
            <delta_ts>2021-05-13 14:56:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-225727-20210513144309.patch</filename>
            <type>text/plain</type>
            <size>56427</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uMmI3MDA3YmZiNGM5NDEzYjY5ZDE2YzIxNDc3MjBi
Y2FjZjYxYjliMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTEzICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRleHRJ
bmRpY2F0b3IgYm91bmNlIGZvciBBcHBIaWdobGlnaHRzIG9uIHNjcm9sbC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNworCisgICAgICAgIFJl
dmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9BcHBI
aWdobGlnaHRTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcEhpZ2hsaWdodFN0b3Jh
Z2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdobGlnaHRBbmRTY3JvbGwpOgorICAgICAgICAqIGxvYWRl
ci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6
OnNldFRleHRJbmRpY2F0b3IgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvVGV4dElu
ZGljYXRvci5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmg6
CisgICAgICAgICogcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIubW06CisgICAgICAg
ICgtW1dlYlRleHRJbmRpY2F0b3JMYXllciBpbml0V2l0aEZyYW1lOnRleHRJbmRpY2F0b3I6bWFy
Z2luOm9mZnNldDpdKToKKyAgICAgICAgKGNyZWF0ZUJvdW5jZUFuaW1hdGlvbik6CisgICAgICAg
ICgtW1dlYlRleHRJbmRpY2F0b3JMYXllciBfYW5pbWF0aW9uRHVyYXRpb25dKToKKyAgICAgICAg
KiBwYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lmg6CisgICAgICAgICogcGFnZS9tYWMvVGV4
dEluZGljYXRvcldpbmRvdy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3c6On5UZXh0SW5kaWNhdG9yV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3c6OmNsZWFyVGV4dEluZGljYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKwogMjAyMS0wNS0xMSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgZmlu
ZCBib3VuY2UgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZmYzY0ZjIxNzA3ZDUzY2M5NDYzMzRiODliNTQ2
MDE3OTA3YTQ1ZS4uMDY4MGE1MzVjMjk1OTYwZGU1ZjMyNzZlZTI3YWMyYzk3Nzg1NDBhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAyMS0wNS0xMyAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNhdG9yIGJvdW5jZSBm
b3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9y
dG9uLgorCisgICAgICAgIFVzZSBmYWN0b3JlZCBvdXQgdGV4dEluZGljYXRvciBjb2RlIHRvIGFk
ZCBhIGJvdW5jZSB0byBhbiBhcHBIaWdobGlnaHQKKyAgICAgICAgd2hlbiBpdCBpcyBzY3JvbGxl
ZCB0by4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKC1bV0tXaW5kb3dW
aXNpYmlsaXR5T2JzZXJ2ZXIgX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOl0pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0VGV4dEluZGljYXRvcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGls
ZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdPbmx5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0VGV4
dEluZGljYXRvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xlYXJUZXh0SW5k
aWNhdG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNs
ZWFyVGV4dEluZGljYXRvcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRU
ZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VXBU
ZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyVGV4dEluZGlj
YXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0
aW9uUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGVhcmRvd25UZXh0SW5k
aWNhdG9yTGF5ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzdGFydEZhZGVPdXRdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yVGV4dF0pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yIGNvbnN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kSW5kaWNhdG9yKToKKwogMjAyMS0wNS0x
MSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1Nd
IEV4dGVuZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5wcmludC5ub3JtYWxpemVyZCcgd2hlbiBjYW52
YXMgZHJhd2luZyBpcyBkb25lIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCBjMmJlNzk2YmY2ODNkMTIyMTViOWFhNWM0NDdjN2QwMDE0OTI5
ZmUxLi5kZjlkMTU0OTA0ODI5OTRjMzQ4MDFkOTM1NWM4MjFkOWVmOTBkNzU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjEtMDUtMTMgIE1lZ2FuIEdh
cmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgdGV4dEluZGlj
YXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xsLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvciBjb25zdCk6CisgICAgICAg
ICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgcXVpY2tM
b29rV2l0aEV2ZW50Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29u
dHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciB3ZWJW
aWV3OmRpZEhhbmRsZVNjcm9sbFdoZWVsOl0pOgorICAgICAgICAoLVtXZWJJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyIF9jYW5jZWxJbW1lZGlhdGVBY3Rpb25dKToKKyAgICAgICAgKC1bV2ViSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyRGlkQ2FuY2Vs
QW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9k
ZWZhdWx0QW5pbWF0aW9uQ29udHJvbGxlcl0pOgorICAgICAgICAoLVtXZWJJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyIG1lbnVJdGVtRGlkQ2xvc2U6XSk6CisgICAgICAgICgtW1dlYkltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWRUZXh0
XSk6CisgICAgICAgICgtW1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlvbkNv
bnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWRMaW5rXSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9hbmltYXRpb25Db250cm9sbGVyRm9yRGljdGlvbmFy
eUxvb2t1cFBvcHVwSW5mbzpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfc2V0VGV4dEluZGljYXRv
cjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjp3aXRoTGlmZXRpbWU6
XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246
XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3Nob3dEaWN0aW9uYXJ5TG9va3VwUG9wdXA6XSk6Cisg
ICAgICAgICgtW1dlYlZpZXcgX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOl0pOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFsLmg6CisKIDIwMjEtMDUtMTAgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBXZWJDb3Jl
OjpIaXRUZXN0UmVxdWVzdDo6UmVxdWVzdFR5cGUgYW4gZW51bSBjbGFzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCmluZGV4IGViNjJjNzk4MDk3ZGJlNzU1YzNkZmFjY2Q4NTZlZDUwMmZkZThj
ODguLmFjMTFkN2Q4YjQwNDA2MTdmZTI1YmIxNWY2MmU2ZGEzNTFkZDc2OTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNS0xMyAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXh0SW5kaWNh
dG9yIGJvdW5jZSBmb3IgQXBwSGlnaGxpZ2h0cyBvbiBzY3JvbGwuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lmg6CisKIDIwMjEtMDUtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6UmVxdWVzdFR5cGUg
YW4gZW51bSBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcAppbmRleCAwZmI2ZGNlYTQwZjhmOTc0NGMwOWQ4
MmEyZDA5MzkxNTg2NzRlMzNlLi5kYTRmNzBhYzJmYzYxNjcxZjc3YTc3YjE3MDQ2Nzk2NGI4OWYz
OTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdo
bGlnaHRTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9B
cHBIaWdobGlnaHRTdG9yYWdlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkFwcEhp
Z2hsaWdodC5oIgogI2luY2x1ZGUgIkFwcEhpZ2hsaWdodFJhbmdlRGF0YS5oIgogI2luY2x1ZGUg
IkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRp
dG9yLmgiCkBAIC00MCw2ICs0MSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtl
ci5oIgogI2luY2x1ZGUgIlNpbXBsZVJhbmdlLmgiCiAjaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIK
KyNpbmNsdWRlICJUZXh0SW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTI2MCw4ICsyNjIsMTMgQEAgYm9vbCBBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKEFwcEhpZ2hsaWdo
dFJhbmdlRGEKICAgICAKICAgICBzdHJvbmdEb2N1bWVudC0+YXBwSGlnaGxpZ2h0UmVnaXN0ZXIo
KS5hZGRBcHBIaWdobGlnaHQoU3RhdGljUmFuZ2U6OmNyZWF0ZSgqcmFuZ2UpKTsKICAgICAKLSAg
ICBpZiAoc2Nyb2xsID09IFNjcm9sbFRvSGlnaGxpZ2h0OjpZZXMpCisgICAgaWYgKHNjcm9sbCA9
PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKSB7CisgICAgICAgIGF1dG8gdGV4dEluZGljYXRvciA9
IFRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhSYW5nZShyYW5nZS52YWx1ZSgpLCB7IFRleHRJbmRp
Y2F0b3JPcHRpb246OkRvTm90Q2xpcFRvVmlzaWJsZVJlY3QgfSwgV2ViQ29yZTo6VGV4dEluZGlj
YXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246OkJvdW5jZSk7CisgICAgICAgIGlmICh0ZXh0SW5k
aWNhdG9yKQorICAgICAgICAgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQo
KS5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3ItPmRhdGEoKSk7CisgICAgICAgIAogICAg
ICAgICBUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2Ugc2VsZWN0aW9uQ2hhbmdlKCpzdHJvbmdEb2N1
bWVudCwgeyByYW5nZS52YWx1ZSgpIH0sIHsgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpSZXZl
YWxTZWxlY3Rpb24sIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21vb3RoU2Nyb2xsLCBUZW1w
b3JhcnlTZWxlY3Rpb25PcHRpb246Ok92ZXJyaWRlU21vb3RoU2Nyb2xsRmVhdHVyZUVuYWJsbWVu
dCB9KTsKKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKaW5kZXggZDllMDM4N2M5NmIyOGQzODdhYmNiOGIxNzczYjAxMGJiMjA2
NzM1ZS4uN2I5MDI4MWNhNzYyNzdiMzdmNGY5NmZlZTRlYzE1MzkyMmVjNGI1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTU1NSw2ICs1NTUsMTAgQEAgdm9pZCBF
bXB0eUNocm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYpIGNvbnN0
CiB9CiAjZW5kaWYKIAordm9pZCBFbXB0eUNocm9tZUNsaWVudDo6c2V0VGV4dEluZGljYXRvcihj
b25zdCBUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0Cit7Cit9CisKIERpc3BsYXlSZWZyZXNoTW9u
aXRvckZhY3RvcnkqIEVtcHR5Q2hyb21lQ2xpZW50OjpkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0
b3J5KCkgY29uc3QKIHsKICAgICByZXR1cm4gRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0
b3J5OjpzaGFyZWRFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBkYjE1YjA5OGE0OTBhZTAzMzBlNTJjODBlMDAy
OTQyMmZhNTRhZmJmLi5hNzFkYzg1NGVmNTBjMzU5MmEwNGY1Mjc5YjVkNTE0OTk4NTE0ODU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xNDksNiArMTQ5LDggQEAgY2xh
c3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIHN0
b3JlQXBwSGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisg
ICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFRleHRJbmRpY2F0b3JEYXRhJikgY29uc3Qg
ZmluYWw7CisKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVz
aE1vbml0b3JGYWN0b3J5KCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChG
cmFtZSYsIEZpbGVDaG9vc2VyJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApp
bmRleCAyNTliYWU5YWUwZDNiZjQzMjNlMzI0MmZjODg2YTUxYTM3OGYyZDdkLi4xZmQ3YjA4ZTc3
YTE2YThkNzc0M2FiMTNmN2Y3MjFkYWJkMDliNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVy
czsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRp
Y2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3Ry
dWN0IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwogc3RydWN0
IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTUsNiArMzE2LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3Qg
PSAwOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBU
ZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0ID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVu
UGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1No
YXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhmYWxzZSk7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgQ29udGFjdHNSZXF1ZXN0RGF0YSYsIFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8Q29udGFjdEluZm8+PiYmKT4m
JiBjYWxsYmFjaykgeyBjYWxsYmFjayhXVEY6Om51bGxvcHQpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5oCmluZGV4IGE4OTJkNjVhNzM0NjJhNjJmNjIyNzQ1MGU3OTQyYjhkZGMxNTE1
ZjIuLjVlZjg1YTI5YmY2YjM4OWJkMGIxOGI0Nzk0YjIyMjQzYmYyNmE0N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvVGV4dEluZGljYXRvci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8d3RmL0Vu
dW1UcmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksNiArNDAsMjUgQEAgY2xhc3MgR3Jh
cGhpY3NDb250ZXh0OwogCiBzdHJ1Y3QgU2ltcGxlUmFuZ2U7CiAKK2NvbnN0ZXhwciBmbG9hdCBk
cm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Citjb25zdGV4cHIgZmxvYXQgcmltU2hhZG93Qmx1clJh
ZGl1cyA9IDE7Citjb25zdGV4cHIgU2Vjb25kcyBib3VuY2VBbmltYXRpb25EdXJhdGlvbiA9IDAu
MTJfczsKK2NvbnN0ZXhwciBTZWNvbmRzIHRpbWVCZWZvcmVGYWRlU3RhcnRzID0gYm91bmNlQW5p
bWF0aW9uRHVyYXRpb24gKyAwLjJfczsKK2NvbnN0ZXhwciBmbG9hdCBtaWRCb3VuY2VTY2FsZSA9
IDEuMjU7CisKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckxpZmV0aW1lIDogdWludDhfdCB7Cisg
ICAgLy8gVGhlIFRleHRJbmRpY2F0b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRp
c21pc3NlZC4KKyAgICBQZXJtYW5lbnQsCisKKyAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91
bGQgYnJpZWZseSBpbmRpY2F0ZSB0aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21p
c3MuCisgICAgVGVtcG9yYXJ5Cit9OworCitlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNz
YWxBbmltYXRpb24gOiB1aW50OF90IHsKKyAgICBOb25lLAorICAgIEZhZGVPdXQKK307CisKIC8v
IEZJWE1FOiBNb3ZlIFByZXNlbnRhdGlvblRyYW5zaXRpb24gdG8gVGV4dEluZGljYXRvcldpbmRv
dywgYmVjYXVzZSBpdCdzIGFib3V0IHByZXNlbnRhdGlvbi4KIGVudW0gY2xhc3MgVGV4dEluZGlj
YXRvclByZXNlbnRhdGlvblRyYW5zaXRpb24gOiB1aW50OF90IHsKICAgICBOb25lLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLmgKaW5kZXgg
ZmQxM2QwNDBlZmZiNzViMGVhMDA0ZWE1NTFlMzIyMTU0YWUxOGZhZi4uYmViZjkzYTM2ZWQ3MGU2
YjMwOWRlODk1ODFhMTgzNjY1ZTM4YzFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9jb2NvYS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2NvY29hL1dlYlRleHRJbmRpY2F0b3JMYXllci5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCi1AaW50ZXJmYWNl
IFdlYlRleHRJbmRpY2F0b3JMYXllciA6IENBTGF5ZXIgeworV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgOiBDQUxheWVyIHsKICAgICBSZWZQdHI8V2ViQ29y
ZTo6VGV4dEluZGljYXRvcj4gX3RleHRJbmRpY2F0b3I7CiAgICAgUmV0YWluUHRyPE5TQXJyYXk+
IF9ib3VuY2VMYXllcnM7CiAgICAgQ0dTaXplIF9tYXJnaW47CkBAIC01MywzICs1Myw0IEBACiBA
cHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzRmFkaW5nT3V0KSBCT09MIGZhZGluZ091dDsK
IAogQGVuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1dlYlRleHRJ
bmRpY2F0b3JMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGlj
YXRvckxheWVyLm1tCmluZGV4IGI4YzRkOGYwNjdiYWNlZDA5YTgxMTgwODcxMDMwNmM1N2E3OTQz
MDAuLjRkMWE1ODRmMWIwMjgwNmE3M2MwZDFlOWEwODhiNmQ4MWNjMDAxODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvV2ViVGV4dEluZGljYXRvckxheWVyLm1tCkBAIC0z
MCw2ICszMCw3IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIlBhdGhV
dGlsaXRpZXMuaCIKICNpbXBvcnQgIlRleHRJbmRpY2F0b3IuaCIKKyNpbXBvcnQgIlRleHRJbmRp
Y2F0b3JXaW5kb3cuaCIKICNpbXBvcnQgIldlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0
ZS5oIgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgpAQCAtMzgsMTkgKzM5LDE0IEBACiAjaW1wb3J0
IDxwYWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KICNlbmRpZgogCi1jb25zdGV4cHIgQ0ZUaW1l
SW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjEyOwogY29uc3RleHByIENGVGlt
ZUludGVydmFsIGJvdW5jZVdpdGhDcm9zc2ZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIGNv
bnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlSW5BbmltYXRpb25EdXJhdGlvbiA9IDAuMTU7Ci1j
b25zdGV4cHIgQ0ZUaW1lSW50ZXJ2YWwgdGltZUJlZm9yZUZhZGVTdGFydHMgPSBib3VuY2VBbmlt
YXRpb25EdXJhdGlvbiArIDAuMjsKIGNvbnN0ZXhwciBDRlRpbWVJbnRlcnZhbCBmYWRlT3V0QW5p
bWF0aW9uRHVyYXRpb24gPSAwLjM7CiAKLWNvbnN0ZXhwciBDR0Zsb2F0IG1pZEJvdW5jZVNjYWxl
ID0gMS4yNTsKIGNvbnN0ZXhwciBDR0Zsb2F0IGJvcmRlcldpZHRoID0gMDsKIGNvbnN0ZXhwciBD
R0Zsb2F0IGNvcm5lclJhZGl1cyA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zm
c2V0WCA9IDA7CiBjb25zdGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93T2Zmc2V0WSA9IDE7Ci1jb25z
dGV4cHIgQ0dGbG9hdCBkcm9wU2hhZG93Qmx1clJhZGl1cyA9IDI7Ci1jb25zdGV4cHIgQ0dGbG9h
dCByaW1TaGFkb3dCbHVyUmFkaXVzID0gMTsKIAogY29uc3RleHByIE5TU3RyaW5nICogY29uc3Qg
dGV4dExheWVyS2V5ID0gQCJUZXh0TGF5ZXIiOwogY29uc3RleHByIE5TU3RyaW5nICogY29uc3Qg
ZHJvcFNoYWRvd0xheWVyS2V5ID0gQCJEcm9wU2hhZG93TGF5ZXIiOwpAQCAtMTMyLDEzICsxMjgs
MTIgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSB0ZXh0SW5k
aWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG8KICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGlu
aXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAKKyAgICBzZWxmLmFuY2hvclBvaW50ID0g
Q0dQb2ludFplcm87CiAgICAgc2VsZi5mcmFtZSA9IGZyYW1lOwogCiAgICAgX3RleHRJbmRpY2F0
b3IgPSAmdGV4dEluZGljYXRvcjsKICAgICBfbWFyZ2luID0gbWFyZ2luOwogCi0gICAgc2VsZi5h
bmNob3JQb2ludCA9IENHUG9pbnRaZXJvOwotCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUlt
YWdlPiBjb250ZW50c0ltYWdlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBjb250ZW50c0ltYWdl
TG9naWNhbFNpemUgeyAxLCAxIH07CiAgICAgaWYgKGF1dG8qIGNvbnRlbnRJbWFnZSA9IF90ZXh0
SW5kaWNhdG9yLT5jb250ZW50SW1hZ2UoKSkgewpAQCAtMTkyLDcgKzE4Nyw3IEBAIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooV2ViQ29y
ZTo6VGV4dEluZGljYXRvCiAgICAgICAgIFJldGFpblB0cjxDQUxheWVyPiBkcm9wU2hhZG93TGF5
ZXIgPSBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwogICAgICAgICBbZHJvcFNoYWRv
d0xheWVyIHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hh
cmVkXV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93Q29sb3I6ZHJvcFNoYWRv
d0NvbG9yLmdldCgpXTsKLSAgICAgICAgW2Ryb3BTaGFkb3dMYXllciBzZXRTaGFkb3dSYWRpdXM6
ZHJvcFNoYWRvd0JsdXJSYWRpdXNdOworICAgICAgICBbZHJvcFNoYWRvd0xheWVyIHNldFNoYWRv
d1JhZGl1czpXZWJDb3JlOjpkcm9wU2hhZG93Qmx1clJhZGl1c107CiAgICAgICAgIFtkcm9wU2hh
ZG93TGF5ZXIgc2V0U2hhZG93T2Zmc2V0OkNHU2l6ZU1ha2UoZHJvcFNoYWRvd09mZnNldFgsIGRy
b3BTaGFkb3dPZmZzZXRZKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0
aDp0cmFuc2xhdGVkUGF0aC5wbGF0Zm9ybVBhdGgoKV07CiAgICAgICAgIFtkcm9wU2hhZG93TGF5
ZXIgc2V0U2hhZG93T3BhY2l0eToxXTsKQEAgLTIwNCw3ICsxOTksNyBAQCAtIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRl
eHRJbmRpY2F0bwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlv
bkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKICAgICAgICAgW3JpbVNoYWRvd0xh
eWVyIHNldEZyYW1lOnllbGxvd0hpZ2hsaWdodFJlY3RdOwogICAgICAgICBbcmltU2hhZG93TGF5
ZXIgc2V0U2hhZG93Q29sb3I6cmltU2hhZG93Q29sb3IuZ2V0KCldOwotICAgICAgICBbcmltU2hh
ZG93TGF5ZXIgc2V0U2hhZG93UmFkaXVzOnJpbVNoYWRvd0JsdXJSYWRpdXNdOworICAgICAgICBb
cmltU2hhZG93TGF5ZXIgc2V0U2hhZG93UmFkaXVzOldlYkNvcmU6OnJpbVNoYWRvd0JsdXJSYWRp
dXNdOwogICAgICAgICBbcmltU2hhZG93TGF5ZXIgc2V0U2hhZG93UGF0aDp0cmFuc2xhdGVkUGF0
aC5wbGF0Zm9ybVBhdGgoKV07CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPZmZz
ZXQ6Q0dTaXplWmVyb107CiAgICAgICAgIFtyaW1TaGFkb3dMYXllciBzZXRTaGFkb3dPcGFjaXR5
OjFdOwpAQCAtMjQ1LDcgKzI0MCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0FLZXlmcmFtZUFuaW1h
dGlvbj4gY3JlYXRlQm91bmNlQW5pbWF0aW9uKENGVGltZUludGVydmFsIGR1cmF0CiAgICAgUmV0
YWluUHRyPENBS2V5ZnJhbWVBbmltYXRpb24+IGJvdW5jZUFuaW1hdGlvbiA9IFtDQUtleWZyYW1l
QW5pbWF0aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOkAidHJhbnNmb3JtIl07CiAgICAgW2JvdW5j
ZUFuaW1hdGlvbiBzZXRWYWx1ZXM6QFsKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFu
c2Zvcm0zRDpDQVRyYW5zZm9ybTNESWRlbnRpdHldLAotICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdp
dGhDQVRyYW5zZm9ybTNEOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUobWlkQm91bmNlU2NhbGUsIG1p
ZEJvdW5jZVNjYWxlLCAxKV0sCisgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3Jt
M0Q6Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShXZWJDb3JlOjptaWRCb3VuY2VTY2FsZSwgV2ViQ29y
ZTo6bWlkQm91bmNlU2NhbGUsIDEpXSwKICAgICAgICAgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFu
c2Zvcm0zRDpDQVRyYW5zZm9ybTNESWRlbnRpdHldCiAgICAgICAgIF1dOwogICAgIFtib3VuY2VB
bmltYXRpb24gc2V0RHVyYXRpb246ZHVyYXRpb25dOwpAQCAtMjk0LDcgKzI4OSw3IEBAIC0gKENG
VGltZUludGVydmFsKV9hbmltYXRpb25EdXJhdGlvbgogICAgIGlmIChbc2VsZiBpbmRpY2F0b3JX
YW50c0JvdW5jZToqX3RleHRJbmRpY2F0b3JdKSB7CiAgICAgICAgIGlmIChpbmRpY2F0b3JXYW50
c0NvbnRlbnRDcm9zc2ZhZGUoKl90ZXh0SW5kaWNhdG9yKSkKICAgICAgICAgICAgIHJldHVybiBi
b3VuY2VXaXRoQ3Jvc3NmYWRlQW5pbWF0aW9uRHVyYXRpb247Ci0gICAgICAgIHJldHVybiBib3Vu
Y2VBbmltYXRpb25EdXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmJvdW5jZUFuaW1h
dGlvbkR1cmF0aW9uLnZhbHVlKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZhZGVJbkFuaW1hdGlv
bkR1cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRv
dy5oCmluZGV4IGMzYjMzZWJhMmM4YmMwZDc1NDU5ZGQyMTUwODliNjUyOWM1ZDMxNWQuLmY3ZmZm
N2M3M2ExZDJmZjc1NGIyNzg3Y2EyMjk5NTIzODAzMTMzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93LmgKQEAgLTM2LDE5ICszNiw2IEBAIE9CSkNf
Q0xBU1MgV2ViVGV4dEluZGljYXRvckxheWVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVu
dW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIDogdWludDhfdCB7Ci0gICAgLy8g
VGhlIFRleHRJbmRpY2F0b3Igc2hvdWxkIGluZGljYXRlIHRoZSB0ZXh0IHVudGlsIGRpc21pc3Nl
ZC4KLSAgICBQZXJtYW5lbnQsCi0KLSAgICAvLyBUaGUgVGV4dEluZGljYXRvciBzaG91bGQgYnJp
ZWZseSBpbmRpY2F0ZSB0aGUgdGV4dCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGRpc21pc3MuCi0g
ICAgVGVtcG9yYXJ5Ci19OwotCi1lbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb24gOiB1aW50OF90IHsKLSAgICBOb25lLAotICAgIEZhZGVPdXQKLX07Ci0KICNp
ZiBQTEFURk9STShNQUMpCiAKIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5kb3cgewpAQCAtNTksOCAr
NDYsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgVGV4dEluZGljYXRv
cldpbmRvdyhOU1ZpZXcgKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflRleHRJbmRpY2F0b3JXaW5k
b3coKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8VGV4
dEluZGljYXRvcj4sIENHUmVjdCBjb250ZW50UmVjdCwgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0
aW1lKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5k
aWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+LCBDR1JlY3QgY29udGVudFJlY3Qs
IFRleHRJbmRpY2F0b3JMaWZldGltZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhclRl
eHRJbmRpY2F0b3IoVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbik7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldEFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsKIApAQCAtODEsMyAr
NjgsNSBAQCBwcml2YXRlOgogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9y
V2luZG93Lm1tCmluZGV4IGY4NWZhNTNiM2I0YTlmNDU5Njk3NzZhMTJjYzQxMWY3OTIyZGY3N2Mu
LjE4MGJhYjdkMDJiYzNhNWQxYjBjM2U3NDUyZTFkMzI5MjUyNDk3NjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQpAQCAtMzgsMTIgKzM4LDYg
QEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNDb2xvclNQSS5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAKLWNvbnN0IENGVGltZUludGVydmFsIGJvdW5jZUFu
aW1hdGlvbkR1cmF0aW9uID0gMC4xMjsKLWNvbnN0IENGVGltZUludGVydmFsIHRpbWVCZWZvcmVG
YWRlU3RhcnRzID0gYm91bmNlQW5pbWF0aW9uRHVyYXRpb24gKyAwLjI7Ci0KLWNvbnN0IENHRmxv
YXQgbWlkQm91bmNlU2NhbGUgPSAxLjI1OwotY29uc3QgQ0dGbG9hdCBkcm9wU2hhZG93Qmx1clJh
ZGl1cyA9IDI7Ci0KIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC01Niw3ICs1MCw3IEBAIFRleHRJbmRpY2F0b3JXaW5kb3c6OlRleHRJbmRpY2F0b3JX
aW5kb3coTlNWaWV3ICp0YXJnZXRWaWV3KQogCiBUZXh0SW5kaWNhdG9yV2luZG93Ojp+VGV4dElu
ZGljYXRvcldpbmRvdygpCiB7Ci0gICAgY2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JX
aW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOworICAgIGNsZWFyVGV4dEluZGljYXRv
cihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKIH0K
IAogdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCBw
cm9ncmVzcykKQEAgLTY3LDE0ICs2MSwxNCBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNl
dEFuaW1hdGlvblByb2dyZXNzKGZsb2F0IHByb2dyZXNzKQogICAgIFttX3RleHRJbmRpY2F0b3JM
YXllciBzZXRBbmltYXRpb25Qcm9ncmVzczpwcm9ncmVzc107CiB9CiAKLXZvaWQgVGV4dEluZGlj
YXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb24gYW5pbWF0aW9uKQordm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpjbGVhclRl
eHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiBhbmlt
YXRpb24pCiB7CiAgICAgUmVmUHRyPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IgPSBXVEZN
b3ZlKG1fdGV4dEluZGljYXRvcik7CiAKICAgICBpZiAoW21fdGV4dEluZGljYXRvckxheWVyIGlz
RmFkaW5nT3V0XSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHRleHRJbmRpY2F0b3IgJiYg
W21fdGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uOip0ZXh0
SW5kaWNhdG9yXSAmJiBbbV90ZXh0SW5kaWNhdG9yTGF5ZXIgaGFzQ29tcGxldGVkQW5pbWF0aW9u
XSAmJiBhbmltYXRpb24gPT0gVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6
RmFkZU91dCkgeworICAgIGlmICh0ZXh0SW5kaWNhdG9yICYmIFttX3RleHRJbmRpY2F0b3JMYXll
ciBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbjoqdGV4dEluZGljYXRvcl0gJiYgW21fdGV4
dEluZGljYXRvckxheWVyIGhhc0NvbXBsZXRlZEFuaW1hdGlvbl0gJiYgYW5pbWF0aW9uID09IFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpIHsKICAgICAg
ICAgc3RhcnRGYWRlT3V0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04Miw3ICs3Niw3
IEBAIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xlYXJUZXh0SW5kaWNhdG9yKFRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpCiAgICAgY2xvc2VXaW5kb3coKTsKIH0KIAotdm9p
ZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9y
PiB0ZXh0SW5kaWNhdG9yLCBDR1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0
ZXMsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSBsaWZldGltZSkKK3ZvaWQgVGV4dEluZGlj
YXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGlj
YXRvciwgQ0dSZWN0IHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBUZXh0SW5k
aWNhdG9yTGlmZXRpbWUgbGlmZXRpbWUpCiB7CiAgICAgaWYgKG1fdGV4dEluZGljYXRvciA9PSB0
ZXh0SW5kaWNhdG9yLnB0cigpKQogICAgICAgICByZXR1cm47CkBAIC05NSw4ICs4OSw4IEBAIHZv
aWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRv
cj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgQ0dGbG9hdCB2ZXJ0aWNhbE1hcmdpbiA9IGRyb3BT
aGFkb3dCbHVyUmFkaXVzICogMiArIFRleHRJbmRpY2F0b3I6OmRlZmF1bHRWZXJ0aWNhbE1hcmdp
bjsKICAgICAKICAgICBpZiAoW21fdGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzQm91
bmNlOiptX3RleHRJbmRpY2F0b3JdKSB7Ci0gICAgICAgIGhvcml6b250YWxNYXJnaW4gPSBzdGQ6
Om1heChob3Jpem9udGFsTWFyZ2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRl
cy5zaXplLndpZHRoICogKG1pZEJvdW5jZVNjYWxlIC0gMSkgKyBob3Jpem9udGFsTWFyZ2luKTsK
LSAgICAgICAgdmVydGljYWxNYXJnaW4gPSBzdGQ6Om1heCh2ZXJ0aWNhbE1hcmdpbiwgdGV4dEJv
dW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQgKiAobWlkQm91bmNlU2Nh
bGUgLSAxKSArIHZlcnRpY2FsTWFyZ2luKTsKKyAgICAgICAgaG9yaXpvbnRhbE1hcmdpbiA9IHN0
ZDo6bWF4KGhvcml6b250YWxNYXJnaW4sIHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5h
dGVzLnNpemUud2lkdGggKiAoV2ViQ29yZTo6bWlkQm91bmNlU2NhbGUgLSAxKSArIGhvcml6b250
YWxNYXJnaW4pOworICAgICAgICB2ZXJ0aWNhbE1hcmdpbiA9IHN0ZDo6bWF4KHZlcnRpY2FsTWFy
Z2luLCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy5zaXplLmhlaWdodCAqIChX
ZWJDb3JlOjptaWRCb3VuY2VTY2FsZSAtIDEpICsgdmVydGljYWxNYXJnaW4pOwogICAgIH0KIAog
ICAgIGhvcml6b250YWxNYXJnaW4gPSBDR0NlaWxpbmcoaG9yaXpvbnRhbE1hcmdpbik7CkBAIC0x
MjUsOCArMTE5LDggQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9y
KFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBDR1IKICAgICBpZiAobV90ZXh0SW5k
aWNhdG9yLT5wcmVzZW50YXRpb25UcmFuc2l0aW9uKCkgIT0gVGV4dEluZGljYXRvclByZXNlbnRh
dGlvblRyYW5zaXRpb246Ok5vbmUpCiAgICAgICAgIFttX3RleHRJbmRpY2F0b3JMYXllciBwcmVz
ZW50XTsKIAotICAgIGlmIChsaWZldGltZSA9PSBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6
OlRlbXBvcmFyeSkKLSAgICAgICAgbV90ZW1wb3JhcnlUZXh0SW5kaWNhdG9yVGltZXIuc3RhcnRP
bmVTaG90KDFfcyAqIHRpbWVCZWZvcmVGYWRlU3RhcnRzKTsKKyAgICBpZiAobGlmZXRpbWUgPT0g
VGV4dEluZGljYXRvckxpZmV0aW1lOjpUZW1wb3JhcnkpCisgICAgICAgIG1fdGVtcG9yYXJ5VGV4
dEluZGljYXRvclRpbWVyLnN0YXJ0T25lU2hvdChXZWJDb3JlOjp0aW1lQmVmb3JlRmFkZVN0YXJ0
cyk7CiB9CiAKIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6Y2xvc2VXaW5kb3coKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggM2FkNTE0MmNkMTc3
YWFkYWU1YzM4NTMyZDU3ZmNhNDM4MGFjZDRiNi4uMTBiODkxOWIwZjg2MjQxODFlZWFiY2Y3OGMw
MWMxOWJiM2JlMGMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5oCkBAIC00MTEsOCArNDExLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBwcmVmZXJlbmNl
c0RpZENoYW5nZSgpOwogCi0gICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3ImLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgPSBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7Ci0gICAgdm9pZCBjbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dE
aXNtaXNzYWxBbmltYXRpb24pOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yJiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lID0gV2ViQ29yZTo6
VGV4dEluZGljYXRvckxpZmV0aW1lOjpQZXJtYW5lbnQpOworICAgIHZvaWQgY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uKTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7
CiAgICAgdm9pZCBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5
KCk7CiAgICAgdm9pZCBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1h
dGlvbihib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KaW5kZXggMjNhNTA0NjgxMTQxMzM1MTlmMmVkMWJkY2Q4MjRjZDkyYTY1YjQxZi4uZGM1MGNk
MmM1MTUwZDU1Nzk4NTRhYjdlNjVlNzVkNjI1NWUzYjA5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTQyMyw3ICs0MjMsNyBAQCAtICh2b2lk
KW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQp
b2JqZWN0IGNoYW5nZTooTgogI2lmICFFTkFCTEUoUkVWRUFMKQogLSAodm9pZClfZGljdGlvbmFy
eUxvb2t1cFBvcG92ZXJXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7
Ci0gICAgX2ltcGwtPmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgX2ltcGwtPmNs
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21p
c3NhbEFuaW1hdGlvbjo6Tm9uZSk7CiB9CiAjZW5kaWYKIApAQCAtMzQ5NSw3ICszNDk1LDcgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogICAgICAgICB1cGRhdGVX
aW5kb3dBbmRWaWV3RnJhbWVzKCk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRp
Y2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIGxpZmV0aW1lKQordm9pZCBXZWJWaWV3SW1wbDo6c2V0
VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yLCBXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUgbGlmZXRpbWUpCiB7CiAgICAgaWYgKCFtX3RleHRJ
bmRpY2F0b3JXaW5kb3cpCiAgICAgICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9IG1ha2VVbmlx
dWU8V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvdz4obV92aWV3LmdldEF1dG9yZWxlYXNlZCgp
KTsKQEAgLTM1MDQsNyArMzUwNCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0
b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvciwgV2ViQ29yCiAgICAgbV90
ZXh0SW5kaWNhdG9yV2luZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIE5TUmVj
dFRvQ0dSZWN0KHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzKSwgbGlmZXRpbWUp
OwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9u
KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9u
KQordm9pZCBXZWJWaWV3SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKIHsKICAgICBp
ZiAobV90ZXh0SW5kaWNhdG9yV2luZG93KQogICAgICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3ct
PmNsZWFyVGV4dEluZGljYXRvcihhbmltYXRpb24pOwpAQCAtMzUyNyw3ICszNTI3LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmlt
YXRpb25Gcm9tVmlld09ubHkoYm8KICAgICAvLyBDYWxsaW5nIF9jbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uIGhlcmUgd2lsbCB3aW4gb3V0IG92ZXIgdGhlIGFuaW1hdGVkIGNsZWFyIGlu
IGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkuCiAgICAgLy8g
V2UgY2FuJ3QgaW52ZXJ0IHRoZXNlIGJlY2F1c2UgY2xpZW50cyBjYW4gb3ZlcnJpZGUgKGFuZCBo
YXZlIG92ZXJyaWRkZW4pIF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzLCBzbyBp
dCBuZWVkcyB0byBiZSBjYWxsZWQuCiAgICAgLy8gRm9yIHRoaXMgc2FtZSByZWFzb24sIHRoaXMg
Y2FuJ3QgYmUgbW92ZWQgdG8gV2ViVmlld0ltcGwgd2l0aG91dCBjYXJlLgotICAgIGNsZWFyVGV4
dEluZGljYXRvcldpdGhBbmltYXRpb24oYW5pbWF0ZSA/IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQgOiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICBjbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uKGFuaW1hdGUgPyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uOjpGYWRlT3V0IDogV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlv
bjo6Tm9uZSk7CiAgICAgW21fdmlldyBfd2ViX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3NdOwogfQogCkBAIC0zNTQ0LDcgKzM1NDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaXNt
aXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5KCkKICAgICAgICAgICAg
IFtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gcmVxdWVzdEJ1YmJs
ZUNsb3N1cmVVbmFuY2hvck9uRmFpbHVyZTpZRVNdOwogICAgIH0KIAotICAgIGNsZWFyVGV4dElu
ZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3Nh
bEFuaW1hdGlvbjo6RmFkZU91dCk7CisgICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlv
bihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsKIAog
ICAgIFttX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNo
aWxkV2luZG93c107CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA0MTdl
MTFkNDk2NjA3YTMwMGNmYjY1ZmVkNmM3ZjRjYWNlMGM5MjZkLi5hMzU3MzFlYzAxZDllNWUxNTAy
ZTYwNWU1MjgyZmVmMGIwNDVkNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CkBAIC0xMDYsOCArMTA2LDggQEAgY2xhc3MgU2VsZWN0aW9uRGF0YTsKIGVudW0gY2xhc3MgTW91
c2VFdmVudFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6
IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNjcm9sbGJhclN0eWxlIDogdWludDhfdDsKLWVudW0gY2xh
c3MgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIDogdWludDhfdDsKLWVudW0gY2xhc3MgVGV4
dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNz
IFRleHRJbmRpY2F0b3JMaWZldGltZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRJbmRpY2F0
b3JEaXNtaXNzYWxBbmltYXRpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vz
c1Jlc3BvbnNlIDogdWludDhfdDsKIAogc3RydWN0IEFwcEhpZ2hsaWdodDsKQEAgLTM4NSw4ICsz
ODUsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZpcnR1
YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdl
YkNvcmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEaXNtaXNzYWxBbmltYXRpb24pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dElu
ZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KSA9IDA7CiAgICAgCiAgICAgdmlydHVhbCB2
b2lkIGRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQ
b3B1cEluZm8mKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBlYTVjMzQ5MDczM2MyYjBlOTFkZTg0ODg4ZTMwMDRhZTliYWI4NDVkLi40OTkzMTQzNDY3
MWMyZGJhZTFmNTYwZmUzN2IwNjFlOWM2Mjg0ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTIxOCw3ICsyMTgsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
QXR0cmlidXRlZFN0cmluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcE9ic2VydmVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9U
ZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+
CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvY29jb2EvRW50
aXRsZW1lbnRzLmg+CkBAIC02NTExLDcgKzY1MTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSwgdWlu
dAogewogICAgIC8vIEZJWE1FOiBNYWtlIFRleHRJbmRpY2F0b3JXaW5kb3cgYSBwbGF0Zm9ybS1p
bmRlcGVuZGVudCBwcmVzZW50YXRpb25hbCB0aGluZyAoIlRleHRJbmRpY2F0b3JQcmVzZW50YXRp
b24iPykuCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcGFnZUNsaWVudCgpLnNldFRleHRJbmRp
Y2F0b3IoVGV4dEluZGljYXRvcjo6Y3JlYXRlKGluZGljYXRvckRhdGEpLCBzdGF0aWNfY2FzdDxU
ZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU+KGxpZmV0aW1lKSk7CisgICAgcGFnZUNsaWVudCgp
LnNldFRleHRJbmRpY2F0b3IoVGV4dEluZGljYXRvcjo6Y3JlYXRlKGluZGljYXRvckRhdGEpLCBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU+KGxpZmV0aW1lKSk7CiAj
ZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCkBAIC02NTIwLDcgKzY1MTks
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VGV4dEluZGljYXRvcihjb25zdCBUZXh0SW5kaWNh
dG9yRGF0YSYgaW5kaWNhdG9yRGF0YSwgdWludAogdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVGV4
dEluZGljYXRvcigpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcGFnZUNsaWVudCgpLmNs
ZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpG
YWRlT3V0KTsKKyAgICBwYWdlQ2xpZW50KCkuY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQpOwogI2Vsc2UKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCA1YjQ1N2RmYjYwMzFlZjYzOWFkM2FlM2ZjYmZmZmFlNmE2ZDg1NzAyLi5mY2Jk
NDk2OGQ0MTVkZjY3NjdhMWFmOTk4YmI5Y2RjYmUxYTBlYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTE0OSw3ICsxMTQ5LDcgQEAgcHVibGljOgogICAgIHZv
aWQgY291bnRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxGaW5kT3B0aW9u
cz4sIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpOwogICAgIHZvaWQgcmVwbGFjZU1hdGNoZXMoVmVj
dG9yPHVpbnQzMl90PiYmIG1hdGNoSW5kaWNlcywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRl
eHQsIGJvb2wgc2VsZWN0aW9uT25seSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+
JiYpOwogICAgIHZvaWQgZGlkQ291bnRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIHVpbnQz
Ml90IG1hdGNoQ291bnQpOwotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yRGF0YSYsIHVpbnQ2NF90IC8qIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dMaWZldGltZSAqLyBsaWZldGltZSA9IDAgLyogUGVybWFuZW50ICovKTsKKyAgICB2b2lk
IHNldFRleHRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmLCB1aW50
NjRfdCAvKiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWUgKi8gbGlmZXRpbWUgPSAwIC8q
IFBlcm1hbmVudCAqLyk7CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jl
c3MoZmxvYXQpOwogICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggM2ZiZTFiMTdm
ZjY2MDQ0OWU5OTNlZjdlOGFmYzBiYTAwMjRmZDg3YS4uODFmYjAxODMzY2VlOWU1ZDkxNTk1NDE4
ZDJiNWEwYWU0Yjg0NGNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKQEAgLTEzOCw4ICsxMzgsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxXZWJEYXRlVGltZVBpY2tlcj4gY3JlYXRlRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5Jikg
ZmluYWw7CiAjZW5kaWYKIAotICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6
VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRUZXh0SW5k
aWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRv
ckxpZmV0aW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKICAgICB2b2lkIHNl
dFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIHNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5pbmcmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQs
IFVSTD4mJik+JiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDQwYjc2MjM2MzlmZmFkNDFiNDQyNDY4ZWIyZTE4
MWFhMzRmMDE2NTMuLjhjM2M4ZjI0MjFjZjBjYzJiM2Y1MDM3NGQxOWZiNWMyMmMxNTk5NTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
QEAgLTQ3OSwxNiArNDc5LDE5IEBAIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVu
dEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpCiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRl
eHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+
IHRleHRJbmRpY2F0b3IsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSkKIHsKKyAgICBb
bV9jb250ZW50VmlldyBzZXRVcFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvcl07CiB9CiAKLXZv
aWQgUGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0SW5kaWNh
dG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24gZGlzbWlzc2FsQW5p
bWF0aW9uKQogeworICAgIFttX2NvbnRlbnRWaWV3IGNsZWFyVGV4dEluZGljYXRvcjpkaXNtaXNz
YWxBbmltYXRpb25dOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9y
QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5k
aWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgYW5pbWF0aW9uUHJvZ3Jlc3MpCiB7CisgICAg
W21fY29udGVudFZpZXcgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOmFuaW1hdGlv
blByb2dyZXNzXTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oCmluZGV4IDg4NmFlNzVlNjdiNTZhZWIzODM3ODRmNTk2YzlkOGY3MjkxMjU2ZTcu
LjhmZjkyYjdjOWI4YWI5ZTcwN2E4NzE2MTMwNzM5ZTBkZjkzMTYyNzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgK
QEAgLTg5LDYgKzg5LDcgQEAgc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiBlbnVtIGNs
YXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBNb3VzZUV2
ZW50UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWlu
dDhfdDsKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4
X3Q7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogc3RydWN0IERyYWdJdGVtOwpAQCAtMTA0
LDYgKzEwNSw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIH0KIAogQGNsYXNzIFdlYkV2ZW50Owor
QGNsYXNzIFdlYlRleHRJbmRpY2F0b3JMYXllcjsKIEBjbGFzcyBXS0FjdGlvblNoZWV0QXNzaXN0
YW50OwogQGNsYXNzIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mbzsKIEBjbGFzcyBXS0RhdGFMaXN0
U3VnZ2VzdGlvbnNDb250cm9sOwpAQCAtMzMxLDYgKzMzMyw5IEBAIGVudW0gY2xhc3MgUHJvY2Vl
ZFdpdGhJbWFnZUV4dHJhY3Rpb24gOiBib29sIHsKICAgICBSZXRhaW5QdHI8VUlQcmV2aWV3SXRl
bUNvbnRyb2xsZXI+IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI7CiAjZW5kaWYKIAorICAgIFJlZlB0
cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiBfdGV4dEluZGljYXRvcjsKKyAgICBSZXRhaW5QdHI8
V2ViVGV4dEluZGljYXRvckxheWVyPiBfdGV4dEluZGljYXRvckxheWVyOworCiAjaWYgVVNFKFVJ
Q09OVEVYVE1FTlUpCiAgICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQcmV2aWV3PiBfY29udGV4dE1l
bnVJbnRlcmFjdGlvblRhcmdldGVkUHJldmlldzsKICNlbmRpZgpAQCAtNjcwLDYgKzY3NSwxMCBA
QCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5U
VklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JNYWluRnJhbWU7CiAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lOwogCist
ICh2b2lkKXNldFVwVGV4dEluZGljYXRvcjooUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+KXRl
eHRJbmRpY2F0b3I7CistICh2b2lkKXNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczoo
ZmxvYXQpTlNBbmltYXRpb25Qcm9ncmVzczsKKy0gKHZvaWQpY2xlYXJUZXh0SW5kaWNhdG9yOihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKKwogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRVc2VDb250ZXh0TWVudXM7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZEF2b2lkUmVzaXpp
bmdXaGVuSW5wdXRWaWV3Qm91bmRzQ2hhbmdlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIF9zaG91bGRBdm9pZFNjcm9sbGluZ1doZW5Gb2N1c2VkQ29udGVudElzVmlzaWJs
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCmluZGV4IGE2MDg2OWE3N2Y5MjU3MGIyMGM5ZjcxOTNkYWNkMTAxMTIx
ZmExN2EuLmY3OTBlNTAzMjU3ODk1OGI5ODRhZTZmYWUwZmU4MmNhZmI5MDY2NmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQpAQCAtMTE2LDExICsxMTYsMTMgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVEYXRh
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0
b3JXaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvVG91Y2hBY3Rpb24uaD4KICNpbXBvcnQgPFdl
YkNvcmUvVVRJVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9X
ZWJFdmVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvV3JpdGluZ0RpcmVjdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlNl
bGVjdGlvblJlY3QuaD4gLy8gRklYTUU6IFdlYktpdCBzaG91bGQgbm90IGluY2x1ZGUgV2ViS2l0
TGVnYWN5IGhlYWRlcnMhCiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgpA
QCAtOTU4Miw2ICs5NTg0LDY3IEBAIC0gKHZvaWQpX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1B
ZnRlclBlbmRpbmdJbWFnZUV4dHJhY3Rpb246KFdlYktpdDo6UHJvY2VlZFdpCiAKICNlbmRpZiAv
LyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKIAorLSAodm9pZClzZXRVcFRleHRJbmRpY2F0b3I6
KFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yCit7CisgICAgaWYgKF90
ZXh0SW5kaWNhdG9yID09IHRleHRJbmRpY2F0b3IucHRyKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXllcl07CisgICAgW05TT2JqZWN0
IGNhbmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBz
ZWxlY3RvcihzdGFydEZhZGVPdXQpIG9iamVjdDpuaWxdOworICAgIAorICAgIF90ZXh0SW5kaWNh
dG9yID0gdGV4dEluZGljYXRvci5wdHIoKTsKKworICAgIENHUmVjdCBmcmFtZSA9IF90ZXh0SW5k
aWNhdG9yLT50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CisgICAgX3Rl
eHRJbmRpY2F0b3JMYXllciA9IGFkb3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9yTGF5ZXIgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6ZnJhbWUKKyAgICAgICAgdGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9y
IG1hcmdpbjpDR1NpemVaZXJvIG9mZnNldDpDR1BvaW50WmVyb10pOworICAgIAorICAgIFtbc2Vs
ZiBsYXllcl0gYWRkU3VibGF5ZXI6X3RleHRJbmRpY2F0b3JMYXllci5nZXQoKV07CisKKyAgICBp
ZiAoX3RleHRJbmRpY2F0b3ItPnByZXNlbnRhdGlvblRyYW5zaXRpb24oKSAhPSBXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSkKKyAgICAgICAgW190ZXh0
SW5kaWNhdG9yTGF5ZXIgcHJlc2VudF07CisgICAgCisgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9y
OkBzZWxlY3RvcihzdGFydEZhZGVPdXQpIHdpdGhPYmplY3Q6c2VsZiBhZnRlckRlbGF5OldlYkNv
cmU6OnRpbWVCZWZvcmVGYWRlU3RhcnRzLnZhbHVlKCldOworfQorCistICh2b2lkKWNsZWFyVGV4
dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbilhbmlt
YXRpb24KK3sKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciA9IFdURk1vdmUoX3RleHRJbmRpY2F0b3IpOworICAgIAorICAgIGlmIChbX3RleHRJbmRpY2F0
b3JMYXllciBpc0ZhZGluZ091dF0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0ZXh0SW5k
aWNhdG9yICYmIFtfdGV4dEluZGljYXRvckxheWVyIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0
aW9uOip0ZXh0SW5kaWNhdG9yXSAmJiBbX3RleHRJbmRpY2F0b3JMYXllciBoYXNDb21wbGV0ZWRB
bmltYXRpb25dICYmIGFuaW1hdGlvbiA9PSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0KSB7CisgICAgICAgIFtzZWxmIHN0YXJ0RmFkZU91dF07CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbc2VsZiB0ZWFyZG93blRleHRJbmRpY2F0b3JMYXll
cl07Cit9CisKKy0gKHZvaWQpc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9h
dClhbmltYXRpb25Qcm9ncmVzcworeworICAgIGlmICghX3RleHRJbmRpY2F0b3IpCisgICAgICAg
IHJldHVybjsKKworICAgIFtfdGV4dEluZGljYXRvckxheWVyIHNldEFuaW1hdGlvblByb2dyZXNz
OmFuaW1hdGlvblByb2dyZXNzXTsKK30KKworLSAodm9pZCl0ZWFyZG93blRleHRJbmRpY2F0b3JM
YXllcgoreworICAgIFtfdGV4dEluZGljYXRvckxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsK
KyAgICBfdGV4dEluZGljYXRvckxheWVyID0gbmlsOworfQorCistICh2b2lkKXN0YXJ0RmFkZU91
dAoreworICAgIFtfdGV4dEluZGljYXRvckxheWVyIHNldEZhZGluZ091dDpZRVNdOworICAgICAg
ICAKKyAgICBbX3RleHRJbmRpY2F0b3JMYXllciBoaWRlV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3
ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSB7CisgICAgICAgIGF1
dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBbc3Ryb25nU2VsZiB0ZWFy
ZG93blRleHRJbmRpY2F0b3JMYXllcl07CisgICAgfV07Cit9CisKICNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbkFkZGl0aW9uc0FmdGVyLm1tPgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDU4YmU0YTJjYWU0NTM3ZTU0NjNiZGQx
YjZiNWJlMTY4YmE2OTI3NmMuLjY3NTVmMDFiMzg4NDgwODViMGI1YWQyYWFjOGNlMWQxZTQ0Yjdh
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5oCkBAIC0xNTYsOCArMTU2LDggQEAgcHJpdmF0ZToKIAogICAgIFJlZjxXZWJDb3JlOjpWYWxp
ZGF0aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmKSBmaW5hbDsKIAot
ICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBj
bGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1lKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlz
bWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmlt
YXRpb25Qcm9ncmVzcyhmbG9hdCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGVudGVyQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4
IDc4OGEyNzk2ZGJiMWNmNDU5ZWZlMTI0YzZmMGQ3ZDBhNjk4YjdlOWIuLjYxNGI1OTY2YzY0YWJj
YzRkNDEwYjAzZGFkNGE3MDM5Y2RmZmM0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTU2OSwxMiArNTY5LDEyIEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6OmNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFpbkZyYW1lTmF2
aWdhdGlvbigpCiAgICAgbV9pbXBsLT5jbGVhclNhZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5G
cmFtZU5hdmlnYXRpb24oKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGlj
YXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGlj
YXRvcldpbmRvd0xpZmV0aW1lIGxpZmV0aW1lKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4
dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4
dEluZGljYXRvckxpZmV0aW1lIGxpZmV0aW1lKQogewogICAgIG1faW1wbC0+c2V0VGV4dEluZGlj
YXRvcih0ZXh0SW5kaWNhdG9yLmdldCgpLCBsaWZldGltZSk7CiB9CiAKLXZvaWQgUGFnZUNsaWVu
dEltcGw6OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlz
bWlzc2FsQW5pbWF0aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OmNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uIGRpc21pc3NhbEFuaW1hdGlvbikKIHsKICAgICBtX2ltcGwtPmNsZWFyVGV4dEluZGljYXRv
cldpdGhBbmltYXRpb24oZGlzbWlzc2FsQW5pbWF0aW9uKTsKIH0KQEAgLTY3Miw5ICs2NzIsOSBA
QCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBE
aWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aQogICAgIG1faW1wbC0+cHJlcGFyZUZvckRpY3Rpb25h
cnlMb29rdXAoKTsKIAogICAgIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5
UG9wdXBJbmZvLCBtX3ZpZXcsIFt0aGlzXShUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7
Ci0gICAgICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5k
aWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7CisgICAgICAgIG1faW1wbC0+c2V0VGV4
dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6
OlBlcm1hbmVudCk7CiAgICAgfSwgbnVsbHB0ciwgW3RoaXNdKCkgewotICAgICAgICBtX2ltcGwt
PmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgICAgIG1faW1wbC0+Y2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uOjpOb25lKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggOWJh
YThiZTI0Yzc3Yzc0NmU3OTNmNDEzNzhkY2QwMGIzY2Y0YzRmZS4uYmVjMGRjMTI4YzUwNjdkNmU5
MjdkZmNlZGI0N2E3ZmJlZDgyZTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCkBAIC00OTAsOSAr
NDkwLDkgQEAgLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5p
bWF0aW9uQ29udHJvbGxlckZvclRleHQKICAgICBfdmlld0ltcGwtPnByZXBhcmVGb3JEaWN0aW9u
YXJ5TG9va3VwKCk7CiAKICAgICByZXR1cm4gV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6YW5p
bWF0aW9uQ29udHJvbGxlckZvclBvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIF92aWV3LCBbc2Vs
Zl0oV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBfdmll
d0ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGlj
YXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOworICAgICAgICBfdmlld0ltcGwtPnNldFRl
eHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1l
OjpQZXJtYW5lbnQpOwogICAgIH0sIG51bGxwdHIsIFtzZWxmXSgpIHsKLSAgICAgICAgX3ZpZXdJ
bXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOworICAgICAgICBfdmlld0ltcGwtPmNs
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21p
c3NhbEFuaW1hdGlvbjo6Tm9uZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggM2YyZTlkNTBmZmIwMDFjMjQ2ZDQxNzEwZTAzYjQ0OWJkYzU4Njc4NC4uOTUxOTE3YzI0
ZDlmMDJlODA2NjliY2VkY2JjODNhMTAwNDViMzYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTg4LDYgKzg4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NldHRpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpKQogI2luY2x1ZGUgIlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCIKQEAg
LTEyNzEsNiArMTI3MiwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGln
aHQoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0JiYgaGlnaGxpZ2h0KSBjb25zdAogfQogI2VuZGlmCiAK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEYXRhJiBpbmRpY2F0b3JEYXRhKSBjb25zdAoreworICAgIG1fcGFnZS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yRGF0YSwg
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6VGVt
cG9yYXJ5KSkpOworfQorCiBTdHJpbmcgV2ViQ2hyb21lQ2xpZW50OjpzaWduZWRQdWJsaWNLZXlB
bmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZUluZGV4LCBjb25zdCBTdHJpbmcmIGNo
YWxsZW5nZVN0cmluZywgY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgU3RyaW5nIHJlc3Vs
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA0ZWVmMWY4YWQxYzUyYWMwNTE2NTgyYmExNjE1NWNh
ZDAxYTE1NTcyLi40MTliYTc4NDgzYWVlZTJjMWQ0M2RhMmIwYjQyZTkxZDdjMWIxZTlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCkBAIC0zNTMsNiArMzUzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0
b3JlQXBwSGlnaGxpZ2h0KFdlYkNvcmU6OkFwcEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKICNl
bmRpZgogCisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEYXRhJikgY29uc3QgZmluYWw7CisKICNpZiBFTkFCTEUoV0VCX0NSWVBUTykKICAgICBi
b29sIHdyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgVmVjdG9yPHVpbnQ4X3Q+
JikgY29uc3QgZmluYWw7CiAgICAgYm9vbCB1bndyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiwgVmVjdG9yPHVpbnQ4X3Q+JikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKaW5kZXggMDA5MDE0
YTUzNmJmOWQ2OGRmYmU1ZGExNDBkZGI1MTdhZWFjZDIwNy4uY2UyMWQ2N2M0OGI5NjA5ZWZhMzk1
NjZhZjAyOTNiOTNhY2NlZGRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIGJvb2wgRmlu
ZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRJbmRpY2F0b3IoRnJhbWUmIHNlbGVjdGVkRnJhbWUsIGJv
b2wgaXNTaG93aW5nT3ZlCiAKICAgICBtX2ZpbmRJbmRpY2F0b3JSZWN0ID0gZW5jbG9zaW5nSW50
UmVjdChpbmRpY2F0b3ItPnNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSk7CiAj
aWYgUExBVEZPUk0oQ09DT0EpCi0gICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlNldFRleHRJbmRpY2F0b3IoaW5kaWNhdG9yLT5kYXRhKCksIHN0YXRpY19jYXN0PHVp
bnQ2NF90Pihpc1Nob3dpbmdPdmVybGF5ID8gVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQ
ZXJtYW5lbnQgOiBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlRlbXBvcmFyeSkpKTsKKyAg
ICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0VGV4dEluZGljYXRv
cihpbmRpY2F0b3ItPmRhdGEoKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGlzU2hvd2luZ092ZXJs
YXkgPyBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudCA6IFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JMaWZldGltZTo6VGVtcG9yYXJ5KSkpOwogI2VuZGlmCiAgICAgbV9pc1No
b3dpbmdGaW5kSW5kaWNhdG9yID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBmM2Q0NzE2
YTg5MzNkOWYyNDJmOGVmMTIxNWE4NjYyMzQwZjg5N2E1Li5iYWQ1MWYwYjIxMmRhZTdiNjcxMDFh
MGFhYTYzZTQ5NDlkZTdkMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTU1LDYgKzE1NSw4IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChXZWJDb3JlOjpBcHBIaWdobGln
aHQmJikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihj
b25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpIGNvbnN0IGZpbmFsOworCiAjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKICAgICBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpIGZpbmFsOwog
ICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpp
bmRleCA0NTM5Y2U2ZjY0ZDAwYjBiYjAwMjgzZWFjODE1MzI5NzkwMDRjNGU4Li4wM2ViNjE0NzRl
MjFmYmFiMTVlMTUyNzgwMGIwYzQ2ZDkyYjQzM2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03
MjAsNiArNzIwLDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdG9yZUFwcEhpZ2hsaWdodChX
ZWJDb3JlOjpBcHBIaWdobGlnaHQmJikgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6c2V0VGV4dEluZGljYXRvcihjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0
YSYgaW5kaWNhdG9yRGF0YSkgY29uc3QKK3sKK30KKwogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CiBib29sIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2NrKCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDBmZTJhNTA5
NmM3ZTI2ZjMyMDMyNWUzNjhiZmYwZGJiOWYwNzJjNzYuLjYxZDZmNGU4NjU5NGRjYWI3ZTYxNzkw
NzA0YjcwOWVmNWNjYzJiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbQpAQCAtNTk1Myw3ICs1OTUzLDcgQEAgLSAodm9pZClfbG9va1VwSW5E
aWN0aW9uYXJ5RnJvbU1lbnU6KGlkKXNlbmRlcgogCiAtICh2b2lkKXF1aWNrTG9va1dpdGhFdmVu
dDooTlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgW1tzZWxmIF93ZWJWaWV3XSBfY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBbW3NlbGYgX3dlYlZpZXddIF9jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRp
b246OkZhZGVPdXRdOwogICAgIFtzdXBlciBxdWlja0xvb2tXaXRoRXZlbnQ6ZXZlbnRdOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggY2U2MmJmYTUxNjE3N2M4YzM2YWVk
ZDdiYTVmYTRjMjc1MTBkNmY3MS4uYmU1YjZhMmZiMDE1NGJjMzZmY2QzOGJiMWRhZDg5ZTA5Yzcw
ZTMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQpAQCAtMTIyLDcgKzEyMiw3IEBA
IC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZGlkSGFuZGxlU2Nyb2xsV2hlZWw6
KE5TRXZlbnQgKilldmVudAogewogICAgIFtfY3VycmVudFFMUHJldmlld01lbnVJdGVtIGNsb3Nl
XTsKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Ci0gICAgW193ZWJWaWV3
IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOworICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uOjpOb25lXTsKIH0KIAogLSAoTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXpl
ciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIKQEAgLTEzOSw3ICsxMzksNyBAQCAtICh2b2lk
KV9jYW5jZWxJbW1lZGlhdGVBY3Rpb24KICAgICB9CiAKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlh
dGVBY3Rpb25TdGF0ZV07Ci0gICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZh
ZGVPdXRdOworICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKIH0KIAog
LSAodm9pZClfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZQpAQCAtMjUxLDcgKzI1MSw3IEBAIC0g
KHZvaWQpaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplckRpZENhbmNlbEFuaW1hdGlvbjooTlNJbW1l
ZGlhdGVBY3Rpb25HZXN0dXJlUmVjCiAKICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3JB
bmltYXRpb25Qcm9ncmVzczowXTsKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0
ZV07Ci0gICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOworICAgIFtf
d2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lXTsKICAgICBbX3dlYlZpZXcgX3NldE1haW50
YWluc0luYWN0aXZlU2VsZWN0aW9uOk5PXTsKIH0KIApAQCAtMjkzLDcgKzI5Myw3IEBAIC0gKGlk
IDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9kZWZhdWx0QW5pbWF0aW9u
Q29udHJvbGxlcgogICAgICAgICAgICAgYXV0byBsaW5rUmFuZ2UgPSBtYWtlUmFuZ2VTZWxlY3Rp
bmdOb2RlQ29udGVudHMoKl9oaXRUZXN0UmVzdWx0LlVSTEVsZW1lbnQoKSk7CiAgICAgICAgICAg
ICBhdXRvIGluZGljYXRvciA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhSYW5n
ZShsaW5rUmFuZ2UsIHsgV2ViQ29yZTo6VGV4dEluZGljYXRvck9wdGlvbjo6VXNlQm91bmRpbmdS
ZWN0QW5kUGFpbnRBbGxDb250ZW50Rm9yQ29tcGxleFJhbmdlcyB9LCBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6RmFkZUluKTsKICAgICAgICAgICAgIGlmIChp
bmRpY2F0b3IpCi0gICAgICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOipp
bmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGlt
ZTo6UGVybWFuZW50XTsKKyAgICAgICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0
b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0aW1l
OjpQZXJtYW5lbnRdOwogCiAgICAgICAgICAgICBRTFByZXZpZXdNZW51SXRlbSAqaXRlbSA9IFtO
U01lbnVJdGVtIHN0YW5kYXJkUXVpY2tMb29rTWVudUl0ZW1dOwogICAgICAgICAgICAgaXRlbS5w
cmV2aWV3U3R5bGUgPSBRTFByZXZpZXdTdHlsZVBvcG92ZXI7CkBAIC0zNzksNyArMzc5LDcgQEAg
LSAoTlNSZWN0RWRnZSltZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtIHByZWZlcnJlZEVk
Z2VGb3JQb2ludDooTlNQb2ludClwb2kKIC0gKHZvaWQpbWVudUl0ZW1EaWRDbG9zZTooTlNNZW51
SXRlbSAqKW1lbnVJdGVtCiB7CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVd
OwotICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKKyAgICBb
X3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dElu
ZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiB9CiAKIHN0YXRpYyBXZWJDb3Jl
OjpJbnRSZWN0IGVsZW1lbnRCb3VuZGluZ0JveEluV2luZG93Q29vcmRpbmF0ZXNGcm9tTm9kZShX
ZWJDb3JlOjpOb2RlKiBub2RlKQpAQCAtNDY0LDkgKzQ2NCw5IEBAIC0gKGlkIDxOU0ltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURl
dGVjdGVkCiAgICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0gW2RldGVjdGVkSXRlbS0+YWN0aW9u
Q29udGV4dCBjb250ZXh0Rm9yVmlldzpfd2ViVmlldyBhbHRNb2RlOllFUyBpbnRlcmFjdGlvblN0
YXJ0ZWRIYW5kbGVyOl4oKSB7CiAgICAgfSBpbnRlcmFjdGlvbkNoYW5nZWRIYW5kbGVyOl4oKSB7
CiAgICAgICAgIGlmIChpbmRpY2F0b3IpCi0gICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJ
bmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvcldp
bmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0
SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JM
aWZldGltZTo6UGVybWFuZW50XTsKICAgICB9IGludGVyYWN0aW9uU3RvcHBlZEhhbmRsZXI6Xigp
IHsKLSAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwor
ICAgICAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29y
ZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfV07CiAK
ICAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfd2ViVmlldy53
aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpkZXRlY3RlZEl0ZW0tPmJvdW5kaW5nQm94XV07CkBA
IC00OTcsOSArNDk3LDkgQEAgLSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJv
bGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWQKICAgICBfY3VycmVudEFj
dGlvbkNvbnRleHQgPSBbYWN0aW9uQ29udGV4dCBjb250ZXh0Rm9yVmlldzpfd2ViVmlldyBhbHRN
b2RlOllFUyBpbnRlcmFjdGlvblN0YXJ0ZWRIYW5kbGVyOl4oKSB7CiAgICAgfSBpbnRlcmFjdGlv
bkNoYW5nZWRIYW5kbGVyOl4oKSB7CiAgICAgICAgIGlmIChpbmRpY2F0b3IpCi0gICAgICAgICAg
ICBbX3dlYlZpZXcgX3NldFRleHRJbmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6V2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICAg
ICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOldl
YkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6UGVybWFuZW50XTsKICAgICB9IGludGVyYWN0
aW9uU3RvcHBlZEhhbmRsZXI6XigpIHsKLSAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRv
cldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6
RmFkZU91dF07CiAgICAgfV07CiAKICAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hs
aWdodEZyYW1lOltfd2ViVmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjplbGVtZW50Qm91
bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzRnJvbU5vZGUoX2hpdFRlc3RSZXN1bHQuVVJMRWxl
bWVudCgpKV1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmlu
ZGV4IDcyNjRiZmRjZDcyZGUxMzY5NjBhMzIzOGNiMDAyMTZmYjg5MmZmN2MuLjk5MmYzZTA5NzRk
NjQ1YmZlMjVkNzMxOTgzMmQ4NDFmNzcwZWU2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkxMDAsMTEgKzkxMDAsMTEgQEAgLSAoaWQpX2FuaW1h
dGlvbkNvbnRyb2xsZXJGb3JEaWN0aW9uYXJ5TG9va3VwUG9wdXBJbmZvOihjb25zdCBXZWJDb3Jl
OjpEaWN0aW9uYXIKICAgICBbc2VsZiBfcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXBdOwogCiAg
ICAgcmV0dXJuIFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OmFuaW1hdGlvbkNvbnRyb2xsZXJG
b3JQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBzZWxmLCBbc2VsZl0oV2ViQ29yZTo6VGV4dElu
ZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRv
cjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRl
eHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZTo6
UGVybWFuZW50XTsKICAgICB9LCBbc2VsZl0oV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RJblJvb3RW
aWV3Q29vcmRpbmF0ZXMpIHsKICAgICAgICAgcmV0dXJuIFtzZWxmIF9jb252ZXJ0UmVjdEZyb21S
b290VmlldzpyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICB9LCBbc2VsZl0oKSB7Ci0g
ICAgICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRl
eHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBb
c2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKICAgICB9KTsKIH0KIApAQCAtOTEyMCwx
MCArOTEyMCwxMCBAQCAtICh2b2lkKV9zZXRQcmVzc3VyZUV2ZW50OihOU0V2ZW50ICopZXZlbnQK
IAogLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4
dEluZGljYXRvcgogewotICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Ig
d2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFu
ZW50XTsKKyAgICBbc2VsZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZl
dGltZTpXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlmZXRpbWU6OlBlcm1hbmVudF07CiB9CiAKLS0g
KHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRp
Y2F0b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUp
bGlmZXRpbWUKKy0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0
b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yTGlm
ZXRpbWUpbGlmZXRpbWUKIHsKICAgICBpZiAoIV9wcml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93
KQogICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdyA9IG1ha2VVbmlxdWU8V2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvdz4oc2VsZik7CkBAIC05MTMzLDEwICs5MTMzLDEwIEBA
IC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJ
bmRpY2F0b3Igd2l0aExpZmV0aW1lOihXCiAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5k
b3ctPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgTlNSZWN0VG9DR1JlY3QodGV4dEJv
dW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMpLCBsaWZldGltZSk7CiB9CiAKLS0gKHZvaWQp
X2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uCistICh2b2lkKV9jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0
aW9uKWFuaW1hdGlvbgogewogICAgIGlmIChfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdykK
LSAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRv
cihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0
KTsKKyAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGlj
YXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsK
ICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdyA9IG51bGxwdHI7CiB9CiAKQEAgLTkx
NjgsMTggKzkxNjgsMTggQEAgLSAodm9pZClfc2hvd0RpY3Rpb25hcnlMb29rdXBQb3B1cDooY29u
c3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpZGljdGlvbmEKICAgICBbc2VsZiBfcHJl
cGFyZUZvckRpY3Rpb25hcnlMb29rdXBdOwogCiAgICAgV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1
cDo6c2hvd1BvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIHNlbGYsIFtzZWxmXShXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIFtzZWxmIF9zZXRUZXh0SW5k
aWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOldlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgW3NlbGYgX3NldFRleHRJbmRpY2F0
b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6V2ViQ29yZTo6VGV4dEluZGljYXRvckxpZmV0
aW1lOjpQZXJtYW5lbnRdOwogICAgIH0sIFtzZWxmXShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdElu
Um9vdFZpZXdDb29yZGluYXRlcykgewogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRSZWN0
RnJvbVJvb3RWaWV3OnJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIH0sIFt3ZWFrU2Vs
ZiA9IFdlYWtPYmpDUHRyPFdlYlZpZXc+KHNlbGYpXSgpIHsKLSAgICAgICAgW3dlYWtTZWxmLmdl
dCgpIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOworICAgICAgICBbd2Vha1NlbGYu
Z2V0KCkgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246V2ViQ29yZTo6VGV4dEluZGlj
YXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07CiAgICAgfSk7CiB9CiAKICNpZiAhRU5B
QkxFKFJFVkVBTCkKIC0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOihO
U05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotICAgIFtzZWxmIF9jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb246OkZhZGVPdXRdOworICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uOldlYkNvcmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRd
OwogfQogI2VuZGlmIC8vIEVOQUJMRShSRVZFQUwpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDczMzcyYTBiZGExNTNiZmEz
NzYxMDIzY2Y0OTVkNzk2ZmE3MThjYzEuLmJhZDVmZDhhMTUwYWNmMmMzN2E1N2MzNjRmODIxOWRj
ZDQzNzMwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3SW50ZXJuYWwuaApAQCAtMzE5LDggKzMxOSw4IEBAIFdlYkxheW91dE1pbGVzdG9uZXMga2l0
TGF5b3V0TWlsZXN0b25lcyhPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPik7CiAK
ICNpZiBQTEFURk9STShNQUMpICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCiAtICh2b2lkKV9zZXRU
ZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yOwotLSAo
dm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGlj
YXRvciB3aXRoTGlmZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSls
aWZldGltZTsKLS0gKHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOworLSAo
dm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGlj
YXRvciB3aXRoTGlmZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JMaWZldGltZSlsaWZldGlt
ZTsKKy0gKHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOwogLSAodm9pZClfc2V0VGV4
dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClwcm9ncmVzczsKIC0gKHZvaWQpX3No
b3dEaWN0aW9uYXJ5TG9va3VwUG9wdXA6KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cElu
Zm8mKWRpY3Rpb25hcnlQb3B1cEluZm87CiAtIChpZClfYW5pbWF0aW9uQ29udHJvbGxlckZvckRp
Y3Rpb25hcnlMb29rdXBQb3B1cEluZm86KGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cElu
Zm8mKWRpY3Rpb25hcnlQb3B1cEluZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDMxOThkZTIxOWU4
OTI3MWZlMDhlMzYyZDI1ODUyMmJmZDNjYzM4OWYuLjg1ZjIyNDY0MDNkZjE0YTUwYmJjOWM2NzMw
ZjA0MDhiMjBhZTI0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNjksNiArMTY5LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCB3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGJvb2wpIGZpbmFsIHsg
fQogCisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKGNvbnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JEYXRhJikgY29uc3QgZmluYWwgeyB9CisKICAgICBXZWJWaWV3KiB3ZWJWaWV3KCkgeyByZXR1
cm4gbV93ZWJWaWV3OyB9CiAKICAgICB2b2lkIEFYU3RhcnRGcmFtZUxvYWQoKSBmaW5hbDsK
</data>
<flag name="commit-queue"
          id="449501"
          type_id="3"
          status="-"
          setter="megan_gardner"
    />
          </attachment>
      

    </bug>

</bugzilla>