<?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>143486</bug_id>
          
          <creation_ts>2015-04-07 10:43:51 -0700</creation_ts>
          <short_desc>Add a setting &amp; restriction which prevents non-interactive playback of audible media elements.</short_desc>
          <delta_ts>2015-04-28 07:44:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>aestes</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1083339</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-07 10:43:51 -0700</bug_when>
    <thetext>Add a setting &amp; restriction which prevents non-interactivte playback of audible media elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083386</commentid>
    <comment_count>1</comment_count>
      <attachid>250285</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-07 12:37:02 -0700</bug_when>
    <thetext>Created attachment 250285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083389</commentid>
    <comment_count>2</comment_count>
      <attachid>250285</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-04-07 12:48:08 -0700</bug_when>
    <thetext>Comment on attachment 250285
Patch

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

&gt; Source/WebCore/ChangeLog:15
&gt; +
&gt; +        

Nit: two blank lines

&gt; Source/WebCore/html/HTMLMediaElement.cpp:5835
&gt;      m_mediaSession-&gt;removeBehaviorRestriction(HTMLMediaSession::RequireUserGestureForLoad);
&gt;      m_mediaSession-&gt;removeBehaviorRestriction(HTMLMediaSession::RequireUserGestureForRateChange);
&gt; +    m_mediaSession-&gt;removeBehaviorRestriction(HTMLMediaSession::RequireUserGestureForAudioRateChange);
&gt;      m_mediaSession-&gt;removeBehaviorRestriction(HTMLMediaSession::RequireUserGestureForFullscreen);

Nit: You should be able to call remove just once with a bit mask with all restrictions to clear.

&gt; LayoutTests/media/video-test.js:399
&gt; -}
&gt;  \ No newline at end of file

:-O</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083422</commentid>
    <comment_count>3</comment_count>
      <attachid>250299</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-07 14:17:40 -0700</bug_when>
    <thetext>Created attachment 250299
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083459</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-07 15:39:18 -0700</bug_when>
    <thetext>Attachment 250299 did not pass style-queue:


ERROR: Source/WebCore/html/HTMLMediaSession.cpp:57:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/html/HTMLMediaElement.cpp:5849:  Line contains only semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084029</commentid>
    <comment_count>5</comment_count>
      <attachid>250457</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-09 13:26:02 -0700</bug_when>
    <thetext>Created attachment 250457
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084031</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-09 13:28:30 -0700</bug_when>
    <thetext>Attachment 250457 did not pass style-queue:


ERROR: Source/WebCore/html/HTMLMediaSession.cpp:57:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/html/HTMLMediaElement.cpp:5857:  Line contains only semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
Total errors found: 2 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084118</commentid>
    <comment_count>7</comment_count>
      <attachid>250457</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-04-09 16:35:46 -0700</bug_when>
    <thetext>Comment on attachment 250457
Patch for landing

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:5843
&gt; +        | HTMLMediaSession::RequireUserGestureForAudioRateChange
&gt; +        | HTMLMediaSession::RequireUserGestureForAudioRateChange

You have HTMLMediaSession::RequireUserGestureForAudioRateChange twice here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088711</commentid>
    <comment_count>8</comment_count>
      <attachid>251674</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-25 23:11:59 -0700</bug_when>
    <thetext>Created attachment 251674
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088713</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-25 23:15:26 -0700</bug_when>
    <thetext>Attachment 251674 did not pass style-queue:


ERROR: Source/WebCore/html/HTMLMediaSession.cpp:58:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089022</commentid>
    <comment_count>10</comment_count>
      <attachid>251674</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-27 08:10:17 -0700</bug_when>
    <thetext>Comment on attachment 251674
Patch for landing

Rejecting attachment 251674 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 251674, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: http://webkit-queues.appspot.com/results/5124165619154944</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089219</commentid>
    <comment_count>11</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-27 15:10:10 -0700</bug_when>
    <thetext>Committed r183428: &lt;http://trac.webkit.org/changeset/183428&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089506</commentid>
    <comment_count>12</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-04-28 07:44:36 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Committed r183428: &lt;http://trac.webkit.org/changeset/183428&gt;

The new tests are missing expected results, so I added the actual results from Yosemite in http://trac.webkit.org/changeset/183473. You might want to check if that&apos;s right.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250285</attachid>
            <date>2015-04-07 12:37:02 -0700</date>
            <delta_ts>2015-04-09 21:22:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143486-20150407123612.patch</filename>
            <type>text/plain</type>
            <size>23637</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZmNDU3YzkwYzk3ODA0
