<?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>202006</bug_id>
          
          <creation_ts>2019-09-19 14:21:43 -0700</creation_ts>
          <short_desc>[iPadOS] The second click event is missing on double tap when dblclick handler is not present</short_desc>
          <delta_ts>2019-09-24 13:06:56 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1572484</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-09-19 14:21:43 -0700</bug_when>
    <thetext>rdar://problem/51706828</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572493</commentid>
    <comment_count>1</comment_count>
      <attachid>379165</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-19 14:59:44 -0700</bug_when>
    <thetext>Created attachment 379165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572495</commentid>
    <comment_count>2</comment_count>
      <attachid>379165</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-09-19 15:02:36 -0700</bug_when>
    <thetext>Comment on attachment 379165
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:2143
&gt; +        return _positionInformation.nodeAtPositionHasDoubleClickHandler;

What is responsible for ensuring that position information is up to date here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572509</commentid>
    <comment_count>3</comment_count>
      <attachid>379165</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-19 15:37:43 -0700</bug_when>
    <thetext>Comment on attachment 379165
Patch

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

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:2143
&gt;&gt; +        return _positionInformation.nodeAtPositionHasDoubleClickHandler;
&gt; 
&gt; What is responsible for ensuring that position information is up to date here?

I was curious about that too and was going to figure that out myself! I had tested a few dynamic cases (add/remove eventlisteners) and they all worked fine so I thought I might just upload the patch first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572534</commentid>
    <comment_count>4</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-09-19 16:41:32 -0700</bug_when>
    <thetext>(In reply to zalan from comment #3)
&gt; Comment on attachment 379165 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=379165&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:2143
&gt; &gt;&gt; +        return _positionInformation.nodeAtPositionHasDoubleClickHandler;
&gt; &gt; 
&gt; &gt; What is responsible for ensuring that position information is up to date here?
&gt; 
&gt; I was curious about that too and was going to figure that out myself! I had
&gt; tested a few dynamic cases (add/remove eventlisteners) and they all worked
&gt; fine so I thought I might just upload the patch first.

It would be worth double checking why this works. I suspect it&apos;s using position information state from web touch and/or text interaction gestures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572535</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-09-19 16:43:05 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #4)
&gt; (In reply to zalan from comment #3)
&gt; &gt; Comment on attachment 379165 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=379165&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:2143
&gt; &gt; &gt;&gt; +        return _positionInformation.nodeAtPositionHasDoubleClickHandler;
&gt; &gt; &gt; 
&gt; &gt; &gt; What is responsible for ensuring that position information is up to date here?
&gt; &gt; 
&gt; &gt; I was curious about that too and was going to figure that out myself! I had
&gt; &gt; tested a few dynamic cases (add/remove eventlisteners) and they all worked
&gt; &gt; fine so I thought I might just upload the patch first.
&gt; 
&gt; It would be worth double checking why this works. I suspect it&apos;s using
&gt; position information state from web touch and/or text interaction gestures.
Absolutely. I was going to check if I need to trigger an update on eventlistner (de)registrations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572908</commentid>
    <comment_count>6</comment_count>
      <attachid>379272</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-20 14:48:15 -0700</bug_when>
    <thetext>Created attachment 379272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573369</commentid>
    <comment_count>7</comment_count>
      <attachid>379381</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-23 11:34:47 -0700</bug_when>
    <thetext>Created attachment 379381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573422</commentid>
    <comment_count>8</comment_count>
      <attachid>379381</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-09-23 14:45:35 -0700</bug_when>
    <thetext>Comment on attachment 379381
Patch

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

&gt; Source/WebKit/Shared/ios/InteractionInformationRequest.cpp:89
&gt; -    return (other.point - point).diagonalLengthSquared() &lt;= 4;
&gt; +    return (other.point - point).diagonalLengthSquared() &lt;= radius * radius;

Nit - it might be cleaner to just share code with InteractionInformationRequest::isValidForRequest above, by moving the distance check into InteractionInformationRequest::isValidForRequest and treating isValidForRequest as the case where radius == 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573751</commentid>
    <comment_count>9</comment_count>
      <attachid>379468</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-24 12:33:36 -0700</bug_when>
    <thetext>Created attachment 379468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573772</commentid>
    <comment_count>10</comment_count>
      <attachid>379468</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-24 13:06:55 -0700</bug_when>
    <thetext>Comment on attachment 379468
Patch

Clearing flags on attachment: 379468

Committed r250315: &lt;https://trac.webkit.org/changeset/250315&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573773</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-24 13:06:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379165</attachid>
            <date>2019-09-19 14:59:44 -0700</date>
            <delta_ts>2019-09-20 14:48:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202006-20190919145943.patch</filename>
            <type>text/plain</type>
            <size>12201</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA0OTMyNzFmMWFmYjhkMWEw
ZGIwNGUzOTBlNzI5YzUzMjUxZTEwNTAuLmE3OTZiNjg5MjA3NzU3YzkxMjc5MTNkYmYxMTU0NmZl
MjIxYjQ3NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTktMDktMTkgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaVBhZE9zXSBUaGUgc2Vjb25kIGNs
aWNrIGV2ZW50IGlzIG1pc3Npbmcgb24gZG91YmxlIHRhcCB3aGVuIGRibGNsaWNrIGhhbmRsZXIg
aXMgbm90IHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMjAwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTE3MDY4Mjg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hpbGUgZG91YmxlIHRh
cHBpbmcsIAorICAgICAgICAxLiB0aGUgZmlyc3QgdGFwIHRyaWdnZXJzIGEgY2xpY2sgZXZlbnQg
dGhyb3VnaCB0aGUgbm9ybWFsIF9zaW5nbGVUYXBJZGVudGlmaWVkL19zaW5nbGVUYXBSZWNvZ25p
emVkIGNvZGVwYXRoLgorICAgICAgICAyLiBhbmQgdGhlIHNlY29uZCB0YXAgc2hvdWxkIHRyaWdn
ZXIgZWl0aGVyIAorICAgICAgICAgIGEgc2Vjb25kIHNpbmdsZSBjbGljayBldmVudCBvcgorICAg
ICAgICAgIGEgc2Vjb25kIHNpbmdsZSBjbGljayBmb2xsb3dlZCBieSBhIGRibGNsaWNrIGV2ZW50
IHdoZW4gZGJsY2xpY2sgaGFuZGxlciBpcyBwcmVzZW50LgorICAgICAgICBIb3dldmVyIHRoZSBz
ZWNvbmQgY2xpY2sgaXMgZHJvcHBlZCBvbiB0aGUgZmxvb3Igd2hlbiB0aGUgbm9kZSB1bmRlciB0
aGUgY3Vyc29yIGRvZXMgbm90IGhhdmUgYSBkYmxjbGljayBoYW5kbGVyIChzZWUgaGFuZGxlRG91
YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KCkpIC1zbyB3ZSBlbmQgdXAgc2VuZGluZyBvbmUg
Y2xpY2sgZXZlbnQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGNhc2UgYnkgc2Vu
ZGluZyB0aGUgc2Vjb25kIHRhcCB0aHJvdWdoIHRoZSBub3JtYWwgc2luZ2xlIHRhcCBmbG93IHdo
ZW4gdGhlIGRibGNsaWNrIGhhbmRsZXIgaXMgbm90IHByZXNlbnQuCisKKyAgICAgICAgKiBTaGFy
ZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmg6CisgICAgICAgICogU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbToKKyAgICAgICAgKFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpkZWNvZGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyU2hvdWxkQmVnaW46XSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpwb3NpdGlvbkluZm9ybWF0aW9uKToKKwogMjAxOS0wOS0xOCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZFBsdWdJbkF1dG9T
dGFydE9yaWdpbkhhc2ggLyBQbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uIElQQyBzaG91
bGQgbm90IG5lZWQgdG8gcGFzcyBhIFNlc3Npb25JRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAppbmRl
eCA2YTQ3YmQ3MzY1ZTliYzkxZjI4YjNiMjJmZDlkZTU1OTNiMDQ4OGM3Li5mZTkyY2QxMjRmZjI0
ZjE5N2VlMjNlYzFmYjUzZGNhMzhjZTViOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaApAQCAt
NTEsNiArNTEsNyBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gewog
CiAgICAgYm9vbCBjYW5CZVZhbGlkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbm9kZUF0UG9zaXRpb25J
c0ZvY3VzZWRFbGVtZW50IHsgZmFsc2UgfTsKKyAgICBib29sIG5vZGVBdFBvc2l0aW9uSGFzRG91
YmxlQ2xpY2tIYW5kbGVyIHsgZmFsc2UgfTsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikK
ICAgICBib29sIGhhc1NlbGVjdGlvbkF0UG9zaXRpb24geyBmYWxzZSB9OwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24ubW0KaW5kZXggMmZmM2ZkODI4YTM0YmE5ZTk3ZGM4MTYwMTExZGJkMDE4
ZTAxZmU3MS4uY2E0Y2RkYjhlNDg1NzU2MDgzMjNlMmEwMWE0YmQxMTYyMThlNzZjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbi5tbQpAQCAtNDUsNiArNDUsNyBAQCB2b2lkIEludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
CiAgICAgZW5jb2RlciA8PCBjYW5CZVZhbGlkOwogICAgIGVuY29kZXIgPDwgbm9kZUF0UG9zaXRp
b25Jc0ZvY3VzZWRFbGVtZW50OworICAgIGVuY29kZXIgPDwgbm9kZUF0UG9zaXRpb25IYXNEb3Vi
bGVDbGlja0hhbmRsZXI7CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgZW5jb2Rl
ciA8PCBoYXNTZWxlY3Rpb25BdFBvc2l0aW9uOwogI2VuZGlmCkBAIC05Nyw2ICs5OCw5IEBAIGJv
b2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIEludGVyYWN0aW9uCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubm9k
ZUF0UG9zaXRpb25Jc0ZvY3VzZWRFbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubm9kZUF0UG9zaXRpb25IYXNEb3VibGVDbGlj
a0hhbmRsZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICNpZiBFTkFCTEUoREFUQV9JTlRF
UkFDVElPTikKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5oYXNTZWxlY3Rpb25BdFBv
c2l0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggM2U5MjYy
NzcyMzNkZDY1MTllMmY2NTQ0NDI1ZDNlM2FjZjc0ODYxZi4uNTRlMmM5YmI4YWIwNzU0NTYyOTgz
MWJiOWIwOWVmZWU4MzRhNDMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0yMTM5LDEwICsyMTM5LDEy
IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXJTaG91bGRCZWdpbjooVUlHZXN0dXJlUmVjb2du
aXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiAgICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyID09IF9z
aW5nbGVUYXBHZXN0dXJlUmVjb2duaXplcikKICAgICAgICAgcmV0dXJuICFpc0ludGVycnVwdGlu
Z0RlY2VsZXJhdGlvbkZvclNjcm9sbFZpZXdPckFuY2VzdG9yKFtfc2luZ2xlVGFwR2VzdHVyZVJl
Y29nbml6ZXIgbGFzdFRvdWNoZWRTY3JvbGxWaWV3XSk7CiAKKyAgICBpZiAoZ2VzdHVyZVJlY29n
bml6ZXIgPT0gX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xpY2spCisgICAg
ICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5ub2RlQXRQb3NpdGlvbkhhc0RvdWJsZUNs
aWNrSGFuZGxlcjsKKwogICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfaGlnaGxpZ2h0TG9u
Z1ByZXNzR2VzdHVyZVJlY29nbml6ZXIKICAgICAgICAgfHwgZ2VzdHVyZVJlY29nbml6ZXIgPT0g
X2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyCiAgICAgICAgIHx8IGdlc3R1cmVSZWNvZ25pemVy
ID09IF9ub25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyCi0gICAgICAgIHx8IGdl
c3R1cmVSZWNvZ25pemVyID09IF9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJsZUNs
aWNrCiAgICAgICAgIHx8IGdlc3R1cmVSZWNvZ25pemVyID09IF90d29GaW5nZXJEb3VibGVUYXBH
ZXN0dXJlUmVjb2duaXplcikgewogCiAgICAgICAgIGlmIChoYXNGb2N1c2VkRWxlbWVudChfZm9j
dXNlZEVsZW1lbnRJbmZvcm1hdGlvbikpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggMzhlMWI5NTU3NTczZDYxZjdmM2Mx
YjJkYWUwMDA1NjA2ODgwMDk0YS4uZGMyNmNkMmNlYzZhMjExNGEzMTlhZTJhMmQzODdjMjE3NjM1
NDAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KQEAgLTI3MzAsMTAgKzI3MzAsMTEgQEAgSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24gV2ViUGFnZTo6cG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlv
bkkKICAgICBpbmZvLnJlcXVlc3QgPSByZXF1ZXN0OwogCiAgICAgRmxvYXRQb2ludCBhZGp1c3Rl
ZFBvaW50OwotICAgIE5vZGUqIGhpdE5vZGUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLm5vZGVSZXNw
b25kaW5nVG9DbGlja0V2ZW50cyhyZXF1ZXN0LnBvaW50LCBhZGp1c3RlZFBvaW50KTsKKyAgICBh
dXRvKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLm5v
ZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyhyZXF1ZXN0LnBvaW50LCBhZGp1c3RlZFBvaW50KTsK
IAotICAgIGluZm8ubm9kZUF0UG9zaXRpb25Jc0ZvY3VzZWRFbGVtZW50ID0gaGl0Tm9kZSA9PSBt
X2ZvY3VzZWRFbGVtZW50OworICAgIGluZm8ubm9kZUF0UG9zaXRpb25Jc0ZvY3VzZWRFbGVtZW50
ID0gbm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzID09IG1fZm9jdXNlZEVsZW1lbnQ7CiAgICAg
aW5mby5hZGp1c3RlZFBvaW50Rm9yTm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzID0gYWRqdXN0
ZWRQb2ludDsKKyAgICBpbmZvLm5vZGVBdFBvc2l0aW9uSGFzRG91YmxlQ2xpY2tIYW5kbGVyID0g
bV9wYWdlLT5tYWluRnJhbWUoKS5ub2RlUmVzcG9uZGluZ1RvRG91YmxlQ2xpY2tFdmVudChyZXF1
ZXN0LnBvaW50LCBhZGp1c3RlZFBvaW50KTsKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9O
KQogICAgIGluZm8uaGFzU2VsZWN0aW9uQXRQb3NpdGlvbiA9IG1fcGFnZS0+aGFzU2VsZWN0aW9u
QXRQb3NpdGlvbihhZGp1c3RlZFBvaW50KTsKQEAgLTI3NDIsOCArMjc0Myw4IEBAIEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIFdlYlBhZ2U6OnBvc2l0aW9uSW5mb3JtYXRpb24oY29u
c3QgSW50ZXJhY3Rpb25JCiAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQpCiAgICAgICAgIGZvY3Vz
ZWRFbGVtZW50UG9zaXRpb25JbmZvcm1hdGlvbigqdGhpcywgKm1fZm9jdXNlZEVsZW1lbnQsIHJl
cXVlc3QsIGluZm8pOwogCi0gICAgaWYgKGlzPEVsZW1lbnQ+KGhpdE5vZGUpKSB7Ci0gICAgICAg
IEVsZW1lbnQmIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50PigqaGl0Tm9kZSk7CisgICAgaWYg
KGlzPEVsZW1lbnQ+KG5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cykpIHsKKyAgICAgICAgYXV0
byYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVu
dHMpOwogICAgICAgICBlbGVtZW50UG9zaXRpb25JbmZvcm1hdGlvbigqdGhpcywgZWxlbWVudCwg
cmVxdWVzdCwgaW5mbyk7CiAKICAgICAgICAgaWYgKGluZm8uaXNMaW5rICYmICFpbmZvLmlzSW1h
Z2UgJiYgcmVxdWVzdC5pbmNsdWRlU25hcHNob3QpCkBAIC0yNzU1LDEwICsyNzU2LDggQEAgSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gV2ViUGFnZTo6cG9zaXRpb25JbmZvcm1hdGlv
bihjb25zdCBJbnRlcmFjdGlvbkkKIAogICAgIC8vIFByZXZlbnQgdGhlIGNhbGxvdXQgYmFyIGZy
b20gc2hvd2luZyB3aGVuIHRhcHBpbmcgb24gdGhlIGRhdGFsaXN0IGJ1dHRvbi4KICNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkKLSAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oaGl0Tm9k
ZSkpIHsKLSAgICAgICAgY29uc3QgSFRNTElucHV0RWxlbWVudCYgaW5wdXQgPSBkb3duY2FzdDxI
VE1MSW5wdXRFbGVtZW50PigqaGl0Tm9kZSk7Ci0gICAgICAgIHRleHRJbnRlcmFjdGlvblBvc2l0
aW9uSW5mb3JtYXRpb24oKnRoaXMsIGlucHV0LCByZXF1ZXN0LCBpbmZvKTsKLSAgICB9CisgICAg
aWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cykpCisg
ICAgICAgIHRleHRJbnRlcmFjdGlvblBvc2l0aW9uSW5mb3JtYXRpb24oKnRoaXMsIGRvd25jYXN0
PEhUTUxJbnB1dEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMpLCByZXF1ZXN0
LCBpbmZvKTsKICNlbmRpZgogCiAgICAgcmV0dXJuIGluZm87CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzJlNGUxZWU3M2Vi
MjE5NGJiZTE2NWVhNjgxZjc2NTg4ODE0MjdmNS4uYjRkZGU4OWI0YmEzYzZkNzNiZTEyNjM0ZTY3
NDRlYmZkMWM1ZDBlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5LTE5ICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lQYWRPc10gVGhlIHNlY29uZCBj
bGljayBldmVudCBpcyBtaXNzaW5nIG9uIGRvdWJsZSB0YXAgd2hlbiBkYmxjbGljayBoYW5kbGVy
IGlzIG5vdCBwcmVzZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDIwMDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNzA2ODI4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMv
dG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MxLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlj
a3MxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUt
dGFwLWZvci10d28tY2xpY2tzMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzMi5odG1sOiBBZGRlZC4K
KwogMjAxOS0wOS0xOSAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtXUEVdW0dUS10gR2FyZGVuaW5nIGFmdGVyIHIyNTAwODcKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzMS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRh
cC1mb3ItdHdvLWNsaWNrczEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkNjNiNjA4ZDBiM2Jj
ZjgxNjFkZjQ0ZjE5NmJjNDMyZmU5M2MzYmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczEtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBpZiAnW2NsaWNrXVtjbGlja10nIHRleHQgaXMg
c2hvd24gYmVsb3cuCitbY2xpY2tdW2NsaWNrXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MxLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczEu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44YTg5ZWM3ZGRlZjI5N2FhOTkyZTAwMTRmNTU4MjM5YTRjOTUxZDRm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2Rv
dWJsZS10YXAtZm9yLXR3by1jbGlja3MxLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBF
IGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUg
XSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ZGV2aWNlLXdpZHRoIGluaXRpYWwtc2NhbGU9MSB1c2VyLXNjYWxhYmxlPW5vIj4KKzx0aXRs
ZT5UaGlzIHRlc3RzIHRoYXQgd2UgZmlyZSB0d28gY2xpY2sgZXZlbnRzIG9uIGRvdWJsZSB0YXAg
d2hlbiBkYmxjbGljayBoYW5kbGVyIGlzIG5vdCBwcmVzZW50LjwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+
CisjZG91YmxlVGFwdGhpcyB7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7
CisgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Fz
eW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVz
dFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICBhd2Fp
dCBVSUhlbHBlci5odW1hblNwZWVkRG91YmxlVGFwQXQoZG91YmxlVGFwdGhpcy5vZmZzZXRMZWZ0
LCBkb3VibGVUYXB0aGlzLm9mZnNldFRvcCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0idGVzdCgpIj4KKzxkaXYgaWQ9ZG91YmxlVGFwdGhpcz5QQVNTIGlmICdbY2xpY2td
W2NsaWNrXScgdGV4dCBpcyBzaG93biBiZWxvdy48L2Rpdj4KKzxwcmUgaWQ9cmVzdWx0PjwvcHJl
PgorPHNjcmlwdD4KK2xldCBudW1iZXJPZkNsaWNrcyA9IDA7CisKK2RvdWJsZVRhcHRoaXMuYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0
LmlubmVySFRNTCA9IHJlc3VsdC5pbm5lckhUTUwgKyAiW2NsaWNrXSI7CisgICAgaWYgKCsrbnVt
YmVyT2ZDbGlja3MgPT0gMiAmJiB3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgc2V0VGltZW91
dCgidGVzdFJ1bm5lci5ub3RpZnlEb25lKCkiLCAwKTsKK30sIGZhbHNlKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDYzYjYwOGQwYjNiY2Y4MTYxZGY0NGYxOTZiYzQzMmZl
OTNjM2JkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIg
QEAKK1BBU1MgaWYgJ1tjbGlja11bY2xpY2tdJyB0ZXh0IGlzIHNob3duIGJlbG93LgorW2NsaWNr
XVtjbGlja10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9k
b3VibGUtdGFwLWZvci10d28tY2xpY2tzMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Zl
NDAzNTA5MDc3YTA4MzUwNWRiYzA5NDdkMGE5YWRjZGUyY2MwZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xp
Y2tzMi5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCBpbml0
aWFsLXNjYWxlPTEgdXNlci1zY2FsYWJsZT1ubyI+Cis8dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IHdl
IGZpcmUgdHdvIGNsaWNrIGV2ZW50cyBvbiBkb3VibGUgdGFwIHdoZW4gZGJsY2xpY2sgaGFuZGxl
ciBpcyByZW1vdmVkIGR5bmFtaWNhbGx5LjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjZG91YmxlVGFw
dGhpcyB7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7CisgICAgYm9yZGVy
OiAxcHggc29saWQgZ3JlZW47Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0
ZXN0KCkiPgorPGRpdiBpZD1kb3VibGVUYXB0aGlzPlBBU1MgaWYgJ1tjbGlja11bY2xpY2tdJyB0
ZXh0IGlzIHNob3duIGJlbG93LjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0
PgorCitmdW5jdGlvbiBkYmxjbGlja0hhbmRsZXIoZXZlbnQpIHsKKyAgICByZXN1bHQuaW5uZXJI
VE1MID0gcmVzdWx0LmlubmVySFRNTCArICJbc2hvdWxkIG5vdCBkb3VibGUgY2xpY2tdIjsKK30K
KworbGV0IG51bWJlck9mQ2xpY2tzID0gMDsKK2RvdWJsZVRhcHRoaXMuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVySFRNTCA9
IHJlc3VsdC5pbm5lckhUTUwgKyAiW2NsaWNrXSI7CisgICAgaWYgKCsrbnVtYmVyT2ZDbGlja3Mg
PT0gMiAmJiB3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgc2V0VGltZW91dCgidGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCkiLCAwKTsKK30sIGZhbHNlKTsKKworYXN5bmMgZnVuY3Rpb24gdGVzdCgp
IHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGRvdWJsZVRhcHRoaXMucmVtb3ZlRXZl
bnRMaXN0ZW5lcigiZGJsY2xpY2siLCBkYmxjbGlja0hhbmRsZXIsIGZhbHNlKTsKKyAgICBhd2Fp
dCBVSUhlbHBlci5odW1hblNwZWVkRG91YmxlVGFwQXQoZG91YmxlVGFwdGhpcy5vZmZzZXRMZWZ0
LCBkb3VibGVUYXB0aGlzLm9mZnNldFRvcCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379272</attachid>
            <date>2019-09-20 14:48:15 -0700</date>
            <delta_ts>2019-09-23 11:34:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202006-20190920144815.patch</filename>
            <type>text/plain</type>
            <size>38447</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBkMTc0ZDBlMmYyNjRh
NjViM2RmNGI1M2M1NmUwNGZjY2M2OWViYy4uMGUyZDg4YmZlYWJhN2U2ZGFmOGNhNGQ0YTJkNDFj
ZGFiNDUwNzBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA5LTIwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lQYWRPc10gVGhlIHNlY29u
ZCBjbGljayBldmVudCBpcyBtaXNzaW5nIG9uIGRvdWJsZSB0YXAgd2hlbiBkYmxjbGljayBoYW5k
bGVyIGlzIG5vdCBwcmVzZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDIwMDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNzA2ODI4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0
L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczEuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3My
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZv
ci10d28tY2xpY2tzMy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
ZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL2RvdWJsZWNsaWNrLmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpZEFkZERvdWJsZUNsaWNrRXZlbnRIYW5k
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRSZW1vdmVEb3VibGVDbGlja0V2
ZW50SGFuZGxlcik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aGFzRG91YmxlQ2xpY2tFdmVudEhhbmRsZXIgY29uc3QpOgorICAgICAgICAq
IGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyeUFkZEV2ZW50TGlzdGVuZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6dHJ5UmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgICogbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisKIDIw
MTktMDktMjAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XSBJbnRyb2R1Y2UgTGF5b3V0Q29udGV4dCBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxZjQ3ZDVkMjk1Y2Yx
NzMwMWFlNWJjN2JhMDhmZTk4MWIyNWRlODk1Li43YTYxYTY2MzE1ZTc3OWFjOGJmOWQwN2Q3NWRl
ZjQ4NmYzYWM5NzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTA5LTIwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lQYWRPc10gVGhlIHNlY29u
ZCBjbGljayBldmVudCBpcyBtaXNzaW5nIG9uIGRvdWJsZSB0YXAgd2hlbiBkYmxjbGljayBoYW5k
bGVyIGlzIG5vdCBwcmVzZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDIwMDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNzA2ODI4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoaWxlIGRvdWJs
ZSB0YXBwaW5nLCAKKyAgICAgICAgMS4gdGhlIGZpcnN0IHRhcCB0cmlnZ2VycyBhIGNsaWNrIGV2
ZW50IHRocm91Z2ggdGhlIG5vcm1hbCBfc2luZ2xlVGFwSWRlbnRpZmllZC9fc2luZ2xlVGFwUmVj
b2duaXplZCBjb2RlcGF0aC4KKyAgICAgICAgMi4gYW5kIHRoZSBzZWNvbmQgdGFwIHNob3VsZCB0
cmlnZ2VyIGVpdGhlciAKKyAgICAgICAgICBhIHNlY29uZCBzaW5nbGUgY2xpY2sgZXZlbnQgb3IK
KyAgICAgICAgICBhIHNlY29uZCBzaW5nbGUgY2xpY2sgZm9sbG93ZWQgYnkgYSBkYmxjbGljayBl
dmVudCB3aGVuIGRibGNsaWNrIGhhbmRsZXIgaXMgcHJlc2VudC4KKyAgICAgICAgSG93ZXZlciB0
aGUgc2Vjb25kIGNsaWNrIGlzIGRyb3BwZWQgb24gdGhlIGZsb29yIHdoZW4gdGhlIG5vZGUgdW5k
ZXIgdGhlIGN1cnNvciBkb2VzIG5vdCBoYXZlIGEgZGJsY2xpY2sgaGFuZGxlciAoc2VlIGhhbmRs
ZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludCgpKSAtc28gd2UgZW5kIHVwIHNlbmRpbmcg
b25lIGNsaWNrIGV2ZW50LgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBjYXNlIGJ5
IHNlbmRpbmcgdGhlIHNlY29uZCB0YXAgdGhyb3VnaCB0aGUgbm9ybWFsIHNpbmdsZSB0YXAgZmxv
dyB3aGVuIHRoZSBkYmxjbGljayBoYW5kbGVyIGlzIG5vdCBwcmVzZW50LgorCisgICAgICAgICog
U2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oOgorICAgICAgICAq
IFNoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW06CisgICAgICAg
IChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVj
b2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkQWRkRG91YmxlQ2xpY2tFdmVudEhhbmRsZXIpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkUmVtb3ZlRG91YmxlQ2xpY2tFdmVu
dEhhbmRsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0dXBJbnRlcmFjdGlvbl0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyU2hvdWxkQmVnaW46XSk6CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgX3BhZ2VHYWluZWREb3VibGVDbGlja0V2ZW50SGFuZGxlcl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9wYWdlTG9zdERvdWJsZUNsaWNrRXZlbnRIYW5k
bGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRDb21taXRMb2FkRm9yTWFpbkZy
YW1lXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQWRkRG91YmxlQ2xpY2tFdmVudEhhbmRsZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlbW92ZURvdWJsZUNsaWNrRXZl
bnRIYW5kbGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNo
cm9tZUNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkaWRB
ZGREb3VibGVDbGlja0V2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6ZGlkUmVtb3ZlRG91YmxlQ2xpY2tFdmVudEhhbmRsZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6cG9zaXRpb25JbmZvcm1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RQb3NpdGlvbkluZm9ybWF0aW9uKToKKwogMjAxOS0wOS0yMCAgSm9vbmdodW4gUGFyayAgPHBq
aDA3MThAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJlbW92ZSBkdXBsaWNhdGVk
IEhhc2hNYXAgaXRlcmF0aW9uIHNpbmNlIHIyNDg3MzQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VM
b2cKaW5kZXggYzcwZDQwN2IwMjdmOWU4ODFhNGMyMTg0MDJhNmY1YTJiOWUyM2JiNS4uZGU5NGMx
ZmZjMDgxZjQzYTYyZGEzN2Y1NWMyZGRlZDE2MThlOTJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTA5LTIwICBaYWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lQYWRPc10gVGhlIHNlY29uZCBjbGljayBldmVudCBp
cyBtaXNzaW5nIG9uIGRvdWJsZSB0YXAgd2hlbiBkYmxjbGljayBoYW5kbGVyIGlzIG5vdCBwcmVz
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIw
MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNzA2ODI4PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50SU9TLmg6CisKIDIwMTktMDgtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBbZ2VvbG9jYXRpb25dIFJlbmFtZSBpbnRlcmZhY2VzIGFuZCByZW1vdmUg
W05vSW50ZXJmYWNlT2JqZWN0XQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTY4NDNiMTlm
MjZkMGYwNmZjYzNjY2RmZTkyNDFmNGNmODJiYzc1MS4uZGRiOTE2ZGU5NWQxOWVjNzllNTE4YjY3
MzMzYzA5MmNjYmEwZmUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNTg4LDYgKzI1
ODgsMTIgQEAgdm9pZCBEb2N1bWVudDo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIG1f
dG91Y2hFdmVudFRhcmdldHMgPSBudWxscHRyOwogI2VuZGlmCiAgICAgbV93aGVlbEV2ZW50VGFy
Z2V0cyA9IG51bGxwdHI7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAocGFnZSgp
ICYmIG1fZG91YmxlQ2xpY2tFdmVudEhhbmRsZXJDb3VudCkgeworICAgICAgICBwYWdlKCktPmNo
cm9tZSgpLmNsaWVudCgpLmRpZFJlbW92ZURvdWJsZUNsaWNrRXZlbnRIYW5kbGVyKG1fZG91Ymxl
Q2xpY2tFdmVudEhhbmRsZXJDb3VudCk7CisgICAgICAgIG1fZG91YmxlQ2xpY2tFdmVudEhhbmRs
ZXJDb3VudCA9IDA7CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnN1c3BlbmRE
ZXZpY2VNb3Rpb25BbmRPcmllbnRhdGlvblVwZGF0ZXMoKQpAQCAtNjYxOCw2ICs2NjI0LDI0IEBA
IGJvb2wgRG9jdW1lbnQ6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgY29uc3QKIAog
ICAgIHJldHVybiBmYWxzZTsKIH0KKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBEb2N1
bWVudDo6ZGlkQWRkRG91YmxlQ2xpY2tFdmVudEhhbmRsZXIoKQoreworICAgIGlmICghcGFnZSgp
KQorICAgICAgICByZXR1cm47CisgICAgKyttX2RvdWJsZUNsaWNrRXZlbnRIYW5kbGVyQ291bnQ7
CisgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5kaWRBZGREb3VibGVDbGlja0V2ZW50SGFu
ZGxlcigpOworfQorCit2b2lkIERvY3VtZW50OjpkaWRSZW1vdmVEb3VibGVDbGlja0V2ZW50SGFu
ZGxlcigpCit7CisgICAgaWYgKCFwYWdlKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQo
bV9kb3VibGVDbGlja0V2ZW50SGFuZGxlckNvdW50KTsKKyAgICAtLW1fZG91YmxlQ2xpY2tFdmVu
dEhhbmRsZXJDb3VudDsKKyAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmRpZFJlbW92ZURv
dWJsZUNsaWNrRXZlbnRIYW5kbGVyKCk7Cit9CisjZW5kaWYKIAogdm9pZCBEb2N1bWVudDo6c3Rh
cnRUcmFja2luZ1N0eWxlUmVjYWxjcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDYxNTVh
ZjdhOWQ4ODkwZTgzMTg0OTQ3Njc0OWM5MWVjY2Q2MDY3YmQuLjIzNjAzOGFkOTlkMmM2Mzg3Y2Ix
MjdlNmYwYTljYmFlNTg4ZmI1NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMjMwLDYgKzEy
MzAsMTIgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRUcmFja2luZ1N0
eWxlUmVjYWxjcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIHN0eWxlUmVjYWxjQ291
bnQoKSBjb25zdDsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBkaWRBZGRE
b3VibGVDbGlja0V2ZW50SGFuZGxlcigpOworICAgIHZvaWQgZGlkUmVtb3ZlRG91YmxlQ2xpY2tF
dmVudEhhbmRsZXIoKTsKKyAgICBib29sIGhhc0RvdWJsZUNsaWNrRXZlbnRIYW5kbGVyKCkgY29u
c3QgeyByZXR1cm4gbV9kb3VibGVDbGlja0V2ZW50SGFuZGxlckNvdW50OyB9CisjZW5kaWYKKwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgYm9vbCBoYXNUb3VjaEV2ZW50SGFuZGxlcnMo
KSBjb25zdCB7IHJldHVybiAobV90b3VjaEV2ZW50VGFyZ2V0cy5nZXQoKSkgPyBtX3RvdWNoRXZl
bnRUYXJnZXRzLT5zaXplKCkgOiBmYWxzZTsgfQogICAgIGJvb2wgdG91Y2hFdmVudFRhcmdldHND
b250YWluKE5vZGUmIG5vZGUpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hFdmVudFRhcmdldHMgPyBt
X3RvdWNoRXZlbnRUYXJnZXRzLT5jb250YWlucygmbm9kZSkgOiBmYWxzZTsgfQpAQCAtMjA1Niw2
ICsyMDYyLDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHN0ZDo6
dW5pcXVlX3B0cjxDb250ZW50Q2hhbmdlT2JzZXJ2ZXI+IG1fY29udGVudENoYW5nZU9ic2VydmVy
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxET01UaW1lckhvbGRpbmdUYW5rPiBtX2RvbVRpbWVySG9s
ZGluZ1Rhbms7CisgICAgdW5zaWduZWQgbV9kb3VibGVDbGlja0V2ZW50SGFuZGxlckNvdW50IHsg
MCB9OwogI2VuZGlmCiAKICAgICBIYXNoTWFwPEVsZW1lbnQqLCBFbGVtZW50SWRlbnRpZmllcj4g
bV9pZGVudGlmaWVkRWxlbWVudHNNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggOTgwMWIxNzAyYmQy
YTM4MjJhYmUxM2I1M2ExZWE2MDBjZjdhMDIyYi4uNTcxMjkxMzA4NjdlMjFlNjZiYWM2YmE3M2Vh
MzgyNGNkZGQyMGUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjExNyw2ICsyMTE3LDkgQEAgc3Rh
dGljIGlubGluZSBib29sIHRyeUFkZEV2ZW50TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwgY29u
c3QgQXRvbVN0cmluZyYgZXZlbnQKICAgICBpZiAodGFyZ2V0Tm9kZSA9PSAmdGFyZ2V0Tm9kZS0+
ZG9jdW1lbnQoKSAmJiBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50KQogICAg
ICAgICB0YXJnZXROb2RlLT5kb2N1bWVudCgpLmRvbVdpbmRvdygpLT5pbmNyZW1lbnRTY3JvbGxF
dmVudExpc3RlbmVyc0NvdW50KCk7CiAKKyAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMo
KS5kYmxjbGlja0V2ZW50KQorICAgICAgICB0YXJnZXROb2RlLT5kb2N1bWVudCgpLmRpZEFkZERv
dWJsZUNsaWNrRXZlbnRIYW5kbGVyKCk7CisKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAg
IGlmIChldmVudE5hbWVzKCkuaXNUb3VjaFJlbGF0ZWRFdmVudFR5cGUodGFyZ2V0Tm9kZS0+ZG9j
dW1lbnQoKSwgZXZlbnRUeXBlKSkKICAgICAgICAgdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS5hZGRU
b3VjaEV2ZW50TGlzdGVuZXIoKnRhcmdldE5vZGUpOwpAQCAtMjE1Miw2ICsyMTU1LDkgQEAgc3Rh
dGljIGlubGluZSBib29sIHRyeVJlbW92ZUV2ZW50TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwg
Y29uc3QgQXRvbVN0cmluZyYgZXYKICAgICBpZiAodGFyZ2V0Tm9kZSA9PSAmdGFyZ2V0Tm9kZS0+
ZG9jdW1lbnQoKSAmJiBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50KQogICAg
ICAgICB0YXJnZXROb2RlLT5kb2N1bWVudCgpLmRvbVdpbmRvdygpLT5kZWNyZW1lbnRTY3JvbGxF
dmVudExpc3RlbmVyc0NvdW50KCk7CiAKKyAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMo
KS5kYmxjbGlja0V2ZW50KQorICAgICAgICB0YXJnZXROb2RlLT5kb2N1bWVudCgpLmRpZFJlbW92
ZURvdWJsZUNsaWNrRXZlbnRIYW5kbGVyKCk7CisKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQog
ICAgIGlmIChldmVudE5hbWVzKCkuaXNUb3VjaFJlbGF0ZWRFdmVudFR5cGUodGFyZ2V0Tm9kZS0+
ZG9jdW1lbnQoKSwgZXZlbnRUeXBlKSkKICAgICAgICAgdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS5y
ZW1vdmVUb3VjaEV2ZW50TGlzdGVuZXIoKnRhcmdldE5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCmluZGV4IDYxN2ExNjEyNjc0YzU0YzA0NDUwNDdmMDQyMmVkMGE5ZGMzNjdm
ZDIuLmM3NmQyOGYzM2FhYjk4ZTk5OTVhZjEyZTI1YzM0MWIyMjI3YmE5OGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE4Myw2ICsxODMsOSBAQCBjbGFzcyBFbXB0eUNo
cm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAgICAgdm9pZCB3ZWJBcHBPcmll
bnRhdGlvbnNVcGRhdGVkKCkgZmluYWwgeyB9OwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKGJvb2wsIFJvdXRlU2hhcmluZ1BvbGljeSwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9
OworCisgICAgdm9pZCBkaWRBZGREb3VibGVDbGlja0V2ZW50SGFuZGxlcigpIGZpbmFsIHsgfQor
ICAgIHZvaWQgZGlkUmVtb3ZlRG91YmxlQ2xpY2tFdmVudEhhbmRsZXIodW5zaWduZWQpIGZpbmFs
IHsgfQogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpZiBFTkFCTEUoT1JJRU5U
QVRJT05fRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZmRkYjE4Njgy
YmU3ZTFmNjZhZWRhYWI2OGNiYmM0NDgwODI4MDQ2ZS4uZjhiOWE4ZmU2YzBkNTg5MjVmOWJiYzdm
MzE3ZDhkNDkxMjcxZWQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0yNjks
NiArMjY5LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHdlYkFwcE9yaWVudGF0aW9u
c1VwZGF0ZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tl
cihib29sIGhhc1ZpZGVvLCBSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCBkaWRBZGREb3VibGVDbGlja0V2ZW50SGFuZGxlcigpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlRG91YmxlQ2xpY2tFdmVudEhhbmRsZXIodW5zaWdu
ZWQgY291bnQgPSAxKSA9IDA7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVO
VFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCmluZGV4IDZhNDdiZDczNjVlOWJjOTFmMjhiM2IyMmZk
OWRlNTU5M2IwNDg4YzcuLmZlOTJjZDEyNGZmMjRmMTk3ZWUyM2VjMWZiNTNkY2EzOGNlNWI5NzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCkBAIC01MSw2ICs1MSw3IEBAIHN0cnVjdCBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiB7CiAKICAgICBib29sIGNhbkJlVmFsaWQgeyB0cnVl
IH07CiAgICAgYm9vbCBub2RlQXRQb3NpdGlvbklzRm9jdXNlZEVsZW1lbnQgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbm9kZUF0UG9zaXRpb25IYXNEb3VibGVDbGlja0hhbmRsZXIgeyBmYWxzZSB9Owog
I2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIGJvb2wgaGFzU2VsZWN0aW9uQXRQb3Np
dGlvbiB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQppbmRleCAyZmYz
ZmQ4MjhhMzRiYTllOTdkYzgxNjAxMTFkYmQwMThlMDFmZTcxLi5jYTRjZGRiOGU0ODU3NTYwODMy
M2UyYTAxYTRiZDExNjIxOGU3NmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9p
b3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCkBAIC00NSw2
ICs0NSw3IEBAIHZvaWQgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBlbmNvZGVyIDw8IGNhbkJlVmFsaWQ7
CiAgICAgZW5jb2RlciA8PCBub2RlQXRQb3NpdGlvbklzRm9jdXNlZEVsZW1lbnQ7CisgICAgZW5j
b2RlciA8PCBub2RlQXRQb3NpdGlvbkhhc0RvdWJsZUNsaWNrSGFuZGxlcjsKICNpZiBFTkFCTEUo
REFUQV9JTlRFUkFDVElPTikKICAgICBlbmNvZGVyIDw8IGhhc1NlbGVjdGlvbkF0UG9zaXRpb247
CiAjZW5kaWYKQEAgLTk3LDYgKzk4LDkgQEAgYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbjo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgSW50ZXJhY3Rpb24KICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5ub2RlQXRQb3NpdGlvbklzRm9jdXNlZEVsZW1lbnQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5ub2RlQXRQb3NpdGlvbkhhc0RvdWJsZUNsaWNrSGFuZGxlcikpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0Lmhhc1NlbGVjdGlvbkF0UG9zaXRpb24pKQogICAgICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZTgyN2JiNDI1MTM2NDI4
YzE5MzZjMGY4YjM3NTU0Mjk4N2E2NmExZC4uOWNlNGYwYzZhYWQ4MTNmNTJiMjMxM2E5YmZlMzEy
ODJiNWY3YzdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtNDE1LDYg
KzQxNSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUluc3BlY3Rvck5vZGVT
ZWFyY2goKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXV0b2NvcnJlY3Rpb25Db250
ZXh0KGNvbnN0IFdlYkF1dG9jb3JyZWN0aW9uQ29udGV4dCYpID0gMDsKKworICAgIHZpcnR1YWwg
dm9pZCBkaWRBZGREb3VibGVDbGlja0V2ZW50SGFuZGxlcigpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVtb3ZlRG91YmxlQ2xpY2tFdmVudEhhbmRsZXIodW5zaWduZWQgY291bnQpID0gMDsK
ICNlbmRpZgogCiAgICAgLy8gQXV4aWxpYXJ5IENsaWVudCBDcmVhdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjMTg5MmVjMjhhYzA3ZWJlM2ExZjc3ZGM2Zjdk
ZWYxYjIxZjNjMTBiLi5iNTliZGViNDYwMmEyYWIzZWNjNjhjNDdlODgwZWQ3MzdjNjJjOTc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzUxLDYgKzc1MSw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVFZGl0RHJhZ1NuYXBzaG90KE9wdGlvbmFsPFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPik7CiAgICAgdm9pZCBkaWRDb25jbHVkZURyb3AoKTsK
ICNlbmRpZgorICAgIHZvaWQgZGlkQWRkRG91YmxlQ2xpY2tFdmVudEhhbmRsZXIoKTsKKyAgICB2
b2lkIGRpZFJlbW92ZURvdWJsZUNsaWNrRXZlbnRIYW5kbGVyKHVpbnQ2NF90IGNvdW50KTsKICNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikK
ICAgICB2b2lkIHNldERhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgRGF0YURldGVjdGlvblJlc3Vs
dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDEzNDRhNTE0N2I5MjQ0MTMyZjc1Y2NkMTZmZWM2YTBjNmYxNDg4MDkuLmM2OWIy
ZjAwNTk2MmYzODRhZjM2OTczZjhkOGVlYjk0ODgwMDgxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQyNCw2ICs0MjQsOSBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgVXBkYXRlU3RyaW5nRm9yRmluZChT
dHJpbmcgZmluZFN0cmluZykKICAgICBIYW5kbGVBdXRvY29ycmVjdGlvbkNvbnRleHQoc3RydWN0
IFdlYktpdDo6V2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0IGNvbnRleHQpCisKKyAgICBEaWRBZGRE
b3VibGVDbGlja0V2ZW50SGFuZGxlcigpCisgICAgRGlkUmVtb3ZlRG91YmxlQ2xpY2tFdmVudEhh
bmRsZXIodWludDY0X3QgY291bnQpCiAjZW5kaWYKIAogICAgIERpZENoYW5nZUluc3BlY3RvckZy
b250ZW5kQ291bnQodWludDY0X3QgY291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGJiOTdiMDUzYmQwYmE1OTY5NmM4NzkxZjQy
YzU3NWU3MjQxNzhmMWMuLjgxNGE2M2IwNjJhOTE1YTU0MjE1ZWE3NTQ5YjU0MDhkM2NlMjczM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CkBAIC0yNTUsNiArMjU1LDkgQEAgcHJpdmF0ZToKICAgICBXVEY6Ok9wdGlvbmFsPHVuc2lnbmVk
PiBhY3RpdmVUb3VjaElkZW50aWZpZXJGb3JHZXN0dXJlUmVjb2duaXplcihVSUdlc3R1cmVSZWNv
Z25pemVyKikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZvaWQgZGlkQWRkRG91YmxlQ2xpY2tF
dmVudEhhbmRsZXIoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlbW92ZURvdWJsZUNsaWNrRXZl
bnRIYW5kbGVyKHVuc2lnbmVkIGNvdW50KSBvdmVycmlkZTsKKwogICAgIFdLQ29udGVudFZpZXcg
Km1fY29udGVudFZpZXc7CiAgICAgUmV0YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldD4gbV91bmRv
VGFyZ2V0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbQppbmRleCBhMjUwNDYyMDkyNjJhYjJlM2YyNmQ3Mzc5YWI3MzE1ZmJlNGY2OWI3
Li4xZDg2OWI5ZjYxMzk4MTc0NDRhOTI3N2ZlZGI4MGI3OTFjZDNhYTdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC03ODUsNiAr
Nzg1LDE2IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigp
CiB7CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEFkZERvdWJsZUNsaWNrRXZlbnRIYW5k
bGVyKCkKK3sKKyAgICBbbV9jb250ZW50VmlldyBfcGFnZUdhaW5lZERvdWJsZUNsaWNrRXZlbnRI
YW5kbGVyXTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUmVtb3ZlRG91YmxlQ2xpY2tF
dmVudEhhbmRsZXIodW5zaWduZWQgY291bnQpCit7CisgICAgW21fY29udGVudFZpZXcgX3BhZ2VM
b3N0RG91YmxlQ2xpY2tFdmVudEhhbmRsZXI6Y291bnRdOworfQorCiBXZWJDb3JlOjpVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIFBhZ2VDbGllbnRJbXBsOjp1c2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uKCkKIHsKICAgICBpZiAoIW1fd2ViVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA4MDcw
ZDNkMTRhZGE2OWZhODQ5NWUwYWE3ZWRmZTJjNzBkYWIyZGE4Li42MjlhY2E4YjE1ODY0ZjRkMGNl
NzJiYTc4MTcxYWI5N2NiNTI0MTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0zNjAsNiArMzYwLDcgQEAg
c3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKICAgICBCT09MIF9oYXNTZXRVcEludGVyYWN0
aW9uczsKICAgICBOU1VJbnRlZ2VyIF9pZ25vcmVTZWxlY3Rpb25Db21tYW5kRmFkZUNvdW50Owog
ICAgIE5TSW50ZWdlciBfc3VwcHJlc3NOb25FZGl0YWJsZVNpbmdsZVRhcFRleHRJbnRlcmFjdGlv
bkNvdW50OworICAgIE5TVUludGVnZXIgX2RvdWJsZUNsaWNrRXZlbnRIYW5kbGVyQ291bnQ7CiAg
ICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
KT4gX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXI7CiAgICAgQmxvY2tQdHI8dm9pZChVSVdLQXV0b2Nv
cnJlY3Rpb25Db250ZXh0ICopPiBfcGVuZGluZ0F1dG9jb3JyZWN0aW9uQ29udGV4dEhhbmRsZXI7
CiAKQEAgLTUxNyw2ICs1MTgsOSBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNU
SU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogCiAtICh2b2lk
KV9yZXF1ZXN0RE9NUGFzdGVBY2Nlc3NXaXRoRWxlbWVudFJlY3Q6KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKWVsZW1lbnRSZWN0IG9yaWdpbklkZW50aWZpZXI6KGNvbnN0IFN0cmluZyYpb3JpZ2lu
SWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiljb21wbGV0aW9uSGFuZGxlcjsKIAorLSAo
dm9pZClfcGFnZUdhaW5lZERvdWJsZUNsaWNrRXZlbnRIYW5kbGVyOworLSAodm9pZClfcGFnZUxv
c3REb3VibGVDbGlja0V2ZW50SGFuZGxlcjoodW5zaWduZWQpY291bnQ7CisKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbiBjdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbjsKIC0gKHZvaWQpZG9BZnRlclBvc2l0aW9u
SW5mb3JtYXRpb25VcGRhdGU6KHZvaWQgKF4pKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24pKWFjdGlvbiBmb3JSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3Jt
YXRpb25SZXF1ZXN0KXJlcXVlc3Q7CiAtIChCT09MKWVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25J
c1VwVG9EYXRlOihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQppbmRleCAzZTkyNjI3NzIzM2RkNjUxOWUyZjY1NDQ0MjVkM2UzYWNmNzQ4
NjFmLi5kMWFjYTk4MGFiZjVmNDRlODNiZDY3OTQwYjJhYzBkMDZmOGFmZmE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KQEAgLTgzMCw2ICs4MzAsNyBAQCAtICh2b2lkKXNldHVwSW50ZXJhY3Rpb24KICNpZiBF
TkFCTEUoUExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcpCiAgICAgX3RleHRDaGVja2luZ0Nv
bnRyb2xsZXIgPSBtYWtlVW5pcXVlPFdlYktpdDo6VGV4dENoZWNraW5nQ29udHJvbGxlcj4oKl9w
YWdlKTsKICNlbmRpZgorICAgIF9kb3VibGVDbGlja0V2ZW50SGFuZGxlckNvdW50ID0gMDsKIAog
ICAgIF9oYXNTZXRVcEludGVyYWN0aW9ucyA9IFlFUzsKIH0KQEAgLTIxMzksMTAgKzIxNDAsMTgg
QEAgLSAoQk9PTClnZXN0dXJlUmVjb2duaXplclNob3VsZEJlZ2luOihVSUdlc3R1cmVSZWNvZ25p
emVyICopZ2VzdHVyZVJlY29nbml6ZXIKICAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3Np
bmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyKQogICAgICAgICByZXR1cm4gIWlzSW50ZXJydXB0aW5n
RGVjZWxlcmF0aW9uRm9yU2Nyb2xsVmlld09yQW5jZXN0b3IoW19zaW5nbGVUYXBHZXN0dXJlUmVj
b2duaXplciBsYXN0VG91Y2hlZFNjcm9sbFZpZXddKTsKIAorICAgIGlmIChnZXN0dXJlUmVjb2du
aXplciA9PSBfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXJGb3JEb3VibGVDbGljaykgeworICAg
ICAgICAvLyBEbyBub3Qgc3RhcnQgdGhlIGRvdWJsZS10YXAtZm9yLWRvdWJsZS1jbGljayBnZXN0
dXJlIHJlY29nbml6ZXIgdW5sZXNzIHdlJ3ZlIGdvdCBhIGRibGNsaWNrIGV2ZW50IGhhbmRsZXIg
b24gdGhlIHBhZ2UuCisgICAgICAgIGlmICghX2RvdWJsZUNsaWNrRXZlbnRIYW5kbGVyQ291bnQp
CisgICAgICAgICAgICByZXR1cm4gTk87CisgICAgICAgIGlmICghW3NlbGYgZW5zdXJlUG9zaXRp
b25JbmZvcm1hdGlvbklzVXBUb0RhdGU6V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWVzdChXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQocG9pbnQpKV0pCisgICAgICAgICAgICByZXR1
cm4gTk87CisgICAgICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5ub2RlQXRQb3NpdGlv
bkhhc0RvdWJsZUNsaWNrSGFuZGxlcjsKKyAgICB9CisKICAgICBpZiAoZ2VzdHVyZVJlY29nbml6
ZXIgPT0gX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyCiAgICAgICAgIHx8IGdl
c3R1cmVSZWNvZ25pemVyID09IF9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplcgogICAgICAgICB8
fCBnZXN0dXJlUmVjb2duaXplciA9PSBfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2du
aXplcgotICAgICAgICB8fCBnZXN0dXJlUmVjb2duaXplciA9PSBfZG91YmxlVGFwR2VzdHVyZVJl
Y29nbml6ZXJGb3JEb3VibGVDbGljawogICAgICAgICB8fCBnZXN0dXJlUmVjb2duaXplciA9PSBf
dHdvRmluZ2VyRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIpIHsKIAogICAgICAgICBpZiAoaGFz
Rm9jdXNlZEVsZW1lbnQoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24pKSB7CkBAIC0yNDExLDYg
KzI0MjAsMTcgQEAgLSAodm9pZClfZG91YmxlVGFwUmVjb2duaXplZEZvckRvdWJsZUNsaWNrOihV
SVRhcEdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY28KICAgICBfcGFnZS0+aGFuZGxlRG91
YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KFdlYkNvcmU6OkludFBvaW50KGdlc3R1cmVSZWNv
Z25pemVyLmxvY2F0aW9uKSwgV2ViS2l0Ojp3ZWJFdmVudE1vZGlmaWVyRmxhZ3MoZ2VzdHVyZVJl
Y29nbml6ZXJNb2RpZmllckZsYWdzKGdlc3R1cmVSZWNvZ25pemVyKSksIF9sYXllclRyZWVUcmFu
c2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCk7CiB9CiAKKy0gKHZvaWQpX3BhZ2VHYWluZWREb3Vi
bGVDbGlja0V2ZW50SGFuZGxlcgoreworICAgICsrX2RvdWJsZUNsaWNrRXZlbnRIYW5kbGVyQ291
bnQ7Cit9CisKKy0gKHZvaWQpX3BhZ2VMb3N0RG91YmxlQ2xpY2tFdmVudEhhbmRsZXI6KHVuc2ln
bmVkKWNvdW50Cit7CisgICAgQVNTRVJUKF9kb3VibGVDbGlja0V2ZW50SGFuZGxlckNvdW50ID49
IGNvdW50KTsKKyAgICBfZG91YmxlQ2xpY2tFdmVudEhhbmRsZXJDb3VudCAtPSBjb3VudDsKK30K
KwogLSAodm9pZClfdHdvRmluZ2VyU2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZWQ6KFVJVGFwR2Vz
dHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogewogICAgIF9pc1RhcEhpZ2hsaWdo
dElEVmFsaWQgPSBZRVM7CkBAIC00MDE3LDYgKzQwMzcsNyBAQCAtICh2b2lkKV9kaWRDb21taXRM
b2FkRm9yTWFpbkZyYW1lCiAjaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKICAgICBf
c2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFibGVFbGVtZW50ID0gTk87CiAjZW5kaWYKKyAg
ICBfZG91YmxlQ2xpY2tFdmVudEhhbmRsZXJDb3VudCA9IDA7CiAgICAgW3NlbGYgX2VsZW1lbnRE
aWRCbHVyXTsKICAgICBbc2VsZiBfY2FuY2VsTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXJdOwog
ICAgIFtzZWxmIF9oaWRlQ29udGV4dE1lbnVIaW50Q29udGFpbmVyXTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGU5NzBhYzQxNWRiNDI2
ZTJmNzkwYjQ5YmY4MzUyNjgxNGYzYTM1MTUuLjNhZGVmODM0Y2QyMDBhMzljZjhhNGY3NzczMGQ4
MDE2Y2NlNzEzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbQpAQCAtMzEwLDYgKzMxMCwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2Nyb2xs
aW5nTm9kZVNjcm9sbERpZEVuZFNjcm9sbCgpCiAgICAgcGFnZUNsaWVudCgpLnNjcm9sbGluZ05v
ZGVTY3JvbGxEaWRFbmRTY3JvbGwoKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmRpZEFkZERv
dWJsZUNsaWNrRXZlbnRIYW5kbGVyKCkKK3sKKyAgICBwYWdlQ2xpZW50KCkuZGlkQWRkRG91Ymxl
Q2xpY2tFdmVudEhhbmRsZXIoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlbW92ZURv
dWJsZUNsaWNrRXZlbnRIYW5kbGVyKHVpbnQ2NF90IGNvdW50KQoreworICAgIHBhZ2VDbGllbnQo
KS5kaWRSZW1vdmVEb3VibGVDbGlja0V2ZW50SGFuZGxlcihjb3VudCk7Cit9CisKIHZvaWQgV2Vi
UGFnZVByb3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmll
d0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRT
aXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9i
c2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJv
eEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGlu
dDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCBkeW5h
bWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2Vzcygp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGQ5MTZkM2NmNGFkZDBkMDU2ODM5YzE1NmRkMTE1YzBm
MzNkNWEwMjIuLjEyZmMxMjg1OGI1MjU3NmEzZWRlODg2OTk0NTIyNTg2NmI4OTIxMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTE4Myw2ICsxODMsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgYXNz
b2NpYXRlRWRpdGFibGVJbWFnZVdpdGhBdHRhY2htZW50KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6
OkVtYmVkZGVkVmlld0lELCBjb25zdCBTdHJpbmcmIGF0dGFjaG1lbnRJRCkgZmluYWw7CiAgICAg
dm9pZCBkaWRDcmVhdGVFZGl0YWJsZUltYWdlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkVtYmVk
ZGVkVmlld0lEKSBmaW5hbDsKICAgICB2b2lkIGRpZERlc3Ryb3lFZGl0YWJsZUltYWdlKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI6OkVtYmVkZGVkVmlld0lEKSBmaW5hbDsKKworICAgIHZvaWQgZGlk
QWRkRG91YmxlQ2xpY2tFdmVudEhhbmRsZXIoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlbW92ZURv
dWJsZUNsaWNrRXZlbnRIYW5kbGVyKHVuc2lnbmVkIGNvdW50KSBmaW5hbDsKICNlbmRpZgogCiAj
aWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJvbWVDbGllbnRJ
T1MubW0KaW5kZXggYzk5MTg2YmM5ZTEyZTAwZTk5YWEzOWY1MTlmZmM1NTJiMzU2MWJhOC4uYzk0
ZGFkMWQyYzA4NWQwNjJkYWUxOGEyZmU0NGE3ZjY3OWY1MmJjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJvbWVDbGllbnRJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJD
aHJvbWVDbGllbnRJT1MubW0KQEAgLTE4MSw2ICsxODEsMTcgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmRpZERlc3Ryb3lFZGl0YWJsZUltYWdlKEdyYXBoaWNzTGF5ZXI6OkVtYmVkZGVkVmlld0lE
IGVtYmUKICNlbmRpZgogfQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkRG91YmxlQ2xp
Y2tFdmVudEhhbmRsZXIoKQoreworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkRpZEFkZERvdWJsZUNsaWNrRXZlbnRIYW5kbGVyKCkpOworfQorCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6ZGlkUmVtb3ZlRG91YmxlQ2xpY2tFdmVudEhhbmRsZXIodW5zaWduZWQgY291bnQp
Cit7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVtb3ZlRG91
YmxlQ2xpY2tFdmVudEhhbmRsZXIoY291bnQpKTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDM4ZTFiOTU1NzU3
M2Q2MWY3ZjNjMWIyZGFlMDAwNTYwNjg4MDA5NGEuLmRjMjZjZDJjZWM2YTIxMTRhMzE5YWUyYTJk
Mzg3YzIxNzYzNTQwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yNzMwLDEwICsyNzMwLDExIEBAIEludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uIFdlYlBhZ2U6OnBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3Qg
SW50ZXJhY3Rpb25JCiAgICAgaW5mby5yZXF1ZXN0ID0gcmVxdWVzdDsKIAogICAgIEZsb2F0UG9p
bnQgYWRqdXN0ZWRQb2ludDsKLSAgICBOb2RlKiBoaXROb2RlID0gbV9wYWdlLT5tYWluRnJhbWUo
KS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMocmVxdWVzdC5wb2ludCwgYWRqdXN0ZWRQb2lu
dCk7CisgICAgYXV0byogbm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzID0gbV9wYWdlLT5tYWlu
RnJhbWUoKS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMocmVxdWVzdC5wb2ludCwgYWRqdXN0
ZWRQb2ludCk7CiAKLSAgICBpbmZvLm5vZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxlbWVudCA9IGhp
dE5vZGUgPT0gbV9mb2N1c2VkRWxlbWVudDsKKyAgICBpbmZvLm5vZGVBdFBvc2l0aW9uSXNGb2N1
c2VkRWxlbWVudCA9IG5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyA9PSBtX2ZvY3VzZWRFbGVt
ZW50OwogICAgIGluZm8uYWRqdXN0ZWRQb2ludEZvck5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50
cyA9IGFkanVzdGVkUG9pbnQ7CisgICAgaW5mby5ub2RlQXRQb3NpdGlvbkhhc0RvdWJsZUNsaWNr
SGFuZGxlciA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0RvdWJsZUNsaWNr
RXZlbnQocmVxdWVzdC5wb2ludCwgYWRqdXN0ZWRQb2ludCk7CiAKICNpZiBFTkFCTEUoREFUQV9J
TlRFUkFDVElPTikKICAgICBpbmZvLmhhc1NlbGVjdGlvbkF0UG9zaXRpb24gPSBtX3BhZ2UtPmhh
c1NlbGVjdGlvbkF0UG9zaXRpb24oYWRqdXN0ZWRQb2ludCk7CkBAIC0yNzQyLDggKzI3NDMsOCBA
QCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBXZWJQYWdlOjpwb3NpdGlvbkluZm9y
bWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSQogICAgIGlmIChtX2ZvY3VzZWRFbGVtZW50KQogICAg
ICAgICBmb2N1c2VkRWxlbWVudFBvc2l0aW9uSW5mb3JtYXRpb24oKnRoaXMsICptX2ZvY3VzZWRF
bGVtZW50LCByZXF1ZXN0LCBpbmZvKTsKIAotICAgIGlmIChpczxFbGVtZW50PihoaXROb2RlKSkg
ewotICAgICAgICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKmhpdE5vZGUp
OworICAgIGlmIChpczxFbGVtZW50Pihub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMpKSB7Cisg
ICAgICAgIGF1dG8mIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZVJlc3BvbmRpbmdU
b0NsaWNrRXZlbnRzKTsKICAgICAgICAgZWxlbWVudFBvc2l0aW9uSW5mb3JtYXRpb24oKnRoaXMs
IGVsZW1lbnQsIHJlcXVlc3QsIGluZm8pOwogCiAgICAgICAgIGlmIChpbmZvLmlzTGluayAmJiAh
aW5mby5pc0ltYWdlICYmIHJlcXVlc3QuaW5jbHVkZVNuYXBzaG90KQpAQCAtMjc1NSwxMCArMjc1
Niw4IEBAIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIFdlYlBhZ2U6OnBvc2l0aW9u
SW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JCiAKICAgICAvLyBQcmV2ZW50IHRoZSBjYWxs
b3V0IGJhciBmcm9tIHNob3dpbmcgd2hlbiB0YXBwaW5nIG9uIHRoZSBkYXRhbGlzdCBidXR0b24u
CiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCi0gICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1l
bnQ+KGhpdE5vZGUpKSB7Ci0gICAgICAgIGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0ID0g
ZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmhpdE5vZGUpOwotICAgICAgICB0ZXh0SW50ZXJh
Y3Rpb25Qb3NpdGlvbkluZm9ybWF0aW9uKCp0aGlzLCBpbnB1dCwgcmVxdWVzdCwgaW5mbyk7Ci0g
ICAgfQorICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlUmVzcG9uZGluZ1RvQ2xpY2tF
dmVudHMpKQorICAgICAgICB0ZXh0SW50ZXJhY3Rpb25Qb3NpdGlvbkluZm9ybWF0aW9uKCp0aGlz
LCBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRz
KSwgcmVxdWVzdCwgaW5mbyk7CiAjZW5kaWYKIAogICAgIHJldHVybiBpbmZvOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
SU9TLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnRJT1MuaAppbmRleCAxNDU3NzIyMmE5ZTEzZTYzZTQ5MWQ2ZDNiOTJjYTFiYzg5ZTdjYjAz
Li42MjVhZTFlZGI1MGNiN2YzYTgxNmViY2NlYjU5MTJmOTljODY2ZjcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnRJT1MuaApAQCAtOTQsNiArOTQsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKGJvb2wgaGFzVmlkZW8sIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGlj
eSwgY29uc3QgU3RyaW5nJikgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6Okljb24+IGNyZWF0
ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKSBmaW5hbDsKIAor
ICAgIHZvaWQgZGlkQWRkRG91YmxlQ2xpY2tFdmVudEhhbmRsZXIoKSBmaW5hbCB7IH0KKyAgICB2
b2lkIGRpZFJlbW92ZURvdWJsZUNsaWNrRXZlbnRIYW5kbGVyKHVuc2lnbmVkKSBmaW5hbCB7IH0K
KwogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgaW50IGRldmljZU9yaWVudGF0
aW9uKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5NTI0ZGRmNDhmNGYyNjA3YjJhNjJh
NDc3MmM1NzE0MzdjYTYyMDJlLi40M2U5ODM2NDM1M2IyMDI4N2EwM2VhOWJlZmI0Nzg4NTBmZGI3
OTBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDktMjAgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaVBhZE9zXSBUaGUgc2Vjb25kIGNsaWNrIGV2ZW50
IGlzIG1pc3Npbmcgb24gZG91YmxlIHRhcCB3aGVuIGRibGNsaWNrIGhhbmRsZXIgaXMgbm90IHBy
ZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MjAwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTE3MDY4Mjg+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
ZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczEuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3
by1jbGlja3MyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91
Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MyLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzMy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFw
LWZvci10d28tY2xpY2tzMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZWNsaWNr
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL3Jlc291cmNlcy9kb3Vi
bGVDbGlja0NvbnRlbnQuaHRtbDogQWRkZWQuCisKIDIwMTktMDktMjAgIFJvYiBCdWlzICA8cmJ1
aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBTeW5jaHJvbml6ZSBNYXRoTUwgV1BUIHRlc3RzIGFn
YWluc3QgdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczEtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRkNjNiNjA4ZDBiM2JjZjgxNjFkZjQ0ZjE5NmJjNDMyZmU5M2Mz
YmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
ZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAor
UEFTUyBpZiAnW2NsaWNrXVtjbGlja10nIHRleHQgaXMgc2hvd24gYmVsb3cuCitbY2xpY2tdW2Ns
aWNrXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJs
ZS10YXAtZm9yLXR3by1jbGlja3MxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTg5ZWM3
ZGRlZjI5N2FhOTkyZTAwMTRmNTU4MjM5YTRjOTUxZDRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3Mx
Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIGluaXRpYWwt
c2NhbGU9MSB1c2VyLXNjYWxhYmxlPW5vIj4KKzx0aXRsZT5UaGlzIHRlc3RzIHRoYXQgd2UgZmly
ZSB0d28gY2xpY2sgZXZlbnRzIG9uIGRvdWJsZSB0YXAgd2hlbiBkYmxjbGljayBoYW5kbGVyIGlz
IG5vdCBwcmVzZW50LjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjZG91YmxlVGFwdGhpcyB7CisgICAg
d2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQg
Z3JlZW47Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7Cisg
ICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICBhd2FpdCBVSUhlbHBlci5odW1hblNwZWVkRG91
YmxlVGFwQXQoZG91YmxlVGFwdGhpcy5vZmZzZXRMZWZ0LCBkb3VibGVUYXB0aGlzLm9mZnNldFRv
cCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxkaXYg
aWQ9ZG91YmxlVGFwdGhpcz5QQVNTIGlmICdbY2xpY2tdW2NsaWNrXScgdGV4dCBpcyBzaG93biBi
ZWxvdy48L2Rpdj4KKzxwcmUgaWQ9cmVzdWx0PjwvcHJlPgorPHNjcmlwdD4KK2xldCBudW1iZXJP
ZkNsaWNrcyA9IDA7CisKK2RvdWJsZVRhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBm
dW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVySFRNTCA9IHJlc3VsdC5pbm5l
ckhUTUwgKyAiW2NsaWNrXSI7CisgICAgaWYgKCsrbnVtYmVyT2ZDbGlja3MgPT0gMiAmJiB3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgc2V0VGltZW91dCgidGVzdFJ1bm5lci5ub3RpZnlEb25l
KCkiLCAwKTsKK30sIGZhbHNlKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3It
dHdvLWNsaWNrczItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
ZDYzYjYwOGQwYjNiY2Y4MTYxZGY0NGYxOTZiYzQzMmZlOTNjM2JkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1j
bGlja3MyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgaWYgJ1tjbGlja11bY2xp
Y2tdJyB0ZXh0IGlzIHNob3duIGJlbG93LgorW2NsaWNrXVtjbGlja10KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tz
Mi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9y
LXR3by1jbGlja3MyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJlMjg4M2U0NWY5ZDdkMGVjNjAzYjczYTM3
NzAwNmI0YzQ5OTRlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzMi5odG1sCkBAIC0wLDAgKzEsNDYg
QEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVW
aWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCBpbml0aWFsLXNjYWxlPTEgdXNlci1zY2FsYWJs
ZT1ubyI+Cis8dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IHdlIGZpcmUgdHdvIGNsaWNrIGV2ZW50cyBv
biBkb3VibGUgdGFwIHdoZW4gZGJsY2xpY2sgaGFuZGxlciBpcyByZW1vdmVkIGR5bmFtaWNhbGx5
LjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjZG91YmxlVGFwdGhpcyB7CisgICAgd2lkdGg6IDQwMHB4
OworICAgIGhlaWdodDogNDAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Cit9Cis8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGRpdiBpZD1kb3VibGVU
YXB0aGlzPlBBU1MgaWYgJ1tjbGlja11bY2xpY2tdJyB0ZXh0IGlzIHNob3duIGJlbG93LjwvZGl2
PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBkYmxjbGlja0hh
bmRsZXIoZXZlbnQpIHsKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gcmVzdWx0LmlubmVySFRNTCAr
ICJbc2hvdWxkIG5vdCBkb3VibGUgY2xpY2tdIjsKK30KKworZG91YmxlVGFwdGhpcy5hZGRFdmVu
dExpc3RlbmVyKCJkYmxjbGljayIsIGRibGNsaWNrSGFuZGxlciwgZmFsc2UpOworCitsZXQgbnVt
YmVyT2ZDbGlja3MgPSAwOworZG91YmxlVGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IGZ1bmN0aW9uKCBldmVudCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gcmVzdWx0Lmlu
bmVySFRNTCArICJbY2xpY2tdIjsKKyAgICBpZiAoKytudW1iZXJPZkNsaWNrcyA9PSAyICYmIHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKSIsIDApOworfSwgZmFsc2UpOworCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGRv
dWJsZVRhcHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCBkYmxjbGlja0hhbmRs
ZXIsIGZhbHNlKTsKKworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgYXdhaXQgVUlIZWxw
ZXIuaHVtYW5TcGVlZERvdWJsZVRhcEF0KGRvdWJsZVRhcHRoaXMub2Zmc2V0TGVmdCwgZG91Ymxl
VGFwdGhpcy5vZmZzZXRUb3ApOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3It
dHdvLWNsaWNrczMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
ZmYxNGEwOWE3MzRhN2I0M2M3NmRjMGNiZjBlNjJhNWM0NjZmOTNiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1j
bGlja3MzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgaWYgJ1tjbGlja11bY2xp
Y2tdW2RvdWJsZSBjbGlja10nIHRleHQgaXMgc2hvd24gYmVsb3cuCitbY2xpY2tdW2NsaWNrXVtk
b3VibGUgY2xpY2tdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzMy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhjNTY0Yjk3NGRiNTc0NmYzMGM2YTdjYjUzMzI5ZTI5YWVkODQ2MzcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdv
LWNsaWNrczMuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgg
aW5pdGlhbC1zY2FsZT0xIHVzZXItc2NhbGFibGU9bm8iPgorPHRpdGxlPlRoaXMgdGVzdHMgdGhh
dCB3ZSBmaXJlIHR3byBjbGljayBldmVudHMgb24gZG91YmxlIHRhcCB3aGVuIG11bHRpcGxlIGRi
bGNsaWNrIGhhbmRsZXJzIGFyZSBwcmVzZW50LjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjZG91Ymxl
VGFwdGhpcyB7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7CisgICAgYm9y
ZGVyOiAxcHggc29saWQgZ3JlZW47Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJ0ZXN0KCkiPgorPGRpdiBpZD1kb3VibGVUYXB0aGlzPlBBU1MgaWYgJ1tjbGlja11bY2xpY2td
W2RvdWJsZSBjbGlja10nIHRleHQgaXMgc2hvd24gYmVsb3cuPC9kaXY+Cis8cHJlIGlkPXJlc3Vs
dD48L3ByZT4KKzxzY3JpcHQ+CisKK2RvdWJsZVRhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVySFRNTCA9IHJlc3Vs
dC5pbm5lckhUTUwgKyAiW2NsaWNrXSI7Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGRibGNsaWNr
SGFuZGxlcihldmVudCkgeworICAgIHJlc3VsdC5pbm5lckhUTUwgPSByZXN1bHQuaW5uZXJIVE1M
ICsgIltkb3VibGUgY2xpY2tdIjsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IHNldFRpbWVvdXQoInRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIiwgMCk7Cit9CisKK2Z1bmN0aW9u
IGRibGNsaWNrSGFuZGxlckZvclJlc3VsdChldmVudCkgeworICAgIHJlc3VsdC5pbm5lckhUTUwg
PSByZXN1bHQuaW5uZXJIVE1MICsgIltzaG91bGQgbm90IGRvdWJsZSBjbGlja10iOworfQorCitk
b3VibGVUYXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgZGJsY2xpY2tIYW5kbGVy
LCBmYWxzZSk7CityZXN1bHQuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCBkYmxjbGlja0hh
bmRsZXJGb3JSZXN1bHQsIGZhbHNlKTsKKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBk
b3VibGVUYXB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc3VsdCIsIGRibGNsaWNrSGFuZGxl
ciwgZmFsc2UpOworCisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICBhd2FpdCBVSUhlbHBl
ci5odW1hblNwZWVkRG91YmxlVGFwQXQoZG91YmxlVGFwdGhpcy5vZmZzZXRMZWZ0LCBkb3VibGVU
YXB0aGlzLm9mZnNldFRvcCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10
d28tY2xpY2tzNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVh
NWI5MGQ2YmVmOGY1Mzg1NDVlZjcxOGY1ZjVkZDYxOWVkYjUxNGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNs
aWNrczQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBpZiAnW2NsaWNrXVtjbGlj
a11bZG91YmxlIGNsaWNrXScgdGV4dCBpcyBzaG93biBiZWxvdy4KKyBbY2xpY2tdW2NsaWNrXVtk
b3VibGUgY2xpY2tdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzNC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQzYjMyNTk0ZjA3MWRjYjExYTQxZGNjOGE1NWE3ZDllYjJhY2EwOWIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdv
LWNsaWNrczQuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgg
aW5pdGlhbC1zY2FsZT0xIHVzZXItc2NhbGFibGU9bm8iPgorPHRpdGxlPlRoaXMgdGVzdHMgdGhh
dCB3ZSBmaXJlIHR3byBjbGljayBldmVudHMgb24gZG91YmxlIHRhcCB3aGVuIGRibGNsaWNrIGhh
bmRsZXIgaXMgaW4gYW4gaWZyYW1lLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjZG91YmxlVGFwdGhp
cyB7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7CisgICAgYm9yZGVyOiAx
cHggc29saWQgZ3JlZW47Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0
KCkiPgorPGRpdiBpZD1kb3VibGVUYXB0aGlzPlBBU1MgaWYgJ1tjbGlja11bY2xpY2tdW2RvdWJs
ZSBjbGlja10nIHRleHQgaXMgc2hvd24gYmVsb3cuPC9kaXY+Cis8aWZyYW1lIGlkPXJlbW92ZU1l
IHNyYz0iLi4vcmVzb3VyY2VzL2RvdWJsZUNsaWNrQ29udGVudC5odG1sIj48L2lmcmFtZT4KKzxw
cmUgaWQ9cmVzdWx0PjwvcHJlPgorPHNjcmlwdD4KKworZG91YmxlVGFwdGhpcy5hZGRFdmVudExp
c3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJI
VE1MID0gcmVzdWx0LmlubmVySFRNTCArICJbY2xpY2tdIjsKK30sIGZhbHNlKTsKKworZnVuY3Rp
b24gZGJsY2xpY2tIYW5kbGVyKGV2ZW50KSB7CisgICAgcmVzdWx0LmlubmVySFRNTCA9IHJlc3Vs
dC5pbm5lckhUTUwgKyAiW2RvdWJsZSBjbGlja10iOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgc2V0VGltZW91dCgidGVzdFJ1bm5lci5ub3RpZnlEb25lKCkiLCAwKTsKK30K
KworZG91YmxlVGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJkYmxjbGljayIsIGRibGNsaWNrSGFu
ZGxlciwgZmFsc2UpOworCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIHJlbW92ZU1lLnJl
bW92ZSgpOworCisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICBhd2FpdCBVSUhlbHBlci5o
dW1hblNwZWVkRG91YmxlVGFwQXQoZG91YmxlVGFwdGhpcy5vZmZzZXRMZWZ0LCBkb3VibGVUYXB0
aGlzLm9mZnNldFRvcCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGVjbGljay5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZWNsaWNrLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTJkMGYzYjY2M2FmZWYzM2Q0NjdkMDMwZTg0ZGIxOGRjMmE0MzA0OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGVjbGljay5o
dG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCBpbml0aWFsLXNj
YWxlPTEgdXNlci1zY2FsYWJsZT1ubyI+Cis8dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IHdlIGZpcmUg
ZGJsY2xpY2sgZXZlbnQgb24gZG91YmxlIHRhcDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Citib2R5IHsK
K2ZvbnQtc2l6ZTogMTJweDsKK30KKyNkb3VibGVUYXB0aGlzIHsKKyAgICB3aWR0aDogMTAwcHg7
CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsKK30KKzwv
c3R5bGU+Cis8c2NyaXB0PgorYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAoIXdpbmRv
dy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICByZXR1cm47
CisKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmh1bWFuU3BlZWREb3VibGVUYXBBdChkb3Vi
bGVUYXB0aGlzLm9mZnNldExlZnQsIGRvdWJsZVRhcHRoaXMub2Zmc2V0VG9wKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGRpdiBpZD1kb3VibGVUYXB0
aGlzPjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8aWZyYW1lIHNyYz1kb3VibGVjbGlj
ay5odG1sPgorPHNjcmlwdD4KKworZG91YmxlVGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gcmVzdWx0
LmlubmVySFRNTCArICJbY2xpY2tdIjsKK30sIGZhbHNlKTsKKworZnVuY3Rpb24gZGJsY2xpY2tI
YW5kbGVyKGV2ZW50KSB7CisgICAgcmVzdWx0LmlubmVySFRNTCA9IHJlc3VsdC5pbm5lckhUTUwg
KyAiW2RvdWJsZSBjbGlja10iOworfQorCityZXN1bHQuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xp
Y2siLCBkYmxjbGlja0hhbmRsZXIsIGZhbHNlKTsKKworZG91YmxlVGFwdGhpcy5hZGRFdmVudExp
c3RlbmVyKCJkYmxjbGljayIsIGRibGNsaWNrSGFuZGxlciwgZmFsc2UpOworCitzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeworcmVzdWx0LmlubmVySFRNTCA9IHJlc3VsdC5pbm5lckhUTUwgKyAiPGJy
PiEhIW5vLW1vYXIgZG91YmxlIGNsaWNrISEhPGJyPiI7Citkb3VibGVUYXB0aGlzLnJlbW92ZUV2
ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgZGJsY2xpY2tIYW5kbGVyLCBmYWxzZSkKK3NldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CityZXN1bHQuaW5uZXJIVE1MID0gcmVzdWx0LmlubmVySFRNTCArICI8
YnI+ISEhbW9hciBkb3VibGUgY2xpY2shISE8YnI+IjsKK2RvdWJsZVRhcHRoaXMuYWRkRXZlbnRM
aXN0ZW5lcigiZGJsY2xpY2siLCBkYmxjbGlja0hhbmRsZXIsIGZhbHNlKQorfSwgMjAwMCk7Cit9
LCAyMDAwKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9yZXNvdXJjZXMvZG91YmxlQ2xpY2tDb250ZW50Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9yZXNvdXJjZXMvZG91YmxlQ2xpY2tD
b250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI5M2IyNWE1ODM4NjljMzk4YTViOTVhNGRlZjg3Nzg0
NDk3NDQwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L3Jlc291cmNlcy9kb3VibGVDbGlja0NvbnRlbnQuaHRtbApAQCAtMCwwICsxLDggQEAKKzxkaXYg
aWQ9ZG91YmxlVGFwMT5zb21lIHRleHQ8L2Rpdj4KKzxkaXYgaWQ9ZG91YmxlVGFwMj5zb21lIHRl
eHQ8L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBkYmxjbGlja0hhbmRsZXIoZXZlbnQpIHsKK30K
K2RvdWJsZVRhcDEuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCBkYmxjbGlja0hhbmRsZXIs
IGZhbHNlKTsKK2RvdWJsZVRhcDIuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCBkYmxjbGlj
a0hhbmRsZXIsIGZhbHNlKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379381</attachid>
            <date>2019-09-23 11:34:47 -0700</date>
            <delta_ts>2019-09-24 12:33:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202006-20190923113446.patch</filename>
            <type>text/plain</type>
            <size>22086</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZjZDJhNmMwOTBiMjNmNDQ4
MTU3NWM3YjUzYmRlMmViMmRmMjcwMmYuLmQ0YzgyZTVlOTYxM2NmOTY2ZGMzY2E3ODQ0ZDdjNTJj
NTNkNGEzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDktMjMgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaVBhZE9zXSBUaGUgc2Vjb25kIGNs
aWNrIGV2ZW50IGlzIG1pc3Npbmcgb24gZG91YmxlIHRhcCB3aGVuIGRibGNsaWNrIGhhbmRsZXIg
aXMgbm90IHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMjAwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTE3MDY4Mjg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hpbGUgZG91YmxlIHRh
cHBpbmcsCisgICAgICAgIDEuIHRoZSBmaXJzdCB0YXAgdHJpZ2dlcnMgYSBjbGljayBldmVudCB0
aHJvdWdoIHRoZSBub3JtYWwgX3NpbmdsZVRhcElkZW50aWZpZWQvX3NpbmdsZVRhcFJlY29nbml6
ZWQgY29kZXBhdGguCisgICAgICAgIDIuIGFuZCB0aGUgc2Vjb25kIHRhcCBzaG91bGQgdHJpZ2dl
ciBlaXRoZXIKKyAgICAgICAgICBhIHNlY29uZCBzaW5nbGUgY2xpY2sgZXZlbnQgb3IKKyAgICAg
ICAgICBhIHNlY29uZCBzaW5nbGUgY2xpY2sgZm9sbG93ZWQgYnkgYSBkYmxjbGljayBldmVudCB3
aGVuIGRibGNsaWNrIGhhbmRsZXIgaXMgcHJlc2VudC4KKyAgICAgICAgSG93ZXZlciB0aGUgc2Vj
b25kIGNsaWNrIGlzIGRyb3BwZWQgb24gdGhlIGZsb29yIHdoZW4gdGhlIG5vZGUgdW5kZXIgdGhl
IGN1cnNvciBkb2VzIG5vdCBoYXZlIGEgZGJsY2xpY2sgaGFuZGxlciAoc2VlIGhhbmRsZURvdWJs
ZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludCgpKSAtc28gd2UgZW5kIHVwIHNlbmRpbmcgb25lIGNs
aWNrIGV2ZW50LgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBjYXNlIGJ5IHNlbmRp
bmcgdGhlIHNlY29uZCB0YXAgdGhyb3VnaCB0aGUgbm9ybWFsIHNpbmdsZSB0YXAgZmxvdyB3aGVu
IHRoZSBkYmxjbGljayBoYW5kbGVyIGlzIG5vdCBwcmVzZW50LgorCisgICAgICAgICogU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oOgorICAgICAgICAqIFNoYXJl
ZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW06CisgICAgICAgIChXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2RlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IHNldHVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBnZXN0dXJlUmVjb2duaXplclNob3VsZEJlZ2luOl0pOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpwb3NpdGlvbkluZm9ybWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6cmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRpb24pOgorCiAyMDE5LTA5LTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViUGFnZTo6c2Vzc2lvbklEKCkgZG9l
cyBub3QgbmVlZCB0byBnZXQgdGhlIHNlc3Npb25JRCBmcm9tIHRoZXJlIFdlYkNvcmUgUGFnZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24uaAppbmRleCA2YTQ3YmQ3MzY1ZTliYzkxZjI4YjNiMjJmZDlkZTU1
OTNiMDQ4OGM3Li5mZTkyY2QxMjRmZjI0ZjE5N2VlMjNlYzFmYjUzZGNhMzhjZTViOTcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24uaApAQCAtNTEsNiArNTEsNyBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24gewogCiAgICAgYm9vbCBjYW5CZVZhbGlkIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgbm9kZUF0UG9zaXRpb25Jc0ZvY3VzZWRFbGVtZW50IHsgZmFsc2UgfTsKKyAgICBi
b29sIG5vZGVBdFBvc2l0aW9uSGFzRG91YmxlQ2xpY2tIYW5kbGVyIHsgZmFsc2UgfTsKICNpZiBF
TkFCTEUoREFUQV9JTlRFUkFDVElPTikKICAgICBib29sIGhhc1NlbGVjdGlvbkF0UG9zaXRpb24g
eyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3Mv
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KaW5kZXggMmZmM2ZkODI4
YTM0YmE5ZTk3ZGM4MTYwMTExZGJkMDE4ZTAxZmU3MS4uY2E0Y2RkYjhlNDg1NzU2MDgzMjNlMmEw
MWE0YmQxMTYyMThlNzZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0lu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQpAQCAtNDUsNiArNDUs
NyBAQCB2b2lkIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAgICAgZW5jb2RlciA8PCBjYW5CZVZhbGlkOwogICAg
IGVuY29kZXIgPDwgbm9kZUF0UG9zaXRpb25Jc0ZvY3VzZWRFbGVtZW50OworICAgIGVuY29kZXIg
PDwgbm9kZUF0UG9zaXRpb25IYXNEb3VibGVDbGlja0hhbmRsZXI7CiAjaWYgRU5BQkxFKERBVEFf
SU5URVJBQ1RJT04pCiAgICAgZW5jb2RlciA8PCBoYXNTZWxlY3Rpb25BdFBvc2l0aW9uOwogI2Vu
ZGlmCkBAIC05Nyw2ICs5OCw5IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b246OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEludGVyYWN0aW9uCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQubm9kZUF0UG9zaXRpb25Jc0ZvY3VzZWRFbGVtZW50KSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubm9k
ZUF0UG9zaXRpb25IYXNEb3VibGVDbGlja0hhbmRsZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5oYXNTZWxlY3Rpb25BdFBvc2l0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9y
bWF0aW9uUmVxdWVzdC5jcHAKaW5kZXggMGJkODQxNjE5Zjc0OGMzNGZhYjk0ZWJjMmRhNjI2Y2Jl
YjU2MGM5ZC4uYTJmM2JlMzg3MGM0ZDE4YzU3ODBkZmUxNmJhYjE0Yzc5ZjgyM2M1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1h
dGlvblJlcXVlc3QuY3BwCkBAIC03NSw3ICs3NSw3IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1h
dGlvblJlcXVlc3Q6OmlzVmFsaWRGb3JSZXF1ZXN0KGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAgICAgCi1ib29sIEludGVyYWN0aW9uSW5mb3JtYXRpb25S
ZXF1ZXN0Ojppc0FwcHJveGltYXRlbHlWYWxpZEZvclJlcXVlc3QoY29uc3QgSW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3QmIG90aGVyKQorYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWVzdDo6aXNBcHByb3hpbWF0ZWx5VmFsaWRGb3JSZXF1ZXN0KGNvbnN0IEludGVyYWN0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0JiBvdGhlciwgaW50IHJhZGl1cykKIHsKICAgICBpZiAob3RoZXIuaW5j
bHVkZVNuYXBzaG90ICYmICFpbmNsdWRlU25hcHNob3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTg2LDcgKzg2LDcgQEAgYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdDo6aXNB
cHByb3hpbWF0ZWx5VmFsaWRGb3JSZXF1ZXN0KGNvbnN0IEludGVyYWMKICAgICBpZiAob3RoZXIu
bGlua0luZGljYXRvclNob3VsZEhhdmVMZWdhY3lNYXJnaW5zICE9IGxpbmtJbmRpY2F0b3JTaG91
bGRIYXZlTGVnYWN5TWFyZ2lucykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIHJl
dHVybiAob3RoZXIucG9pbnQgLSBwb2ludCkuZGlhZ29uYWxMZW5ndGhTcXVhcmVkKCkgPD0gNDsK
KyAgICByZXR1cm4gKG90aGVyLnBvaW50IC0gcG9pbnQpLmRpYWdvbmFsTGVuZ3RoU3F1YXJlZCgp
IDw9IHJhZGl1cyAqIHJhZGl1czsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1h
dGlvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9y
bWF0aW9uUmVxdWVzdC5oCmluZGV4IDllMmNmY2Y1ZDhiNGIzODE5ZTg0MWNhOTkxOTg5OTIxMjcy
OTJlY2IuLmE3YzQ2NjE2OWI2ZGM5NjdmYzc4OWU2MDI1YTg2MTNlMTRhMGVmZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9u
UmVxdWVzdC5oCkBAIC01MSw3ICs1MSw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9u
UmVxdWVzdCB7CiAgICAgfQogCiAgICAgYm9vbCBpc1ZhbGlkRm9yUmVxdWVzdChjb25zdCBJbnRl
cmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYpOwotICAgIGJvb2wgaXNBcHByb3hpbWF0ZWx5VmFs
aWRGb3JSZXF1ZXN0KGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0JiBvdGhlcik7
CisgICAgYm9vbCBpc0FwcHJveGltYXRlbHlWYWxpZEZvclJlcXVlc3QoY29uc3QgSW50ZXJhY3Rp
b25JbmZvcm1hdGlvblJlcXVlc3QmLCBpbnQgcmFkaXVzID0gMik7CiAKICAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNv
ZGVyJiwgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4
IDdmNmZkMDJhOWFmYTllMzFiMDBlNDhlN2NkOGYxNzhiZTlmNGMxMzYuLjM5OTY5ZDUzMzc5MmU0
YzJlNjUyOTQxMGZiNWZiNmNjYzc3NTA4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMjExMCw5ICsy
MTEwLDkgQEAgLSAoQk9PTClfaGFzVmFsaWRPdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25S
ZXF1ZXN0Oihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW8KICAgICByZXR1cm4gX291dHN0YW5kaW5n
UG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgJiYgX291dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1h
dGlvblJlcXVlc3QtPmlzVmFsaWRGb3JSZXF1ZXN0KHJlcXVlc3QpOwogfQogCi0tIChCT09MKV9j
dXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbklzQXBwcm94aW1hdGVseVZhbGlkRm9yUmVxdWVzdDoo
Y29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYpcmVxdWVzdAorLSAo
Qk9PTClfY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25Jc0FwcHJveGltYXRlbHlWYWxpZEZvclJl
cXVlc3Q6KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QmKXJlcXVl
c3QgcmFkaXVzRm9yQXBwcm94aW1hdGlvbjooaW50KXJhZGl1cwogewotICAgIHJldHVybiBfaGFz
VmFsaWRQb3NpdGlvbkluZm9ybWF0aW9uICYmIF9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3Qu
aXNBcHByb3hpbWF0ZWx5VmFsaWRGb3JSZXF1ZXN0KHJlcXVlc3QpOworICAgIHJldHVybiBfaGFz
VmFsaWRQb3NpdGlvbkluZm9ybWF0aW9uICYmIF9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3Qu
aXNBcHByb3hpbWF0ZWx5VmFsaWRGb3JSZXF1ZXN0KHJlcXVlc3QsIHJhZGl1cyk7CiB9CiAKIC0g
KHZvaWQpX2ludm9rZUFuZFJlbW92ZVBlbmRpbmdIYW5kbGVyc1ZhbGlkRm9yQ3VycmVudFBvc2l0
aW9uSW5mb3JtYXRpb24KQEAgLTIxODksMTAgKzIxODksMTkgQEAgLSAoQk9PTClnZXN0dXJlUmVj
b2duaXplclNob3VsZEJlZ2luOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6
ZXIKICAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25p
emVyKQogICAgICAgICByZXR1cm4gIWlzSW50ZXJydXB0aW5nRGVjZWxlcmF0aW9uRm9yU2Nyb2xs
Vmlld09yQW5jZXN0b3IoW19zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplciBsYXN0VG91Y2hlZFNj
cm9sbFZpZXddKTsKIAorICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfZG91YmxlVGFwR2Vz
dHVyZVJlY29nbml6ZXJGb3JEb3VibGVDbGljaykgeworICAgICAgICAvLyBEbyBub3Qgc3RhcnQg
dGhlIGRvdWJsZS10YXAtZm9yLWRvdWJsZS1jbGljayBnZXN0dXJlIHJlY29nbml6ZXIgdW5sZXNz
IHdlJ3ZlIGdvdCBhIGRibGNsaWNrIGV2ZW50IGhhbmRsZXIgb24gdGhlIG5vZGUgYXQgdGhlIHRh
cCBsb2NhdGlvbi4KKyAgICAgICAgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dCByZXF1ZXN0KFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChwb2ludCkpOworICAgICAgICBpZiAo
W3NlbGYgX2N1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uSXNBcHByb3hpbWF0ZWx5VmFsaWRGb3JS
ZXF1ZXN0OnJlcXVlc3QgcmFkaXVzRm9yQXBwcm94aW1hdGlvbjpbX2RvdWJsZVRhcEdlc3R1cmVS
ZWNvZ25pemVyRm9yRG91YmxlQ2xpY2sgYWxsb3dhYmxlTW92ZW1lbnRdXSkKKyAgICAgICAgICAg
IHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5ub2RlQXRQb3NpdGlvbkhhc0RvdWJsZUNsaWNr
SGFuZGxlcjsKKyAgICAgICAgaWYgKCFbc2VsZiBlbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNV
cFRvRGF0ZTpyZXF1ZXN0XSkKKyAgICAgICAgICAgIHJldHVybiBOTzsKKyAgICAgICAgcmV0dXJu
IF9wb3NpdGlvbkluZm9ybWF0aW9uLm5vZGVBdFBvc2l0aW9uSGFzRG91YmxlQ2xpY2tIYW5kbGVy
OworICAgIH0KKwogICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfaGlnaGxpZ2h0TG9uZ1By
ZXNzR2VzdHVyZVJlY29nbml6ZXIKICAgICAgICAgfHwgZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2Rv
dWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyCiAgICAgICAgIHx8IGdlc3R1cmVSZWNvZ25pemVyID09
IF9ub25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyCi0gICAgICAgIHx8IGdlc3R1
cmVSZWNvZ25pemVyID09IF9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJsZUNsaWNr
CiAgICAgICAgIHx8IGdlc3R1cmVSZWNvZ25pemVyID09IF90d29GaW5nZXJEb3VibGVUYXBHZXN0
dXJlUmVjb2duaXplcikgewogCiAgICAgICAgIGlmIChoYXNGb2N1c2VkRWxlbWVudChfZm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbikpIHsKQEAgLTQ0NjksNyArNDQ3OCw3IEBAIC0gKFVJVGV4dFBv
c2l0aW9uICopY2xvc2VzdFBvc2l0aW9uVG9Qb2ludDooQ0dQb2ludClwb2ludAogI2lmIFBMQVRG
T1JNKE1BQ0NBVEFMWVNUKQogICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVl
c3QgcmVxdWVzdChXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQocG9pbnQpKTsKICAgICBbc2VsZiBy
ZXF1ZXN0QXN5bmNocm9ub3VzUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpyZXF1ZXN0XTsKLSAg
ICBpZiAoW3NlbGYgX2N1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uSXNBcHByb3hpbWF0ZWx5VmFs
aWRGb3JSZXF1ZXN0OnJlcXVlc3RdICYmIF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzU2VsZWN0YWJs
ZSkKKyAgICBpZiAoW3NlbGYgX2N1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uSXNBcHByb3hpbWF0
ZWx5VmFsaWRGb3JSZXF1ZXN0OnJlcXVlc3QgcmFkaXVzRm9yQXBwcm94aW1hdGlvbjoyXSAmJiBf
cG9zaXRpb25JbmZvcm1hdGlvbi5pc1NlbGVjdGFibGUpCiAgICAgICAgIHJldHVybiBbV0tUZXh0
UG9zaXRpb24gdGV4dFBvc2l0aW9uV2l0aFJlY3Q6X3Bvc2l0aW9uSW5mb3JtYXRpb24uY2FyZXRS
ZWN0XTsKICNlbmRpZgogICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDM4ZTFiOTU1NzU3M2Q2MWY3
ZjNjMWIyZGFlMDAwNTYwNjg4MDA5NGEuLmRjMjZjZDJjZWM2YTIxMTRhMzE5YWUyYTJkMzg3YzIx
NzYzNTQwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCkBAIC0yNzMwLDEwICsyNzMwLDExIEBAIEludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uIFdlYlBhZ2U6OnBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJh
Y3Rpb25JCiAgICAgaW5mby5yZXF1ZXN0ID0gcmVxdWVzdDsKIAogICAgIEZsb2F0UG9pbnQgYWRq
dXN0ZWRQb2ludDsKLSAgICBOb2RlKiBoaXROb2RlID0gbV9wYWdlLT5tYWluRnJhbWUoKS5ub2Rl
UmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMocmVxdWVzdC5wb2ludCwgYWRqdXN0ZWRQb2ludCk7Cisg
ICAgYXV0byogbm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzID0gbV9wYWdlLT5tYWluRnJhbWUo
KS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMocmVxdWVzdC5wb2ludCwgYWRqdXN0ZWRQb2lu
dCk7CiAKLSAgICBpbmZvLm5vZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxlbWVudCA9IGhpdE5vZGUg
PT0gbV9mb2N1c2VkRWxlbWVudDsKKyAgICBpbmZvLm5vZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxl
bWVudCA9IG5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyA9PSBtX2ZvY3VzZWRFbGVtZW50Owog
ICAgIGluZm8uYWRqdXN0ZWRQb2ludEZvck5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyA9IGFk
anVzdGVkUG9pbnQ7CisgICAgaW5mby5ub2RlQXRQb3NpdGlvbkhhc0RvdWJsZUNsaWNrSGFuZGxl
ciA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0RvdWJsZUNsaWNrRXZlbnQo
cmVxdWVzdC5wb2ludCwgYWRqdXN0ZWRQb2ludCk7CiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFD
VElPTikKICAgICBpbmZvLmhhc1NlbGVjdGlvbkF0UG9zaXRpb24gPSBtX3BhZ2UtPmhhc1NlbGVj
dGlvbkF0UG9zaXRpb24oYWRqdXN0ZWRQb2ludCk7CkBAIC0yNzQyLDggKzI3NDMsOCBAQCBJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBXZWJQYWdlOjpwb3NpdGlvbkluZm9ybWF0aW9u
KGNvbnN0IEludGVyYWN0aW9uSQogICAgIGlmIChtX2ZvY3VzZWRFbGVtZW50KQogICAgICAgICBm
b2N1c2VkRWxlbWVudFBvc2l0aW9uSW5mb3JtYXRpb24oKnRoaXMsICptX2ZvY3VzZWRFbGVtZW50
LCByZXF1ZXN0LCBpbmZvKTsKIAotICAgIGlmIChpczxFbGVtZW50PihoaXROb2RlKSkgewotICAg
ICAgICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKmhpdE5vZGUpOworICAg
IGlmIChpczxFbGVtZW50Pihub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMpKSB7CisgICAgICAg
IGF1dG8mIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZVJlc3BvbmRpbmdUb0NsaWNr
RXZlbnRzKTsKICAgICAgICAgZWxlbWVudFBvc2l0aW9uSW5mb3JtYXRpb24oKnRoaXMsIGVsZW1l
bnQsIHJlcXVlc3QsIGluZm8pOwogCiAgICAgICAgIGlmIChpbmZvLmlzTGluayAmJiAhaW5mby5p
c0ltYWdlICYmIHJlcXVlc3QuaW5jbHVkZVNuYXBzaG90KQpAQCAtMjc1NSwxMCArMjc1Niw4IEBA
IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIFdlYlBhZ2U6OnBvc2l0aW9uSW5mb3Jt
YXRpb24oY29uc3QgSW50ZXJhY3Rpb25JCiAKICAgICAvLyBQcmV2ZW50IHRoZSBjYWxsb3V0IGJh
ciBmcm9tIHNob3dpbmcgd2hlbiB0YXBwaW5nIG9uIHRoZSBkYXRhbGlzdCBidXR0b24uCiAjaWYg
RU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCi0gICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGhp
dE5vZGUpKSB7Ci0gICAgICAgIGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0ID0gZG93bmNh
c3Q8SFRNTElucHV0RWxlbWVudD4oKmhpdE5vZGUpOwotICAgICAgICB0ZXh0SW50ZXJhY3Rpb25Q
b3NpdGlvbkluZm9ybWF0aW9uKCp0aGlzLCBpbnB1dCwgcmVxdWVzdCwgaW5mbyk7Ci0gICAgfQor
ICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMp
KQorICAgICAgICB0ZXh0SW50ZXJhY3Rpb25Qb3NpdGlvbkluZm9ybWF0aW9uKCp0aGlzLCBkb3du
Y2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzKSwgcmVx
dWVzdCwgaW5mbyk7CiAjZW5kaWYKIAogICAgIHJldHVybiBpbmZvOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNkMDFiZmNj
YzFhYWExZDViNDI4MTViMDFlMDEyM2VkZDUwY2NhYWQuLmE0ODFmYmFjNjM2ODU4NWE1ZGM5YTdk
NDYyMGQ1YjY5NmM5YzYyYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0wOS0yMyAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpUGFkT3NdIFRoZSBzZWNv
bmQgY2xpY2sgZXZlbnQgaXMgbWlzc2luZyBvbiBkb3VibGUgdGFwIHdoZW4gZGJsY2xpY2sgaGFu
ZGxlciBpcyBub3QgcHJlc2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAyMDA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTcwNjgyOD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZXZl
bnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzMS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28t
Y2xpY2tzMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91
YmxlLXRhcC1mb3ItdHdvLWNsaWNrczItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczIuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1j
bGlja3MzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzNC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZv
ci10d28tY2xpY2tzNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9p
b3MvZG91YmxlY2xpY2suaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
cmVzb3VyY2VzL2RvdWJsZUNsaWNrQ29udGVudC5odG1sOiBBZGRlZC4KKwogMjAxOS0wOS0yMyAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIG1hbmFnZW1lbnQgb2YgVXNlck1lZGlhUmVx
dWVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJs
ZS10YXAtZm9yLXR3by1jbGlja3MxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzMS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGQ2M2I2MDhkMGIzYmNmODE2MWRmNDRmMTk2YmM0MzJmZTkzYzNiZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFw
LWZvci10d28tY2xpY2tzMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIGlmICdb
Y2xpY2tdW2NsaWNrXScgdGV4dCBpcyBzaG93biBiZWxvdy4KK1tjbGlja11bY2xpY2tdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3It
dHdvLWNsaWNrczEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3Vi
bGUtdGFwLWZvci10d28tY2xpY2tzMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhODllYzdkZGVmMjk3YWE5
OTJlMDAxNGY1NTgyMzlhNGM5NTFkNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczEuaHRtbApAQCAt
MCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVz
ZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGggaW5pdGlhbC1zY2FsZT0xIHVz
ZXItc2NhbGFibGU9bm8iPgorPHRpdGxlPlRoaXMgdGVzdHMgdGhhdCB3ZSBmaXJlIHR3byBjbGlj
ayBldmVudHMgb24gZG91YmxlIHRhcCB3aGVuIGRibGNsaWNrIGhhbmRsZXIgaXMgbm90IHByZXNl
bnQuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyNkb3VibGVUYXB0aGlzIHsKKyAgICB3aWR0aDogNDAw
cHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsKK30K
Kzwvc3R5bGU+Cis8c2NyaXB0PgorYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAoIXdp
bmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICByZXR1
cm47CisKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmh1bWFuU3BlZWREb3VibGVUYXBBdChk
b3VibGVUYXB0aGlzLm9mZnNldExlZnQsIGRvdWJsZVRhcHRoaXMub2Zmc2V0VG9wKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGRpdiBpZD1kb3VibGVU
YXB0aGlzPlBBU1MgaWYgJ1tjbGlja11bY2xpY2tdJyB0ZXh0IGlzIHNob3duIGJlbG93LjwvZGl2
PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0PgorbGV0IG51bWJlck9mQ2xpY2tzID0g
MDsKKworZG91YmxlVGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBl
dmVudCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gcmVzdWx0LmlubmVySFRNTCArICJb
Y2xpY2tdIjsKKyAgICBpZiAoKytudW1iZXJPZkNsaWNrcyA9PSAyICYmIHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSIsIDApOwor
fSwgZmFsc2UpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tz
Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91Ymxl
LXRhcC1mb3ItdHdvLWNsaWNrczItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkNjNiNjA4ZDBi
M2JjZjgxNjFkZjQ0ZjE5NmJjNDMyZmU5M2MzYmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBpZiAnW2NsaWNrXVtjbGlja10nIHRleHQg
aXMgc2hvd24gYmVsb3cuCitbY2xpY2tdW2NsaWNrXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MyLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNr
czIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMmUyODgzZTQ1ZjlkN2QwZWM2MDNiNzNhMzc3MDA2YjRjNDk5
NGVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MyLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NU
WVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRy
dWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoIGluaXRpYWwtc2NhbGU9MSB1c2VyLXNjYWxhYmxlPW5vIj4KKzx0
aXRsZT5UaGlzIHRlc3RzIHRoYXQgd2UgZmlyZSB0d28gY2xpY2sgZXZlbnRzIG9uIGRvdWJsZSB0
YXAgd2hlbiBkYmxjbGljayBoYW5kbGVyIGlzIHJlbW92ZWQgZHluYW1pY2FsbHkuPC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KKyNkb3VibGVUYXB0aGlzIHsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVp
Z2h0OiA0MDBweDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsKK30KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPWRvdWJsZVRhcHRoaXM+UEFT
UyBpZiAnW2NsaWNrXVtjbGlja10nIHRleHQgaXMgc2hvd24gYmVsb3cuPC9kaXY+Cis8cHJlIGlk
PXJlc3VsdD48L3ByZT4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGRibGNsaWNrSGFuZGxlcihldmVu
dCkgeworICAgIHJlc3VsdC5pbm5lckhUTUwgPSByZXN1bHQuaW5uZXJIVE1MICsgIltzaG91bGQg
bm90IGRvdWJsZSBjbGlja10iOworfQorCitkb3VibGVUYXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIo
ImRibGNsaWNrIiwgZGJsY2xpY2tIYW5kbGVyLCBmYWxzZSk7CisKK2xldCBudW1iZXJPZkNsaWNr
cyA9IDA7Citkb3VibGVUYXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24o
IGV2ZW50ICkgeyAgIAorICAgIHJlc3VsdC5pbm5lckhUTUwgPSByZXN1bHQuaW5uZXJIVE1MICsg
IltjbGlja10iOworICAgIGlmICgrK251bWJlck9mQ2xpY2tzID09IDIgJiYgd2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHNldFRpbWVvdXQoInRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIiwgMCk7
Cit9LCBmYWxzZSk7CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgZG91YmxlVGFwdGhp
cy5yZW1vdmVFdmVudExpc3RlbmVyKCJkYmxjbGljayIsIGRibGNsaWNrSGFuZGxlciwgZmFsc2Up
OworCisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5lci5ydW5VSVNjcmlw
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICBhd2FpdCBVSUhlbHBlci5odW1hblNw
ZWVkRG91YmxlVGFwQXQoZG91YmxlVGFwdGhpcy5vZmZzZXRMZWZ0LCBkb3VibGVUYXB0aGlzLm9m
ZnNldFRvcCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tz
My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91Ymxl
LXRhcC1mb3ItdHdvLWNsaWNrczMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmZjE0YTA5YTcz
NGE3YjQzYzc2ZGMwY2JmMGU2MmE1YzQ2NmY5M2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBpZiAnW2NsaWNrXVtjbGlja11bZG91Ymxl
IGNsaWNrXScgdGV4dCBpcyBzaG93biBiZWxvdy4KK1tjbGlja11bY2xpY2tdW2RvdWJsZSBjbGlj
a10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUt
dGFwLWZvci10d28tY2xpY2tzMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM1NjRiOTc0
ZGI1NzQ2ZjMwYzZhN2NiNTMzMjllMjlhZWQ4NDYzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzMy5o
dG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCBpbml0aWFsLXNj
YWxlPTEgdXNlci1zY2FsYWJsZT1ubyI+Cis8dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IHdlIGZpcmUg
dHdvIGNsaWNrIGV2ZW50cyBvbiBkb3VibGUgdGFwIHdoZW4gbXVsdGlwbGUgZGJsY2xpY2sgaGFu
ZGxlcnMgYXJlIHByZXNlbnQuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyNkb3VibGVUYXB0aGlzIHsK
KyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBib3JkZXI6IDFweCBz
b2xpZCBncmVlbjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+
Cis8ZGl2IGlkPWRvdWJsZVRhcHRoaXM+UEFTUyBpZiAnW2NsaWNrXVtjbGlja11bZG91YmxlIGNs
aWNrXScgdGV4dCBpcyBzaG93biBiZWxvdy48L2Rpdj4KKzxwcmUgaWQ9cmVzdWx0PjwvcHJlPgor
PHNjcmlwdD4KKworZG91YmxlVGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0
aW9uKCBldmVudCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gcmVzdWx0LmlubmVySFRN
TCArICJbY2xpY2tdIjsKK30sIGZhbHNlKTsKKworZnVuY3Rpb24gZGJsY2xpY2tIYW5kbGVyKGV2
ZW50KSB7CisgICAgcmVzdWx0LmlubmVySFRNTCA9IHJlc3VsdC5pbm5lckhUTUwgKyAiW2RvdWJs
ZSBjbGlja10iOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgc2V0VGltZW91
dCgidGVzdFJ1bm5lci5ub3RpZnlEb25lKCkiLCAwKTsKK30KKworZnVuY3Rpb24gZGJsY2xpY2tI
YW5kbGVyRm9yUmVzdWx0KGV2ZW50KSB7CisgICAgcmVzdWx0LmlubmVySFRNTCA9IHJlc3VsdC5p
bm5lckhUTUwgKyAiW3Nob3VsZCBub3QgZG91YmxlIGNsaWNrXSI7Cit9CisKK2RvdWJsZVRhcHRo
aXMuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCBkYmxjbGlja0hhbmRsZXIsIGZhbHNlKTsK
K3Jlc3VsdC5hZGRFdmVudExpc3RlbmVyKCJkYmxjbGljayIsIGRibGNsaWNrSGFuZGxlckZvclJl
c3VsdCwgZmFsc2UpOworCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGRvdWJsZVRhcHRo
aXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzdWx0IiwgZGJsY2xpY2tIYW5kbGVyLCBmYWxzZSk7
CisKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmh1bWFuU3Bl
ZWREb3VibGVUYXBBdChkb3VibGVUYXB0aGlzLm9mZnNldExlZnQsIGRvdWJsZVRhcHRoaXMub2Zm
c2V0VG9wKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3M0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUt
dGFwLWZvci10d28tY2xpY2tzNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE1YjkwZDZiZWY4
ZjUzODU0NWVmNzE4ZjVmNWRkNjE5ZWRiNTE0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzNC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIGlmICdbY2xpY2tdW2NsaWNrXVtkb3VibGUg
Y2xpY2tdJyB0ZXh0IGlzIHNob3duIGJlbG93LgorIFtjbGlja11bY2xpY2tdW2RvdWJsZSBjbGlj
a10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUt
dGFwLWZvci10d28tY2xpY2tzNC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3M0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDNiMzI1OTRm
MDcxZGNiMTFhNDFkY2M4YTU1YTdkOWViMmFjYTA5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzNC5o
dG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCBpbml0aWFsLXNj
YWxlPTEgdXNlci1zY2FsYWJsZT1ubyI+Cis8dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IHdlIGZpcmUg
dHdvIGNsaWNrIGV2ZW50cyBvbiBkb3VibGUgdGFwIHdoZW4gZGJsY2xpY2sgaGFuZGxlciBpcyBp
biBhbiBpZnJhbWUuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyNkb3VibGVUYXB0aGlzIHsKKyAgICB3
aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBn
cmVlbjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2
IGlkPWRvdWJsZVRhcHRoaXM+UEFTUyBpZiAnW2NsaWNrXVtjbGlja11bZG91YmxlIGNsaWNrXScg
dGV4dCBpcyBzaG93biBiZWxvdy48L2Rpdj4KKzxpZnJhbWUgaWQ9cmVtb3ZlTWUgc3JjPSIuLi9y
ZXNvdXJjZXMvZG91YmxlQ2xpY2tDb250ZW50Lmh0bWwiPjwvaWZyYW1lPgorPHByZSBpZD1yZXN1
bHQ+PC9wcmU+Cis8c2NyaXB0PgorCitkb3VibGVUYXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAorICAgIHJlc3VsdC5pbm5lckhUTUwgPSByZXN1
bHQuaW5uZXJIVE1MICsgIltjbGlja10iOworfSwgZmFsc2UpOworCitmdW5jdGlvbiBkYmxjbGlj
a0hhbmRsZXIoZXZlbnQpIHsKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gcmVzdWx0LmlubmVySFRN
TCArICJbZG91YmxlIGNsaWNrXSI7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSIsIDApOworfQorCitkb3VibGVU
YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgZGJsY2xpY2tIYW5kbGVyLCBmYWxz
ZSk7CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgcmVtb3ZlTWUucmVtb3ZlKCk7CisK
KyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQor
ICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmh1bWFuU3BlZWRE
b3VibGVUYXBBdChkb3VibGVUYXB0aGlzLm9mZnNldExlZnQsIGRvdWJsZVRhcHRoaXMub2Zmc2V0
VG9wKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvcmVzb3VyY2VzL2RvdWJsZUNsaWNrQ29udGVudC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvcmVzb3VyY2VzL2RvdWJsZUNsaWNrQ29u
dGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiOTNiMjVhNTgzODY5YzM5OGE1Yjk1YTRkZWY4Nzc4NDQ5
NzQ0MDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9y
ZXNvdXJjZXMvZG91YmxlQ2xpY2tDb250ZW50Lmh0bWwKQEAgLTAsMCArMSw4IEBACis8ZGl2IGlk
PWRvdWJsZVRhcDE+c29tZSB0ZXh0PC9kaXY+Cis8ZGl2IGlkPWRvdWJsZVRhcDI+c29tZSB0ZXh0
PC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gZGJsY2xpY2tIYW5kbGVyKGV2ZW50KSB7Cit9Citk
b3VibGVUYXAxLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgZGJsY2xpY2tIYW5kbGVyLCBm
YWxzZSk7Citkb3VibGVUYXAyLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgZGJsY2xpY2tI
YW5kbGVyLCBmYWxzZSk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379468</attachid>
            <date>2019-09-24 12:33:36 -0700</date>
            <delta_ts>2019-09-24 13:06:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202006-20190924123335.patch</filename>
            <type>text/plain</type>
            <size>22832</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg5NmI3ODk5NDQ1Zjc3YWI1
Mzc2MDI2OGVhZmRhZDIzM2U4YThhMGIuLmM2ZDAxZjM4MDYwNzVlZjA1YjYyYTAzZWRlZGM1ZGY5
YzQ3Mjc0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDktMjQgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaVBhZE9zXSBUaGUgc2Vjb25kIGNs
aWNrIGV2ZW50IGlzIG1pc3Npbmcgb24gZG91YmxlIHRhcCB3aGVuIGRibGNsaWNrIGhhbmRsZXIg
aXMgbm90IHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMjAwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTE3MDY4Mjg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIFdoaWxlIGRvdWJsZSB0YXBw
aW5nLAorICAgICAgICAxLiB0aGUgZmlyc3QgdGFwIHRyaWdnZXJzIGEgY2xpY2sgZXZlbnQgdGhy
b3VnaCB0aGUgbm9ybWFsIF9zaW5nbGVUYXBJZGVudGlmaWVkL19zaW5nbGVUYXBSZWNvZ25pemVk
IGNvZGVwYXRoLgorICAgICAgICAyLiBhbmQgdGhlIHNlY29uZCB0YXAgc2hvdWxkIHRyaWdnZXIg
ZWl0aGVyCisgICAgICAgICAgYSBzZWNvbmQgc2luZ2xlIGNsaWNrIGV2ZW50IG9yCisgICAgICAg
ICAgYSBzZWNvbmQgc2luZ2xlIGNsaWNrIGZvbGxvd2VkIGJ5IGEgZGJsY2xpY2sgZXZlbnQgd2hl
biBkYmxjbGljayBoYW5kbGVyIGlzIHByZXNlbnQuCisgICAgICAgIEhvd2V2ZXIgdGhlIHNlY29u
ZCBjbGljayBpcyBkcm9wcGVkIG9uIHRoZSBmbG9vciB3aGVuIHRoZSBub2RlIHVuZGVyIHRoZSBj
dXJzb3IgZG9lcyBub3QgaGF2ZSBhIGRibGNsaWNrIGhhbmRsZXIgKHNlZSBoYW5kbGVEb3VibGVU
YXBGb3JEb3VibGVDbGlja0F0UG9pbnQoKSkgLXNvIHdlIGVuZCB1cCBzZW5kaW5nIG9uZSBjbGlj
ayBldmVudC4KKworICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgY2FzZSBieSBzZW5kaW5n
IHRoZSBzZWNvbmQgdGFwIHRocm91Z2ggdGhlIG5vcm1hbCBzaW5nbGUgdGFwIGZsb3cgd2hlbiB0
aGUgZGJsY2xpY2sgaGFuZGxlciBpcyBub3QgcHJlc2VudC4KKworICAgICAgICAqIFNoYXJlZC9p
b3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaDoKKyAgICAgICAgKiBTaGFyZWQv
aW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tOgorICAgICAgICAoV2ViS2l0
OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRlY29kZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBzZXR1cEludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgZ2VzdHVyZVJlY29nbml6ZXJTaG91bGRCZWdpbjpdKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cG9zaXRpb25JbmZvcm1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uKToKKwogMjAxOS0wOS0yNCAgS2VpdGggUm9sbGlu
ICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29hbGVzY2Ugb3IgcmVtb3ZlIFBMQVRG
T1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgKaW5k
ZXggNmE0N2JkNzM2NWU5YmM5MWYyOGIzYjIyZmQ5ZGU1NTkzYjA0ODhjNy4uZmU5MmNkMTI0ZmYy
NGYxOTdlZTIzZWMxZmI1M2RjYTM4Y2U1Yjk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgKQEAg
LTUxLDYgKzUxLDcgQEAgc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIHsK
IAogICAgIGJvb2wgY2FuQmVWYWxpZCB7IHRydWUgfTsKICAgICBib29sIG5vZGVBdFBvc2l0aW9u
SXNGb2N1c2VkRWxlbWVudCB7IGZhbHNlIH07CisgICAgYm9vbCBub2RlQXRQb3NpdGlvbkhhc0Rv
dWJsZUNsaWNrSGFuZGxlciB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04p
CiAgICAgYm9vbCBoYXNTZWxlY3Rpb25BdFBvc2l0aW9uIHsgZmFsc2UgfTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uLm1tCmluZGV4IDJmZjNmZDgyOGEzNGJhOWU5N2RjODE2MDExMWRiZDAx
OGUwMWZlNzEuLmNhNGNkZGI4ZTQ4NTc1NjA4MzIzZTJhMDFhNGJkMTE2MjE4ZTc2YzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24ubW0KQEAgLTQ1LDYgKzQ1LDcgQEAgdm9pZCBJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IAogICAgIGVuY29kZXIgPDwgY2FuQmVWYWxpZDsKICAgICBlbmNvZGVyIDw8IG5vZGVBdFBvc2l0
aW9uSXNGb2N1c2VkRWxlbWVudDsKKyAgICBlbmNvZGVyIDw8IG5vZGVBdFBvc2l0aW9uSGFzRG91
YmxlQ2xpY2tIYW5kbGVyOwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIGVuY29k
ZXIgPDwgaGFzU2VsZWN0aW9uQXRQb3NpdGlvbjsKICNlbmRpZgpAQCAtOTcsNiArOTgsOSBAQCBi
b29sIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpkZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBJbnRlcmFjdGlvbgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm5v
ZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm5vZGVBdFBvc2l0aW9uSGFzRG91YmxlQ2xp
Y2tIYW5kbGVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAjaWYgRU5BQkxFKERBVEFfSU5U
RVJBQ1RJT04pCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaGFzU2VsZWN0aW9uQXRQ
b3NpdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QuY3BwCmluZGV4
IDBiZDg0MTYxOWY3NDhjMzRmYWI5NGViYzJkYTYyNmNiZWI1NjBjOWQuLmYwZGM5MmY3YmQ4YWVh
ZGRlNDgwZTc0MWY3ZjRiM2I5MGM0NmQ4OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmNwcApAQCAtNTgs
MTEgKzU4LDggQEAgYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdDo6ZGVjb2RlKElQ
Qzo6RGVjb2RlciYgZGVjb2RlciwgSW50ZXJhY3Rpb25JbmYKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdDo6aXNWYWxpZEZvclJlcXVlc3Qo
Y29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QmIG90aGVyKQorYm9vbCBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uUmVxdWVzdDo6aXNWYWxpZEZvclJlcXVlc3QoY29uc3QgSW50ZXJhY3Rp
b25JbmZvcm1hdGlvblJlcXVlc3QmIG90aGVyLCBpbnQgcmFkaXVzKQogewotICAgIGlmIChvdGhl
ci5wb2ludCAhPSBwb2ludCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgaWYgKG90aGVy
LmluY2x1ZGVTbmFwc2hvdCAmJiAhaW5jbHVkZVNuYXBzaG90KQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTcyLDIxICs2OSwxMiBAQCBib29sIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0Ojppc1ZhbGlkRm9yUmVxdWVzdChjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aQogICAgIGlm
IChvdGhlci5saW5rSW5kaWNhdG9yU2hvdWxkSGF2ZUxlZ2FjeU1hcmdpbnMgIT0gbGlua0luZGlj
YXRvclNob3VsZEhhdmVMZWdhY3lNYXJnaW5zKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gKG90aGVyLnBvaW50IC0gcG9pbnQpLmRpYWdvbmFs
TGVuZ3RoU3F1YXJlZCgpIDw9IHJhZGl1cyAqIHJhZGl1czsKIH0KICAgICAKLWJvb2wgSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvblJlcXVlc3Q6OmlzQXBwcm94aW1hdGVseVZhbGlkRm9yUmVxdWVzdChj
b25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYgb3RoZXIpCitib29sIEludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0Ojppc0FwcHJveGltYXRlbHlWYWxpZEZvclJlcXVlc3QoY29u
c3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QmIG90aGVyLCBpbnQgcmFkaXVzKQogewot
ICAgIGlmIChvdGhlci5pbmNsdWRlU25hcHNob3QgJiYgIWluY2x1ZGVTbmFwc2hvdCkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmIChvdGhlci5pbmNsdWRlTGlua0luZGljYXRv
ciAmJiAhaW5jbHVkZUxpbmtJbmRpY2F0b3IpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGlmIChvdGhlci5saW5rSW5kaWNhdG9yU2hvdWxkSGF2ZUxlZ2FjeU1hcmdpbnMgIT0gbGlua0lu
ZGljYXRvclNob3VsZEhhdmVMZWdhY3lNYXJnaW5zKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgCi0gICAgcmV0dXJuIChvdGhlci5wb2ludCAtIHBvaW50KS5kaWFnb25hbExlbmd0aFNxdWFy
ZWQoKSA8PSA0OworICAgIHJldHVybiBpc1ZhbGlkRm9yUmVxdWVzdChvdGhlciwgcmFkaXVzKTsK
IH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5oCmluZGV4
IDllMmNmY2Y1ZDhiNGIzODE5ZTg0MWNhOTkxOTg5OTIxMjcyOTJlY2IuLjBkMGE5MzlmMjNlMjE0
NjUwODM0Yzc0YjNhMDQwOTkzNTVjYzZhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5oCkBAIC01MCw4ICs1
MCw4IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCB7CiAgICAgICAgIHRo
aXMtPnBvaW50ID0gcG9pbnQ7CiAgICAgfQogCi0gICAgYm9vbCBpc1ZhbGlkRm9yUmVxdWVzdChj
b25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYpOwotICAgIGJvb2wgaXNBcHByb3hp
bWF0ZWx5VmFsaWRGb3JSZXF1ZXN0KGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0
JiBvdGhlcik7CisgICAgYm9vbCBpc1ZhbGlkRm9yUmVxdWVzdChjb25zdCBJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uUmVxdWVzdCYsIGludCByYWRpdXMgPSAwKTsKKyAgICBib29sIGlzQXBwcm94aW1h
dGVseVZhbGlkRm9yUmVxdWVzdChjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYs
IGludCByYWRpdXMpOwogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIEludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBlNzcwZmZlNDVkNzllY2JiZDZmMTgxYjhj
NWFjNWE0Mzg1OWRjN2M1Li44ZmM1MmU4M2U5YzM4MDgxOTFmOWJmZmY4MjljYzE4MjA0MGU5Y2Fm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KQEAgLTIxMTIsOSArMjExMiw5IEBAIC0gKEJPT0wpX2hhc1ZhbGlk
T3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdDooY29uc3QgV2ViS2l0OjpJbnRl
cmFjdGlvCiAgICAgcmV0dXJuIF9vdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0
ICYmIF9vdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LT5pc1ZhbGlkRm9yUmVx
dWVzdChyZXF1ZXN0KTsKIH0KIAotLSAoQk9PTClfY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25J
c0FwcHJveGltYXRlbHlWYWxpZEZvclJlcXVlc3Q6KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3QmKXJlcXVlc3QKKy0gKEJPT0wpX2N1cnJlbnRQb3NpdGlvbkluZm9y
bWF0aW9uSXNBcHByb3hpbWF0ZWx5VmFsaWRGb3JSZXF1ZXN0Oihjb25zdCBXZWJLaXQ6OkludGVy
YWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0JilyZXF1ZXN0IHJhZGl1c0ZvckFwcHJveGltYXRpb246
KGludClyYWRpdXMKIHsKLSAgICByZXR1cm4gX2hhc1ZhbGlkUG9zaXRpb25JbmZvcm1hdGlvbiAm
JiBfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LmlzQXBwcm94aW1hdGVseVZhbGlkRm9yUmVx
dWVzdChyZXF1ZXN0KTsKKyAgICByZXR1cm4gX2hhc1ZhbGlkUG9zaXRpb25JbmZvcm1hdGlvbiAm
JiBfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LmlzQXBwcm94aW1hdGVseVZhbGlkRm9yUmVx
dWVzdChyZXF1ZXN0LCByYWRpdXMpOwogfQogCiAtICh2b2lkKV9pbnZva2VBbmRSZW1vdmVQZW5k
aW5nSGFuZGxlcnNWYWxpZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uCkBAIC0yMTkxLDEw
ICsyMTkxLDE5IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXJTaG91bGRCZWdpbjooVUlHZXN0
dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiAgICAgaWYgKGdlc3R1cmVSZWNvZ25p
emVyID09IF9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplcikKICAgICAgICAgcmV0dXJuICFpc0lu
dGVycnVwdGluZ0RlY2VsZXJhdGlvbkZvclNjcm9sbFZpZXdPckFuY2VzdG9yKFtfc2luZ2xlVGFw
R2VzdHVyZVJlY29nbml6ZXIgbGFzdFRvdWNoZWRTY3JvbGxWaWV3XSk7CiAKKyAgICBpZiAoZ2Vz
dHVyZVJlY29nbml6ZXIgPT0gX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xp
Y2spIHsKKyAgICAgICAgLy8gRG8gbm90IHN0YXJ0IHRoZSBkb3VibGUtdGFwLWZvci1kb3VibGUt
Y2xpY2sgZ2VzdHVyZSByZWNvZ25pemVyIHVubGVzcyB3ZSd2ZSBnb3QgYSBkYmxjbGljayBldmVu
dCBoYW5kbGVyIG9uIHRoZSBub2RlIGF0IHRoZSB0YXAgbG9jYXRpb24uCisgICAgICAgIFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVxdWVzdChXZWJDb3JlOjpyb3VuZGVk
SW50UG9pbnQocG9pbnQpKTsKKyAgICAgICAgaWYgKFtzZWxmIF9jdXJyZW50UG9zaXRpb25JbmZv
cm1hdGlvbklzQXBwcm94aW1hdGVseVZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0IHJhZGl1c0ZvckFw
cHJveGltYXRpb246W19kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJsZUNsaWNrIGFs
bG93YWJsZU1vdmVtZW50XV0pCisgICAgICAgICAgICByZXR1cm4gX3Bvc2l0aW9uSW5mb3JtYXRp
b24ubm9kZUF0UG9zaXRpb25IYXNEb3VibGVDbGlja0hhbmRsZXI7CisgICAgICAgIGlmICghW3Nl
bGYgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6cmVxdWVzdF0pCisgICAgICAg
ICAgICByZXR1cm4gTk87CisgICAgICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5ub2Rl
QXRQb3NpdGlvbkhhc0RvdWJsZUNsaWNrSGFuZGxlcjsKKyAgICB9CisKICAgICBpZiAoZ2VzdHVy
ZVJlY29nbml6ZXIgPT0gX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyCiAgICAg
ICAgIHx8IGdlc3R1cmVSZWNvZ25pemVyID09IF9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplcgog
ICAgICAgICB8fCBnZXN0dXJlUmVjb2duaXplciA9PSBfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0
dXJlUmVjb2duaXplcgotICAgICAgICB8fCBnZXN0dXJlUmVjb2duaXplciA9PSBfZG91YmxlVGFw
R2VzdHVyZVJlY29nbml6ZXJGb3JEb3VibGVDbGljawogICAgICAgICB8fCBnZXN0dXJlUmVjb2du
aXplciA9PSBfdHdvRmluZ2VyRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIpIHsKIAogICAgICAg
ICBpZiAoaGFzRm9jdXNlZEVsZW1lbnQoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24pKSB7CkBA
IC00NDcxLDcgKzQ0ODAsNyBAQCAtIChVSVRleHRQb3NpdGlvbiAqKWNsb3Nlc3RQb3NpdGlvblRv
UG9pbnQ6KENHUG9pbnQpcG9pbnQKICNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3QoV2ViQ29yZTo6cm91bmRl
ZEludFBvaW50KHBvaW50KSk7CiAgICAgW3NlbGYgcmVxdWVzdEFzeW5jaHJvbm91c1Bvc2l0aW9u
SW5mb3JtYXRpb25VcGRhdGU6cmVxdWVzdF07Ci0gICAgaWYgKFtzZWxmIF9jdXJyZW50UG9zaXRp
b25JbmZvcm1hdGlvbklzQXBwcm94aW1hdGVseVZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0XSAmJiBf
cG9zaXRpb25JbmZvcm1hdGlvbi5pc1NlbGVjdGFibGUpCisgICAgaWYgKFtzZWxmIF9jdXJyZW50
UG9zaXRpb25JbmZvcm1hdGlvbklzQXBwcm94aW1hdGVseVZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0
IHJhZGl1c0ZvckFwcHJveGltYXRpb246Ml0gJiYgX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNTZWxl
Y3RhYmxlKQogICAgICAgICByZXR1cm4gW1dLVGV4dFBvc2l0aW9uIHRleHRQb3NpdGlvbldpdGhS
ZWN0Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmNhcmV0UmVjdF07CiAjZW5kaWYKICAgICByZXR1cm4g
bmlsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQppbmRleCA4M2JlMWM3OGY3MjEzYzQwM2M1MGRhMzc1N2FlMWRkZGVjYTEyOTUyLi4x
NmFhMTlkZDIxNDc3NjBjMzJjMjFkZjgwZDEwYmQ4ZGQ3OGI5OGYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjc2Nywx
MCArMjc2NywxMSBAQCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBXZWJQYWdlOjpw
b3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSQogICAgIGluZm8ucmVxdWVzdCA9
IHJlcXVlc3Q7CiAKICAgICBGbG9hdFBvaW50IGFkanVzdGVkUG9pbnQ7Ci0gICAgTm9kZSogaGl0
Tm9kZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzKHJl
cXVlc3QucG9pbnQsIGFkanVzdGVkUG9pbnQpOworICAgIGF1dG8qIG5vZGVSZXNwb25kaW5nVG9D
bGlja0V2ZW50cyA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZl
bnRzKHJlcXVlc3QucG9pbnQsIGFkanVzdGVkUG9pbnQpOwogCi0gICAgaW5mby5ub2RlQXRQb3Np
dGlvbklzRm9jdXNlZEVsZW1lbnQgPSBoaXROb2RlID09IG1fZm9jdXNlZEVsZW1lbnQ7CisgICAg
aW5mby5ub2RlQXRQb3NpdGlvbklzRm9jdXNlZEVsZW1lbnQgPSBub2RlUmVzcG9uZGluZ1RvQ2xp
Y2tFdmVudHMgPT0gbV9mb2N1c2VkRWxlbWVudDsKICAgICBpbmZvLmFkanVzdGVkUG9pbnRGb3JO
b2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMgPSBhZGp1c3RlZFBvaW50OworICAgIGluZm8ubm9k
ZUF0UG9zaXRpb25IYXNEb3VibGVDbGlja0hhbmRsZXIgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLm5v
ZGVSZXNwb25kaW5nVG9Eb3VibGVDbGlja0V2ZW50KHJlcXVlc3QucG9pbnQsIGFkanVzdGVkUG9p
bnQpOwogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgaW5mby5oYXNTZWxlY3Rp
b25BdFBvc2l0aW9uID0gbV9wYWdlLT5oYXNTZWxlY3Rpb25BdFBvc2l0aW9uKGFkanVzdGVkUG9p
bnQpOwpAQCAtMjc3OSw4ICsyNzgwLDggQEAgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24gV2ViUGFnZTo6cG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlvbkkKICAgICBp
ZiAobV9mb2N1c2VkRWxlbWVudCkKICAgICAgICAgZm9jdXNlZEVsZW1lbnRQb3NpdGlvbkluZm9y
bWF0aW9uKCp0aGlzLCAqbV9mb2N1c2VkRWxlbWVudCwgcmVxdWVzdCwgaW5mbyk7CiAKLSAgICBp
ZiAoaXM8RWxlbWVudD4oaGl0Tm9kZSkpIHsKLSAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9IGRv
d25jYXN0PEVsZW1lbnQ+KCpoaXROb2RlKTsKKyAgICBpZiAoaXM8RWxlbWVudD4obm9kZVJlc3Bv
bmRpbmdUb0NsaWNrRXZlbnRzKSkgeworICAgICAgICBhdXRvJiBlbGVtZW50ID0gZG93bmNhc3Q8
RWxlbWVudD4oKm5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyk7CiAgICAgICAgIGVsZW1lbnRQ
b3NpdGlvbkluZm9ybWF0aW9uKCp0aGlzLCBlbGVtZW50LCByZXF1ZXN0LCBpbmZvKTsKIAogICAg
ICAgICBpZiAoaW5mby5pc0xpbmsgJiYgIWluZm8uaXNJbWFnZSAmJiByZXF1ZXN0LmluY2x1ZGVT
bmFwc2hvdCkKQEAgLTI3OTIsMTAgKzI3OTMsOCBAQCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbiBXZWJQYWdlOjpwb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSQog
CiAgICAgLy8gUHJldmVudCB0aGUgY2FsbG91dCBiYXIgZnJvbSBzaG93aW5nIHdoZW4gdGFwcGlu
ZyBvbiB0aGUgZGF0YWxpc3QgYnV0dG9uLgogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQot
ICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PihoaXROb2RlKSkgewotICAgICAgICBjb25zdCBI
VE1MSW5wdXRFbGVtZW50JiBpbnB1dCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpoaXRO
b2RlKTsKLSAgICAgICAgdGV4dEludGVyYWN0aW9uUG9zaXRpb25JbmZvcm1hdGlvbigqdGhpcywg
aW5wdXQsIHJlcXVlc3QsIGluZm8pOwotICAgIH0KKyAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVu
dD4obm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzKSkKKyAgICAgICAgdGV4dEludGVyYWN0aW9u
UG9zaXRpb25JbmZvcm1hdGlvbigqdGhpcywgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm5v
ZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyksIHJlcXVlc3QsIGluZm8pOwogI2VuZGlmCiAKICAg
ICByZXR1cm4gaW5mbzsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNDVjOWQ1ODg2NjhhYzhhNmE1NzQ0N2UyNDYwOGQwMWRl
OGZlY2YxLi5lMGUzZDYwOWU2ZTk3OTk3NmE0MGFkMTMyOTRiZmY5MGE3NGI4YTk2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTktMDktMjQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBbaVBhZE9zXSBUaGUgc2Vjb25kIGNsaWNrIGV2ZW50IGlzIG1pc3Npbmcg
b24gZG91YmxlIHRhcCB3aGVuIGRibGNsaWNrIGhhbmRsZXIgaXMgbm90IHByZXNlbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjAwNgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTE3MDY4Mjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29u
IEhzaWVoLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9y
LXR3by1jbGlja3MxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
dG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MxLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUt
dGFwLWZvci10d28tY2xpY2tzMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90
b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNr
czMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10
YXAtZm9yLXR3by1jbGlja3M0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3M0Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGVjbGljay5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9yZXNvdXJjZXMvZG91YmxlQ2xpY2tDb250ZW50
Lmh0bWw6IEFkZGVkLgorCiAyMDE5LTA5LTI0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBs
ZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBVbmZsYWtlIHdlYi1hbmltYXRpb25z
L3RpbWluZy1tb2RlbC9hbmltYXRpb25zL3VwZGF0aW5nLXRoZS1maW5pc2hlZC1zdGF0ZS5odG1s
IFdQVCB0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
ZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MxLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40ZDYzYjYwOGQwYjNiY2Y4MTYxZGY0NGYxOTZiYzQzMmZlOTNjM2JkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJs
ZS10YXAtZm9yLXR3by1jbGlja3MxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1Mg
aWYgJ1tjbGlja11bY2xpY2tdJyB0ZXh0IGlzIHNob3duIGJlbG93LgorW2NsaWNrXVtjbGlja10K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFw
LWZvci10d28tY2xpY2tzMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3MxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGE4OWVjN2RkZWYy
OTdhYTk5MmUwMDE0ZjU1ODIzOWE0Yzk1MWQ0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tzMS5odG1s
CkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
bmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCBpbml0aWFsLXNjYWxl
PTEgdXNlci1zY2FsYWJsZT1ubyI+Cis8dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IHdlIGZpcmUgdHdv
IGNsaWNrIGV2ZW50cyBvbiBkb3VibGUgdGFwIHdoZW4gZGJsY2xpY2sgaGFuZGxlciBpcyBub3Qg
cHJlc2VudC48L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2RvdWJsZVRhcHRoaXMgeworICAgIHdpZHRo
OiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVu
OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlm
ICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAg
IHJldHVybjsKKworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworCisgICAgYXdhaXQgVUlIZWxwZXIuaHVtYW5TcGVlZERvdWJsZVRh
cEF0KGRvdWJsZVRhcHRoaXMub2Zmc2V0TGVmdCwgZG91YmxlVGFwdGhpcy5vZmZzZXRUb3ApOwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPWRv
dWJsZVRhcHRoaXM+UEFTUyBpZiAnW2NsaWNrXVtjbGlja10nIHRleHQgaXMgc2hvd24gYmVsb3cu
PC9kaXY+Cis8cHJlIGlkPXJlc3VsdD48L3ByZT4KKzxzY3JpcHQ+CitsZXQgbnVtYmVyT2ZDbGlj
a3MgPSAwOworCitkb3VibGVUYXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rp
b24oIGV2ZW50ICkgeyAgIAorICAgIHJlc3VsdC5pbm5lckhUTUwgPSByZXN1bHQuaW5uZXJIVE1M
ICsgIltjbGlja10iOworICAgIGlmICgrK251bWJlck9mQ2xpY2tzID09IDIgJiYgd2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgIHNldFRpbWVvdXQoInRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIiwg
MCk7Cit9LCBmYWxzZSk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1j
bGlja3MyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9k
b3VibGUtdGFwLWZvci10d28tY2xpY2tzMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ2M2I2
MDhkMGIzYmNmODE2MWRmNDRmMTk2YmM0MzJmZTkzYzNiZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tz
Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIGlmICdbY2xpY2tdW2NsaWNrXScg
dGV4dCBpcyBzaG93biBiZWxvdy4KK1tjbGlja11bY2xpY2tdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczIuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28t
Y2xpY2tzMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZTI4ODNlNDVmOWQ3ZDBlYzYwM2I3M2EzNzcwMDZi
NGM0OTk0ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczIuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3Bv
cnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGggaW5pdGlhbC1zY2FsZT0xIHVzZXItc2NhbGFibGU9bm8i
PgorPHRpdGxlPlRoaXMgdGVzdHMgdGhhdCB3ZSBmaXJlIHR3byBjbGljayBldmVudHMgb24gZG91
YmxlIHRhcCB3aGVuIGRibGNsaWNrIGhhbmRsZXIgaXMgcmVtb3ZlZCBkeW5hbWljYWxseS48L3Rp
dGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorI2RvdWJsZVRhcHRoaXMgeworICAgIHdpZHRoOiA0MDBweDsKKyAg
ICBoZWlnaHQ6IDQwMHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOworfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxkaXYgaWQ9ZG91YmxlVGFwdGhp
cz5QQVNTIGlmICdbY2xpY2tdW2NsaWNrXScgdGV4dCBpcyBzaG93biBiZWxvdy48L2Rpdj4KKzxw
cmUgaWQ9cmVzdWx0PjwvcHJlPgorPHNjcmlwdD4KKworZnVuY3Rpb24gZGJsY2xpY2tIYW5kbGVy
KGV2ZW50KSB7CisgICAgcmVzdWx0LmlubmVySFRNTCA9IHJlc3VsdC5pbm5lckhUTUwgKyAiW3No
b3VsZCBub3QgZG91YmxlIGNsaWNrXSI7Cit9CisKK2RvdWJsZVRhcHRoaXMuYWRkRXZlbnRMaXN0
ZW5lcigiZGJsY2xpY2siLCBkYmxjbGlja0hhbmRsZXIsIGZhbHNlKTsKKworbGV0IG51bWJlck9m
Q2xpY2tzID0gMDsKK2RvdWJsZVRhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5j
dGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVySFRNTCA9IHJlc3VsdC5pbm5lckhU
TUwgKyAiW2NsaWNrXSI7CisgICAgaWYgKCsrbnVtYmVyT2ZDbGlja3MgPT0gMiAmJiB3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgc2V0VGltZW91dCgidGVzdFJ1bm5lci5ub3RpZnlEb25lKCki
LCAwKTsKK30sIGZhbHNlKTsKKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBkb3VibGVU
YXB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgZGJsY2xpY2tIYW5kbGVyLCBm
YWxzZSk7CisKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmh1
bWFuU3BlZWREb3VibGVUYXBBdChkb3VibGVUYXB0aGlzLm9mZnNldExlZnQsIGRvdWJsZVRhcHRo
aXMub2Zmc2V0VG9wKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1j
bGlja3MzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9k
b3VibGUtdGFwLWZvci10d28tY2xpY2tzMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZmMTRh
MDlhNzM0YTdiNDNjNzZkYzBjYmYwZTYyYTVjNDY2ZjkzYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci10d28tY2xpY2tz
My1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIGlmICdbY2xpY2tdW2NsaWNrXVtk
b3VibGUgY2xpY2tdJyB0ZXh0IGlzIHNob3duIGJlbG93LgorW2NsaWNrXVtjbGlja11bZG91Ymxl
IGNsaWNrXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2Rv
dWJsZS10YXAtZm9yLXR3by1jbGlja3MzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzU2
NGI5NzRkYjU3NDZmMzBjNmE3Y2I1MzMyOWUyOWFlZDg0NjM3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlj
a3MzLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIGluaXRp
YWwtc2NhbGU9MSB1c2VyLXNjYWxhYmxlPW5vIj4KKzx0aXRsZT5UaGlzIHRlc3RzIHRoYXQgd2Ug
ZmlyZSB0d28gY2xpY2sgZXZlbnRzIG9uIGRvdWJsZSB0YXAgd2hlbiBtdWx0aXBsZSBkYmxjbGlj
ayBoYW5kbGVycyBhcmUgcHJlc2VudC48L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2RvdWJsZVRhcHRo
aXMgeworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIGJvcmRlcjog
MXB4IHNvbGlkIGdyZWVuOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVz
dCgpIj4KKzxkaXYgaWQ9ZG91YmxlVGFwdGhpcz5QQVNTIGlmICdbY2xpY2tdW2NsaWNrXVtkb3Vi
bGUgY2xpY2tdJyB0ZXh0IGlzIHNob3duIGJlbG93LjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9w
cmU+Cis8c2NyaXB0PgorCitkb3VibGVUYXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg
ZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAorICAgIHJlc3VsdC5pbm5lckhUTUwgPSByZXN1bHQuaW5u
ZXJIVE1MICsgIltjbGlja10iOworfSwgZmFsc2UpOworCitmdW5jdGlvbiBkYmxjbGlja0hhbmRs
ZXIoZXZlbnQpIHsKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gcmVzdWx0LmlubmVySFRNTCArICJb
ZG91YmxlIGNsaWNrXSI7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICBzZXRU
aW1lb3V0KCJ0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSIsIDApOworfQorCitmdW5jdGlvbiBkYmxj
bGlja0hhbmRsZXJGb3JSZXN1bHQoZXZlbnQpIHsKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gcmVz
dWx0LmlubmVySFRNTCArICJbc2hvdWxkIG5vdCBkb3VibGUgY2xpY2tdIjsKK30KKworZG91Ymxl
VGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJkYmxjbGljayIsIGRibGNsaWNrSGFuZGxlciwgZmFs
c2UpOworcmVzdWx0LmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgZGJsY2xpY2tIYW5kbGVy
Rm9yUmVzdWx0LCBmYWxzZSk7CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgZG91Ymxl
VGFwdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXN1bHQiLCBkYmxjbGlja0hhbmRsZXIsIGZh
bHNlKTsKKworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlT
Y3JpcHQpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgYXdhaXQgVUlIZWxwZXIuaHVt
YW5TcGVlZERvdWJsZVRhcEF0KGRvdWJsZVRhcHRoaXMub2Zmc2V0TGVmdCwgZG91YmxlVGFwdGhp
cy5vZmZzZXRUb3ApOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNs
aWNrczQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2Rv
dWJsZS10YXAtZm9yLXR3by1jbGlja3M0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTViOTBk
NmJlZjhmNTM4NTQ1ZWY3MThmNWY1ZGQ2MTllZGI1MTRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlja3M0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgaWYgJ1tjbGlja11bY2xpY2tdW2Rv
dWJsZSBjbGlja10nIHRleHQgaXMgc2hvd24gYmVsb3cuCisgW2NsaWNrXVtjbGlja11bZG91Ymxl
IGNsaWNrXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2Rv
dWJsZS10YXAtZm9yLXR3by1jbGlja3M0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItdHdvLWNsaWNrczQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2Iz
MjU5NGYwNzFkY2IxMWE0MWRjYzhhNTVhN2Q5ZWIyYWNhMDliCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLXR3by1jbGlj
a3M0Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIGluaXRp
YWwtc2NhbGU9MSB1c2VyLXNjYWxhYmxlPW5vIj4KKzx0aXRsZT5UaGlzIHRlc3RzIHRoYXQgd2Ug
ZmlyZSB0d28gY2xpY2sgZXZlbnRzIG9uIGRvdWJsZSB0YXAgd2hlbiBkYmxjbGljayBoYW5kbGVy
IGlzIGluIGFuIGlmcmFtZS48L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2RvdWJsZVRhcHRoaXMgewor
ICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIGJvcmRlcjogMXB4IHNv
bGlkIGdyZWVuOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4K
KzxkaXYgaWQ9ZG91YmxlVGFwdGhpcz5QQVNTIGlmICdbY2xpY2tdW2NsaWNrXVtkb3VibGUgY2xp
Y2tdJyB0ZXh0IGlzIHNob3duIGJlbG93LjwvZGl2PgorPGlmcmFtZSBpZD1yZW1vdmVNZSBzcmM9
Ii4uL3Jlc291cmNlcy9kb3VibGVDbGlja0NvbnRlbnQuaHRtbCI+PC9pZnJhbWU+Cis8cHJlIGlk
PXJlc3VsdD48L3ByZT4KKzxzY3JpcHQ+CisKK2RvdWJsZVRhcHRoaXMuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVySFRNTCA9
IHJlc3VsdC5pbm5lckhUTUwgKyAiW2NsaWNrXSI7Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGRi
bGNsaWNrSGFuZGxlcihldmVudCkgeworICAgIHJlc3VsdC5pbm5lckhUTUwgPSByZXN1bHQuaW5u
ZXJIVE1MICsgIltkb3VibGUgY2xpY2tdIjsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHNldFRpbWVvdXQoInRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIiwgMCk7Cit9CisKK2Rv
dWJsZVRhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCBkYmxjbGlja0hhbmRsZXIs
IGZhbHNlKTsKKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICByZW1vdmVNZS5yZW1vdmUo
KTsKKworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgYXdhaXQgVUlIZWxwZXIuaHVtYW5T
cGVlZERvdWJsZVRhcEF0KGRvdWJsZVRhcHRoaXMub2Zmc2V0TGVmdCwgZG91YmxlVGFwdGhpcy5v
ZmZzZXRUb3ApOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9yZXNvdXJjZXMvZG91YmxlQ2xpY2tDb250ZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9yZXNvdXJjZXMvZG91YmxlQ2xp
Y2tDb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI5M2IyNWE1ODM4NjljMzk4YTViOTVhNGRlZjg3
Nzg0NDk3NDQwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL3Jlc291cmNlcy9kb3VibGVDbGlja0NvbnRlbnQuaHRtbApAQCAtMCwwICsxLDggQEAKKzxk
aXYgaWQ9ZG91YmxlVGFwMT5zb21lIHRleHQ8L2Rpdj4KKzxkaXYgaWQ9ZG91YmxlVGFwMj5zb21l
IHRleHQ8L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBkYmxjbGlja0hhbmRsZXIoZXZlbnQpIHsK
K30KK2RvdWJsZVRhcDEuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCBkYmxjbGlja0hhbmRs
ZXIsIGZhbHNlKTsKK2RvdWJsZVRhcDIuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCBkYmxj
bGlja0hhbmRsZXIsIGZhbHNlKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>