M2MxMmU0MWVjOGE3MTg1N2M3OWMxNDQwNy4uYjliYzAzYTlkZTUyZmZkMzE4NmVjZWUwN2UwMzZi
ODI4OWUyNDc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTA0LTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIHNldHRpbmcgJiBy
ZXN0cmljdGlvbiB3aGljaCBwcmV2ZW50cyBub24taW50ZXJhY3RpdnRlIHBsYXliYWNrIG9mIGF1
ZGlibGUgbWVkaWEgZWxlbWVudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDM0ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0czogbWVkaWEvYXVkaW8tcGxheWJhY2stcmVzdHJpY3Rpb24tYXV0
b3BsYXkuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvYXVkaW8tcGxheWJhY2stcmVzdHJpY3Rp
b24tcGxheS5odG1sCisKKyAgICAgICAgVG8gYWxsb3cgY2xpZW50cyB3aG8gd2FudCB0byBhbGxv
dyBub24tdXNlci1pbnRlcmFjdGl2ZSB2aWRlby1vbmx5IHBsYXliYWNrLCBidXQgc3RpbGwKKyAg
ICAgICAgcmVzdHJpY3QgcGxheWJhY2sgb2YgYXVkaWJsZSBtZWRpYSBlbGVtZW50cywgYWRkIGEg
bmV3IHNldHRpbmcgYW5kIG1hdGNoaW5nIHJlc3RyaWN0aW9uCisgICAgICAgIHdoaWNoIGRpc2Fs
bG93cyBwbGF5YmFjayBvZiBtZWRpYSBlbGVtZW50cyBjb250YWluaW5nIGF1ZGlibGUgY2hhcmFj
dGVyaXN0aWNzLgorCisgICAgICAgIAorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50
KTogU2V0IHRoZSBSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UKKyAgICAgICAg
ICAgIHJlc3RyaWN0aW9uIGlmIHRoZSBhdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSgp
IHNldHRpbmcgaXMgc2V0LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUpOiBEcml2ZS1ieSBmaXguIE1vdmUgdGhlIG9wZW5pbmcgYnJhY2UKKyAgICAg
ICAgICAgIG91dCBvZiB0aGUgI2lmLCBhcyB0aGlzIGNvbmZ1c2VzIHRoZSBoZWNrIG91dCBvZiBk
aWZmIGFuZCBtYWtlcyBhbGwgc3Vic2VxdWVudAorICAgICAgICAgICAgY2hhbmdlcyBhcHBlYXIg
dG8gYmUgd2l0aGluIEhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXV0b3BsYXkpOiBSZW1vdmUgdGhlIHJlc3RyaWN0
aW9uIGNoZWNrIGZyb20gd2l0aGluIGF1dG9wbGF5KCkuCisgICAgICAgICAgICBJdCBpcyBjaGVj
a2VkIGFnYWluIGltbWVkaWF0ZWx5IGFmdGVyIGV2ZXJ5IGF1dG9wbGF5KCkgY2FsbCBzaXRlLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5hbCk6IFJlbW92
ZSB0aGUgaU9TLW9ubHkgI2lmLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKTogQ2hlY2sgd2hldGhlciBwbGF5YmFjaworICAg
ICAgICAgICAgaXMgcGVybWl0dGVkLCBhbmQgaWYgbm90LCBwYXVzZS4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVCZWhhdmlv
cnNSZXN0cmljdGlvbnNBZnRlckZpcnN0VXNlckdlc3R1cmUpOiBEaXR0by4KKyAgICAgICAgKiBo
dG1sL0hUTUxNZWRpYVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVzdHJpY3Rpb25O
YW1lKTogU2luY2UgQmVoYXZpb3JSZXN0cmljdGlvbnMgaXMgYSBiaXRmaWVsZCwgY2hlY2sgZWFj
aCBiaXQKKyAgICAgICAgICAgIGluZGl2aWR1YWxseS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYVNlc3Npb246OnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24pOiBIYW5kbGUgUmVxdWlyZVVz
ZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
U2Vzc2lvbjo6cGxheWJhY2tQZXJtaXR0ZWQpOiBDaGVjayB3aGV0aGVyIHRoZSBlbGVtZW50IGhh
cyBhdWRpbyBhbmQgCisgICAgICAgICAgICBhdWRpbyBwbGF5YmFjayBpcyByZXN0cmljdGVkLCBh
bmQgcmV0dXJuIGZhbHNlIGlmIHNvLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhU2Vzc2lvbi5o
OgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3Mu
aW46CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpzZXRNZWRpYVNlc3Npb25SZXN0cmljdGlvbnMpOiBBZGRlZC4gCisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldE1lZGlhRWxlbWVudFJlc3RyaWN0aW9ucyk6IEFkZGVk
LgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaWRsOgorCiAyMDE1LTAzLTMxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIFtNYWNdIFNvbmd6YS5jb20gZmFpbHMgdG8gcGxheTsgUVRLaXQgcGF0aCBy
ZXBvcnRzIGl0IGlzIGFsd2F5cyAic2Vla2luZyIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCA0ZjU5NTEzMDY0NDVjNmVjNWZhOGFiMjFkN2ZiN2E4NjkxZTk1
MjJkLi5kODYxZTA0ODMwZWI4NjUwNjNjNWU0YzNiYmZhYzNjODJmMTkwMjg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTM2Miw2ICszNjIsOSBAQCBIVE1M
TWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bQogICAgIH0KICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCisg
ICAgaWYgKHNldHRpbmdzICYmIHNldHRpbmdzLT5hdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2Vz
dHVyZSgpKQorICAgICAgICBtX21lZGlhU2Vzc2lvbi0+YWRkQmVoYXZpb3JSZXN0cmljdGlvbihI
VE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UpOwor
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGlmIChkb2N1bWVudC5wYWdlKCkpCiAgICAg
ICAgIG1fY2FwdGlvbkRpc3BsYXlNb2RlID0gZG9jdW1lbnQucGFnZSgpLT5ncm91cCgpLmNhcHRp
b25QcmVmZXJlbmNlcygpLT5jYXB0aW9uRGlzcGxheU1vZGUoKTsKQEAgLTUyMCwxMSArNTIzLDEy
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAv
LyBOb3RlLCB1bmxlc3MgdGhlIHJlc3RyaWN0aW9uIG9uIHJlcXVpcmluZyB1c2VyIGFjdGlvbiBo
YXMgYmVlbiByZW1vdmVkLAogICAgICAgICAvLyBkbyBub3QgYmVnaW4gZG93bmxvYWRpbmcgZGF0
YSBvbiBpT1MuCi0gICAgICAgIGlmICghdmFsdWUuaXNOdWxsKCkgJiYgbV9tZWRpYVNlc3Npb24t
PmRhdGFMb2FkaW5nUGVybWl0dGVkKCp0aGlzKSkgeworICAgICAgICBpZiAoIXZhbHVlLmlzTnVs
bCgpICYmIG1fbWVkaWFTZXNzaW9uLT5kYXRhTG9hZGluZ1Blcm1pdHRlZCgqdGhpcykpCiAjZWxz
ZQogICAgICAgICAvLyBUcmlnZ2VyIGEgcmVsb2FkLCBhcyBsb25nIGFzIHRoZSAnc3JjJyBhdHRy
aWJ1dGUgaXMgcHJlc2VudC4KLSAgICAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSkgeworICAgICAg
ICBpZiAoIXZhbHVlLmlzTnVsbCgpKQogI2VuZGlmCisgICAgICAgIHsKICAgICAgICAgICAgIGNs
ZWFyTWVkaWFQbGF5ZXIoTG9hZE1lZGlhUmVzb3VyY2UpOwogICAgICAgICAgICAgc2NoZWR1bGVE
ZWxheWVkQWN0aW9uKExvYWRNZWRpYVJlc291cmNlKTsKICAgICAgICAgfQpAQCAtMjY4NSwxNiAr
MjY4OSw2IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6ZW5kZWQoKSBjb25zdAogCiBib29sIEhU
TUxNZWRpYUVsZW1lbnQ6OmF1dG9wbGF5KCkgY29uc3QKIHsKLSNpZiBQTEFURk9STShJT1MpCi0g
ICAgLy8gVW5sZXNzIHRoZSByZXN0cmljdGlvbiBvbiByZXF1aXJpbmcgdXNlciBhY3Rpb25zIGhh
cyBiZWVuIGxpZnRlZCwgd2UgZG8gbm90Ci0gICAgLy8gYWxsb3cgcGxheWJhY2sgdG8gc3RhcnQg
anVzdCBiZWNhdXNlIHRoZSBwYWdlIGhhcyAiYXV0b3BsYXkiLiBUaGV5IGFyZSBlaXRoZXIKLSAg
ICAvLyBsaWZ0ZWQgdGhyb3VnaCBTZXR0aW5ncywgb3Igb25jZSB0aGUgdXNlciBleHBsaWN0bHkg
Y2FsbHMgbG9hZCgpIG9yIHBsYXkoKQotICAgIC8vIGJlY2F1c2UgdGhleSBoYXZlIE9LJ2VkIHVz
IGxvYWRpbmcgZGF0YS4gVGhpcyBhbGxvd3MgcGxheWJhY2sgdG8gY29udGludWUgaWYKLSAgICAv
LyB0aGUgVVJMIGlzIGNoYW5nZWQgd2hpbGUgdGhlIG1vdmllIGlzIHBsYXlpbmcuCi0gICAgaWYg
KCFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpIHx8ICFtX21lZGlhU2Vz
c2lvbi0+ZGF0YUxvYWRpbmdQZXJtaXR0ZWQoKnRoaXMpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0jZW5kaWYKLQogICAgIHJldHVybiBmYXN0SGFzQXR0cmlidXRlKGF1dG9wbGF5QXR0cik7CiB9
CiAKQEAgLTI3ODcsMTIgKzI3ODEsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUlu
dGVybmFsKCkKICAgICAKICAgICAvLyA0LjguMTAuOS4gUGxheWluZyB0aGUgbWVkaWEgcmVzb3Vy
Y2UKICAgICBpZiAoIW1fcGxheWVyIHx8IG1fbmV0d29ya1N0YXRlID09IE5FVFdPUktfRU1QVFkp
IHsKLSNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIC8vIFVubGVzcyB0aGUgcmVzdHJpY3Rpb24g
b24gbWVkaWEgcmVxdWlyaW5nIHVzZXIgYWN0aW9uIGhhcyBiZWVuIGxpZnRlZAogICAgICAgICAv
LyBkb24ndCB0cmlnZ2VyIGxvYWRpbmcgaWYgYSBzY3JpcHQgY2FsbHMgcGF1c2UoKS4KICAgICAg
ICAgaWYgKCFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpKQogICAgICAg
ICAgICAgcmV0dXJuOwotI2VuZGlmCiAgICAgICAgIHNjaGVkdWxlRGVsYXllZEFjdGlvbihMb2Fk
TWVkaWFSZXNvdXJjZSk7CiAgICAgfQogCkBAIC0zMTg1LDYgKzMxNzcsOSBAQCBkb3VibGUgSFRN
TE1lZGlhRWxlbWVudDo6cGVyY2VudExvYWRlZCgpIGNvbnN0CiAKIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKFBhc3NSZWZQdHI8QXVkaW9UcmFja1By
aXZhdGU+IHBycFRyYWNrKQogeworICAgIGlmIChpc1BsYXlpbmcoKSAmJiAhbV9tZWRpYVNlc3Np
b24tPnBsYXliYWNrUGVybWl0dGVkKCp0aGlzKSkKKyAgICAgICAgcGF1c2VJbnRlcm5hbCgpOwor
CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYmtp
dFZpZGVvVHJhY2tFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtNDMxNSw2ICs0MzEw
LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckNoYXJhY3RlcmlzdGljQ2hh
bmdlZChNZWRpYVBsYXllciopCiAgICAgaWYgKHJlbmRlcmVyKCkpCiAgICAgICAgIHJlbmRlcmVy
KCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiAKKyAgICBpZiAoaXNQbGF5aW5nKCkgJiYgIW1fbWVk
aWFTZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRlZCgqdGhpcykpCisgICAgICAgIHBhdXNlSW50ZXJu
YWwoKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlSXNQbGF5aW5nQXVkaW8oKTsKIAogICAgIGVu
ZFByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CkBAIC01ODMzLDYgKzU4MzEsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmly
c3RVc2VyR2VzdHVyZSgpCiB7CiAgICAgbV9tZWRpYVNlc3Npb24tPnJlbW92ZUJlaGF2aW9yUmVz
dHJpY3Rpb24oSFRNTE1lZGlhU2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlRm9yTG9hZCk7CiAg
ICAgbV9tZWRpYVNlc3Npb24tPnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oSFRNTE1lZGlhU2Vz
c2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlRm9yUmF0ZUNoYW5nZSk7CisgICAgbV9tZWRpYVNlc3Np
b24tPnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oSFRNTE1lZGlhU2Vzc2lvbjo6UmVxdWlyZVVz
ZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKTsKICAgICBtX21lZGlhU2Vzc2lvbi0+cmVtb3Zl
QmVoYXZpb3JSZXN0cmljdGlvbihIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVG
b3JGdWxsc2NyZWVuKTsKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAg
IG1fbWVkaWFTZXNzaW9uLT5yZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEhUTUxNZWRpYVNlc3Np
b246OlJlcXVpcmVVc2VyR2VzdHVyZVRvU2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYVNlc3Npb24uY3BwCmluZGV4IDAyY2RmYjZjNDdhOThlOTU4
ZmU0MjhiNWVmYmE0MTI4MDc2ZDQ4ZDAuLmYyZTQ0ZmFiZTZkMWE0M2ViNGQ3NzZlZDRiNTk3M2Y5
YjRlN2JmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmNwcApAQCAt
NTcsNiArNTcsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogcmVzdHJpY3Rpb25OYW1lKEhUTUxNZWRp
YVNlc3Npb246OkJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3RyaQogICAgIENBU0UoTm9SZXN0cmlj
dGlvbnMpOwogICAgIENBU0UoUmVxdWlyZVVzZXJHZXN0dXJlRm9yTG9hZCk7CiAgICAgQ0FTRShS
ZXF1aXJlVXNlckdlc3R1cmVGb3JSYXRlQ2hhbmdlKTsKKyAgICBDQVNFKFJlcXVpcmVVc2VyR2Vz
dHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSk7CiAgICAgQ0FTRShSZXF1aXJlVXNlckdlc3R1cmVGb3JG
dWxsc2NyZWVuKTsKICAgICBDQVNFKFJlcXVpcmVQYWdlQ29uc2VudFRvTG9hZE1lZGlhKTsKICAg
ICBDQVNFKFJlcXVpcmVQYWdlQ29uc2VudFRvUmVzdW1lTWVkaWEpOwpAQCAtMTExLDEzICsxMTIs
MTggQEAgdm9pZCBIVE1MTWVkaWFTZXNzaW9uOjpyZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEJl
aGF2aW9yUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW8KICAgICBtX3Jlc3RyaWN0aW9ucyAmPSB+cmVz
dHJpY3Rpb247CiB9CiAKLWJvb2wgSFRNTE1lZGlhU2Vzc2lvbjo6cGxheWJhY2tQZXJtaXR0ZWQo
Y29uc3QgSFRNTE1lZGlhRWxlbWVudCYpIGNvbnN0Citib29sIEhUTUxNZWRpYVNlc3Npb246OnBs
YXliYWNrUGVybWl0dGVkKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiB7
CiAgICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yUmF0ZUNoYW5n
ZSAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKICAgICAg
ICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhU2Vzc2lvbjo6cGxheWJhY2tQZXJtaXR0ZWQgLSByZXR1
cm5pbmcgRkFMU0UiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIGlmICht
X3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSAmJiBl
bGVtZW50Lmhhc0F1ZGlvKCkgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSgpKSB7CisgICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYVNlc3Npb246OnBsYXliYWNr
UGVybWl0dGVkIC0gcmV0dXJuaW5nIEZBTFNFIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNl
c3Npb24uaAppbmRleCA5Y2Y1ZTFjNDUxYmU3OTk4ODRkZDdjNjBiMTU1ZWY1NTdhMGI5NzQwLi4w
ZWY4YTVmZmRhODU4NzcxN2JmNmU4ZWM5YTRkNTRjYmE3Njk4NDM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYVNlc3Npb24uaApAQCAtODMsMTEgKzgzLDEzIEBAIHB1YmxpYzoKICAgICAg
ICAgUmVxdWlyZVVzZXJHZXN0dXJlVG9TaG93UGxheWJhY2tUYXJnZXRQaWNrZXIgPSAxIDw8IDUs
CiAgICAgICAgIFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkID0gIDEgPDwgNiwKICNlbmRp
ZgorICAgICAgICBSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UgPSAxIDw8IDcs
CiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2lnbmVkIEJlaGF2aW9yUmVzdHJpY3Rpb25zOwogCi0g
ICAgdm9pZCBhZGRCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2aW9yUmVzdHJpY3Rpb25zKTsKLSAg
ICB2b2lkIHJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oQmVoYXZpb3JSZXN0cmljdGlvbnMpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIEJlaGF2aW9yUmVzdHJpY3Rpb25zIGJlaGF2aW9yUmVzdHJpY3Rp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9yZXN0cmljdGlvbnM7IH0KKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGFkZEJlaGF2aW9yUmVzdHJpY3Rpb24oQmVoYXZpb3JSZXN0cmljdGlvbnMpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihCZWhhdmlvclJl
c3RyaWN0aW9ucyk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIHNpemVfdCBtYXhp
bXVtTWVkaWFTb3VyY2VCdWZmZXJTaXplKGNvbnN0IFNvdXJjZUJ1ZmZlciYpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBhYmJmODM1OGRkNjliNzZhZDE0NTg2MmFmYjFmMmM5
MDkyODA1NmEzLi4wZjg3ZDc2MGZlZTFlMmIyNjFmMTUzNjMyNThmYTZmNGQzYzcyZThlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTIyLDcgKzEyMiw4IEBAIHN0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRGaXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dCA9IHRydWU7CiBz
dGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Rml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0Rv
Y3VtZW50ID0gdHJ1ZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgPSB0cnVlOwogc3RhdGljIGNvbnN0IGJvb2wg
ZGVmYXVsdE1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUgPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9IHRydWU7CitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBm
YWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2Vy
R2VzdHVyZSA9IHRydWU7CiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U2hvdWxkUmVzcGVjdElt
YWdlT3JpZW50YXRpb24gPSB0cnVlOwogc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEltYWdlU3Vi
c2FtcGxpbmdFbmFibGVkID0gdHJ1ZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTY3JvbGxp
bmdUcmVlSW5jbHVkZXNGcmFtZXMgPSB0cnVlOwpAQCAtMTMyLDYgKzEzMyw3IEBAIHN0YXRpYyBj
b25zdCBib29sIGRlZmF1bHRGaXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQg
PSBmYWxzZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgPSBmYWxzZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1
bHRNZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lID0gdHJ1ZTsKIHN0YXRpYyBjb25zdCBib29sIGRl
ZmF1bHRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9IGZhbHNlOworc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdEF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gZmFsc2U7
CiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24g
PSBmYWxzZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxl
ZCA9IGZhbHNlOwogc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRl
c0ZyYW1lcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggYmIyNjdkZDNlOTM3
Y2FiMzAxNmY0MmY1MDUyMzNmNDBlM2FhYmFjOC4uNWIxZDQ4M2VhZWMyN2NmNDYyODMzNmJlMDI4
YTMzYWQyNWMxOWI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0xMjYsNiArMTI2LDcg
QEAgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSBpbml0aWFsPWZhbHNlCiBhbGxv
d0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCBpbml0aWFsPWZhbHNlCiBhbGxvd1J1bm5pbmdPZklu
c2VjdXJlQ29udGVudCBpbml0aWFsPWZhbHNlCiBtZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2Vz
dHVyZSBpbml0aWFsPWRlZmF1bHRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZQorYXVk
aW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgaW5pdGlhbD1kZWZhdWx0QXVkaW9QbGF5YmFj
a1JlcXVpcmVzVXNlckdlc3R1cmUKIG1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUgaW5pdGlhbD1k
ZWZhdWx0TWVkaWFQbGF5YmFja0FsbG93c0lubGluZQogYWxsb3dzQWx0ZXJuYXRlRnVsbHNjcmVl
biBpbml0aWFsPWRlZmF1bHRBbGxvd3NBbHRlcm5hdGVGdWxsc2NyZWVuCiBwYXNzd29yZEVjaG9F
bmFibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCBiNzg0ODZkOGZmZjFlM2M5MDQzZWQwNzY0NzBiYTMyOTdmNWM0ZmU1Li42NzZiNGM3YmMzZWRk
YTMxNzEzYjlhNWFmMDFhNDExYTVlNDI0N2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCkBAIC0yNDgzLDI1ICsyNDgzLDY3IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRNZWRpYVNl
c3Npb25SZXN0cmljdGlvbnMoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGVTdHJpbmcsIGNvbnN0CiAg
ICAgTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW92ZVJlc3RyaWN0aW9u
KG1lZGlhVHlwZSwgcmVzdHJpY3Rpb25zKTsKIAogICAgIHJlc3RyaWN0aW9ucyA9IE1lZGlhU2Vz
c2lvbk1hbmFnZXI6Ok5vUmVzdHJpY3Rpb25zOwotICAgIAotICAgIGlmIChlcXVhbElnbm9yaW5n
Q2FzZShyZXN0cmljdGlvbnNTdHJpbmcsICJDb25jdXJyZW50UGxheWJhY2tOb3RQZXJtaXR0ZWQi
KSkKLSAgICAgICAgcmVzdHJpY3Rpb25zID0gTWVkaWFTZXNzaW9uTWFuYWdlcjo6Q29uY3VycmVu
dFBsYXliYWNrTm90UGVybWl0dGVkOwotICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmlj
dGlvbnNTdHJpbmcsICJJbmxpbmVWaWRlb1BsYXliYWNrUmVzdHJpY3RlZCIpKQotICAgICAgICBy
ZXN0cmljdGlvbnMgKz0gTWVkaWFTZXNzaW9uTWFuYWdlcjo6SW5saW5lVmlkZW9QbGF5YmFja1Jl
c3RyaWN0ZWQ7Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uc1N0cmluZywg
Ik1ldGFkYXRhUHJlbG9hZGluZ05vdFBlcm1pdHRlZCIpKQotICAgICAgICByZXN0cmljdGlvbnMg
Kz0gTWVkaWFTZXNzaW9uTWFuYWdlcjo6TWV0YWRhdGFQcmVsb2FkaW5nTm90UGVybWl0dGVkOwot
ICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlvbnNTdHJpbmcsICJBdXRvUHJlbG9h
ZGluZ05vdFBlcm1pdHRlZCIpKQotICAgICAgICByZXN0cmljdGlvbnMgKz0gTWVkaWFTZXNzaW9u
TWFuYWdlcjo6QXV0b1ByZWxvYWRpbmdOb3RQZXJtaXR0ZWQ7Ci0gICAgaWYgKGVxdWFsSWdub3Jp
bmdDYXNlKHJlc3RyaWN0aW9uc1N0cmluZywgIkJhY2tncm91bmRQcm9jZXNzUGxheWJhY2tSZXN0
cmljdGVkIikpCi0gICAgICAgIHJlc3RyaWN0aW9ucyArPSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpC
YWNrZ3JvdW5kUHJvY2Vzc1BsYXliYWNrUmVzdHJpY3RlZDsKLSAgICBpZiAoZXF1YWxJZ25vcmlu
Z0Nhc2UocmVzdHJpY3Rpb25zU3RyaW5nLCAiQmFja2dyb3VuZFRhYlBsYXliYWNrUmVzdHJpY3Rl
ZCIpKQotICAgICAgICByZXN0cmljdGlvbnMgKz0gTWVkaWFTZXNzaW9uTWFuYWdlcjo6QmFja2dy
b3VuZFRhYlBsYXliYWNrUmVzdHJpY3RlZDsKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVz
dHJpY3Rpb25zU3RyaW5nLCAiSW50ZXJydXB0ZWRQbGF5YmFja05vdFBlcm1pdHRlZCIpKQotICAg
ICAgICByZXN0cmljdGlvbnMgKz0gTWVkaWFTZXNzaW9uTWFuYWdlcjo6SW50ZXJydXB0ZWRQbGF5
YmFja05vdFBlcm1pdHRlZDsKIAorICAgIFZlY3RvcjxTdHJpbmc+IHJlc3RyaWN0aW9uc0FycmF5
OworICAgIHJlc3RyaWN0aW9uc1N0cmluZy5zcGxpdCgnLCcsIGZhbHNlLCByZXN0cmljdGlvbnNB
cnJheSk7CisgICAgZm9yIChhdXRvJiByZXN0cmljdGlvblN0cmluZyA6IHJlc3RyaWN0aW9uc0Fy
cmF5KSB7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlvblN0cmluZywg
IkNvbmN1cnJlbnRQbGF5YmFja05vdFBlcm1pdHRlZCIpKQorICAgICAgICAgICAgcmVzdHJpY3Rp
b25zIHw9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6OkNvbmN1cnJlbnRQbGF5YmFja05vdFBlcm1pdHRl
ZDsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiSW5s
aW5lVmlkZW9QbGF5YmFja1Jlc3RyaWN0ZWQiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8
PSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpJbmxpbmVWaWRlb1BsYXliYWNrUmVzdHJpY3RlZDsKKyAg
ICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiTWV0YWRhdGFQ
cmVsb2FkaW5nTm90UGVybWl0dGVkIikpCisgICAgICAgICAgICByZXN0cmljdGlvbnMgfD0gTWVk
aWFTZXNzaW9uTWFuYWdlcjo6TWV0YWRhdGFQcmVsb2FkaW5nTm90UGVybWl0dGVkOworICAgICAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25TdHJpbmcsICJBdXRvUHJlbG9hZGlu
Z05vdFBlcm1pdHRlZCIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IE1lZGlhU2Vzc2lv
bk1hbmFnZXI6OkF1dG9QcmVsb2FkaW5nTm90UGVybWl0dGVkOworICAgICAgICBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2UocmVzdHJpY3Rpb25TdHJpbmcsICJCYWNrZ3JvdW5kUHJvY2Vzc1BsYXliYWNr
UmVzdHJpY3RlZCIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IE1lZGlhU2Vzc2lvbk1h
bmFnZXI6OkJhY2tncm91bmRQcm9jZXNzUGxheWJhY2tSZXN0cmljdGVkOworICAgICAgICBpZiAo
ZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25TdHJpbmcsICJCYWNrZ3JvdW5kVGFiUGxheWJh
Y2tSZXN0cmljdGVkIikpCisgICAgICAgICAgICByZXN0cmljdGlvbnMgfD0gTWVkaWFTZXNzaW9u
TWFuYWdlcjo6QmFja2dyb3VuZFRhYlBsYXliYWNrUmVzdHJpY3RlZDsKKyAgICAgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiSW50ZXJydXB0ZWRQbGF5YmFja05v
dFBlcm1pdHRlZCIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IE1lZGlhU2Vzc2lvbk1h
bmFnZXI6OkludGVycnVwdGVkUGxheWJhY2tOb3RQZXJtaXR0ZWQ7CisgICAgfQogICAgIE1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5hZGRSZXN0cmljdGlvbihtZWRpYVR5cGUs
IHJlc3RyaWN0aW9ucyk7CiB9Ci0gICAgCisKK3ZvaWQgSW50ZXJuYWxzOjpzZXRNZWRpYUVsZW1l
bnRSZXN0cmljdGlvbnMoSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCwgY29uc3QgU3RyaW5nJiBy
ZXN0cmljdGlvbnNTdHJpbmcsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZWxlbWVu
dCkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIEhUTUxNZWRpYVNlc3Npb246OkJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3Ry
aWN0aW9ucyA9IGVsZW1lbnQtPm1lZGlhU2Vzc2lvbigpLmJlaGF2aW9yUmVzdHJpY3Rpb25zKCk7
CisgICAgZWxlbWVudC0+bWVkaWFTZXNzaW9uKCkucmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihy
ZXN0cmljdGlvbnMpOworCisgICAgcmVzdHJpY3Rpb25zID0gSFRNTE1lZGlhU2Vzc2lvbjo6Tm9S
ZXN0cmljdGlvbnM7CisKKyAgICBWZWN0b3I8U3RyaW5nPiByZXN0cmljdGlvbnNBcnJheTsKKyAg
ICByZXN0cmljdGlvbnNTdHJpbmcuc3BsaXQoJywnLCBmYWxzZSwgcmVzdHJpY3Rpb25zQXJyYXkp
OworICAgIGZvciAoYXV0byYgcmVzdHJpY3Rpb25TdHJpbmcgOiByZXN0cmljdGlvbnNBcnJheSkg
eworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25TdHJpbmcsICJOb1Jl
c3RyaWN0aW9ucyIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IEhUTUxNZWRpYVNlc3Np
b246Ok5vUmVzdHJpY3Rpb25zOworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJp
Y3Rpb25TdHJpbmcsICJSZXF1aXJlVXNlckdlc3R1cmVGb3JMb2FkIikpCisgICAgICAgICAgICBy
ZXN0cmljdGlvbnMgfD0gSFRNTE1lZGlhU2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlRm9yTG9h
ZDsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiUmVx
dWlyZVVzZXJHZXN0dXJlRm9yUmF0ZUNoYW5nZSIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25z
IHw9IEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZUZvclJhdGVDaGFuZ2U7Cisg
ICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlvblN0cmluZywgIlJlcXVpcmVV
c2VyR2VzdHVyZUZvckZ1bGxzY3JlZW4iKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBI
VE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVGb3JGdWxsc2NyZWVuOworICAgICAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25TdHJpbmcsICJSZXF1aXJlUGFnZUNv
bnNlbnRUb0xvYWRNZWRpYSIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IEhUTUxNZWRp
YVNlc3Npb246OlJlcXVpcmVQYWdlQ29uc2VudFRvTG9hZE1lZGlhOworICAgICAgICBpZiAoZXF1
YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25TdHJpbmcsICJSZXF1aXJlUGFnZUNvbnNlbnRUb1Jl
c3VtZU1lZGlhIikpCisgICAgICAgICAgICByZXN0cmljdGlvbnMgfD0gSFRNTE1lZGlhU2Vzc2lv
bjo6UmVxdWlyZVBhZ2VDb25zZW50VG9SZXN1bWVNZWRpYTsKKyNpZiBFTkFCTEUoV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKQorICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rp
b25TdHJpbmcsICJSZXF1aXJlVXNlckdlc3R1cmVUb1Nob3dQbGF5YmFja1RhcmdldFBpY2tlciIp
KQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVV
c2VyR2VzdHVyZVRvU2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOworICAgICAgICBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2UocmVzdHJpY3Rpb25TdHJpbmcsICJXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNh
YmxlZCIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IEhUTUxNZWRpYVNlc3Npb246Oldp
cmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkOworI2VuZGlmCisgICAgICAgIGlmIChlcXVhbEln
bm9yaW5nQ2FzZShyZXN0cmljdGlvblN0cmluZywgIlJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlv
UmF0ZUNoYW5nZSIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IEhUTUxNZWRpYVNlc3Np
b246OlJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZTsKKyAgICB9CisgICAgZWxl
bWVudC0+bWVkaWFTZXNzaW9uKCkuYWRkQmVoYXZpb3JSZXN0cmljdGlvbihyZXN0cmljdGlvbnMp
OworfQorCiB2b2lkIEludGVybmFsczo6cG9zdFJlbW90ZUNvbnRyb2xDb21tYW5kKGNvbnN0IFN0
cmluZyYgY29tbWFuZFN0cmluZywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTWVkaWFTZXNz
aW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUgY29tbWFuZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCmluZGV4IDdkNzk1MGJkZjQ4Zjk4YTM0NzA1NTMxZTM3MmJmN2Y5NmJlNzhmZmUu
LjBmYWExYzE5MjNmNTM2NTQ0ZjlhMmU1YmFkOWI0MDJjOTUxM2U0N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNz
IEVsZW1lbnQ7CiBjbGFzcyBGaWxlOwogY2xhc3MgRnJhbWU7CitjbGFzcyBIVE1MTWVkaWFFbGVt
ZW50OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsRHVtbXk7CiBjbGFzcyBJbnNwZWN0
b3JGcm9udGVuZENsaWVudER1bW15OwogY2xhc3MgSW50ZXJuYWxTZXR0aW5nczsKQEAgLTM2MSw2
ICszNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91
bmQoKSBjb25zdDsKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyQmFja2dyb3VuZCgpIGNv
bnN0OwogICAgIHZvaWQgc2V0TWVkaWFTZXNzaW9uUmVzdHJpY3Rpb25zKGNvbnN0IFN0cmluZyYg
bWVkaWFUeXBlLCBjb25zdCBTdHJpbmcmIHJlc3RyaWN0aW9ucywgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHZvaWQgc2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKEhUTUxNZWRpYUVsZW1lbnQqLCBj
b25zdCBTdHJpbmcmIHJlc3RyaWN0aW9ucywgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgcG9z
dFJlbW90ZUNvbnRyb2xDb21tYW5kKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBib29sIGVsZW1lbnRJc0Jsb2NraW5nRGlzcGxheVNsZWVwKEVsZW1lbnQqKSBjb25zdDsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDBhZmZjYmJlOTRiNTk4
MTU5NWMxNWY0N2E3YzhlYTk5MDhlMGQ5YWIuLmNkODk5ZDMyZmVjMWMwYjZlMmY5NTAxMWY2NWNi
ZTRkMjFjM2Y0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTMzMCw2
ICszMzAsNyBAQCBlbnVtIFJlc291cmNlTG9hZFByaW9yaXR5IHsKICAgICBbQ29uZGl0aW9uYWw9
VklERU9dIHZvaWQgYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiAgICAgW0NvbmRp
dGlvbmFsPVZJREVPXSB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyQmFja2dyb3VuZCgpOwogICAg
IFtDb25kaXRpb25hbD1WSURFTywgUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldE1lZGlhU2Vzc2lv
blJlc3RyaWN0aW9ucyhET01TdHJpbmcgbWVkaWFUeXBlLCBET01TdHJpbmcgcmVzdHJpY3Rpb25z
KTsKKyAgICBbQ29uZGl0aW9uYWw9VklERU8sIFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRNZWRp
YUVsZW1lbnRSZXN0cmljdGlvbnMoSFRNTE1lZGlhRWxlbWVudCBlbGVtZW50LCBET01TdHJpbmcg
cmVzdHJpY3Rpb25zKTsKICAgICBbQ29uZGl0aW9uYWw9VklERU8sIFJhaXNlc0V4Y2VwdGlvbl0g
dm9pZCBwb3N0UmVtb3RlQ29udHJvbENvbW1hbmQoRE9NU3RyaW5nIGNvbW1hbmQpOwogICAgIAog
ICAgIFtDb25kaXRpb25hbD1WSURFT10gdm9pZCBzaW11bGF0ZVN5c3RlbVNsZWVwKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNDFjYTk4YWVjYzc0YmUyZDM4OWU1YjEyZTVkZTc5OTk1MTM3YzZhMS4uN2U3MTEzZmJjNDFl
Y2FlOTMxMGE5NzM4ZTYxNTNhZWQ4NzRiNDkxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1
LTA0LTA3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBh
IHNldHRpbmcgJiByZXN0cmljdGlvbiB3aGljaCBwcmV2ZW50cyBub24taW50ZXJhY3RpdnRlIHBs
YXliYWNrIG9mIGF1ZGlibGUgbWVkaWEgZWxlbWVudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM0ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL2F1ZGlvLXBsYXliYWNrLXJlc3RyaWN0
aW9uLWF1dG9wbGF5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL2F1ZGlvLXBsYXliYWNr
LXJlc3RyaWN0aW9uLXBsYXkuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdmlkZW8tdGVz
dC5qczoKKyAgICAgICAgKHNldENhcHRpb25EaXNwbGF5TW9kZSk6CisgICAgICAgIChydW5XaXRo
S2V5RG93bi5ldmVudE5hbWUud2luZG93LnRlc3RSdW5uZXIuZXZlbnRTZW5kZXIua2V5RG93bi5z
dHJpbmdfYXBwZWFyZWRfaGVyZS5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aHVuayk6CisgICAgICAg
IChydW5XaXRoS2V5RG93bik6CisKIDIwMTUtMDQtMDUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIFtDb250ZW50IEZpbHRlcmluZ10gQWRkIHNvbWUgYWRkaXRpb25h
bCB1bmJsb2NrIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1wbGF5
YmFjay1yZXN0cmljdGlvbi1hdXRvcGxheS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8t
cGxheWJhY2stcmVzdHJpY3Rpb24tYXV0b3BsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzMxMTE2YTA3
NmZmYWJkZmNlMGE3YWM4MzE3MWMwYjc4NGE4OWJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvYXVkaW8tcGxheWJhY2stcmVzdHJpY3Rpb24tYXV0b3BsYXkuaHRtbApAQCAt
MCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxl
PmF1ZGlvLXBsYXliYWNrLXJlc3RyaWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz1tZWRp
YS1maWxlLmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3Jp
cHQ+CisKKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAg
ICAgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYXVkaW8nKVswXTsKKwor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIHJ1bignaW50ZXJuYWxz
LnNldE1lZGlhRWxlbWVudFJlc3RyaWN0aW9ucyh2aWRlbywgIlJlcXVpcmVVc2VyR2VzdHVyZUZv
ckF1ZGlvUmF0ZUNoYW5nZSIpJyk7CisKKyAgICAgICAgd2FpdEZvckV2ZW50QW5kRmFpbCgnZXJy
b3InKTsKKyAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGNhbnBsYXl0aHJv
dWdoKTsKKyAgICAgICAgcnVuKCJ2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCdhdWRpbycsICdj
b250ZW50L3Rlc3QnKSIpOworICAgIH0gICAgCisKKyAgICBmdW5jdGlvbiBjYW5wbGF5dGhyb3Vn
aCgpCisgICAgeworICAgICAgICBydW4oInNldFRpbWVvdXQodGltZW91dCwgMTAwKSIpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHRpbWVvdXQoKQorICAgIHsKKyAgICAgICAgdGVzdEV4cGVjdGVk
KCd2aWRlby5wYXVzZWQnLCB0cnVlKTsKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0KKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRl
c3QgdGhhdCwgd2hlbiBSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UgaXMgc2V0
LCBzdGFydGluZyBwbGF5YmFjayBvZiBhbiBhdWRpbyBmaWxlIHJlcXVpcmVzIGEgdXNlciBnZXN0
dXJlLjwvcD4KKyAgICA8YXVkaW8gY29udHJvbHMgYXV0b3BsYXk+PC9hdWRpbz4KKzwvYm9keT4K
KzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheWJhY2st
cmVzdHJpY3Rpb24tcGxheS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheWJhY2st
cmVzdHJpY3Rpb24tcGxheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmZmYzZDM2ZGNmNmQxODRjOTg3ZjFi
MThiZTdkMDU2Y2NkZGZhMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9h
dWRpby1wbGF5YmFjay1yZXN0cmljdGlvbi1wbGF5Lmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5hdWRpby1wbGF5YmFjay1y
ZXN0cmljdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorCisgICAgPHNjcmlw
dD4KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAgIHZpZGVvID0gZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2F1ZGlvJylbMF07CisKKyAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRNZWRpYUVsZW1lbnRS
ZXN0cmljdGlvbnModmlkZW8sICJSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2Ui
KScpOworCisgICAgICAgIHdhaXRGb3JFdmVudEFuZEZhaWwoJ2Vycm9yJyk7CisgICAgICAgIHdh
aXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBjYW5wbGF5dGhyb3VnaCk7CisgICAgICAgIHJ1
bigidmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgnYXVkaW8nLCAnY29udGVudC90ZXN0JykiKTsK
KyAgICB9ICAgIAorCisgICAgZnVuY3Rpb24gY2FucGxheXRocm91Z2goKQorICAgIHsKKyAgICAg
ICAgcnVuKCJ2aWRlby5wbGF5KCkiKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5wYXVz
ZWQnLCB0cnVlKTsKKyAgICAgICAgcnVuV2l0aEtleURvd24ocGxheVdpdGhLZXlEb3duKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBwbGF5V2l0aEtleURvd24oKQorICAgIHsKKyAgICAgICAgY29u
c29sZVdyaXRlKCdSdW5uaW5nIHdpdGgga2V5RG93bi4nKTsKKyAgICAgICAgcnVuKCJ2aWRlby5w
bGF5KCkiKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5wYXVzZWQnLCBmYWxzZSk7Cisg
ICAgICAgIGVuZFRlc3QoKTsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0IHRoYXQsIHdoZW4gUmVxdWlyZVVzZXJH
ZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIGlzIHNldCwgc3RhcnRpbmcgcGxheWJhY2sgb2YgYW4g
YXVkaW8gZmlsZSByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZS48L3A+CisgICAgPGF1ZGlvIGNvbnRy
b2xzIGF1dG9wbGF5PjwvYXVkaW8+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10
ZXN0LmpzCmluZGV4IGFkMzNkMWNiMTg0MDlkMDE2MWYyZDc3NGZiZDNhZTY3ZGU3OGE2YTQuLjQx
MDBkNmJlMTcyM2Y4NWM4OTY0YjAzNThiMjAwY2EwYzRkODJjOWQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
dGVzdC5qcwpAQCAtMzgyLDUgKzM4MiwyNCBAQCBmdW5jdGlvbiBzZXRDYXB0aW9uRGlzcGxheU1v
ZGUobW9kZSkKICAgICAgICAgaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZShtb2RlKTsK
ICAgICBlbHNlCiAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPjxiPioqIFRoaXMgdGVzdCBvbmx5
IHdvcmtzIGluIERSVCEgKio8IiArICIvYj48YnI+Iik7Cit9CisKK2Z1bmN0aW9uIHJ1bldpdGhL
ZXlEb3duKGZuKSAKK3sKKyAgICAvLyBGSVhNRTogV0tUUiBkb2VzIG5vdCB5ZXQgc3VwcG9ydCB0
aGUga2V5RG93bigpIG1lc3NhZ2UuICBEbyBhIG1vdXNlRG93biBoZXJlCisgICAgLy8gaW5zdGVh
ZCB1bnRpbCBrZXlEb3duIHN1cHBvcnQgaXMgYWRkZWQuCisgICAgdmFyIGV2ZW50TmFtZSA9ICF3
aW5kb3cudGVzdFJ1bm5lciB8fCBldmVudFNlbmRlci5rZXlEb3duID8gJ2tleXByZXNzJyA6ICdt
b3VzZWRvd24nCisKKyAgICBmdW5jdGlvbiB0aHVuaygpIHsKKyAgICAgICAgZG9jdW1lbnQucmVt
b3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIHRodW5rLCBmYWxzZSk7CisgICAgICAgIGZuKCk7
CisgICAgfQorICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCB0aHVuaywg
ZmFsc2UpOwogCi19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICBpZiAoZXZlbnRTZW5kZXIua2V5RG93bikKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLmtleURvd24oIiAiLCBbXSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIH0KK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250299</attachid>
            <date>2015-04-07 14:17:40 -0700</date>
            <delta_ts>2015-04-09 08:35:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-143486-20150407141650.patch</filename>
            <type>text/plain</type>
            <size>20819</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZmNDU3YzkwYzk3ODA0
M2MxMmU0MWVjOGE3MTg1N2M3OWMxNDQwNy4uNjlhZjFiODg3ODdhNTc0MTk4NWM5NDJjMzk1ZDY5
YTlmMWM3NDA3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE1LTA0LTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIHNldHRpbmcgJiBy
ZXN0cmljdGlvbiB3aGljaCBwcmV2ZW50cyBub24taW50ZXJhY3RpdnRlIHBsYXliYWNrIG9mIGF1
ZGlibGUgbWVkaWEgZWxlbWVudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDM0ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0czogbWVkaWEvYXVkaW8tcGxheWJhY2stcmVzdHJpY3Rpb24tYXV0
b3BsYXkuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvYXVkaW8tcGxheWJhY2stcmVzdHJpY3Rp
b24tcGxheS5odG1sCisKKyAgICAgICAgVG8gYWxsb3cgY2xpZW50cyB3aG8gd2FudCB0byBhbGxv
dyBub24tdXNlci1pbnRlcmFjdGl2ZSB2aWRlby1vbmx5IHBsYXliYWNrLCBidXQgc3RpbGwKKyAg
ICAgICAgcmVzdHJpY3QgcGxheWJhY2sgb2YgYXVkaWJsZSBtZWRpYSBlbGVtZW50cywgYWRkIGEg
bmV3IHNldHRpbmcgYW5kIG1hdGNoaW5nIHJlc3RyaWN0aW9uCisgICAgICAgIHdoaWNoIGRpc2Fs
bG93cyBwbGF5YmFjayBvZiBtZWRpYSBlbGVtZW50cyBjb250YWluaW5nIGF1ZGlibGUgY2hhcmFj
dGVyaXN0aWNzLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOiBTZXQgdGhl
IFJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZQorICAgICAgICAgICAgcmVzdHJp
Y3Rpb24gaWYgdGhlIGF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKCkgc2V0dGluZyBp
cyBzZXQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZSk6IERyaXZlLWJ5IGZpeC4gTW92ZSB0aGUgb3BlbmluZyBicmFjZQorICAgICAgICAgICAgb3V0
IG9mIHRoZSAjaWYsIGFzIHRoaXMgY29uZnVzZXMgdGhlIGhlY2sgb3V0IG9mIGRpZmYgYW5kIG1h
a2VzIGFsbCBzdWJzZXF1ZW50CisgICAgICAgICAgICBjaGFuZ2VzIGFwcGVhciB0byBiZSB3aXRo
aW4gSFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjphdXRvcGxheSk6IFJlbW92ZSB0aGUgcmVzdHJpY3Rpb24gY2hlY2sg
ZnJvbSB3aXRoaW4gYXV0b3BsYXkoKS4KKyAgICAgICAgICAgIEl0IGlzIGNoZWNrZWQgYWdhaW4g
aW1tZWRpYXRlbHkgYWZ0ZXIgZXZlcnkgYXV0b3BsYXkoKSBjYWxsIHNpdGUuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFsKTogUmVtb3ZlIHRoZSBpT1Mt
b25seSAjaWYuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckRpZEFkZEF1ZGlvVHJhY2spOiBDaGVjayB3aGV0aGVyIHBsYXliYWNrCisgICAgICAgICAgICBp
cyBwZXJtaXR0ZWQsIGFuZCBpZiBub3QsIHBhdXNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0
aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXN0cmljdGlvbk5hbWUpOiBTaW5j
ZSBCZWhhdmlvclJlc3RyaWN0aW9ucyBpcyBhIGJpdGZpZWxkLCBjaGVjayBlYWNoIGJpdAorICAg
ICAgICAgICAgaW5kaXZpZHVhbGx5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhU2Vzc2lv
bjo6cmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbik6IEhhbmRsZSBSZXF1aXJlVXNlckdlc3R1cmVG
b3JBdWRpb1JhdGVDaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFTZXNzaW9uOjpw
bGF5YmFja1Blcm1pdHRlZCk6IENoZWNrIHdoZXRoZXIgdGhlIGVsZW1lbnQgaGFzIGF1ZGlvIGFu
ZCAKKyAgICAgICAgICAgIGF1ZGlvIHBsYXliYWNrIGlzIHJlc3RyaWN0ZWQsIGFuZCByZXR1cm4g
ZmFsc2UgaWYgc28uCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmg6CisgICAgICAg
ICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5pbjoKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OnNldE1lZGlhU2Vzc2lvblJlc3RyaWN0aW9ucyk6IEFkZGVkLiAKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKTogQWRkZWQuCisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6
CisKIDIwMTUtMDMtMzEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01hY10gU29uZ3phLmNvbSBmYWlscyB0byBwbGF5OyBRVEtpdCBwYXRoIHJlcG9ydHMgaXQg
aXMgYWx3YXlzICJzZWVraW5nIi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IDRmNTk1MTMwNjQ0NWM2ZWM1ZmE4YWIyMWQ3ZmI3YTg2OTFlOTUyMmQuLmFhZDVk
ZDJmNzYxMTc1ZDE1NDZjYzUzYTAxM2Y1YTAyMDQ2MGYwMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMzYyLDYgKzM2Miw5IEBAIEhUTUxNZWRpYUVsZW1l
bnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtCiAgICAgfQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAKKyAgICBpZiAoc2V0
dGluZ3MgJiYgc2V0dGluZ3MtPmF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKCkpCisg
ICAgICAgIG1fbWVkaWFTZXNzaW9uLT5hZGRCZWhhdmlvclJlc3RyaWN0aW9uKEhUTUxNZWRpYVNl
c3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSk7CisKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAgICAgaWYgKGRvY3VtZW50LnBhZ2UoKSkKICAgICAgICAgbV9jYXB0
aW9uRGlzcGxheU1vZGUgPSBkb2N1bWVudC5wYWdlKCktPmdyb3VwKCkuY2FwdGlvblByZWZlcmVu
Y2VzKCktPmNhcHRpb25EaXNwbGF5TW9kZSgpOwpAQCAtNTIwLDExICs1MjMsMTIgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9taWNTdHIKICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIC8vIE5vdGUsIHVu
bGVzcyB0aGUgcmVzdHJpY3Rpb24gb24gcmVxdWlyaW5nIHVzZXIgYWN0aW9uIGhhcyBiZWVuIHJl
bW92ZWQsCiAgICAgICAgIC8vIGRvIG5vdCBiZWdpbiBkb3dubG9hZGluZyBkYXRhIG9uIGlPUy4K
LSAgICAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSAmJiBtX21lZGlhU2Vzc2lvbi0+ZGF0YUxvYWRp
bmdQZXJtaXR0ZWQoKnRoaXMpKSB7CisgICAgICAgIGlmICghdmFsdWUuaXNOdWxsKCkgJiYgbV9t
ZWRpYVNlc3Npb24tPmRhdGFMb2FkaW5nUGVybWl0dGVkKCp0aGlzKSkKICNlbHNlCiAgICAgICAg
IC8vIFRyaWdnZXIgYSByZWxvYWQsIGFzIGxvbmcgYXMgdGhlICdzcmMnIGF0dHJpYnV0ZSBpcyBw
cmVzZW50LgotICAgICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKSB7CisgICAgICAgIGlmICghdmFs
dWUuaXNOdWxsKCkpCiAjZW5kaWYKKyAgICAgICAgewogICAgICAgICAgICAgY2xlYXJNZWRpYVBs
YXllcihMb2FkTWVkaWFSZXNvdXJjZSk7CiAgICAgICAgICAgICBzY2hlZHVsZURlbGF5ZWRBY3Rp
b24oTG9hZE1lZGlhUmVzb3VyY2UpOwogICAgICAgICB9CkBAIC0yNjg1LDE2ICsyNjg5LDYgQEAg
Ym9vbCBIVE1MTWVkaWFFbGVtZW50OjplbmRlZCgpIGNvbnN0CiAKIGJvb2wgSFRNTE1lZGlhRWxl
bWVudDo6YXV0b3BsYXkoKSBjb25zdAogewotI2lmIFBMQVRGT1JNKElPUykKLSAgICAvLyBVbmxl
c3MgdGhlIHJlc3RyaWN0aW9uIG9uIHJlcXVpcmluZyB1c2VyIGFjdGlvbnMgaGFzIGJlZW4gbGlm
dGVkLCB3ZSBkbyBub3QKLSAgICAvLyBhbGxvdyBwbGF5YmFjayB0byBzdGFydCBqdXN0IGJlY2F1
c2UgdGhlIHBhZ2UgaGFzICJhdXRvcGxheSIuIFRoZXkgYXJlIGVpdGhlcgotICAgIC8vIGxpZnRl
ZCB0aHJvdWdoIFNldHRpbmdzLCBvciBvbmNlIHRoZSB1c2VyIGV4cGxpY3RseSBjYWxscyBsb2Fk
KCkgb3IgcGxheSgpCi0gICAgLy8gYmVjYXVzZSB0aGV5IGhhdmUgT0snZWQgdXMgbG9hZGluZyBk
YXRhLiBUaGlzIGFsbG93cyBwbGF5YmFjayB0byBjb250aW51ZSBpZgotICAgIC8vIHRoZSBVUkwg
aXMgY2hhbmdlZCB3aGlsZSB0aGUgbW92aWUgaXMgcGxheWluZy4KLSAgICBpZiAoIW1fbWVkaWFT
ZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRlZCgqdGhpcykgfHwgIW1fbWVkaWFTZXNzaW9uLT5kYXRh
TG9hZGluZ1Blcm1pdHRlZCgqdGhpcykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgot
CiAgICAgcmV0dXJuIGZhc3RIYXNBdHRyaWJ1dGUoYXV0b3BsYXlBdHRyKTsKIH0KIApAQCAtMjc4
NywxMiArMjc4MSwxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlSW50ZXJuYWwoKQog
ICAgIAogICAgIC8vIDQuOC4xMC45LiBQbGF5aW5nIHRoZSBtZWRpYSByZXNvdXJjZQogICAgIGlm
ICghbV9wbGF5ZXIgfHwgbV9uZXR3b3JrU3RhdGUgPT0gTkVUV09SS19FTVBUWSkgewotI2lmIFBM
QVRGT1JNKElPUykKICAgICAgICAgLy8gVW5sZXNzIHRoZSByZXN0cmljdGlvbiBvbiBtZWRpYSBy
ZXF1aXJpbmcgdXNlciBhY3Rpb24gaGFzIGJlZW4gbGlmdGVkCiAgICAgICAgIC8vIGRvbid0IHRy
aWdnZXIgbG9hZGluZyBpZiBhIHNjcmlwdCBjYWxscyBwYXVzZSgpLgogICAgICAgICBpZiAoIW1f
bWVkaWFTZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRlZCgqdGhpcykpCiAgICAgICAgICAgICByZXR1
cm47Ci0jZW5kaWYKICAgICAgICAgc2NoZWR1bGVEZWxheWVkQWN0aW9uKExvYWRNZWRpYVJlc291
cmNlKTsKICAgICB9CiAKQEAgLTMxODUsNiArMzE3Nyw5IEBAIGRvdWJsZSBIVE1MTWVkaWFFbGVt
ZW50OjpwZXJjZW50TG9hZGVkKCkgY29uc3QKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckRpZEFkZEF1ZGlvVHJhY2soUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gcHJw
VHJhY2spCiB7CisgICAgaWYgKGlzUGxheWluZygpICYmICFtX21lZGlhU2Vzc2lvbi0+cGxheWJh
Y2tQZXJtaXR0ZWQoKnRoaXMpKQorICAgICAgICBwYXVzZUludGVybmFsKCk7CisKICAgICBpZiAo
IVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Via2l0VmlkZW9UcmFj
a0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00MzE1LDYgKzQzMTAsOSBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKE1lZGlh
UGxheWVyKikKICAgICBpZiAocmVuZGVyZXIoKSkKICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRl
RnJvbUVsZW1lbnQoKTsKIAorICAgIGlmIChpc1BsYXlpbmcoKSAmJiAhbV9tZWRpYVNlc3Npb24t
PnBsYXliYWNrUGVybWl0dGVkKCp0aGlzKSkKKyAgICAgICAgcGF1c2VJbnRlcm5hbCgpOworCiAg
ICAgZG9jdW1lbnQoKS51cGRhdGVJc1BsYXlpbmdBdWRpbygpOwogCiAgICAgZW5kUHJvY2Vzc2lu
Z01lZGlhUGxheWVyQ2FsbGJhY2soKTsKQEAgLTU4MzEsMTIgKzU4MjksMTYgQEAgZG91YmxlIEhU
TUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgY29uc3QK
IAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRl
ckZpcnN0VXNlckdlc3R1cmUoKQogewotICAgIG1fbWVkaWFTZXNzaW9uLT5yZW1vdmVCZWhhdmlv
clJlc3RyaWN0aW9uKEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZUZvckxvYWQp
OwotICAgIG1fbWVkaWFTZXNzaW9uLT5yZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEhUTUxNZWRp
YVNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZUZvclJhdGVDaGFuZ2UpOwotICAgIG1fbWVkaWFT
ZXNzaW9uLT5yZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEhUTUxNZWRpYVNlc3Npb246OlJlcXVp
cmVVc2VyR2VzdHVyZUZvckZ1bGxzY3JlZW4pOworICAgIEhUTUxNZWRpYVNlc3Npb246OkJlaGF2
aW9yUmVzdHJpY3Rpb24gcmVzdHJpY3Rpb25zVG9SZW1vdmUgPSBIVE1MTWVkaWFTZXNzaW9uOjpS
ZXF1aXJlVXNlckdlc3R1cmVGb3JMb2FkCisgICAgICAgIHwgSFRNTE1lZGlhU2Vzc2lvbjo6UmVx
dWlyZVVzZXJHZXN0dXJlRm9yUmF0ZUNoYW5nZQorICAgICAgICB8IEhUTUxNZWRpYVNlc3Npb246
OlJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZQorICAgICAgICB8IEhUTUxNZWRp
YVNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZQorICAgICAgICB8
IEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZUZvckZ1bGxzY3JlZW4KICNpZiBF
TkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQotICAgIG1fbWVkaWFTZXNzaW9uLT5yZW1v
dmVCZWhhdmlvclJlc3RyaWN0aW9uKEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVy
ZVRvU2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKTsKKyAgICAgICAgfCBIVE1MTWVkaWFTZXNzaW9u
OjpSZXF1aXJlVXNlckdlc3R1cmVUb1Nob3dQbGF5YmFja1RhcmdldFBpY2tlcgogI2VuZGlmCisg
ICAgICAgIDsKKyAgICBtX21lZGlhU2Vzc2lvbi0+cmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihy
ZXN0cmljdGlvbnNUb1JlbW92ZSk7CiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU2Vzc2lvbi5jcHAKaW5kZXggMDJjZGZiNmM0N2E5OGU5
NThmZTQyOGI1ZWZiYTQxMjgwNzZkNDhkMC4uNWFiMTgzOTg1YTJjNWFjNTNhNDFiOTk5OTZiODQ3
MWNhZjFhYzkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTZXNz
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNlc3Npb24uY3BwCkBA
IC01MCwxMyArNTAsMjAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmICFMT0dfRElTQUJM
RUQKLXN0YXRpYyBjb25zdCBjaGFyKiByZXN0cmljdGlvbk5hbWUoSFRNTE1lZGlhU2Vzc2lvbjo6
QmVoYXZpb3JSZXN0cmljdGlvbnMgcmVzdHJpY3Rpb24pCitzdGF0aWMgU3RyaW5nIHJlc3RyaWN0
aW9uTmFtZShIVE1MTWVkaWFTZXNzaW9uOjpCZWhhdmlvclJlc3RyaWN0aW9ucyByZXN0cmljdGlv
bikKIHsKLSNkZWZpbmUgQ0FTRShyZXN0cmljdGlvbikgY2FzZSBIVE1MTWVkaWFTZXNzaW9uOjpy
ZXN0cmljdGlvbjogcmV0dXJuICNyZXN0cmljdGlvbgotICAgIHN3aXRjaCAocmVzdHJpY3Rpb24p
IHsKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3RyaWN0aW9uQnVpbGRlcjsKKyNkZWZpbmUgQ0FTRShy
ZXN0cmljdGlvblR5cGUpIFwKKyAgICBpZiAocmVzdHJpY3Rpb24gJiBIVE1MTWVkaWFTZXNzaW9u
OjpyZXN0cmljdGlvblR5cGUpIHsgXAorICAgICAgICBpZiAoIXJlc3RyaWN0aW9uQnVpbGRlci5p
c0VtcHR5KCkpIFwKKyAgICAgICAgICAgIHJlc3RyaWN0aW9uQnVpbGRlci5hcHBlbmQoIiwgIik7
IFwKKyAgICAgICAgcmVzdHJpY3Rpb25CdWlsZGVyLmFwcGVuZCgjcmVzdHJpY3Rpb25UeXBlKTsg
XAorICAgIH0gXAorCiAgICAgQ0FTRShOb1Jlc3RyaWN0aW9ucyk7CiAgICAgQ0FTRShSZXF1aXJl
VXNlckdlc3R1cmVGb3JMb2FkKTsKICAgICBDQVNFKFJlcXVpcmVVc2VyR2VzdHVyZUZvclJhdGVD
aGFuZ2UpOworICAgIENBU0UoUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKTsK
ICAgICBDQVNFKFJlcXVpcmVVc2VyR2VzdHVyZUZvckZ1bGxzY3JlZW4pOwogICAgIENBU0UoUmVx
dWlyZVBhZ2VDb25zZW50VG9Mb2FkTWVkaWEpOwogICAgIENBU0UoUmVxdWlyZVBhZ2VDb25zZW50
VG9SZXN1bWVNZWRpYSk7CkBAIC02NCwxMCArNzEsOSBAQCBzdGF0aWMgY29uc3QgY2hhciogcmVz
dHJpY3Rpb25OYW1lKEhUTUxNZWRpYVNlc3Npb246OkJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3Ry
aQogICAgIENBU0UoUmVxdWlyZVVzZXJHZXN0dXJlVG9TaG93UGxheWJhY2tUYXJnZXRQaWNrZXIp
OwogICAgIENBU0UoV2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQpOwogI2VuZGlmCi0gICAg
fQorICAgIENBU0UoUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKTsKIAotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAiIjsKKyAgICByZXR1cm4gcmVzdHJp
Y3Rpb25CdWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAjZW5kaWYKIApAQCAtMTAxLDIzICsxMDcsMjgg
QEAgdm9pZCBIVE1MTWVkaWFTZXNzaW9uOjp1bnJlZ2lzdGVyV2l0aERvY3VtZW50KERvY3VtZW50
JiBkb2N1bWVudCkKIAogdm9pZCBIVE1MTWVkaWFTZXNzaW9uOjphZGRCZWhhdmlvclJlc3RyaWN0
aW9uKEJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9uKQogewotICAgIExPRyhNZWRpYSwg
IkhUTUxNZWRpYVNlc3Npb246OmFkZEJlaGF2aW9yUmVzdHJpY3Rpb24gLSBhZGRpbmcgJXMiLCBy
ZXN0cmljdGlvbk5hbWUocmVzdHJpY3Rpb24pKTsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFT
ZXNzaW9uOjphZGRCZWhhdmlvclJlc3RyaWN0aW9uIC0gYWRkaW5nICVzIiwgcmVzdHJpY3Rpb25O
YW1lKHJlc3RyaWN0aW9uKS51dGY4KCkuZGF0YSgpKTsKICAgICBtX3Jlc3RyaWN0aW9ucyB8PSBy
ZXN0cmljdGlvbjsKIH0KIAogdm9pZCBIVE1MTWVkaWFTZXNzaW9uOjpyZW1vdmVCZWhhdmlvclJl
c3RyaWN0aW9uKEJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9uKQogewotICAgIExPRyhN
ZWRpYSwgIkhUTUxNZWRpYVNlc3Npb246OnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24gLSByZW1v
dmluZyAlcyIsIHJlc3RyaWN0aW9uTmFtZShyZXN0cmljdGlvbikpOworICAgIExPRyhNZWRpYSwg
IkhUTUxNZWRpYVNlc3Npb246OnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24gLSByZW1vdmluZyAl
cyIsIHJlc3RyaWN0aW9uTmFtZShyZXN0cmljdGlvbikudXRmOCgpLmRhdGEoKSk7CiAgICAgbV9y
ZXN0cmljdGlvbnMgJj0gfnJlc3RyaWN0aW9uOwogfQogCi1ib29sIEhUTUxNZWRpYVNlc3Npb246
OnBsYXliYWNrUGVybWl0dGVkKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmKSBjb25zdAorYm9vbCBI
VE1MTWVkaWFTZXNzaW9uOjpwbGF5YmFja1Blcm1pdHRlZChjb25zdCBIVE1MTWVkaWFFbGVtZW50
JiBlbGVtZW50KSBjb25zdAogewogICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2Vy
R2VzdHVyZUZvclJhdGVDaGFuZ2UgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2Vy
R2VzdHVyZSgpKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYVNlc3Npb246OnBsYXli
YWNrUGVybWl0dGVkIC0gcmV0dXJuaW5nIEZBTFNFIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKKyAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JB
dWRpb1JhdGVDaGFuZ2UgJiYgZWxlbWVudC5oYXNBdWRpbygpICYmICFTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkgeworICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVk
aWFTZXNzaW9uOjpwbGF5YmFja1Blcm1pdHRlZCAtIHJldHVybmluZyBGQUxTRSIpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmgKaW5kZXggOWNmNWUxYzQ1MWJlNzk5ODg0ZGQ3YzYw
YjE1NWVmNTU3YTBiOTc0MC4uMGVmOGE1ZmZkYTg1ODc3MTdiZjZlOGVjOWE0ZDU0Y2JhNzY5ODQz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmgKQEAgLTgzLDExICs4Mywx
MyBAQCBwdWJsaWM6CiAgICAgICAgIFJlcXVpcmVVc2VyR2VzdHVyZVRvU2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyID0gMSA8PCA1LAogICAgICAgICBXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxl
ZCA9ICAxIDw8IDYsCiAjZW5kaWYKKyAgICAgICAgUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9S
YXRlQ2hhbmdlID0gMSA8PCA3LAogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBCZWhhdmlv
clJlc3RyaWN0aW9uczsKIAotICAgIHZvaWQgYWRkQmVoYXZpb3JSZXN0cmljdGlvbihCZWhhdmlv
clJlc3RyaWN0aW9ucyk7Ci0gICAgdm9pZCByZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2
aW9yUmVzdHJpY3Rpb25zKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBCZWhhdmlvclJlc3RyaWN0aW9u
cyBiZWhhdmlvclJlc3RyaWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdHJpY3Rpb25zOyB9
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2aW9y
UmVzdHJpY3Rpb25zKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUJlaGF2aW9yUmVz
dHJpY3Rpb24oQmVoYXZpb3JSZXN0cmljdGlvbnMpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJD
RSkKICAgICBzaXplX3QgbWF4aW11bU1lZGlhU291cmNlQnVmZmVyU2l6ZShjb25zdCBTb3VyY2VC
dWZmZXImKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggYWJiZjgzNThkZDY5
Yjc2YWQxNDU4NjJhZmIxZjJjOTA5MjgwNTZhMy4uMGY4N2Q3NjBmZWUxZTJiMjYxZjE1MzYzMjU4
ZmE2ZjRkM2M3MmU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTEyMiw3ICsxMjIs
OCBAQCBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2lu
Z0NvbnRleHQgPSB0cnVlOwogc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEZpeGVkQmFja2dyb3Vu
ZHNQYWludFJlbGF0aXZlVG9Eb2N1bWVudCA9IHRydWU7CiBzdGF0aWMgY29uc3QgYm9vbCBkZWZh
dWx0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkID0gdHJ1ZTsK
IHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lID0gZmFs
c2U7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdl
c3R1cmUgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhUGxheWJhY2tSZXF1
aXJlc1VzZXJHZXN0dXJlID0gZmFsc2U7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QXVkaW9Q
bGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVlOwogc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gdHJ1ZTsKIHN0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZCA9IHRydWU7CiBzdGF0aWMgY29uc3Qg
Ym9vbCBkZWZhdWx0U2Nyb2xsaW5nVHJlZUluY2x1ZGVzRnJhbWVzID0gdHJ1ZTsKQEAgLTEzMiw2
ICsxMzMsNyBAQCBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Rml4ZWRCYWNrZ3JvdW5kc1BhaW50
UmVsYXRpdmVUb0RvY3VtZW50ID0gZmFsc2U7CiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkID0gZmFsc2U7CiBzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFQbGF5YmFja0FsbG93c0lubGluZSA9IHRydWU7CiBz
dGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUg
PSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBdWRpb1BsYXliYWNrUmVxdWlyZXNV
c2VyR2VzdHVyZSA9IGZhbHNlOwogc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uID0gZmFsc2U7CiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1h
Z2VTdWJzYW1wbGluZ0VuYWJsZWQgPSBmYWxzZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRT
Y3JvbGxpbmdUcmVlSW5jbHVkZXNGcmFtZXMgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmlu
CmluZGV4IGJiMjY3ZGQzZTkzN2NhYjMwMTZmNDJmNTA1MjMzZjQwZTNhYWJhYzguLjViMWQ0ODNl
YWVjMjdjZjQ2MjgzMzZiZTAyOGEzM2FkMjVjMTliNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgpAQCAtMTI2LDYgKzEyNiw3IEBAIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUg
aW5pdGlhbD1mYWxzZQogYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQgaW5pdGlhbD1mYWxz
ZQogYWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQgaW5pdGlhbD1mYWxzZQogbWVkaWFQbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgaW5pdGlhbD1kZWZhdWx0TWVkaWFQbGF5YmFja1JlcXVp
cmVzVXNlckdlc3R1cmUKK2F1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlIGluaXRpYWw9
ZGVmYXVsdEF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlCiBtZWRpYVBsYXliYWNrQWxs
b3dzSW5saW5lIGluaXRpYWw9ZGVmYXVsdE1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUKIGFsbG93
c0FsdGVybmF0ZUZ1bGxzY3JlZW4gaW5pdGlhbD1kZWZhdWx0QWxsb3dzQWx0ZXJuYXRlRnVsbHNj
cmVlbgogcGFzc3dvcmRFY2hvRW5hYmxlZCBpbml0aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKaW5kZXggYjc4NDg2ZDhmZmYxZTNjOTA0M2VkMDc2NDcwYmEzMjk3ZjVj
NGZlNS4uNjc2YjRjN2JjM2VkZGEzMTcxM2I5YTVhZjAxYTQxMWE1ZTQyNDdlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjQ4MywyNSArMjQ4Myw2NyBAQCB2b2lkIElu
dGVybmFsczo6c2V0TWVkaWFTZXNzaW9uUmVzdHJpY3Rpb25zKGNvbnN0IFN0cmluZyYgbWVkaWFU
eXBlU3RyaW5nLCBjb25zdAogICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIo
KS5yZW1vdmVSZXN0cmljdGlvbihtZWRpYVR5cGUsIHJlc3RyaWN0aW9ucyk7CiAKICAgICByZXN0
cmljdGlvbnMgPSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpOb1Jlc3RyaWN0aW9uczsKLSAgICAKLSAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25zU3RyaW5nLCAiQ29uY3VycmVudFBs
YXliYWNrTm90UGVybWl0dGVkIikpCi0gICAgICAgIHJlc3RyaWN0aW9ucyA9IE1lZGlhU2Vzc2lv
bk1hbmFnZXI6OkNvbmN1cnJlbnRQbGF5YmFja05vdFBlcm1pdHRlZDsKLSAgICBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2UocmVzdHJpY3Rpb25zU3RyaW5nLCAiSW5saW5lVmlkZW9QbGF5YmFja1Jlc3Ry
aWN0ZWQiKSkKLSAgICAgICAgcmVzdHJpY3Rpb25zICs9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6Oklu
bGluZVZpZGVvUGxheWJhY2tSZXN0cmljdGVkOwotICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShy
ZXN0cmljdGlvbnNTdHJpbmcsICJNZXRhZGF0YVByZWxvYWRpbmdOb3RQZXJtaXR0ZWQiKSkKLSAg
ICAgICAgcmVzdHJpY3Rpb25zICs9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6Ok1ldGFkYXRhUHJlbG9h
ZGluZ05vdFBlcm1pdHRlZDsKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25z
U3RyaW5nLCAiQXV0b1ByZWxvYWRpbmdOb3RQZXJtaXR0ZWQiKSkKLSAgICAgICAgcmVzdHJpY3Rp
b25zICs9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6OkF1dG9QcmVsb2FkaW5nTm90UGVybWl0dGVkOwot
ICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlvbnNTdHJpbmcsICJCYWNrZ3JvdW5k
UHJvY2Vzc1BsYXliYWNrUmVzdHJpY3RlZCIpKQotICAgICAgICByZXN0cmljdGlvbnMgKz0gTWVk
aWFTZXNzaW9uTWFuYWdlcjo6QmFja2dyb3VuZFByb2Nlc3NQbGF5YmFja1Jlc3RyaWN0ZWQ7Ci0g
ICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uc1N0cmluZywgIkJhY2tncm91bmRU
YWJQbGF5YmFja1Jlc3RyaWN0ZWQiKSkKLSAgICAgICAgcmVzdHJpY3Rpb25zICs9IE1lZGlhU2Vz
c2lvbk1hbmFnZXI6OkJhY2tncm91bmRUYWJQbGF5YmFja1Jlc3RyaWN0ZWQ7Ci0gICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uc1N0cmluZywgIkludGVycnVwdGVkUGxheWJhY2tO
b3RQZXJtaXR0ZWQiKSkKLSAgICAgICAgcmVzdHJpY3Rpb25zICs9IE1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OkludGVycnVwdGVkUGxheWJhY2tOb3RQZXJtaXR0ZWQ7CiAKKyAgICBWZWN0b3I8U3RyaW5n
PiByZXN0cmljdGlvbnNBcnJheTsKKyAgICByZXN0cmljdGlvbnNTdHJpbmcuc3BsaXQoJywnLCBm
YWxzZSwgcmVzdHJpY3Rpb25zQXJyYXkpOworICAgIGZvciAoYXV0byYgcmVzdHJpY3Rpb25TdHJp
bmcgOiByZXN0cmljdGlvbnNBcnJheSkgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
cmVzdHJpY3Rpb25TdHJpbmcsICJDb25jdXJyZW50UGxheWJhY2tOb3RQZXJtaXR0ZWQiKSkKKyAg
ICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpDb25jdXJyZW50
UGxheWJhY2tOb3RQZXJtaXR0ZWQ7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0
cmljdGlvblN0cmluZywgIklubGluZVZpZGVvUGxheWJhY2tSZXN0cmljdGVkIikpCisgICAgICAg
ICAgICByZXN0cmljdGlvbnMgfD0gTWVkaWFTZXNzaW9uTWFuYWdlcjo6SW5saW5lVmlkZW9QbGF5
YmFja1Jlc3RyaWN0ZWQ7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlv
blN0cmluZywgIk1ldGFkYXRhUHJlbG9hZGluZ05vdFBlcm1pdHRlZCIpKQorICAgICAgICAgICAg
cmVzdHJpY3Rpb25zIHw9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6Ok1ldGFkYXRhUHJlbG9hZGluZ05v
dFBlcm1pdHRlZDsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3Ry
aW5nLCAiQXV0b1ByZWxvYWRpbmdOb3RQZXJtaXR0ZWQiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0
aW9ucyB8PSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpBdXRvUHJlbG9hZGluZ05vdFBlcm1pdHRlZDsK
KyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiQmFja2dy
b3VuZFByb2Nlc3NQbGF5YmFja1Jlc3RyaWN0ZWQiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9u
cyB8PSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpCYWNrZ3JvdW5kUHJvY2Vzc1BsYXliYWNrUmVzdHJp
Y3RlZDsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAi
QmFja2dyb3VuZFRhYlBsYXliYWNrUmVzdHJpY3RlZCIpKQorICAgICAgICAgICAgcmVzdHJpY3Rp
b25zIHw9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6OkJhY2tncm91bmRUYWJQbGF5YmFja1Jlc3RyaWN0
ZWQ7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlvblN0cmluZywgIklu
dGVycnVwdGVkUGxheWJhY2tOb3RQZXJtaXR0ZWQiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9u
cyB8PSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpJbnRlcnJ1cHRlZFBsYXliYWNrTm90UGVybWl0dGVk
OworICAgIH0KICAgICBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuYWRkUmVz
dHJpY3Rpb24obWVkaWFUeXBlLCByZXN0cmljdGlvbnMpOwogfQotICAgIAorCit2b2lkIEludGVy
bmFsczo6c2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1l
bnQsIGNvbnN0IFN0cmluZyYgcmVzdHJpY3Rpb25zU3RyaW5nLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBpZiAoIWVsZW1lbnQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBIVE1MTWVkaWFTZXNzaW9uOjpCZWhhdmlv
clJlc3RyaWN0aW9ucyByZXN0cmljdGlvbnMgPSBlbGVtZW50LT5tZWRpYVNlc3Npb24oKS5iZWhh
dmlvclJlc3RyaWN0aW9ucygpOworICAgIGVsZW1lbnQtPm1lZGlhU2Vzc2lvbigpLnJlbW92ZUJl
aGF2aW9yUmVzdHJpY3Rpb24ocmVzdHJpY3Rpb25zKTsKKworICAgIHJlc3RyaWN0aW9ucyA9IEhU
TUxNZWRpYVNlc3Npb246Ok5vUmVzdHJpY3Rpb25zOworCisgICAgVmVjdG9yPFN0cmluZz4gcmVz
dHJpY3Rpb25zQXJyYXk7CisgICAgcmVzdHJpY3Rpb25zU3RyaW5nLnNwbGl0KCcsJywgZmFsc2Us
IHJlc3RyaWN0aW9uc0FycmF5KTsKKyAgICBmb3IgKGF1dG8mIHJlc3RyaWN0aW9uU3RyaW5nIDog
cmVzdHJpY3Rpb25zQXJyYXkpIHsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3Ry
aWN0aW9uU3RyaW5nLCAiTm9SZXN0cmljdGlvbnMiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9u
cyB8PSBIVE1MTWVkaWFTZXNzaW9uOjpOb1Jlc3RyaWN0aW9uczsKKyAgICAgICAgaWYgKGVxdWFs
SWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiUmVxdWlyZVVzZXJHZXN0dXJlRm9yTG9h
ZCIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IEhUTUxNZWRpYVNlc3Npb246OlJlcXVp
cmVVc2VyR2VzdHVyZUZvckxvYWQ7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0
cmljdGlvblN0cmluZywgIlJlcXVpcmVVc2VyR2VzdHVyZUZvclJhdGVDaGFuZ2UiKSkKKyAgICAg
ICAgICAgIHJlc3RyaWN0aW9ucyB8PSBIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1
cmVGb3JSYXRlQ2hhbmdlOworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rp
b25TdHJpbmcsICJSZXF1aXJlVXNlckdlc3R1cmVGb3JGdWxsc2NyZWVuIikpCisgICAgICAgICAg
ICByZXN0cmljdGlvbnMgfD0gSFRNTE1lZGlhU2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlRm9y
RnVsbHNjcmVlbjsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3Ry
aW5nLCAiUmVxdWlyZVBhZ2VDb25zZW50VG9Mb2FkTWVkaWEiKSkKKyAgICAgICAgICAgIHJlc3Ry
aWN0aW9ucyB8PSBIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlUGFnZUNvbnNlbnRUb0xvYWRNZWRp
YTsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiUmVx
dWlyZVBhZ2VDb25zZW50VG9SZXN1bWVNZWRpYSIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25z
IHw9IEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVQYWdlQ29uc2VudFRvUmVzdW1lTWVkaWE7Cisj
aWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKKyAgICAgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiUmVxdWlyZVVzZXJHZXN0dXJlVG9TaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBIVE1MTWVk
aWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb1Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjsK
KyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiV2lyZWxl
c3NWaWRlb1BsYXliYWNrRGlzYWJsZWQiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBI
VE1MTWVkaWFTZXNzaW9uOjpXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZDsKKyNlbmRpZgor
ICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25TdHJpbmcsICJSZXF1aXJl
VXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9u
cyB8PSBIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFu
Z2U7CisgICAgfQorICAgIGVsZW1lbnQtPm1lZGlhU2Vzc2lvbigpLmFkZEJlaGF2aW9yUmVzdHJp
Y3Rpb24ocmVzdHJpY3Rpb25zKTsKK30KKwogdm9pZCBJbnRlcm5hbHM6OnBvc3RSZW1vdGVDb250
cm9sQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmRTdHJpbmcsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIE1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIGNvbW1hbmQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA3ZDc5NTBiZGY0OGY5OGEzNDcwNTUz
MWUzNzJiZjdmOTZiZTc4ZmZlLi4wZmFhMWMxOTIzZjUzNjU0NGY5YTJlNWJhZDliNDAyYzk1MTNl
NDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xh
c3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRmlsZTsKIGNsYXNzIEZyYW1lOwor
Y2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbER1
bW15OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnREdW1teTsKIGNsYXNzIEludGVybmFs
U2V0dGluZ3M7CkBAIC0zNjEsNiArMzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbGljYXRp
b25XaWxsRW50ZXJGb3JlZ3JvdW5kKCkgY29uc3Q7CiAgICAgdm9pZCBhcHBsaWNhdGlvbldpbGxF
bnRlckJhY2tncm91bmQoKSBjb25zdDsKICAgICB2b2lkIHNldE1lZGlhU2Vzc2lvblJlc3RyaWN0
aW9ucyhjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgY29uc3QgU3RyaW5nJiByZXN0cmljdGlvbnMs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldE1lZGlhRWxlbWVudFJlc3RyaWN0aW9ucyhI
VE1MTWVkaWFFbGVtZW50KiwgY29uc3QgU3RyaW5nJiByZXN0cmljdGlvbnMsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIHBvc3RSZW1vdGVDb250cm9sQ29tbWFuZChjb25zdCBTdHJpbmcmLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgYm9vbCBlbGVtZW50SXNCbG9ja2luZ0Rpc3BsYXlTbGVlcChF
bGVtZW50KikgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApp
bmRleCAwYWZmY2JiZTk0YjU5ODE1OTVjMTVmNDdhN2M4ZWE5OTA4ZTBkOWFiLi5jZDg5OWQzMmZl
YzFjMGI2ZTJmOTUwMTFmNjVjYmU0ZDIxYzNmNGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCkBAIC0zMzAsNiArMzMwLDcgQEAgZW51bSBSZXNvdXJjZUxvYWRQcmlvcml0eSB7
CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPXSB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdy
b3VuZCgpOwogICAgIFtDb25kaXRpb25hbD1WSURFT10gdm9pZCBhcHBsaWNhdGlvbldpbGxFbnRl
ckJhY2tncm91bmQoKTsKICAgICBbQ29uZGl0aW9uYWw9VklERU8sIFJhaXNlc0V4Y2VwdGlvbl0g
dm9pZCBzZXRNZWRpYVNlc3Npb25SZXN0cmljdGlvbnMoRE9NU3RyaW5nIG1lZGlhVHlwZSwgRE9N
U3RyaW5nIHJlc3RyaWN0aW9ucyk7CisgICAgW0NvbmRpdGlvbmFsPVZJREVPLCBSYWlzZXNFeGNl
cHRpb25dIHZvaWQgc2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKEhUTUxNZWRpYUVsZW1lbnQg
ZWxlbWVudCwgRE9NU3RyaW5nIHJlc3RyaWN0aW9ucyk7CiAgICAgW0NvbmRpdGlvbmFsPVZJREVP
LCBSYWlzZXNFeGNlcHRpb25dIHZvaWQgcG9zdFJlbW90ZUNvbnRyb2xDb21tYW5kKERPTVN0cmlu
ZyBjb21tYW5kKTsKICAgICAKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIHZvaWQgc2ltdWxhdGVT
eXN0ZW1TbGVlcCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250457</attachid>
            <date>2015-04-09 13:26:02 -0700</date>
            <delta_ts>2015-04-25 23:11:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-143486-20150409132510.patch</filename>
            <type>text/plain</type>
            <size>25810</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY3YmQxMDQwOGMwNTJi
NTI0ZGEyYjEyYTgzMTQ2M2JhNjk1ZDc4OS4uZWU1ZGZiY2Q2ZjgyNDJiNDc5OWFlNDVmNDM0NjQw
NmI3OTVhNDhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ3IEBACiAyMDE1LTA0LTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIEFkZCBhIHNldHRpbmcgJiBy
ZXN0cmljdGlvbiB3aGljaCBwcmV2ZW50cyBub24taW50ZXJhY3RpdnRlIHBsYXliYWNrIG9mIGF1
ZGlibGUgbWVkaWEgZWxlbWVudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDM0ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0czogbWVkaWEvYXVkaW8tcGxheWJhY2stcmVzdHJpY3Rpb24tYXV0
b3BsYXkuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvYXVkaW8tcGxheWJhY2stcmVzdHJpY3Rp
b24tcGxheS5odG1sCisKKyAgICAgICAgVG8gYWxsb3cgY2xpZW50cyB3aG8gd2FudCB0byBhbGxv
dyBub24tdXNlci1pbnRlcmFjdGl2ZSB2aWRlby1vbmx5IHBsYXliYWNrLCBidXQgc3RpbGwKKyAg
ICAgICAgcmVzdHJpY3QgcGxheWJhY2sgb2YgYXVkaWJsZSBtZWRpYSBlbGVtZW50cywgYWRkIGEg
bmV3IHNldHRpbmcgYW5kIG1hdGNoaW5nIHJlc3RyaWN0aW9uCisgICAgICAgIHdoaWNoIGRpc2Fs
bG93cyBwbGF5YmFjayBvZiBtZWRpYSBlbGVtZW50cyBjb250YWluaW5nIGF1ZGlibGUgY2hhcmFj
dGVyaXN0aWNzLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOiBTZXQgdGhl
IFJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZQorICAgICAgICAgICAgcmVzdHJp
Y3Rpb24gaWYgdGhlIGF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKCkgc2V0dGluZyBp
cyBzZXQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZSk6IERyaXZlLWJ5IGZpeC4gTW92ZSB0aGUgb3BlbmluZyBicmFjZQorICAgICAgICAgICAgb3V0
IG9mIHRoZSAjaWYsIGFzIHRoaXMgY29uZnVzZXMgdGhlIGhlY2sgb3V0IG9mIGRpZmYgYW5kIG1h
a2VzIGFsbCBzdWJzZXF1ZW50CisgICAgICAgICAgICBjaGFuZ2VzIGFwcGVhciB0byBiZSB3aXRo
aW4gSFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjphdXRvcGxheSk6IFJlbW92ZSB0aGUgcmVzdHJpY3Rpb24gY2hlY2sg
ZnJvbSB3aXRoaW4gYXV0b3BsYXkoKS4KKyAgICAgICAgICAgIEl0IGlzIGNoZWNrZWQgYWdhaW4g
aW1tZWRpYXRlbHkgYWZ0ZXIgZXZlcnkgYXV0b3BsYXkoKSBjYWxsIHNpdGUuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFsKTogUmVtb3ZlIHRoZSBpT1Mt
b25seSAjaWYuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckRpZEFkZEF1ZGlvVHJhY2spOiBDaGVjayB3aGV0aGVyIHBsYXliYWNrCisgICAgICAgICAgICBp
cyBwZXJtaXR0ZWQsIGFuZCBpZiBub3QsIHBhdXNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0
aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXN0cmljdGlvbk5hbWUpOiBTaW5j
ZSBCZWhhdmlvclJlc3RyaWN0aW9ucyBpcyBhIGJpdGZpZWxkLCBjaGVjayBlYWNoIGJpdAorICAg
ICAgICAgICAgaW5kaXZpZHVhbGx5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhU2Vzc2lv
bjo6cmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbik6IEhhbmRsZSBSZXF1aXJlVXNlckdlc3R1cmVG
b3JBdWRpb1JhdGVDaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFTZXNzaW9uOjpw
bGF5YmFja1Blcm1pdHRlZCk6IENoZWNrIHdoZXRoZXIgdGhlIGVsZW1lbnQgaGFzIGF1ZGlvIGFu
ZCAKKyAgICAgICAgICAgIGF1ZGlvIHBsYXliYWNrIGlzIHJlc3RyaWN0ZWQsIGFuZCByZXR1cm4g
ZmFsc2UgaWYgc28uCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmg6CisgICAgICAg
ICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5pbjoKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OnNldE1lZGlhU2Vzc2lvblJlc3RyaWN0aW9ucyk6IEFkZGVkLiAKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKTogQWRkZWQuCisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6
CisKKzIwMTUtMDQtMDcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKICAgICAg
ICAgW01hY11bV2ViQXVkaW9dIFVwZGF0ZSB0aGUgQVZBdWRpb01peCBpbiB0aGUgQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMgd2hlbiB0aGUgbGlzdCBvZiBlbmFibGVkIGF1ZGlvIHRyYWNrcyBj
aGFuZ2UuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDMzMzIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMmE2
ZmE4YjE3MmQ3NTAxMTJkMGQzNWQ2MjkyNTYyYmMzZWUzYjkzYy4uZTZhN2MxMjQ1YzRiZjQ0MjNk
YTFkMjU0OWU3YjMyOGIwNWQyODNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC0zNjIsNiArMzYyLDkgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlh
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAg
ICB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIAorICAgIGlmIChzZXR0aW5ncyAmJiBzZXR0
aW5ncy0+YXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoKSkKKyAgICAgICAgbV9tZWRp
YVNlc3Npb24tPmFkZEJlaGF2aW9yUmVzdHJpY3Rpb24oSFRNTE1lZGlhU2Vzc2lvbjo6UmVxdWly
ZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKTsKKwogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKICAgICBpZiAoZG9jdW1lbnQucGFnZSgpKQogICAgICAgICBtX2NhcHRpb25EaXNwbGF5TW9k
ZSA9IGRvY3VtZW50LnBhZ2UoKS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKS0+Y2FwdGlv
bkRpc3BsYXlNb2RlKCk7CkBAIC01MjAsMTEgKzUyMywxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21p
Y1N0cgogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgLy8gTm90ZSwgdW5sZXNzIHRoZSByZXN0
cmljdGlvbiBvbiByZXF1aXJpbmcgdXNlciBhY3Rpb24gaGFzIGJlZW4gcmVtb3ZlZCwKICAgICAg
ICAgLy8gZG8gbm90IGJlZ2luIGRvd25sb2FkaW5nIGRhdGEgb24gaU9TLgotICAgICAgICBpZiAo
IXZhbHVlLmlzTnVsbCgpICYmIG1fbWVkaWFTZXNzaW9uLT5kYXRhTG9hZGluZ1Blcm1pdHRlZCgq
dGhpcykpIHsKKyAgICAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSAmJiBtX21lZGlhU2Vzc2lvbi0+
ZGF0YUxvYWRpbmdQZXJtaXR0ZWQoKnRoaXMpKQogI2Vsc2UKICAgICAgICAgLy8gVHJpZ2dlciBh
IHJlbG9hZCwgYXMgbG9uZyBhcyB0aGUgJ3NyYycgYXR0cmlidXRlIGlzIHByZXNlbnQuCi0gICAg
ICAgIGlmICghdmFsdWUuaXNOdWxsKCkpIHsKKyAgICAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSkK
ICNlbmRpZgorICAgICAgICB7CiAgICAgICAgICAgICBjbGVhck1lZGlhUGxheWVyKExvYWRNZWRp
YVJlc291cmNlKTsKICAgICAgICAgICAgIHNjaGVkdWxlRGVsYXllZEFjdGlvbihMb2FkTWVkaWFS
ZXNvdXJjZSk7CiAgICAgICAgIH0KQEAgLTI2ODUsMTYgKzI2ODksNiBAQCBib29sIEhUTUxNZWRp
YUVsZW1lbnQ6OmVuZGVkKCkgY29uc3QKIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjphdXRvcGxh
eSgpIGNvbnN0CiB7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIC8vIFVubGVzcyB0aGUgcmVzdHJp
Y3Rpb24gb24gcmVxdWlyaW5nIHVzZXIgYWN0aW9ucyBoYXMgYmVlbiBsaWZ0ZWQsIHdlIGRvIG5v
dAotICAgIC8vIGFsbG93IHBsYXliYWNrIHRvIHN0YXJ0IGp1c3QgYmVjYXVzZSB0aGUgcGFnZSBo
YXMgImF1dG9wbGF5Ii4gVGhleSBhcmUgZWl0aGVyCi0gICAgLy8gbGlmdGVkIHRocm91Z2ggU2V0
dGluZ3MsIG9yIG9uY2UgdGhlIHVzZXIgZXhwbGljdGx5IGNhbGxzIGxvYWQoKSBvciBwbGF5KCkK
LSAgICAvLyBiZWNhdXNlIHRoZXkgaGF2ZSBPSydlZCB1cyBsb2FkaW5nIGRhdGEuIFRoaXMgYWxs
b3dzIHBsYXliYWNrIHRvIGNvbnRpbnVlIGlmCi0gICAgLy8gdGhlIFVSTCBpcyBjaGFuZ2VkIHdo
aWxlIHRoZSBtb3ZpZSBpcyBwbGF5aW5nLgotICAgIGlmICghbV9tZWRpYVNlc3Npb24tPnBsYXli
YWNrUGVybWl0dGVkKCp0aGlzKSB8fCAhbV9tZWRpYVNlc3Npb24tPmRhdGFMb2FkaW5nUGVybWl0
dGVkKCp0aGlzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi0KICAgICByZXR1cm4g
ZmFzdEhhc0F0dHJpYnV0ZShhdXRvcGxheUF0dHIpOwogfQogCkBAIC0yNzg3LDEyICsyNzgxLDEw
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5hbCgpCiAgICAgCiAgICAgLy8g
NC44LjEwLjkuIFBsYXlpbmcgdGhlIG1lZGlhIHJlc291cmNlCiAgICAgaWYgKCFtX3BsYXllciB8
fCBtX25ldHdvcmtTdGF0ZSA9PSBORVRXT1JLX0VNUFRZKSB7Ci0jaWYgUExBVEZPUk0oSU9TKQog
ICAgICAgICAvLyBVbmxlc3MgdGhlIHJlc3RyaWN0aW9uIG9uIG1lZGlhIHJlcXVpcmluZyB1c2Vy
IGFjdGlvbiBoYXMgYmVlbiBsaWZ0ZWQKICAgICAgICAgLy8gZG9uJ3QgdHJpZ2dlciBsb2FkaW5n
IGlmIGEgc2NyaXB0IGNhbGxzIHBhdXNlKCkuCiAgICAgICAgIGlmICghbV9tZWRpYVNlc3Npb24t
PnBsYXliYWNrUGVybWl0dGVkKCp0aGlzKSkKICAgICAgICAgICAgIHJldHVybjsKLSNlbmRpZgog
ICAgICAgICBzY2hlZHVsZURlbGF5ZWRBY3Rpb24oTG9hZE1lZGlhUmVzb3VyY2UpOwogICAgIH0K
IApAQCAtMzE4NSw2ICszMTc3LDkgQEAgZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6OnBlcmNlbnRM
b2FkZWQoKSBjb25zdAogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRk
QXVkaW9UcmFjayhQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPiBwcnBUcmFjaykKIHsKKyAg
ICBpZiAoaXNQbGF5aW5nKCkgJiYgIW1fbWVkaWFTZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRlZCgq
dGhpcykpCisgICAgICAgIHBhdXNlSW50ZXJuYWwoKTsKKwogICAgIGlmICghUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTQzMjMsNiArNDMxOCw5IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQoTWVkaWFQbGF5ZXIqKQogICAg
IGlmIChyZW5kZXJlcigpKQogICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgp
OwogCisgICAgaWYgKGlzUGxheWluZygpICYmICFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJt
aXR0ZWQoKnRoaXMpKQorICAgICAgICBwYXVzZUludGVybmFsKCk7CisKICAgICBkb2N1bWVudCgp
LnVwZGF0ZUlzUGxheWluZ0F1ZGlvKCk7CiAKICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJD
YWxsYmFjaygpOwpAQCAtNTgzOSwxMiArNTgzNywxNiBAQCBkb3VibGUgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBjb25zdAogCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2Vz
dHVyZSgpCiB7Ci0gICAgbV9tZWRpYVNlc3Npb24tPnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24o
SFRNTE1lZGlhU2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlRm9yTG9hZCk7Ci0gICAgbV9tZWRp
YVNlc3Npb24tPnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oSFRNTE1lZGlhU2Vzc2lvbjo6UmVx
dWlyZVVzZXJHZXN0dXJlRm9yUmF0ZUNoYW5nZSk7Ci0gICAgbV9tZWRpYVNlc3Npb24tPnJlbW92
ZUJlaGF2aW9yUmVzdHJpY3Rpb24oSFRNTE1lZGlhU2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJl
Rm9yRnVsbHNjcmVlbik7CisgICAgSFRNTE1lZGlhU2Vzc2lvbjo6QmVoYXZpb3JSZXN0cmljdGlv
bnMgcmVzdHJpY3Rpb25zVG9SZW1vdmUgPSBIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdl
c3R1cmVGb3JMb2FkCisgICAgICAgIHwgSFRNTE1lZGlhU2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0
dXJlRm9yUmF0ZUNoYW5nZQorICAgICAgICB8IEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVVc2Vy
R2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZQorICAgICAgICB8IEhUTUxNZWRpYVNlc3Npb246OlJl
cXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZQorICAgICAgICB8IEhUTUxNZWRpYVNl
c3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZUZvckZ1bGxzY3JlZW4KICNpZiBFTkFCTEUoV0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUKQotICAgIG1fbWVkaWFTZXNzaW9uLT5yZW1vdmVCZWhhdmlvclJl
c3RyaWN0aW9uKEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvU2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKTsKKyAgICAgICAgfCBIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNl
ckdlc3R1cmVUb1Nob3dQbGF5YmFja1RhcmdldFBpY2tlcgogI2VuZGlmCisgICAgICAgIDsKKyAg
ICBtX21lZGlhU2Vzc2lvbi0+cmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihyZXN0cmljdGlvbnNU
b1JlbW92ZSk7CiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhU2Vzc2lvbi5jcHAKaW5kZXggMDJjZGZiNmM0N2E5OGU5NThmZTQyOGI1ZWZi
YTQxMjgwNzZkNDhkMC4uNWFiMTgzOTg1YTJjNWFjNTNhNDFiOTk5OTZiODQ3MWNhZjFhYzkwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNlc3Npb24uY3BwCkBAIC01MCwxMyArNTAs
MjAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmICFMT0dfRElTQUJMRUQKLXN0YXRpYyBj
b25zdCBjaGFyKiByZXN0cmljdGlvbk5hbWUoSFRNTE1lZGlhU2Vzc2lvbjo6QmVoYXZpb3JSZXN0
cmljdGlvbnMgcmVzdHJpY3Rpb24pCitzdGF0aWMgU3RyaW5nIHJlc3RyaWN0aW9uTmFtZShIVE1M
TWVkaWFTZXNzaW9uOjpCZWhhdmlvclJlc3RyaWN0aW9ucyByZXN0cmljdGlvbikKIHsKLSNkZWZp
bmUgQ0FTRShyZXN0cmljdGlvbikgY2FzZSBIVE1MTWVkaWFTZXNzaW9uOjpyZXN0cmljdGlvbjog
cmV0dXJuICNyZXN0cmljdGlvbgotICAgIHN3aXRjaCAocmVzdHJpY3Rpb24pIHsKKyAgICBTdHJp
bmdCdWlsZGVyIHJlc3RyaWN0aW9uQnVpbGRlcjsKKyNkZWZpbmUgQ0FTRShyZXN0cmljdGlvblR5
cGUpIFwKKyAgICBpZiAocmVzdHJpY3Rpb24gJiBIVE1MTWVkaWFTZXNzaW9uOjpyZXN0cmljdGlv
blR5cGUpIHsgXAorICAgICAgICBpZiAoIXJlc3RyaWN0aW9uQnVpbGRlci5pc0VtcHR5KCkpIFwK
KyAgICAgICAgICAgIHJlc3RyaWN0aW9uQnVpbGRlci5hcHBlbmQoIiwgIik7IFwKKyAgICAgICAg
cmVzdHJpY3Rpb25CdWlsZGVyLmFwcGVuZCgjcmVzdHJpY3Rpb25UeXBlKTsgXAorICAgIH0gXAor
CiAgICAgQ0FTRShOb1Jlc3RyaWN0aW9ucyk7CiAgICAgQ0FTRShSZXF1aXJlVXNlckdlc3R1cmVG
b3JMb2FkKTsKICAgICBDQVNFKFJlcXVpcmVVc2VyR2VzdHVyZUZvclJhdGVDaGFuZ2UpOworICAg
IENBU0UoUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKTsKICAgICBDQVNFKFJl
cXVpcmVVc2VyR2VzdHVyZUZvckZ1bGxzY3JlZW4pOwogICAgIENBU0UoUmVxdWlyZVBhZ2VDb25z
ZW50VG9Mb2FkTWVkaWEpOwogICAgIENBU0UoUmVxdWlyZVBhZ2VDb25zZW50VG9SZXN1bWVNZWRp
YSk7CkBAIC02NCwxMCArNzEsOSBAQCBzdGF0aWMgY29uc3QgY2hhciogcmVzdHJpY3Rpb25OYW1l
KEhUTUxNZWRpYVNlc3Npb246OkJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3RyaQogICAgIENBU0Uo
UmVxdWlyZVVzZXJHZXN0dXJlVG9TaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOwogICAgIENBU0Uo
V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQpOwogI2VuZGlmCi0gICAgfQorICAgIENBU0Uo
UmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKTsKIAotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiAiIjsKKyAgICByZXR1cm4gcmVzdHJpY3Rpb25CdWlsZGVy
LnRvU3RyaW5nKCk7CiB9CiAjZW5kaWYKIApAQCAtMTAxLDIzICsxMDcsMjggQEAgdm9pZCBIVE1M
TWVkaWFTZXNzaW9uOjp1bnJlZ2lzdGVyV2l0aERvY3VtZW50KERvY3VtZW50JiBkb2N1bWVudCkK
IAogdm9pZCBIVE1MTWVkaWFTZXNzaW9uOjphZGRCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2aW9y
UmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9uKQogewotICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYVNl
c3Npb246OmFkZEJlaGF2aW9yUmVzdHJpY3Rpb24gLSBhZGRpbmcgJXMiLCByZXN0cmljdGlvbk5h
bWUocmVzdHJpY3Rpb24pKTsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFTZXNzaW9uOjphZGRC
ZWhhdmlvclJlc3RyaWN0aW9uIC0gYWRkaW5nICVzIiwgcmVzdHJpY3Rpb25OYW1lKHJlc3RyaWN0
aW9uKS51dGY4KCkuZGF0YSgpKTsKICAgICBtX3Jlc3RyaWN0aW9ucyB8PSByZXN0cmljdGlvbjsK
IH0KIAogdm9pZCBIVE1MTWVkaWFTZXNzaW9uOjpyZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEJl
aGF2aW9yUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9uKQogewotICAgIExPRyhNZWRpYSwgIkhUTUxN
ZWRpYVNlc3Npb246OnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24gLSByZW1vdmluZyAlcyIsIHJl
c3RyaWN0aW9uTmFtZShyZXN0cmljdGlvbikpOworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYVNl
c3Npb246OnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24gLSByZW1vdmluZyAlcyIsIHJlc3RyaWN0
aW9uTmFtZShyZXN0cmljdGlvbikudXRmOCgpLmRhdGEoKSk7CiAgICAgbV9yZXN0cmljdGlvbnMg
Jj0gfnJlc3RyaWN0aW9uOwogfQogCi1ib29sIEhUTUxNZWRpYVNlc3Npb246OnBsYXliYWNrUGVy
bWl0dGVkKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmKSBjb25zdAorYm9vbCBIVE1MTWVkaWFTZXNz
aW9uOjpwbGF5YmFja1Blcm1pdHRlZChjb25zdCBIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KSBj
b25zdAogewogICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvclJh
dGVDaGFuZ2UgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKSB7
CiAgICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYVNlc3Npb246OnBsYXliYWNrUGVybWl0dGVk
IC0gcmV0dXJuaW5nIEZBTFNFIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAg
ICBpZiAobV9yZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFu
Z2UgJiYgZWxlbWVudC5oYXNBdWRpbygpICYmICFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5n
VXNlckdlc3R1cmUoKSkgeworICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFTZXNzaW9uOjpw
bGF5YmFja1Blcm1pdHRlZCAtIHJldHVybmluZyBGQUxTRSIpOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFTZXNzaW9uLmgKaW5kZXggOWNmNWUxYzQ1MWJlNzk5ODg0ZGQ3YzYwYjE1NWVmNTU3YTBi
OTc0MC4uMGVmOGE1ZmZkYTg1ODc3MTdiZjZlOGVjOWE0ZDU0Y2JhNzY5ODQzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmgKQEAgLTgzLDExICs4MywxMyBAQCBwdWJsaWM6
CiAgICAgICAgIFJlcXVpcmVVc2VyR2VzdHVyZVRvU2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyID0g
MSA8PCA1LAogICAgICAgICBXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCA9ICAxIDw8IDYs
CiAjZW5kaWYKKyAgICAgICAgUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlID0g
MSA8PCA3LAogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBCZWhhdmlvclJlc3RyaWN0aW9u
czsKIAotICAgIHZvaWQgYWRkQmVoYXZpb3JSZXN0cmljdGlvbihCZWhhdmlvclJlc3RyaWN0aW9u
cyk7Ci0gICAgdm9pZCByZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2aW9yUmVzdHJpY3Rp
b25zKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBCZWhhdmlvclJlc3RyaWN0aW9ucyBiZWhhdmlvclJl
c3RyaWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdHJpY3Rpb25zOyB9CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBhZGRCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2aW9yUmVzdHJpY3Rpb25z
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oQmVo
YXZpb3JSZXN0cmljdGlvbnMpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKICAgICBzaXpl
X3QgbWF4aW11bU1lZGlhU291cmNlQnVmZmVyU2l6ZShjb25zdCBTb3VyY2VCdWZmZXImKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggYWJiZjgzNThkZDY5Yjc2YWQxNDU4NjJh
ZmIxZjJjOTA5MjgwNTZhMy4uMGY4N2Q3NjBmZWUxZTJiMjYxZjE1MzYzMjU4ZmE2ZjRkM2M3MmU4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTEyMiw3ICsxMjIsOCBAQCBzdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQgPSB0
cnVlOwogc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEZpeGVkQmFja2dyb3VuZHNQYWludFJlbGF0
aXZlVG9Eb2N1bWVudCA9IHRydWU7CiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkID0gdHJ1ZTsKIHN0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRNZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lID0gZmFsc2U7Ci1zdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVl
Oworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0
dXJlID0gZmFsc2U7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVp
cmVzVXNlckdlc3R1cmUgPSB0cnVlOwogc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uID0gdHJ1ZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJ
bWFnZVN1YnNhbXBsaW5nRW5hYmxlZCA9IHRydWU7CiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0
U2Nyb2xsaW5nVHJlZUluY2x1ZGVzRnJhbWVzID0gdHJ1ZTsKQEAgLTEzMiw2ICsxMzMsNyBAQCBz
dGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Rml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0Rv
Y3VtZW50ID0gZmFsc2U7CiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkID0gZmFsc2U7CiBzdGF0aWMgY29uc3QgYm9v
bCBkZWZhdWx0TWVkaWFQbGF5YmFja0FsbG93c0lubGluZSA9IHRydWU7CiBzdGF0aWMgY29uc3Qg
Ym9vbCBkZWZhdWx0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBmYWxzZTsKK3N0
YXRpYyBjb25zdCBib29sIGRlZmF1bHRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9
IGZhbHNlOwogc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uID0gZmFsc2U7CiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1wbGlu
Z0VuYWJsZWQgPSBmYWxzZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTY3JvbGxpbmdUcmVl
SW5jbHVkZXNGcmFtZXMgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IGJiMjY3
ZGQzZTkzN2NhYjMwMTZmNDJmNTA1MjMzZjQwZTNhYWJhYzguLjViMWQ0ODNlYWVjMjdjZjQ2Mjgz
MzZiZTAyOGEzM2FkMjVjMTliNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMTI2LDYg
KzEyNiw3IEBAIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgaW5pdGlhbD1mYWxz
ZQogYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQgaW5pdGlhbD1mYWxzZQogYWxsb3dSdW5u
aW5nT2ZJbnNlY3VyZUNvbnRlbnQgaW5pdGlhbD1mYWxzZQogbWVkaWFQbGF5YmFja1JlcXVpcmVz
VXNlckdlc3R1cmUgaW5pdGlhbD1kZWZhdWx0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1
cmUKK2F1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlIGluaXRpYWw9ZGVmYXVsdEF1ZGlv
UGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlCiBtZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lIGlu
aXRpYWw9ZGVmYXVsdE1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUKIGFsbG93c0FsdGVybmF0ZUZ1
bGxzY3JlZW4gaW5pdGlhbD1kZWZhdWx0QWxsb3dzQWx0ZXJuYXRlRnVsbHNjcmVlbgogcGFzc3dv
cmRFY2hvRW5hYmxlZCBpbml0aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggYjc4NDg2ZDhmZmYxZTNjOTA0M2VkMDc2NDcwYmEzMjk3ZjVjNGZlNS4uNjc2YjRj
N2JjM2VkZGEzMTcxM2I5YTVhZjAxYTQxMWE1ZTQyNDdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcApAQCAtMjQ4MywyNSArMjQ4Myw2NyBAQCB2b2lkIEludGVybmFsczo6c2V0
TWVkaWFTZXNzaW9uUmVzdHJpY3Rpb25zKGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlU3RyaW5nLCBj
b25zdAogICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZW1vdmVSZXN0
cmljdGlvbihtZWRpYVR5cGUsIHJlc3RyaWN0aW9ucyk7CiAKICAgICByZXN0cmljdGlvbnMgPSBN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpOb1Jlc3RyaWN0aW9uczsKLSAgICAKLSAgICBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2UocmVzdHJpY3Rpb25zU3RyaW5nLCAiQ29uY3VycmVudFBsYXliYWNrTm90UGVy
bWl0dGVkIikpCi0gICAgICAgIHJlc3RyaWN0aW9ucyA9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6OkNv
bmN1cnJlbnRQbGF5YmFja05vdFBlcm1pdHRlZDsKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
cmVzdHJpY3Rpb25zU3RyaW5nLCAiSW5saW5lVmlkZW9QbGF5YmFja1Jlc3RyaWN0ZWQiKSkKLSAg
ICAgICAgcmVzdHJpY3Rpb25zICs9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6OklubGluZVZpZGVvUGxh
eWJhY2tSZXN0cmljdGVkOwotICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlvbnNT
dHJpbmcsICJNZXRhZGF0YVByZWxvYWRpbmdOb3RQZXJtaXR0ZWQiKSkKLSAgICAgICAgcmVzdHJp
Y3Rpb25zICs9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6Ok1ldGFkYXRhUHJlbG9hZGluZ05vdFBlcm1p
dHRlZDsKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25zU3RyaW5nLCAiQXV0
b1ByZWxvYWRpbmdOb3RQZXJtaXR0ZWQiKSkKLSAgICAgICAgcmVzdHJpY3Rpb25zICs9IE1lZGlh
U2Vzc2lvbk1hbmFnZXI6OkF1dG9QcmVsb2FkaW5nTm90UGVybWl0dGVkOwotICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZShyZXN0cmljdGlvbnNTdHJpbmcsICJCYWNrZ3JvdW5kUHJvY2Vzc1BsYXli
YWNrUmVzdHJpY3RlZCIpKQotICAgICAgICByZXN0cmljdGlvbnMgKz0gTWVkaWFTZXNzaW9uTWFu
YWdlcjo6QmFja2dyb3VuZFByb2Nlc3NQbGF5YmFja1Jlc3RyaWN0ZWQ7Ci0gICAgaWYgKGVxdWFs
SWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uc1N0cmluZywgIkJhY2tncm91bmRUYWJQbGF5YmFja1Jl
c3RyaWN0ZWQiKSkKLSAgICAgICAgcmVzdHJpY3Rpb25zICs9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6
OkJhY2tncm91bmRUYWJQbGF5YmFja1Jlc3RyaWN0ZWQ7Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdD
YXNlKHJlc3RyaWN0aW9uc1N0cmluZywgIkludGVycnVwdGVkUGxheWJhY2tOb3RQZXJtaXR0ZWQi
KSkKLSAgICAgICAgcmVzdHJpY3Rpb25zICs9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6OkludGVycnVw
dGVkUGxheWJhY2tOb3RQZXJtaXR0ZWQ7CiAKKyAgICBWZWN0b3I8U3RyaW5nPiByZXN0cmljdGlv
bnNBcnJheTsKKyAgICByZXN0cmljdGlvbnNTdHJpbmcuc3BsaXQoJywnLCBmYWxzZSwgcmVzdHJp
Y3Rpb25zQXJyYXkpOworICAgIGZvciAoYXV0byYgcmVzdHJpY3Rpb25TdHJpbmcgOiByZXN0cmlj
dGlvbnNBcnJheSkgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25T
dHJpbmcsICJDb25jdXJyZW50UGxheWJhY2tOb3RQZXJtaXR0ZWQiKSkKKyAgICAgICAgICAgIHJl
c3RyaWN0aW9ucyB8PSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpDb25jdXJyZW50UGxheWJhY2tOb3RQ
ZXJtaXR0ZWQ7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlvblN0cmlu
ZywgIklubGluZVZpZGVvUGxheWJhY2tSZXN0cmljdGVkIikpCisgICAgICAgICAgICByZXN0cmlj
dGlvbnMgfD0gTWVkaWFTZXNzaW9uTWFuYWdlcjo6SW5saW5lVmlkZW9QbGF5YmFja1Jlc3RyaWN0
ZWQ7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlvblN0cmluZywgIk1l
dGFkYXRhUHJlbG9hZGluZ05vdFBlcm1pdHRlZCIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25z
IHw9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6Ok1ldGFkYXRhUHJlbG9hZGluZ05vdFBlcm1pdHRlZDsK
KyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiQXV0b1By
ZWxvYWRpbmdOb3RQZXJtaXR0ZWQiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBNZWRp
YVNlc3Npb25NYW5hZ2VyOjpBdXRvUHJlbG9hZGluZ05vdFBlcm1pdHRlZDsKKyAgICAgICAgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiQmFja2dyb3VuZFByb2Nlc3NQ
bGF5YmFja1Jlc3RyaWN0ZWQiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBNZWRpYVNl
c3Npb25NYW5hZ2VyOjpCYWNrZ3JvdW5kUHJvY2Vzc1BsYXliYWNrUmVzdHJpY3RlZDsKKyAgICAg
ICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiQmFja2dyb3VuZFRh
YlBsYXliYWNrUmVzdHJpY3RlZCIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IE1lZGlh
U2Vzc2lvbk1hbmFnZXI6OkJhY2tncm91bmRUYWJQbGF5YmFja1Jlc3RyaWN0ZWQ7CisgICAgICAg
IGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlvblN0cmluZywgIkludGVycnVwdGVkUGxh
eWJhY2tOb3RQZXJtaXR0ZWQiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBNZWRpYVNl
c3Npb25NYW5hZ2VyOjpJbnRlcnJ1cHRlZFBsYXliYWNrTm90UGVybWl0dGVkOworICAgIH0KICAg
ICBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuYWRkUmVzdHJpY3Rpb24obWVk
aWFUeXBlLCByZXN0cmljdGlvbnMpOwogfQotICAgIAorCit2b2lkIEludGVybmFsczo6c2V0TWVk
aWFFbGVtZW50UmVzdHJpY3Rpb25zKEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFN0
cmluZyYgcmVzdHJpY3Rpb25zU3RyaW5nLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAo
IWVsZW1lbnQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBIVE1MTWVkaWFTZXNzaW9uOjpCZWhhdmlvclJlc3RyaWN0aW9u
cyByZXN0cmljdGlvbnMgPSBlbGVtZW50LT5tZWRpYVNlc3Npb24oKS5iZWhhdmlvclJlc3RyaWN0
aW9ucygpOworICAgIGVsZW1lbnQtPm1lZGlhU2Vzc2lvbigpLnJlbW92ZUJlaGF2aW9yUmVzdHJp
Y3Rpb24ocmVzdHJpY3Rpb25zKTsKKworICAgIHJlc3RyaWN0aW9ucyA9IEhUTUxNZWRpYVNlc3Np
b246Ok5vUmVzdHJpY3Rpb25zOworCisgICAgVmVjdG9yPFN0cmluZz4gcmVzdHJpY3Rpb25zQXJy
YXk7CisgICAgcmVzdHJpY3Rpb25zU3RyaW5nLnNwbGl0KCcsJywgZmFsc2UsIHJlc3RyaWN0aW9u
c0FycmF5KTsKKyAgICBmb3IgKGF1dG8mIHJlc3RyaWN0aW9uU3RyaW5nIDogcmVzdHJpY3Rpb25z
QXJyYXkpIHsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5n
LCAiTm9SZXN0cmljdGlvbnMiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBIVE1MTWVk
aWFTZXNzaW9uOjpOb1Jlc3RyaWN0aW9uczsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNl
KHJlc3RyaWN0aW9uU3RyaW5nLCAiUmVxdWlyZVVzZXJHZXN0dXJlRm9yTG9hZCIpKQorICAgICAg
ICAgICAgcmVzdHJpY3Rpb25zIHw9IEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVy
ZUZvckxvYWQ7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlvblN0cmlu
ZywgIlJlcXVpcmVVc2VyR2VzdHVyZUZvclJhdGVDaGFuZ2UiKSkKKyAgICAgICAgICAgIHJlc3Ry
aWN0aW9ucyB8PSBIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVGb3JSYXRlQ2hh
bmdlOworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25TdHJpbmcsICJS
ZXF1aXJlVXNlckdlc3R1cmVGb3JGdWxsc2NyZWVuIikpCisgICAgICAgICAgICByZXN0cmljdGlv
bnMgfD0gSFRNTE1lZGlhU2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlRm9yRnVsbHNjcmVlbjsK
KyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiUmVxdWly
ZVBhZ2VDb25zZW50VG9Mb2FkTWVkaWEiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBI
VE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlUGFnZUNvbnNlbnRUb0xvYWRNZWRpYTsKKyAgICAgICAg
aWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiUmVxdWlyZVBhZ2VDb25z
ZW50VG9SZXN1bWVNZWRpYSIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IEhUTUxNZWRp
YVNlc3Npb246OlJlcXVpcmVQYWdlQ29uc2VudFRvUmVzdW1lTWVkaWE7CisjaWYgRU5BQkxFKFdJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJl
c3RyaWN0aW9uU3RyaW5nLCAiUmVxdWlyZVVzZXJHZXN0dXJlVG9TaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBIVE1MTWVkaWFTZXNzaW9uOjpS
ZXF1aXJlVXNlckdlc3R1cmVUb1Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjsKKyAgICAgICAgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiV2lyZWxlc3NWaWRlb1BsYXli
YWNrRGlzYWJsZWQiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBIVE1MTWVkaWFTZXNz
aW9uOjpXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZDsKKyNlbmRpZgorICAgICAgICBpZiAo
ZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25TdHJpbmcsICJSZXF1aXJlVXNlckdlc3R1cmVG
b3JBdWRpb1JhdGVDaGFuZ2UiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBIVE1MTWVk
aWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2U7CisgICAgfQor
ICAgIGVsZW1lbnQtPm1lZGlhU2Vzc2lvbigpLmFkZEJlaGF2aW9yUmVzdHJpY3Rpb24ocmVzdHJp
Y3Rpb25zKTsKK30KKwogdm9pZCBJbnRlcm5hbHM6OnBvc3RSZW1vdGVDb250cm9sQ29tbWFuZChj
b25zdCBTdHJpbmcmIGNvbW1hbmRTdHJpbmcsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIE1l
ZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIGNvbW1hbmQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaAppbmRleCA3ZDc5NTBiZGY0OGY5OGEzNDcwNTUzMWUzNzJiZjdmOTZi
ZTc4ZmZlLi4wZmFhMWMxOTIzZjUzNjU0NGY5YTJlNWJhZDliNDAyYzk1MTNlNDdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgRG9jdW1lbnQ7
CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRmlsZTsKIGNsYXNzIEZyYW1lOworY2xhc3MgSFRNTE1l
ZGlhRWxlbWVudDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbER1bW15OwogY2xhc3Mg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnREdW1teTsKIGNsYXNzIEludGVybmFsU2V0dGluZ3M7CkBA
IC0zNjEsNiArMzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbGljYXRpb25XaWxsRW50ZXJG
b3JlZ3JvdW5kKCkgY29uc3Q7CiAgICAgdm9pZCBhcHBsaWNhdGlvbldpbGxFbnRlckJhY2tncm91
bmQoKSBjb25zdDsKICAgICB2b2lkIHNldE1lZGlhU2Vzc2lvblJlc3RyaWN0aW9ucyhjb25zdCBT
dHJpbmcmIG1lZGlhVHlwZSwgY29uc3QgU3RyaW5nJiByZXN0cmljdGlvbnMsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2b2lkIHNldE1lZGlhRWxlbWVudFJlc3RyaWN0aW9ucyhIVE1MTWVkaWFFbGVt
ZW50KiwgY29uc3QgU3RyaW5nJiByZXN0cmljdGlvbnMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIHBvc3RSZW1vdGVDb250cm9sQ29tbWFuZChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgYm9vbCBlbGVtZW50SXNCbG9ja2luZ0Rpc3BsYXlTbGVlcChFbGVtZW50KikgY29u
c3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAwYWZmY2Ji
ZTk0YjU5ODE1OTVjMTVmNDdhN2M4ZWE5OTA4ZTBkOWFiLi5jZDg5OWQzMmZlYzFjMGI2ZTJmOTUw
MTFmNjVjYmU0ZDIxYzNmNGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBA
IC0zMzAsNiArMzMwLDcgQEAgZW51bSBSZXNvdXJjZUxvYWRQcmlvcml0eSB7CiAgICAgW0NvbmRp
dGlvbmFsPVZJREVPXSB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpOwogICAg
IFtDb25kaXRpb25hbD1WSURFT10gdm9pZCBhcHBsaWNhdGlvbldpbGxFbnRlckJhY2tncm91bmQo
KTsKICAgICBbQ29uZGl0aW9uYWw9VklERU8sIFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRNZWRp
YVNlc3Npb25SZXN0cmljdGlvbnMoRE9NU3RyaW5nIG1lZGlhVHlwZSwgRE9NU3RyaW5nIHJlc3Ry
aWN0aW9ucyk7CisgICAgW0NvbmRpdGlvbmFsPVZJREVPLCBSYWlzZXNFeGNlcHRpb25dIHZvaWQg
c2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKEhUTUxNZWRpYUVsZW1lbnQgZWxlbWVudCwgRE9N
U3RyaW5nIHJlc3RyaWN0aW9ucyk7CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPLCBSYWlzZXNFeGNl
cHRpb25dIHZvaWQgcG9zdFJlbW90ZUNvbnRyb2xDb21tYW5kKERPTVN0cmluZyBjb21tYW5kKTsK
ICAgICAKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIHZvaWQgc2ltdWxhdGVTeXN0ZW1TbGVlcCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDQxY2E5OGFlY2M3NGJlMmQzODllNWIxMmU1ZGU3OTk5NTEzN2M2YTEuLjdlNzEx
M2ZiYzQxZWNhZTkzMTBhOTczOGU2MTUzYWVkODc0YjQ5MWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxNS0wNC0wNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgYSBzZXR0aW5nICYgcmVzdHJpY3Rpb24gd2hpY2ggcHJldmVudHMgbm9uLWludGVyYWN0
aXZ0ZSBwbGF5YmFjayBvZiBhdWRpYmxlIG1lZGlhIGVsZW1lbnRzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzNDg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9hdWRpby1wbGF5YmFjay1y
ZXN0cmljdGlvbi1hdXRvcGxheS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9hdWRpby1w
bGF5YmFjay1yZXN0cmljdGlvbi1wbGF5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3Zp
ZGVvLXRlc3QuanM6CisgICAgICAgIChzZXRDYXB0aW9uRGlzcGxheU1vZGUpOgorICAgICAgICAo
cnVuV2l0aEtleURvd24uZXZlbnROYW1lLndpbmRvdy50ZXN0UnVubmVyLmV2ZW50U2VuZGVyLmtl
eURvd24uc3RyaW5nX2FwcGVhcmVkX2hlcmUuc3RyaW5nX2FwcGVhcmVkX2hlcmUudGh1bmspOgor
ICAgICAgICAocnVuV2l0aEtleURvd24pOgorCiAyMDE1LTA0LTA1ICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmddIEFkZCBzb21lIGFk
ZGl0aW9uYWwgdW5ibG9jayB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvYXVk
aW8tcGxheWJhY2stcmVzdHJpY3Rpb24tYXV0b3BsYXkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlh
L2F1ZGlvLXBsYXliYWNrLXJlc3RyaWN0aW9uLWF1dG9wbGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMz
MTExNmEwNzZmZmFiZGZjZTBhN2FjODMxNzFjMGI3ODRhODliZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXliYWNrLXJlc3RyaWN0aW9uLWF1dG9wbGF5Lmh0
bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDx0aXRsZT5hdWRpby1wbGF5YmFjay1yZXN0cmljdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBz
cmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0Lmpz
Pjwvc2NyaXB0PgorCisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7
CisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2F1ZGlvJylb
MF07CisKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBydW4oJ2lu
dGVybmFscy5zZXRNZWRpYUVsZW1lbnRSZXN0cmljdGlvbnModmlkZW8sICJSZXF1aXJlVXNlckdl
c3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UiKScpOworCisgICAgICAgIHdhaXRGb3JFdmVudEFuZEZh
aWwoJ2Vycm9yJyk7CisgICAgICAgIHdhaXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBjYW5w
bGF5dGhyb3VnaCk7CisgICAgICAgIHJ1bigidmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgnYXVk
aW8nLCAnY29udGVudC90ZXN0JykiKTsKKyAgICB9ICAgIAorCisgICAgZnVuY3Rpb24gY2FucGxh
eXRocm91Z2goKQorICAgIHsKKyAgICAgICAgcnVuKCJzZXRUaW1lb3V0KHRpbWVvdXQsIDEwMCki
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0aW1lb3V0KCkKKyAgICB7CisgICAgICAgIHRlc3RF
eHBlY3RlZCgndmlkZW8ucGF1c2VkJywgdHJ1ZSk7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAg
ICA8cD5UZXN0IHRoYXQsIHdoZW4gUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdl
IGlzIHNldCwgc3RhcnRpbmcgcGxheWJhY2sgb2YgYW4gYXVkaW8gZmlsZSByZXF1aXJlcyBhIHVz
ZXIgZ2VzdHVyZS48L3A+CisgICAgPGF1ZGlvIGNvbnRyb2xzIGF1dG9wbGF5PjwvYXVkaW8+Cis8
L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBs
YXliYWNrLXJlc3RyaWN0aW9uLXBsYXkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBs
YXliYWNrLXJlc3RyaWN0aW9uLXBsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmZmM2QzNmRjZjZkMTg0
Yzk4N2YxYjE4YmU3ZDA1NmNjZGRmYTM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvYXVkaW8tcGxheWJhY2stcmVzdHJpY3Rpb24tcGxheS5odG1sCkBAIC0wLDAgKzEsNDMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+YXVkaW8tcGxh
eWJhY2stcmVzdHJpY3Rpb248L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPW1lZGlhLWZpbGUuanM+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKworICAg
IDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgICB2aWRlbyA9
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhdWRpbycpWzBdOworCisgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0TWVkaWFF
bGVtZW50UmVzdHJpY3Rpb25zKHZpZGVvLCAiUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRl
Q2hhbmdlIiknKTsKKworICAgICAgICB3YWl0Rm9yRXZlbnRBbmRGYWlsKCdlcnJvcicpOworICAg
ICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBsYXl0aHJvdWdoJywgY2FucGxheXRocm91Z2gpOworICAg
ICAgICBydW4oInZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoJ2F1ZGlvJywgJ2NvbnRlbnQvdGVz
dCcpIik7CisgICAgfSAgICAKKworICAgIGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkKKyAgICB7
CisgICAgICAgIHJ1bigidmlkZW8ucGxheSgpIik7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlk
ZW8ucGF1c2VkJywgdHJ1ZSk7CisgICAgICAgIHJ1bldpdGhLZXlEb3duKHBsYXlXaXRoS2V5RG93
bik7CisgICAgfQorCisgICAgZnVuY3Rpb24gcGxheVdpdGhLZXlEb3duKCkKKyAgICB7CisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnUnVubmluZyB3aXRoIGtleURvd24uJyk7CisgICAgICAgIHJ1bigi
dmlkZW8ucGxheSgpIik7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ucGF1c2VkJywgZmFs
c2UpOworICAgICAgICBlbmRUZXN0KCk7CisgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdCB0aGF0LCB3aGVuIFJlcXVp
cmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSBpcyBzZXQsIHN0YXJ0aW5nIHBsYXliYWNr
IG9mIGFuIGF1ZGlvIGZpbGUgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUuPC9wPgorICAgIDxhdWRp
byBjb250cm9scyBhdXRvcGxheT48L2F1ZGlvPgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvbWVkaWEv
dmlkZW8tdGVzdC5qcwppbmRleCBhZDMzZDFjYjE4NDA5ZDAxNjFmMmQ3NzRmYmQzYWU2N2RlNzhh
NmE0Li40MTAwZDZiZTE3MjNmODVjODk2NGIwMzU4YjIwMGNhMGM0ZDgyYzlkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L3ZpZGVvLXRlc3QuanMKQEAgLTM4Miw1ICszODIsMjQgQEAgZnVuY3Rpb24gc2V0Q2FwdGlvbkRp
c3BsYXlNb2RlKG1vZGUpCiAgICAgICAgIGludGVybmFscy5zZXRDYXB0aW9uRGlzcGxheU1vZGUo
bW9kZSk7CiAgICAgZWxzZQogICAgICAgICBjb25zb2xlV3JpdGUoIjxicj48Yj4qKiBUaGlzIHRl
c3Qgb25seSB3b3JrcyBpbiBEUlQhICoqPCIgKyAiL2I+PGJyPiIpOworfQorCitmdW5jdGlvbiBy
dW5XaXRoS2V5RG93bihmbikgCit7CisgICAgLy8gRklYTUU6IFdLVFIgZG9lcyBub3QgeWV0IHN1
cHBvcnQgdGhlIGtleURvd24oKSBtZXNzYWdlLiAgRG8gYSBtb3VzZURvd24gaGVyZQorICAgIC8v
IGluc3RlYWQgdW50aWwga2V5RG93biBzdXBwb3J0IGlzIGFkZGVkLgorICAgIHZhciBldmVudE5h
bWUgPSAhd2luZG93LnRlc3RSdW5uZXIgfHwgZXZlbnRTZW5kZXIua2V5RG93biA/ICdrZXlwcmVz
cycgOiAnbW91c2Vkb3duJworCisgICAgZnVuY3Rpb24gdGh1bmsoKSB7CisgICAgICAgIGRvY3Vt
ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCB0aHVuaywgZmFsc2UpOworICAgICAg
ICBmbigpOworICAgIH0KKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwg
dGh1bmssIGZhbHNlKTsKIAotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgaWYgKGV2ZW50U2VuZGVyLmtleURvd24pCisg
ICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCIgIiwgW10pOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICB9Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251674</attachid>
            <date>2015-04-25 23:11:59 -0700</date>
            <delta_ts>2015-04-27 08:10:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-143486-20150425231051.patch</filename>
            <type>text/plain</type>
            <size>25615</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmFmZTZiNmJiNWFjOTVj
NDkwYWNkMzQ3MjNiYjhkMGM4MWEwMmU3Ni4uODQ2Y2QwMWU5MWQzNmZmMzhmOGY0ZGIxYmU0ZDRk
ODdkNjlmYWE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE1LTA0LTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIHNldHRpbmcgJiBy
ZXN0cmljdGlvbiB3aGljaCBwcmV2ZW50cyBub24taW50ZXJhY3RpdnRlIHBsYXliYWNrIG9mIGF1
ZGlibGUgbWVkaWEgZWxlbWVudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDM0ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0czogbWVkaWEvYXVkaW8tcGxheWJhY2stcmVzdHJpY3Rpb24tYXV0
b3BsYXkuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvYXVkaW8tcGxheWJhY2stcmVzdHJpY3Rp
b24tcGxheS5odG1sCisKKyAgICAgICAgVG8gYWxsb3cgY2xpZW50cyB3aG8gd2FudCB0byBhbGxv
dyBub24tdXNlci1pbnRlcmFjdGl2ZSB2aWRlby1vbmx5IHBsYXliYWNrLCBidXQgc3RpbGwKKyAg
ICAgICAgcmVzdHJpY3QgcGxheWJhY2sgb2YgYXVkaWJsZSBtZWRpYSBlbGVtZW50cywgYWRkIGEg
bmV3IHNldHRpbmcgYW5kIG1hdGNoaW5nIHJlc3RyaWN0aW9uCisgICAgICAgIHdoaWNoIGRpc2Fs
bG93cyBwbGF5YmFjayBvZiBtZWRpYSBlbGVtZW50cyBjb250YWluaW5nIGF1ZGlibGUgY2hhcmFj
dGVyaXN0aWNzLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOiBTZXQgdGhl
IFJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZQorICAgICAgICAgICAgcmVzdHJp
Y3Rpb24gaWYgdGhlIGF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKCkgc2V0dGluZyBp
cyBzZXQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZSk6IERyaXZlLWJ5IGZpeC4gTW92ZSB0aGUgb3BlbmluZyBicmFjZQorICAgICAgICAgICAgb3V0
IG9mIHRoZSAjaWYsIGFzIHRoaXMgY29uZnVzZXMgdGhlIGhlY2sgb3V0IG9mIGRpZmYgYW5kIG1h
a2VzIGFsbCBzdWJzZXF1ZW50CisgICAgICAgICAgICBjaGFuZ2VzIGFwcGVhciB0byBiZSB3aXRo
aW4gSFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjphdXRvcGxheSk6IFJlbW92ZSB0aGUgcmVzdHJpY3Rpb24gY2hlY2sg
ZnJvbSB3aXRoaW4gYXV0b3BsYXkoKS4KKyAgICAgICAgICAgIEl0IGlzIGNoZWNrZWQgYWdhaW4g
aW1tZWRpYXRlbHkgYWZ0ZXIgZXZlcnkgYXV0b3BsYXkoKSBjYWxsIHNpdGUuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFsKTogUmVtb3ZlIHRoZSBpT1Mt
b25seSAjaWYuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckRpZEFkZEF1ZGlvVHJhY2spOiBDaGVjayB3aGV0aGVyIHBsYXliYWNrCisgICAgICAgICAgICBp
cyBwZXJtaXR0ZWQsIGFuZCBpZiBub3QsIHBhdXNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0
aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXN0cmljdGlvbk5hbWUpOiBTaW5j
ZSBCZWhhdmlvclJlc3RyaWN0aW9ucyBpcyBhIGJpdGZpZWxkLCBjaGVjayBlYWNoIGJpdAorICAg
ICAgICAgICAgaW5kaXZpZHVhbGx5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhU2Vzc2lv
bjo6cmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbik6IEhhbmRsZSBSZXF1aXJlVXNlckdlc3R1cmVG
b3JBdWRpb1JhdGVDaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFTZXNzaW9uOjpw
bGF5YmFja1Blcm1pdHRlZCk6IENoZWNrIHdoZXRoZXIgdGhlIGVsZW1lbnQgaGFzIGF1ZGlvIGFu
ZCAKKyAgICAgICAgICAgIGF1ZGlvIHBsYXliYWNrIGlzIHJlc3RyaWN0ZWQsIGFuZCByZXR1cm4g
ZmFsc2UgaWYgc28uCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmg6CisgICAgICAg
ICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5pbjoKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OnNldE1lZGlhU2Vzc2lvblJlc3RyaWN0aW9ucyk6IEFkZGVkLiAKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKTogQWRkZWQuCisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6
CisKIDIwMTUtMDQtMjQgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAg
IEFuaW1hdGlvbkNvbnRyb2xsZXI6OnNjcm9sbFdhc1VwZGF0ZWQoKSBzaG93cyB1cCBpbiBzY3Jv
bGxpbmcgcHJvZmlsZXMgb24gcGFnZXMgdGhhdCBkb24ndCB1c2Ugc2Nyb2xsIHRyaWdnZXJzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlNTYxNjU1NzJiOTE3
MmUwMzRmYTRkZTIxYjlhYjE2YzQ2YmQ2MmMyLi5iNzk0ZjgxZWYwZDk2ZjQ0M2I0YTUzNjk5NjQ3
MTk3MThjY2U3YjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTM2NCw2ICszNjQsOSBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogICAgIH0KICNlbmRp
ZiAvLyAhUExBVEZPUk0oSU9TKQogCisgICAgaWYgKHNldHRpbmdzICYmIHNldHRpbmdzLT5hdWRp
b1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSgpKQorICAgICAgICBtX21lZGlhU2Vzc2lvbi0+
YWRkQmVoYXZpb3JSZXN0cmljdGlvbihIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1
cmVGb3JBdWRpb1JhdGVDaGFuZ2UpOworCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGlm
IChkb2N1bWVudC5wYWdlKCkpCiAgICAgICAgIG1fY2FwdGlvbkRpc3BsYXlNb2RlID0gZG9jdW1l
bnQucGFnZSgpLT5ncm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygpLT5jYXB0aW9uRGlzcGxheU1v
ZGUoKTsKQEAgLTUyNCwxMSArNTI3LDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgICAgICAvLyBOb3RlLCB1bmxlc3MgdGhlIHJlc3RyaWN0aW9uIG9u
IHJlcXVpcmluZyB1c2VyIGFjdGlvbiBoYXMgYmVlbiByZW1vdmVkLAogICAgICAgICAvLyBkbyBu
b3QgYmVnaW4gZG93bmxvYWRpbmcgZGF0YSBvbiBpT1MuCi0gICAgICAgIGlmICghdmFsdWUuaXNO
dWxsKCkgJiYgbV9tZWRpYVNlc3Npb24tPmRhdGFMb2FkaW5nUGVybWl0dGVkKCp0aGlzKSkgewor
ICAgICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpICYmIG1fbWVkaWFTZXNzaW9uLT5kYXRhTG9hZGlu
Z1Blcm1pdHRlZCgqdGhpcykpCiAjZWxzZQogICAgICAgICAvLyBUcmlnZ2VyIGEgcmVsb2FkLCBh
cyBsb25nIGFzIHRoZSAnc3JjJyBhdHRyaWJ1dGUgaXMgcHJlc2VudC4KLSAgICAgICAgaWYgKCF2
YWx1ZS5pc051bGwoKSkgeworICAgICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKQogI2VuZGlmCisg
ICAgICAgIHsKICAgICAgICAgICAgIGNsZWFyTWVkaWFQbGF5ZXIoTG9hZE1lZGlhUmVzb3VyY2Up
OwogICAgICAgICAgICAgc2NoZWR1bGVEZWxheWVkQWN0aW9uKExvYWRNZWRpYVJlc291cmNlKTsK
ICAgICAgICAgfQpAQCAtMjcwOCwxNiArMjcxMiw2IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6
ZW5kZWQoKSBjb25zdAogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmF1dG9wbGF5KCkgY29uc3QK
IHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgLy8gVW5sZXNzIHRoZSByZXN0cmljdGlvbiBvbiBy
ZXF1aXJpbmcgdXNlciBhY3Rpb25zIGhhcyBiZWVuIGxpZnRlZCwgd2UgZG8gbm90Ci0gICAgLy8g
YWxsb3cgcGxheWJhY2sgdG8gc3RhcnQganVzdCBiZWNhdXNlIHRoZSBwYWdlIGhhcyAiYXV0b3Bs
YXkiLiBUaGV5IGFyZSBlaXRoZXIKLSAgICAvLyBsaWZ0ZWQgdGhyb3VnaCBTZXR0aW5ncywgb3Ig
b25jZSB0aGUgdXNlciBleHBsaWN0bHkgY2FsbHMgbG9hZCgpIG9yIHBsYXkoKQotICAgIC8vIGJl
Y2F1c2UgdGhleSBoYXZlIE9LJ2VkIHVzIGxvYWRpbmcgZGF0YS4gVGhpcyBhbGxvd3MgcGxheWJh
Y2sgdG8gY29udGludWUgaWYKLSAgICAvLyB0aGUgVVJMIGlzIGNoYW5nZWQgd2hpbGUgdGhlIG1v
dmllIGlzIHBsYXlpbmcuCi0gICAgaWYgKCFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0
ZWQoKnRoaXMpIHx8ICFtX21lZGlhU2Vzc2lvbi0+ZGF0YUxvYWRpbmdQZXJtaXR0ZWQoKnRoaXMp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQogICAgIHJldHVybiBmYXN0SGFzQXR0
cmlidXRlKGF1dG9wbGF5QXR0cik7CiB9CiAKQEAgLTI4MTAsMTIgKzI4MDQsMTAgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFsKCkKICAgICAKICAgICAvLyA0LjguMTAuOS4g
UGxheWluZyB0aGUgbWVkaWEgcmVzb3VyY2UKICAgICBpZiAoIW1fcGxheWVyIHx8IG1fbmV0d29y
a1N0YXRlID09IE5FVFdPUktfRU1QVFkpIHsKLSNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIC8v
IFVubGVzcyB0aGUgcmVzdHJpY3Rpb24gb24gbWVkaWEgcmVxdWlyaW5nIHVzZXIgYWN0aW9uIGhh
cyBiZWVuIGxpZnRlZAogICAgICAgICAvLyBkb24ndCB0cmlnZ2VyIGxvYWRpbmcgaWYgYSBzY3Jp
cHQgY2FsbHMgcGF1c2UoKS4KICAgICAgICAgaWYgKCFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQ
ZXJtaXR0ZWQoKnRoaXMpKQogICAgICAgICAgICAgcmV0dXJuOwotI2VuZGlmCiAgICAgICAgIHNj
aGVkdWxlRGVsYXllZEFjdGlvbihMb2FkTWVkaWFSZXNvdXJjZSk7CiAgICAgfQogCkBAIC0zMjEy
LDYgKzMyMDQsOSBAQCBkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6cGVyY2VudExvYWRlZCgpIGNv
bnN0CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNr
KFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+IHBycFRyYWNrKQogeworICAgIGlmIChpc1Bs
YXlpbmcoKSAmJiAhbV9tZWRpYVNlc3Npb24tPnBsYXliYWNrUGVybWl0dGVkKCp0aGlzKSkKKyAg
ICAgICAgcGF1c2VJbnRlcm5hbCgpOworCiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLndlYmtpdFZpZGVvVHJhY2tFbmFibGVkKCkpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtNDM1MCw2ICs0MzQ1LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckNoYXJhY3RlcmlzdGljQ2hhbmdlZChNZWRpYVBsYXllciopCiAgICAgaWYgKHJlbmRl
cmVyKCkpCiAgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiAKKyAgICBp
ZiAoaXNQbGF5aW5nKCkgJiYgIW1fbWVkaWFTZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRlZCgqdGhp
cykpCisgICAgICAgIHBhdXNlSW50ZXJuYWwoKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlSXNQ
bGF5aW5nTWVkaWEoKTsKIAogICAgIGVuZFByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7
CkBAIC01ODgzLDEyICs1ODgxLDE1IEBAIGRvdWJsZSBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllclJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpIGNvbnN0CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCkKIHsK
LSAgICBtX21lZGlhU2Vzc2lvbi0+cmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihIVE1MTWVkaWFT
ZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVGb3JMb2FkKTsKLSAgICBtX21lZGlhU2Vzc2lvbi0+
cmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdl
c3R1cmVGb3JSYXRlQ2hhbmdlKTsKLSAgICBtX21lZGlhU2Vzc2lvbi0+cmVtb3ZlQmVoYXZpb3JS
ZXN0cmljdGlvbihIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVGb3JGdWxsc2Ny
ZWVuKTsKKyAgICBIVE1MTWVkaWFTZXNzaW9uOjpCZWhhdmlvclJlc3RyaWN0aW9ucyByZXN0cmlj
dGlvbnNUb1JlbW92ZSA9IEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZUZvckxv
YWQKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQotICAgIG1fbWVkaWFTZXNz
aW9uLT5yZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVV
c2VyR2VzdHVyZVRvU2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKTsKKyAgICAgICAgfCBIVE1MTWVk
aWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb1Nob3dQbGF5YmFja1RhcmdldFBpY2tlcgog
I2VuZGlmCisgICAgICAgIHwgSFRNTE1lZGlhU2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlRm9y
TG9hZAorICAgICAgICB8IEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZUZvclJh
dGVDaGFuZ2UKKyAgICAgICAgfCBIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVG
b3JBdWRpb1JhdGVDaGFuZ2UKKyAgICAgICAgfCBIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNl
ckdlc3R1cmVGb3JGdWxsc2NyZWVuOworICAgIG1fbWVkaWFTZXNzaW9uLT5yZW1vdmVCZWhhdmlv
clJlc3RyaWN0aW9uKHJlc3RyaWN0aW9uc1RvUmVtb3ZlKTsKIH0KIAogI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNlc3Np
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmNwcAppbmRleCBl
NzQ3OTVhNDBmOWM2NjdmNDhiMTFjYmFhNGQ5ZGI0OWQ2ODZhYmMzLi5jY2QwMGVjZTdkYzc2NTcz
NDFiY2MxZjlmNDU3MWYwOTgxN2I1M2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
U2Vzc2lvbi5jcHAKQEAgLTUxLDEzICs1MSwyMCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAj
aWYgIUxPR19ESVNBQkxFRAotc3RhdGljIGNvbnN0IGNoYXIqIHJlc3RyaWN0aW9uTmFtZShIVE1M
TWVkaWFTZXNzaW9uOjpCZWhhdmlvclJlc3RyaWN0aW9ucyByZXN0cmljdGlvbikKK3N0YXRpYyBT
dHJpbmcgcmVzdHJpY3Rpb25OYW1lKEhUTUxNZWRpYVNlc3Npb246OkJlaGF2aW9yUmVzdHJpY3Rp
b25zIHJlc3RyaWN0aW9uKQogewotI2RlZmluZSBDQVNFKHJlc3RyaWN0aW9uKSBjYXNlIEhUTUxN
ZWRpYVNlc3Npb246OnJlc3RyaWN0aW9uOiByZXR1cm4gI3Jlc3RyaWN0aW9uCi0gICAgc3dpdGNo
IChyZXN0cmljdGlvbikgeworICAgIFN0cmluZ0J1aWxkZXIgcmVzdHJpY3Rpb25CdWlsZGVyOwor
I2RlZmluZSBDQVNFKHJlc3RyaWN0aW9uVHlwZSkgXAorICAgIGlmIChyZXN0cmljdGlvbiAmIEhU
TUxNZWRpYVNlc3Npb246OnJlc3RyaWN0aW9uVHlwZSkgeyBcCisgICAgICAgIGlmICghcmVzdHJp
Y3Rpb25CdWlsZGVyLmlzRW1wdHkoKSkgXAorICAgICAgICAgICAgcmVzdHJpY3Rpb25CdWlsZGVy
LmFwcGVuZCgiLCAiKTsgXAorICAgICAgICByZXN0cmljdGlvbkJ1aWxkZXIuYXBwZW5kKCNyZXN0
cmljdGlvblR5cGUpOyBcCisgICAgfSBcCisKICAgICBDQVNFKE5vUmVzdHJpY3Rpb25zKTsKICAg
ICBDQVNFKFJlcXVpcmVVc2VyR2VzdHVyZUZvckxvYWQpOwogICAgIENBU0UoUmVxdWlyZVVzZXJH
ZXN0dXJlRm9yUmF0ZUNoYW5nZSk7CisgICAgQ0FTRShSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRp
b1JhdGVDaGFuZ2UpOwogICAgIENBU0UoUmVxdWlyZVVzZXJHZXN0dXJlRm9yRnVsbHNjcmVlbik7
CiAgICAgQ0FTRShSZXF1aXJlUGFnZUNvbnNlbnRUb0xvYWRNZWRpYSk7CiAgICAgQ0FTRShSZXF1
aXJlUGFnZUNvbnNlbnRUb1Jlc3VtZU1lZGlhKTsKQEAgLTY1LDEwICs3Miw5IEBAIHN0YXRpYyBj
b25zdCBjaGFyKiByZXN0cmljdGlvbk5hbWUoSFRNTE1lZGlhU2Vzc2lvbjo6QmVoYXZpb3JSZXN0
cmljdGlvbnMgcmVzdHJpCiAgICAgQ0FTRShSZXF1aXJlVXNlckdlc3R1cmVUb1Nob3dQbGF5YmFj
a1RhcmdldFBpY2tlcik7CiAgICAgQ0FTRShXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCk7
CiAjZW5kaWYKLSAgICB9CisgICAgQ0FTRShSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVD
aGFuZ2UpOwogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuICIiOworICAg
IHJldHVybiByZXN0cmljdGlvbkJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KICNlbmRpZgogCkBAIC0x
MDEsMjMgKzEwNywyOCBAQCB2b2lkIEhUTUxNZWRpYVNlc3Npb246OnVucmVnaXN0ZXJXaXRoRG9j
dW1lbnQoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKIAogdm9pZCBIVE1MTWVkaWFT
ZXNzaW9uOjphZGRCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3Ry
aWN0aW9uKQogewotICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYVNlc3Npb246OmFkZEJlaGF2aW9y
UmVzdHJpY3Rpb24gLSBhZGRpbmcgJXMiLCByZXN0cmljdGlvbk5hbWUocmVzdHJpY3Rpb24pKTsK
KyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFTZXNzaW9uOjphZGRCZWhhdmlvclJlc3RyaWN0aW9u
IC0gYWRkaW5nICVzIiwgcmVzdHJpY3Rpb25OYW1lKHJlc3RyaWN0aW9uKS51dGY4KCkuZGF0YSgp
KTsKICAgICBtX3Jlc3RyaWN0aW9ucyB8PSByZXN0cmljdGlvbjsKIH0KIAogdm9pZCBIVE1MTWVk
aWFTZXNzaW9uOjpyZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2aW9yUmVzdHJpY3Rpb25z
IHJlc3RyaWN0aW9uKQogewotICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYVNlc3Npb246OnJlbW92
ZUJlaGF2aW9yUmVzdHJpY3Rpb24gLSByZW1vdmluZyAlcyIsIHJlc3RyaWN0aW9uTmFtZShyZXN0
cmljdGlvbikpOworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYVNlc3Npb246OnJlbW92ZUJlaGF2
aW9yUmVzdHJpY3Rpb24gLSByZW1vdmluZyAlcyIsIHJlc3RyaWN0aW9uTmFtZShyZXN0cmljdGlv
bikudXRmOCgpLmRhdGEoKSk7CiAgICAgbV9yZXN0cmljdGlvbnMgJj0gfnJlc3RyaWN0aW9uOwog
fQogCi1ib29sIEhUTUxNZWRpYVNlc3Npb246OnBsYXliYWNrUGVybWl0dGVkKGNvbnN0IEhUTUxN
ZWRpYUVsZW1lbnQmKSBjb25zdAorYm9vbCBIVE1MTWVkaWFTZXNzaW9uOjpwbGF5YmFja1Blcm1p
dHRlZChjb25zdCBIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KSBjb25zdAogewogICAgIGlmICht
X3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvclJhdGVDaGFuZ2UgJiYgIVNjcmlw
dENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKSB7CiAgICAgICAgIExPRyhNZWRp
YSwgIkhUTUxNZWRpYVNlc3Npb246OnBsYXliYWNrUGVybWl0dGVkIC0gcmV0dXJuaW5nIEZBTFNF
Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBpZiAobV9yZXN0cmljdGlv
bnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UgJiYgZWxlbWVudC5oYXNB
dWRpbygpICYmICFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkgewor
ICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFTZXNzaW9uOjpwbGF5YmFja1Blcm1pdHRlZCAt
IHJldHVybmluZyBGQUxTRSIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmgKaW5k
ZXggOWI0YTQ3YzA4NDMxMjdjY2FhYzM5ZTAxYjk4ZDYzNDhiOTM1N2E4ZS4uYzVmYWE2YjYwNGQ1
MDVlYjUyYzI2MmU3MmM0Yjk4OGM5OTk4NDE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFTZXNzaW9uLmgKQEAgLTg4LDExICs4OCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIFJlcXVpcmVV
c2VyR2VzdHVyZVRvU2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyID0gMSA8PCA1LAogICAgICAgICBX
aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCA9ICAxIDw8IDYsCiAjZW5kaWYKKyAgICAgICAg
UmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlID0gMSA8PCA3LAogICAgIH07CiAg
ICAgdHlwZWRlZiB1bnNpZ25lZCBCZWhhdmlvclJlc3RyaWN0aW9uczsKIAotICAgIHZvaWQgYWRk
QmVoYXZpb3JSZXN0cmljdGlvbihCZWhhdmlvclJlc3RyaWN0aW9ucyk7Ci0gICAgdm9pZCByZW1v
dmVCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2aW9yUmVzdHJpY3Rpb25zKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBCZWhhdmlvclJlc3RyaWN0aW9ucyBiZWhhdmlvclJlc3RyaWN0aW9ucygpIGNvbnN0
IHsgcmV0dXJuIG1fcmVzdHJpY3Rpb25zOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRC
ZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2aW9yUmVzdHJpY3Rpb25zKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oQmVoYXZpb3JSZXN0cmljdGlvbnMp
OwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKICAgICBzaXplX3QgbWF4aW11bU1lZGlhU291
cmNlQnVmZmVyU2l6ZShjb25zdCBTb3VyY2VCdWZmZXImKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAKaW5kZXggZWZkNTYyNTZkOTg5NjdkNDI0NDg2NGRhNWQzNjM2ZTNkNzMxZTJmMy4u
MWYwZDcxYjJmNGQwZmY2OGI0MTZhYjQ3ZGFkM2I2ZjVhZWVmNTc3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAKQEAgLTEyNyw2ICsxMjcsNyBAQCBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0
Rml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0RvY3VtZW50ID0gdHJ1ZTsKIHN0YXRpYyBj
b25zdCBib29sIGRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVu
YWJsZWQgPSB0cnVlOwogc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhUGxheWJhY2tBbGxv
d3NJbmxpbmUgPSBmYWxzZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYVBsYXliYWNr
UmVxdWlyZXNVc2VyR2VzdHVyZSA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QXVk
aW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVlOwogc3RhdGljIGNvbnN0IGJvb2wg
ZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gdHJ1ZTsKIHN0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZCA9IHRydWU7CiBzdGF0aWMgY29u
c3QgYm9vbCBkZWZhdWx0U2Nyb2xsaW5nVHJlZUluY2x1ZGVzRnJhbWVzID0gdHJ1ZTsKQEAgLTEz
Niw2ICsxMzcsNyBAQCBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Rml4ZWRCYWNrZ3JvdW5kc1Bh
aW50UmVsYXRpdmVUb0RvY3VtZW50ID0gZmFsc2U7CiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkID0gZmFsc2U7CiBz
dGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFQbGF5YmFja0FsbG93c0lubGluZSA9IHRydWU7
CiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1
cmUgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBdWRpb1BsYXliYWNrUmVxdWly
ZXNVc2VyR2VzdHVyZSA9IGZhbHNlOwogc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uID0gZmFsc2U7CiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0
SW1hZ2VTdWJzYW1wbGluZ0VuYWJsZWQgPSBmYWxzZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1
bHRTY3JvbGxpbmdUcmVlSW5jbHVkZXNGcmFtZXMgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmluCmluZGV4IGJiMjY3ZGQzZTkzN2NhYjMwMTZmNDJmNTA1MjMzZjQwZTNhYWJhYzguLjViMWQ0
ODNlYWVjMjdjZjQ2MjgzMzZiZTAyOGEzM2FkMjVjMTliNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5pbgpAQCAtMTI2LDYgKzEyNiw3IEBAIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJh
bWUgaW5pdGlhbD1mYWxzZQogYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQgaW5pdGlhbD1m
YWxzZQogYWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQgaW5pdGlhbD1mYWxzZQogbWVkaWFQ
bGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgaW5pdGlhbD1kZWZhdWx0TWVkaWFQbGF5YmFja1Jl
cXVpcmVzVXNlckdlc3R1cmUKK2F1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlIGluaXRp
YWw9ZGVmYXVsdEF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlCiBtZWRpYVBsYXliYWNr
QWxsb3dzSW5saW5lIGluaXRpYWw9ZGVmYXVsdE1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUKIGFs
bG93c0FsdGVybmF0ZUZ1bGxzY3JlZW4gaW5pdGlhbD1kZWZhdWx0QWxsb3dzQWx0ZXJuYXRlRnVs
bHNjcmVlbgogcGFzc3dvcmRFY2hvRW5hYmxlZCBpbml0aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggYzZiMDUzZTNmNzkyNjA1YTI5Njk1NTExOWVkYjFmODRm
ZTFmZTI1MS4uMWJhNTlmYjY2N2UzY2FiN2YwMzcwN2IwNTAyMWRlZWNiYmI1MzVmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjUzMiwyNSArMjUzMiw2NyBAQCB2b2lk
IEludGVybmFsczo6c2V0TWVkaWFTZXNzaW9uUmVzdHJpY3Rpb25zKGNvbnN0IFN0cmluZyYgbWVk
aWFUeXBlU3RyaW5nLCBjb25zdAogICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKS5yZW1vdmVSZXN0cmljdGlvbihtZWRpYVR5cGUsIHJlc3RyaWN0aW9ucyk7CiAKICAgICBy
ZXN0cmljdGlvbnMgPSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpOb1Jlc3RyaWN0aW9uczsKLSAgICAK
LSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25zU3RyaW5nLCAiQ29uY3VycmVu
dFBsYXliYWNrTm90UGVybWl0dGVkIikpCi0gICAgICAgIHJlc3RyaWN0aW9ucyA9IE1lZGlhU2Vz
c2lvbk1hbmFnZXI6OkNvbmN1cnJlbnRQbGF5YmFja05vdFBlcm1pdHRlZDsKLSAgICBpZiAoZXF1
YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25zU3RyaW5nLCAiSW5saW5lVmlkZW9QbGF5YmFja1Jl
c3RyaWN0ZWQiKSkKLSAgICAgICAgcmVzdHJpY3Rpb25zICs9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6
OklubGluZVZpZGVvUGxheWJhY2tSZXN0cmljdGVkOwotICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZShyZXN0cmljdGlvbnNTdHJpbmcsICJNZXRhZGF0YVByZWxvYWRpbmdOb3RQZXJtaXR0ZWQiKSkK
LSAgICAgICAgcmVzdHJpY3Rpb25zICs9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6Ok1ldGFkYXRhUHJl
bG9hZGluZ05vdFBlcm1pdHRlZDsKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rp
b25zU3RyaW5nLCAiQXV0b1ByZWxvYWRpbmdOb3RQZXJtaXR0ZWQiKSkKLSAgICAgICAgcmVzdHJp
Y3Rpb25zICs9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6OkF1dG9QcmVsb2FkaW5nTm90UGVybWl0dGVk
OwotICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlvbnNTdHJpbmcsICJCYWNrZ3Jv
dW5kUHJvY2Vzc1BsYXliYWNrUmVzdHJpY3RlZCIpKQotICAgICAgICByZXN0cmljdGlvbnMgKz0g
TWVkaWFTZXNzaW9uTWFuYWdlcjo6QmFja2dyb3VuZFByb2Nlc3NQbGF5YmFja1Jlc3RyaWN0ZWQ7
Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uc1N0cmluZywgIkJhY2tncm91
bmRUYWJQbGF5YmFja1Jlc3RyaWN0ZWQiKSkKLSAgICAgICAgcmVzdHJpY3Rpb25zICs9IE1lZGlh
U2Vzc2lvbk1hbmFnZXI6OkJhY2tncm91bmRUYWJQbGF5YmFja1Jlc3RyaWN0ZWQ7Ci0gICAgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uc1N0cmluZywgIkludGVycnVwdGVkUGxheWJh
Y2tOb3RQZXJtaXR0ZWQiKSkKLSAgICAgICAgcmVzdHJpY3Rpb25zICs9IE1lZGlhU2Vzc2lvbk1h
bmFnZXI6OkludGVycnVwdGVkUGxheWJhY2tOb3RQZXJtaXR0ZWQ7CiAKKyAgICBWZWN0b3I8U3Ry
aW5nPiByZXN0cmljdGlvbnNBcnJheTsKKyAgICByZXN0cmljdGlvbnNTdHJpbmcuc3BsaXQoJywn
LCBmYWxzZSwgcmVzdHJpY3Rpb25zQXJyYXkpOworICAgIGZvciAoYXV0byYgcmVzdHJpY3Rpb25T
dHJpbmcgOiByZXN0cmljdGlvbnNBcnJheSkgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UocmVzdHJpY3Rpb25TdHJpbmcsICJDb25jdXJyZW50UGxheWJhY2tOb3RQZXJtaXR0ZWQiKSkK
KyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpDb25jdXJy
ZW50UGxheWJhY2tOb3RQZXJtaXR0ZWQ7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShy
ZXN0cmljdGlvblN0cmluZywgIklubGluZVZpZGVvUGxheWJhY2tSZXN0cmljdGVkIikpCisgICAg
ICAgICAgICByZXN0cmljdGlvbnMgfD0gTWVkaWFTZXNzaW9uTWFuYWdlcjo6SW5saW5lVmlkZW9Q
bGF5YmFja1Jlc3RyaWN0ZWQ7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmlj
dGlvblN0cmluZywgIk1ldGFkYXRhUHJlbG9hZGluZ05vdFBlcm1pdHRlZCIpKQorICAgICAgICAg
ICAgcmVzdHJpY3Rpb25zIHw9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6Ok1ldGFkYXRhUHJlbG9hZGlu
Z05vdFBlcm1pdHRlZDsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9u
U3RyaW5nLCAiQXV0b1ByZWxvYWRpbmdOb3RQZXJtaXR0ZWQiKSkKKyAgICAgICAgICAgIHJlc3Ry
aWN0aW9ucyB8PSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpBdXRvUHJlbG9hZGluZ05vdFBlcm1pdHRl
ZDsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiQmFj
a2dyb3VuZFByb2Nlc3NQbGF5YmFja1Jlc3RyaWN0ZWQiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0
aW9ucyB8PSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpCYWNrZ3JvdW5kUHJvY2Vzc1BsYXliYWNrUmVz
dHJpY3RlZDsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5n
LCAiQmFja2dyb3VuZFRhYlBsYXliYWNrUmVzdHJpY3RlZCIpKQorICAgICAgICAgICAgcmVzdHJp
Y3Rpb25zIHw9IE1lZGlhU2Vzc2lvbk1hbmFnZXI6OkJhY2tncm91bmRUYWJQbGF5YmFja1Jlc3Ry
aWN0ZWQ7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXN0cmljdGlvblN0cmluZywg
IkludGVycnVwdGVkUGxheWJhY2tOb3RQZXJtaXR0ZWQiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0
aW9ucyB8PSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpJbnRlcnJ1cHRlZFBsYXliYWNrTm90UGVybWl0
dGVkOworICAgIH0KICAgICBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuYWRk
UmVzdHJpY3Rpb24obWVkaWFUeXBlLCByZXN0cmljdGlvbnMpOwogfQotICAgIAorCit2b2lkIElu
dGVybmFsczo6c2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKEhUTUxNZWRpYUVsZW1lbnQqIGVs
ZW1lbnQsIGNvbnN0IFN0cmluZyYgcmVzdHJpY3Rpb25zU3RyaW5nLCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoIWVsZW1lbnQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBIVE1MTWVkaWFTZXNzaW9uOjpCZWhh
dmlvclJlc3RyaWN0aW9ucyByZXN0cmljdGlvbnMgPSBlbGVtZW50LT5tZWRpYVNlc3Npb24oKS5i
ZWhhdmlvclJlc3RyaWN0aW9ucygpOworICAgIGVsZW1lbnQtPm1lZGlhU2Vzc2lvbigpLnJlbW92
ZUJlaGF2aW9yUmVzdHJpY3Rpb24ocmVzdHJpY3Rpb25zKTsKKworICAgIHJlc3RyaWN0aW9ucyA9
IEhUTUxNZWRpYVNlc3Npb246Ok5vUmVzdHJpY3Rpb25zOworCisgICAgVmVjdG9yPFN0cmluZz4g
cmVzdHJpY3Rpb25zQXJyYXk7CisgICAgcmVzdHJpY3Rpb25zU3RyaW5nLnNwbGl0KCcsJywgZmFs
c2UsIHJlc3RyaWN0aW9uc0FycmF5KTsKKyAgICBmb3IgKGF1dG8mIHJlc3RyaWN0aW9uU3RyaW5n
IDogcmVzdHJpY3Rpb25zQXJyYXkpIHsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJl
c3RyaWN0aW9uU3RyaW5nLCAiTm9SZXN0cmljdGlvbnMiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0
aW9ucyB8PSBIVE1MTWVkaWFTZXNzaW9uOjpOb1Jlc3RyaWN0aW9uczsKKyAgICAgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiUmVxdWlyZVVzZXJHZXN0dXJlRm9y
TG9hZCIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IEhUTUxNZWRpYVNlc3Npb246OlJl
cXVpcmVVc2VyR2VzdHVyZUZvckxvYWQ7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShy
ZXN0cmljdGlvblN0cmluZywgIlJlcXVpcmVVc2VyR2VzdHVyZUZvclJhdGVDaGFuZ2UiKSkKKyAg
ICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdl
c3R1cmVGb3JSYXRlQ2hhbmdlOworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJp
Y3Rpb25TdHJpbmcsICJSZXF1aXJlVXNlckdlc3R1cmVGb3JGdWxsc2NyZWVuIikpCisgICAgICAg
ICAgICByZXN0cmljdGlvbnMgfD0gSFRNTE1lZGlhU2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJl
Rm9yRnVsbHNjcmVlbjsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9u
U3RyaW5nLCAiUmVxdWlyZVBhZ2VDb25zZW50VG9Mb2FkTWVkaWEiKSkKKyAgICAgICAgICAgIHJl
c3RyaWN0aW9ucyB8PSBIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlUGFnZUNvbnNlbnRUb0xvYWRN
ZWRpYTsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAi
UmVxdWlyZVBhZ2VDb25zZW50VG9SZXN1bWVNZWRpYSIpKQorICAgICAgICAgICAgcmVzdHJpY3Rp
b25zIHw9IEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVQYWdlQ29uc2VudFRvUmVzdW1lTWVkaWE7
CisjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKKyAgICAgICAgaWYgKGVxdWFs
SWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiUmVxdWlyZVVzZXJHZXN0dXJlVG9TaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBIVE1M
TWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb1Nob3dQbGF5YmFja1RhcmdldFBpY2tl
cjsKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAiV2ly
ZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8
PSBIVE1MTWVkaWFTZXNzaW9uOjpXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZDsKKyNlbmRp
ZgorICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25TdHJpbmcsICJSZXF1
aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0
aW9ucyB8PSBIVE1MTWVkaWFTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVD
aGFuZ2U7CisgICAgfQorICAgIGVsZW1lbnQtPm1lZGlhU2Vzc2lvbigpLmFkZEJlaGF2aW9yUmVz
dHJpY3Rpb24ocmVzdHJpY3Rpb25zKTsKK30KKwogdm9pZCBJbnRlcm5hbHM6OnBvc3RSZW1vdGVD
b250cm9sQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmRTdHJpbmcsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIE1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIGNvbW1h
bmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBhNDY2OTJhN2Y1YjhmZDRhZTc4
OWEwNWMxZjRjZjMyNjQwNmEwOGZiLi4yOWM2MzkyNDAxODYwZTYwMWU3Y2Q5NmNkYTc5YTFkMjA0
MGNhMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTQ5LDYgKzQ5LDcgQEAg
Y2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRmlsZTsKIGNsYXNzIEZyYW1l
OworY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bER1bW15OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnREdW1teTsKIGNsYXNzIEludGVy
bmFsU2V0dGluZ3M7CkBAIC0zNjgsNiArMzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbGlj
YXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCkgY29uc3Q7CiAgICAgdm9pZCBhcHBsaWNhdGlvbldp
bGxFbnRlckJhY2tncm91bmQoKSBjb25zdDsKICAgICB2b2lkIHNldE1lZGlhU2Vzc2lvblJlc3Ry
aWN0aW9ucyhjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgY29uc3QgU3RyaW5nJiByZXN0cmljdGlv
bnMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldE1lZGlhRWxlbWVudFJlc3RyaWN0aW9u
cyhIVE1MTWVkaWFFbGVtZW50KiwgY29uc3QgU3RyaW5nJiByZXN0cmljdGlvbnMsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHBvc3RSZW1vdGVDb250cm9sQ29tbWFuZChjb25zdCBTdHJpbmcm
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgYm9vbCBlbGVtZW50SXNCbG9ja2luZ0Rpc3BsYXlTbGVl
cChFbGVtZW50KikgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAppbmRleCAyMDg4ZDE4ZWI2ODczOTZkYzMxZTQyOGZmOWM0ZWQyZWY2N2U1MDg4Li45Y2ZjYjhj
NDU5ZjllOWQ1ZDQxMTM1ZTlhNDYwYjNhZGFjOWJmZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCkBAIC0zMzYsNiArMzM2LDcgQEAgZW51bSBSZXNvdXJjZUxvYWRQcmlvcml0
eSB7CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPXSB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9y
ZWdyb3VuZCgpOwogICAgIFtDb25kaXRpb25hbD1WSURFT10gdm9pZCBhcHBsaWNhdGlvbldpbGxF
bnRlckJhY2tncm91bmQoKTsKICAgICBbQ29uZGl0aW9uYWw9VklERU8sIFJhaXNlc0V4Y2VwdGlv
bl0gdm9pZCBzZXRNZWRpYVNlc3Npb25SZXN0cmljdGlvbnMoRE9NU3RyaW5nIG1lZGlhVHlwZSwg
RE9NU3RyaW5nIHJlc3RyaWN0aW9ucyk7CisgICAgW0NvbmRpdGlvbmFsPVZJREVPLCBSYWlzZXNF
eGNlcHRpb25dIHZvaWQgc2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKEhUTUxNZWRpYUVsZW1l
bnQgZWxlbWVudCwgRE9NU3RyaW5nIHJlc3RyaWN0aW9ucyk7CiAgICAgW0NvbmRpdGlvbmFsPVZJ
REVPLCBSYWlzZXNFeGNlcHRpb25dIHZvaWQgcG9zdFJlbW90ZUNvbnRyb2xDb21tYW5kKERPTVN0
cmluZyBjb21tYW5kKTsKICAgICAKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIHZvaWQgc2ltdWxh
dGVTeXN0ZW1TbGVlcCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJjMmMxNTQ2OTQ5NDQzNzY4NWU0MzEwMzFhMGY4NzMx
MTk2MmY2NWEuLmMwZThiZDU0ZjQ2N2U2NTEwNmY1MGYzYzFmZjQyYzFkODQ5Njg1NTIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNC0wNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgYSBzZXR0aW5nICYgcmVzdHJpY3Rpb24gd2hpY2ggcHJldmVu
dHMgbm9uLWludGVyYWN0aXZ0ZSBwbGF5YmFjayBvZiBhdWRpYmxlIG1lZGlhIGVsZW1lbnRzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzNDg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9h
dWRpby1wbGF5YmFjay1yZXN0cmljdGlvbi1hdXRvcGxheS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBtZWRpYS9hdWRpby1wbGF5YmFjay1yZXN0cmljdGlvbi1wbGF5Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIG1lZGlhL3ZpZGVvLXRlc3QuanM6CisgICAgICAgIChzZXRDYXB0aW9uRGlzcGxheU1v
ZGUpOgorICAgICAgICAocnVuV2l0aEtleURvd24uZXZlbnROYW1lLndpbmRvdy50ZXN0UnVubmVy
LmV2ZW50U2VuZGVyLmtleURvd24uc3RyaW5nX2FwcGVhcmVkX2hlcmUuc3RyaW5nX2FwcGVhcmVk
X2hlcmUudGh1bmspOgorICAgICAgICAocnVuV2l0aEtleURvd24pOgorCiAyMDE1LTA0LTIxICBH
ZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgSXQgc2hvdWxkbid0
IHRha2UgMTg0NiBsaW5lcyBvZiBjb2RlIGFuZCA1IEZJWE1FcyB0byBzb3J0IGFuIGFycmF5Lgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheWJhY2stcmVzdHJpY3Rpb24t
YXV0b3BsYXkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXliYWNrLXJlc3RyaWN0
aW9uLWF1dG9wbGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMzMTExNmEwNzZmZmFiZGZjZTBhN2FjODMx
NzFjMGI3ODRhODliZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlv
LXBsYXliYWNrLXJlc3RyaWN0aW9uLWF1dG9wbGF5Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5hdWRpby1wbGF5YmFjay1y
ZXN0cmljdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorCisgICAgPHNjcmlw
dD4KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAgIHZpZGVvID0gZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2F1ZGlvJylbMF07CisKKyAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRNZWRpYUVsZW1lbnRS
ZXN0cmljdGlvbnModmlkZW8sICJSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2Ui
KScpOworCisgICAgICAgIHdhaXRGb3JFdmVudEFuZEZhaWwoJ2Vycm9yJyk7CisgICAgICAgIHdh
aXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBjYW5wbGF5dGhyb3VnaCk7CisgICAgICAgIHJ1
bigidmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgnYXVkaW8nLCAnY29udGVudC90ZXN0JykiKTsK
KyAgICB9ICAgIAorCisgICAgZnVuY3Rpb24gY2FucGxheXRocm91Z2goKQorICAgIHsKKyAgICAg
ICAgcnVuKCJzZXRUaW1lb3V0KHRpbWVvdXQsIDEwMCkiKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB0aW1lb3V0KCkKKyAgICB7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ucGF1c2VkJywg
dHJ1ZSk7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0IHRoYXQsIHdoZW4gUmVx
dWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIGlzIHNldCwgc3RhcnRpbmcgcGxheWJh
Y2sgb2YgYW4gYXVkaW8gZmlsZSByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZS48L3A+CisgICAgPGF1
ZGlvIGNvbnRyb2xzIGF1dG9wbGF5PjwvYXVkaW8+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXliYWNrLXJlc3RyaWN0aW9uLXBsYXku
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXliYWNrLXJlc3RyaWN0aW9uLXBsYXku
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ZmZmM2QzNmRjZjZkMTg0Yzk4N2YxYjE4YmU3ZDA1NmNjZGRmYTM0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheWJhY2stcmVz
dHJpY3Rpb24tcGxheS5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+YXVkaW8tcGxheWJhY2stcmVzdHJpY3Rpb248L3RpdGxl
PgorICAgIDxzY3JpcHQgc3JjPW1lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKworICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpCisgICAgeworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCdhdWRpbycpWzBdOworCisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKHZpZGVv
LCAiUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIiknKTsKKworICAgICAgICB3
YWl0Rm9yRXZlbnRBbmRGYWlsKCdlcnJvcicpOworICAgICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBs
YXl0aHJvdWdoJywgY2FucGxheXRocm91Z2gpOworICAgICAgICBydW4oInZpZGVvLnNyYyA9IGZp
bmRNZWRpYUZpbGUoJ2F1ZGlvJywgJ2NvbnRlbnQvdGVzdCcpIik7CisgICAgfSAgICAKKworICAg
IGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkKKyAgICB7CisgICAgICAgIHJ1bigidmlkZW8ucGxh
eSgpIik7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ucGF1c2VkJywgdHJ1ZSk7CisgICAg
ICAgIHJ1bldpdGhLZXlEb3duKHBsYXlXaXRoS2V5RG93bik7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcGxheVdpdGhLZXlEb3duKCkKKyAgICB7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnUnVubmlu
ZyB3aXRoIGtleURvd24uJyk7CisgICAgICAgIHJ1bigidmlkZW8ucGxheSgpIik7CisgICAgICAg
IHRlc3RFeHBlY3RlZCgndmlkZW8ucGF1c2VkJywgZmFsc2UpOworICAgICAgICBlbmRUZXN0KCk7
CisgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+CisgICAgPHA+VGVzdCB0aGF0LCB3aGVuIFJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0
ZUNoYW5nZSBpcyBzZXQsIHN0YXJ0aW5nIHBsYXliYWNrIG9mIGFuIGF1ZGlvIGZpbGUgcmVxdWly
ZXMgYSB1c2VyIGdlc3R1cmUuPC9wPgorICAgIDxhdWRpbyBjb250cm9scyBhdXRvcGxheT48L2F1
ZGlvPgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcwppbmRleCBhZDMz
ZDFjYjE4NDA5ZDAxNjFmMmQ3NzRmYmQzYWU2N2RlNzhhNmE0Li40MTAwZDZiZTE3MjNmODVjODk2
NGIwMzU4YjIwMGNhMGM0ZDgyYzlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRl
by10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMKQEAgLTM4Miw1
ICszODIsMjQgQEAgZnVuY3Rpb24gc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKG1vZGUpCiAgICAgICAg
IGludGVybmFscy5zZXRDYXB0aW9uRGlzcGxheU1vZGUobW9kZSk7CiAgICAgZWxzZQogICAgICAg
ICBjb25zb2xlV3JpdGUoIjxicj48Yj4qKiBUaGlzIHRlc3Qgb25seSB3b3JrcyBpbiBEUlQhICoq
PCIgKyAiL2I+PGJyPiIpOworfQorCitmdW5jdGlvbiBydW5XaXRoS2V5RG93bihmbikgCit7Cisg
ICAgLy8gRklYTUU6IFdLVFIgZG9lcyBub3QgeWV0IHN1cHBvcnQgdGhlIGtleURvd24oKSBtZXNz
YWdlLiAgRG8gYSBtb3VzZURvd24gaGVyZQorICAgIC8vIGluc3RlYWQgdW50aWwga2V5RG93biBz
dXBwb3J0IGlzIGFkZGVkLgorICAgIHZhciBldmVudE5hbWUgPSAhd2luZG93LnRlc3RSdW5uZXIg
fHwgZXZlbnRTZW5kZXIua2V5RG93biA/ICdrZXlwcmVzcycgOiAnbW91c2Vkb3duJworCisgICAg
ZnVuY3Rpb24gdGh1bmsoKSB7CisgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIo
ZXZlbnROYW1lLCB0aHVuaywgZmFsc2UpOworICAgICAgICBmbigpOworICAgIH0KKyAgICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgdGh1bmssIGZhbHNlKTsKIAotfQpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgaWYgKGV2ZW50U2VuZGVyLmtleURvd24pCisgICAgICAgICAgICBldmVudFNlbmRlci5r
ZXlEb3duKCIgIiwgW10pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKKyAgICB9Cit9Cg==
</data>
<flag name="commit-queue"
          id="276533"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>