<?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>170759</bug_id>
          
          <creation_ts>2017-04-11 18:29:42 -0700</creation_ts>
          <short_desc>[WebIDL] Add support for extended attributes on types in WebIDL</short_desc>
          <delta_ts>2017-05-04 09:18:13 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1296625</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-11 18:29:42 -0700</bug_when>
    <thetext>With https://github.com/heycam/webidl/pull/286, WebIDL has updated its grammar and added added support for extended attributes directly associated with types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296629</commentid>
    <comment_count>1</comment_count>
      <attachid>306883</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-11 19:32:37 -0700</bug_when>
    <thetext>Created attachment 306883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296632</commentid>
    <comment_count>2</comment_count>
      <attachid>306884</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-11 20:38:28 -0700</bug_when>
    <thetext>Created attachment 306884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297029</commentid>
    <comment_count>3</comment_count>
      <attachid>306884</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-13 10:40:51 -0700</bug_when>
    <thetext>Comment on attachment 306884
Patch

Rejecting attachment 306884 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 306884, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
    -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 215323 = b1e02dbc03afc79fa6594cd2761a7eafee9f7c7a
r215324 = 64df7a4298e2b28020dad16783319373057cd46d
r215325 = 04c71ab1eee5352b02f54676fe40e28c88526a5b
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/3529496</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297039</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-13 10:56:09 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #3)
&gt; Comment on attachment 306884 [details]
&gt; Patch
&gt; 
&gt; Rejecting attachment 306884 [details] from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;,
&gt; &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;,
&gt; &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;,
&gt; &apos;--parent-command=commit-queue&apos;, 306884, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd:
&gt; /Volumes/Data/EWS/WebKit
&gt; 
&gt; Last 500 characters of output:
&gt;     -&gt; origin/master
&gt; Partial-rebuilding
&gt; .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-
&gt; d52691b4dbfc ...
&gt; Currently at 215323 = b1e02dbc03afc79fa6594cd2761a7eafee9f7c7a
&gt; r215324 = 64df7a4298e2b28020dad16783319373057cd46d
&gt; r215325 = 04c71ab1eee5352b02f54676fe40e28c88526a5b
&gt; Done rebuilding
&gt; .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-
&gt; d52691b4dbfc
&gt; First, rewinding head to replay your work on top of it...
&gt; Fast-forwarded master to refs/remotes/origin/master.
&gt; 
&gt; Full output: http://webkit-queues.webkit.org/results/3529496

Not going to lie, that output is a tad confusing. But I&apos;ll assume it means it didn&apos;t merge cleanly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304647</commentid>
    <comment_count>5</comment_count>
      <attachid>306884</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-04 09:00:44 -0700</bug_when>
    <thetext>Comment on attachment 306884
Patch

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

&gt; Source/WebCore/css/MediaList.idl:32
&gt; +    [SetterMayThrowException] attribute [TreatNullAs=EmptyString] DOMString mediaText;

Why? This no longer matches WebIDL syntax or the spec:
https://drafts.csswg.org/cssom/#the-medialist-interface

This should be:
[SetterMayThrowException, TreatNullAs=EmptyString] attribute DOMString mediaText;

I do not like this change at all unless this is somehow a newer WebIDL syntax I do not know about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304648</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-04 09:01:55 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Comment on attachment 306884 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=306884&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/MediaList.idl:32
&gt; &gt; +    [SetterMayThrowException] attribute [TreatNullAs=EmptyString] DOMString mediaText;
&gt; 
&gt; Why? This no longer matches WebIDL syntax or the spec:
&gt; https://drafts.csswg.org/cssom/#the-medialist-interface
&gt; 
&gt; This should be:
&gt; [SetterMayThrowException, TreatNullAs=EmptyString] attribute DOMString
&gt; mediaText;
&gt; 
&gt; I do not like this change at all unless this is somehow a newer WebIDL
&gt; syntax I do not know about.

I noticed this when trying to align MediaList.idl with the spec. I can no longer copy/paste from the spec which is a huge downside for me. Our WebIDL should be as close to specs as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304649</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-04 09:04:50 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; Comment on attachment 306884 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=306884&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/css/MediaList.idl:32
&gt; &gt; &gt; +    [SetterMayThrowException] attribute [TreatNullAs=EmptyString] DOMString mediaText;
&gt; &gt; 
&gt; &gt; Why? This no longer matches WebIDL syntax or the spec:
&gt; &gt; https://drafts.csswg.org/cssom/#the-medialist-interface
&gt; &gt; 
&gt; &gt; This should be:
&gt; &gt; [SetterMayThrowException, TreatNullAs=EmptyString] attribute DOMString
&gt; &gt; mediaText;
&gt; &gt; 
&gt; &gt; I do not like this change at all unless this is somehow a newer WebIDL
&gt; &gt; syntax I do not know about.
&gt; 
&gt; I noticed this when trying to align MediaList.idl with the spec. I can no
&gt; longer copy/paste from the spec which is a huge downside for me. Our WebIDL
&gt; should be as close to specs as possible.

I have just confirmed this is not proper WebIDL syntax. The latest spec is at:
https://heycam.github.io/webidl/#TreatNullAs

Note the syntax in the spec is:
[TreatNullAs=EmptyString] attribute DOMString owner;

NOT
attribute [TreatNullAs=EmptyString] DOMString owner;

Can we please roll back this part of the change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304651</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-04 09:11:44 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; (In reply to Chris Dumez from comment #6)
&gt; &gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; &gt; Comment on attachment 306884 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=306884&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/css/MediaList.idl:32
&gt; &gt; &gt; &gt; +    [SetterMayThrowException] attribute [TreatNullAs=EmptyString] DOMString mediaText;
&gt; &gt; &gt; 
&gt; &gt; &gt; Why? This no longer matches WebIDL syntax or the spec:
&gt; &gt; &gt; https://drafts.csswg.org/cssom/#the-medialist-interface
&gt; &gt; &gt; 
&gt; &gt; &gt; This should be:
&gt; &gt; &gt; [SetterMayThrowException, TreatNullAs=EmptyString] attribute DOMString
&gt; &gt; &gt; mediaText;
&gt; &gt; &gt; 
&gt; &gt; &gt; I do not like this change at all unless this is somehow a newer WebIDL
&gt; &gt; &gt; syntax I do not know about.
&gt; &gt; 
&gt; &gt; I noticed this when trying to align MediaList.idl with the spec. I can no
&gt; &gt; longer copy/paste from the spec which is a huge downside for me. Our WebIDL
&gt; &gt; should be as close to specs as possible.
&gt; 
&gt; I have just confirmed this is not proper WebIDL syntax. The latest spec is
&gt; at:
&gt; https://heycam.github.io/webidl/#TreatNullAs
&gt; 
&gt; Note the syntax in the spec is:
&gt; [TreatNullAs=EmptyString] attribute DOMString owner;
&gt; 
&gt; NOT
&gt; attribute [TreatNullAs=EmptyString] DOMString owner;
&gt; 
&gt; Can we please roll back this part of the change?

Ok, I have found https://github.com/heycam/webidl/pull/286 which seems to indicate this is a new Web IDL syntax. Therefore, the example I pointed to must be out of date. I have pointed this out upstream.

Such a big change is unfortunate as most specs are out of date now, but anyway. If this is where Web IDL is going, I no longer oppose to this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304657</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-04 09:18:13 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; (In reply to Chris Dumez from comment #7)
&gt; &gt; (In reply to Chris Dumez from comment #6)
&gt; &gt; &gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; &gt; &gt; Comment on attachment 306884 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=306884&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/css/MediaList.idl:32
&gt; &gt; &gt; &gt; &gt; +    [SetterMayThrowException] attribute [TreatNullAs=EmptyString] DOMString mediaText;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Why? This no longer matches WebIDL syntax or the spec:
&gt; &gt; &gt; &gt; https://drafts.csswg.org/cssom/#the-medialist-interface
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; This should be:
&gt; &gt; &gt; &gt; [SetterMayThrowException, TreatNullAs=EmptyString] attribute DOMString
&gt; &gt; &gt; &gt; mediaText;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I do not like this change at all unless this is somehow a newer WebIDL
&gt; &gt; &gt; &gt; syntax I do not know about.
&gt; &gt; &gt; 
&gt; &gt; &gt; I noticed this when trying to align MediaList.idl with the spec. I can no
&gt; &gt; &gt; longer copy/paste from the spec which is a huge downside for me. Our WebIDL
&gt; &gt; &gt; should be as close to specs as possible.
&gt; &gt; 
&gt; &gt; I have just confirmed this is not proper WebIDL syntax. The latest spec is
&gt; &gt; at:
&gt; &gt; https://heycam.github.io/webidl/#TreatNullAs
&gt; &gt; 
&gt; &gt; Note the syntax in the spec is:
&gt; &gt; [TreatNullAs=EmptyString] attribute DOMString owner;
&gt; &gt; 
&gt; &gt; NOT
&gt; &gt; attribute [TreatNullAs=EmptyString] DOMString owner;
&gt; &gt; 
&gt; &gt; Can we please roll back this part of the change?
&gt; 
&gt; Ok, I have found https://github.com/heycam/webidl/pull/286 which seems to
&gt; indicate this is a new Web IDL syntax. Therefore, the example I pointed to
&gt; must be out of date. I have pointed this out upstream.
&gt; 
&gt; Such a big change is unfortunate as most specs are out of date now, but
&gt; anyway. If this is where Web IDL is going, I no longer oppose to this.

I filed https://www.w3.org/Bugs/Public/show_bug.cgi?id=30107 to try and get the CSSOM spec updated. Domenic also agreed the example in the WebIDL spec is outdated and will fix it. Sorry about the noise.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306883</attachid>
            <date>2017-04-11 19:32:37 -0700</date>
            <delta_ts>2017-04-11 20:38:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170759-20170411193233.patch</filename>
            <type>text/plain</type>
            <size>61096</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNTI1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwMCBAQAorMjAxNy0wNC0xMSAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIEFkZCBzdXBwb3J0IGZv
ciBleHRlbmRlZCBhdHRyaWJ1dGVzIG9uIHR5cGVzIGluIFdlYklETAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBVcGRhdGUgcGFyc2luZyBmb3IgV2Vi
SURMIGdyYW1tYXIgY2hhbmdlcy4KKyAgICAgICAgLSBBZGRzIGFuIGV4dGVuZGVkIGF0dHJpYnV0
ZXMgaGFzaCB0byBJRExUeXBlIHRoYXQgaXMgZmlsbGVkIGFjY29yZGluZworICAgICAgICAgIHRv
IHRoZSBXZWJJREwgYW5ub3RhdGVkIHR5cGUgcnVsZXMuCisgICAgICAgIC0gVXBkYXRlcyBjb2Rl
IGdlbmVyYXRpb24gdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgSURMVHlwZSdzIGV4dGVuZGVkIGF0dHJp
YnV0ZQorICAgICAgICAgIHNpbXBsaWZ5aW5nIHNvbWUgZXhpc3RpbmcgY29kZS4KKyAgICAgICAg
LSBVcGRhdGUgSURMcyBpbiB0aGUgcHJvamVjdCB0byBhZGhlcmUgdG8gdGhlIG5ldyBncmFtbWFy
LgorICAgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXQuaWRsOgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0Flc0N0clBhcmFtcy5p
ZGw6CisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQWVzS2V5UGFyYW1zLmlkbDoKKyAgICAg
ICAgKiBjcnlwdG8vcGFyYW1ldGVycy9QYmtkZjJQYXJhbXMuaWRsOgorICAgICAgICAqIGNyeXB0
by9wYXJhbWV0ZXJzL1JzYUtleUdlblBhcmFtcy5pZGw6CisgICAgICAgICogdGVzdGluZy9UeXBl
Q29udmVyc2lvbnMuaWRsOgorICAgICAgICBVcGRhdGUgZm9yIGdyYW1tYXIgY2hhbmdlLgorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZW5lcmF0ZURlZmF1bHRWYWx1ZSk6CisgICAgICAgIChHZXRCYXNlSURMVHlwZSk6CisgICAgICAg
IChHZXRJRExUeXBlKToKKyAgICAgICAgKEdldEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlv
bik6CisgICAgICAgIChHZXRTdHJpbmdDb252ZXJzaW9uQ29uZmlndXJhdGlvbik6CisgICAgICAg
IChKU1ZhbHVlVG9OYXRpdmUpOgorICAgICAgICAoVW5zYWZlVG9OYXRpdmUpOgorICAgICAgICAo
TmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUpOgorICAgICAgICAoTmF0aXZlVG9K
U1ZhbHVlRE9NQ29udmVydE5lZWRzR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKE5hdGl2ZVRvSlNW
YWx1ZSk6CisgICAgICAgIFJlbW92ZSB0aGUgbmVlZCBmb3IgdGhlIHR5cGUncyBjb250ZXh0IGlu
IG1hbnkgcGxhY2VzIHNpbmNlIHR5cGUKKyAgICAgICAgYXNzb2NpYXRlZCBleHRlbmRlZCBhdHRy
aWJ1dGVzIGFyZSBub3cgb24gdGhlIHR5cGUgaXRzZWxmLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChjb3B5RXh0ZW5kZWRBdHRyaWJ1dGVzKToK
KyAgICAgICAgTW92ZSB1cCBzbyBpdCBjYW4gYmUgcmV1c2VkLgorCisgICAgICAgIChpc0V4dGVu
ZGVkQXR0cmlidXRlQXBwbGljYWJsZVRvVHlwZXMpOgorICAgICAgICBBZGQgdGVtcG9yYXJ5IHBy
ZWRpY2F0ZWQgdG8gaW5kaWNhdGUgd2hpY2ggYXR0cmlidXRlcyBzaG91bGQgYmUgbW92ZWQgdG8g
dHlwZXMuIFRoaXMKKyAgICAgICAgbG9naWMgc2hvdWxkIGJlIG1vdmVkIHRvIElETEF0dHJpYnV0
ZXMudHh0LgorCisgICAgICAgIChtb3ZlRXh0ZW5kZWRBdHRyaWJ1dGVzQXBwbGljYWJsZVRvVHlw
ZXMpOgorICAgICAgICBBZGQgaGVscGVyIHRvIG1vdmUgYXR0cmlidXRlcyB0byB0aGUgdHlwZSdz
IGV4dGVuZGVkIGF0dHJpYnV0ZXMgaGFzaCBpZiBhcHBsaWNhYmxlLgorCisgICAgICAgIChtYWtl
U2ltcGxlVHlwZSk6CisgICAgICAgIFVzZSBpbml0aWFsaXplciBzeW50YXggdG8gc2ltcGxpZnku
CisKKyAgICAgICAgKGNsb25lVHlwZSk6CisgICAgICAgIFN1cHBvcnQgY2xvbmluZyB0eXBlcyB3
aXRoIGV4dGVuZGVkIGF0dHJpYnV0ZXMuCisKKyAgICAgICAgKHR5cGVCeUFwcGx5aW5nVHlwZWRl
ZnMpOgorICAgICAgICBXaGVuIGNvbnN0cnVjdGluZyB0aGUgY2xvbmUgZm9yIGEgdHlwZWRlZiBh
cHBsaWNhdGlvbiwgbW92ZSBhbnkgYXBwbGljYWJsZSBhdHRyaWJ1dGVzCisgICAgICAgIHRvIHRo
ZSBjbG9uZSBmcm9tIHRoZSBvcmlnaW5hbCB0eXBlLgorCisgICAgICAgIChwYXJzZURpY3Rpb25h
cnlNZW1iZXIpOgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlQXR0cmli
dXRlT3JPcGVyYXRpb25SZXN0KToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlUmVzdCk6CisgICAg
ICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IpOgorICAgICAgICAocGFyc2VTcGVjaWFsT3Bl
cmF0aW9uKToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxJdGVyYWJsZUludGVyZmFjZSk6CisgICAg
ICAgIChwYXJzZU1hcExpa2VQcm9wZXJ0aWVzKToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxPclJl
cXVpcmVkQXJndW1lbnQpOgorICAgICAgICAocGFyc2VUeXBlKToKKyAgICAgICAgKHBhcnNlVHlw
ZVdpdGhFeHRlbmRlZEF0dHJpYnV0ZXMpOgorICAgICAgICAocGFyc2VVbmlvbk1lbWJlclR5cGUp
OgorICAgICAgICAocGFyc2VOb25BbnlUeXBlKToKKyAgICAgICAgVXBkYXRlIGZvciBuZXcgZ3Jh
bW1hciwgbW92aW5nIGFwcGxpY2FibGUgYXR0cmlidXRlcyBlYWdlcmx5LgorCisgICAgICAgIChh
c3NlcnROb0V4dGVuZGVkQXR0cmlidXRlc0luVHlwZWRlZik6IERlbGV0ZWQuCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wT25PcHRpb25h
bCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0
aG9kV2l0aENsYW1wT25PcHRpb25hbENhbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWwp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhv
ZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsQ2FsbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXApOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZHZXR0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXApOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBGdW5jdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFt
cEluVHlwZWRlZik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0
ZVdpdGhDbGFtcEluVHlwZWRlZkZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wSW5UeXBlZGVmKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wSW5U
eXBlZGVmQ2FsbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RUeXBlZGVmcy5pZGw6Cisg
ICAgICAgIFVwZGF0ZSBmb3IgbmV3IGdyYW1tYXIuIEFkZCBzb21lIG5ldyB0ZXN0cyBmb3IgdW5j
b3ZlcmVkIGNhc2VzLgorCiAyMDE3LTA0LTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBs
ZS5jb20+CiAKICAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gQWxsb3cgbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzIHRvIGJlIHByb3ZpZGVkIHRocm91Z2ggV2ViS2l0QWRkaXRpb25zCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAko
cmV2aXNpb24gMjE1MjU1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAgICBDb25kaXRp
b25hbD1JTkRFWEVEX0RBVEFCQVNFLAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAogXSBpbnRl
cmZhY2UgSURCRmFjdG9yeSB7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IE1heVRocm93RXhjZXB0aW9uXSBJREJPcGVuREJSZXF1ZXN0IG9wZW4oRE9NU3RyaW5nIG5hbWUs
IFtFbmZvcmNlUmFuZ2VdIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uKTsKKyAg
ICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIElE
Qk9wZW5EQlJlcXVlc3Qgb3BlbihET01TdHJpbmcgbmFtZSwgb3B0aW9uYWwgW0VuZm9yY2VSYW5n
ZV0gdW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24pOwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCT3BlbkRCUmVxdWVzdCBkZWxldGVE
YXRhYmFzZShET01TdHJpbmcgbmFtZSk7CiAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlU
aHJvd0V4Y2VwdGlvbl0gc2hvcnQgY21wKGFueSBmaXJzdCwgYW55IHNlY29uZCk7CiB9OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbAkocmV2
aXNpb24gMjE1MjU1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5k
ZXguaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00OSwxMCArNDksMTAgQEAgdHlwZWRlZiAoRE9NU3Ry
aW5nIG9yIHNlcXVlbmNlPERPTVN0cmluZwogICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5
VGhyb3dFeGNlcHRpb25dIElEQlJlcXVlc3QgZ2V0KGFueSBrZXkpOwogICAgIFtDYWxsV2l0aD1T
Y3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25dIElEQlJlcXVlc3QgZ2V0S2V5KElEQktleVJh
bmdlPyBrZXkpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25d
IElEQlJlcXVlc3QgZ2V0S2V5KGFueSBrZXkpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwg
TWF5VGhyb3dFeGNlcHRpb25dIElEQlJlcXVlc3QgZ2V0QWxsKG9wdGlvbmFsIElEQktleVJhbmdl
PyByYW5nZSA9IG51bGwsIFtFbmZvcmNlUmFuZ2VdIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgY291
bnQpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25dIElEQlJl
cXVlc3QgZ2V0QWxsKGFueSBrZXksICBbRW5mb3JjZVJhbmdlXSBvcHRpb25hbCB1bnNpZ25lZCBs
b25nIGNvdW50KTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9u
XSBJREJSZXF1ZXN0IGdldEFsbEtleXMob3B0aW9uYWwgSURCS2V5UmFuZ2U/IHJhbmdlID0gbnVs
bCwgW0VuZm9yY2VSYW5nZV0gb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBjb3VudCk7Ci0gICAgW0Nh
bGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCUmVxdWVzdCBnZXRBbGxL
ZXlzKGFueSBrZXksICBbRW5mb3JjZVJhbmdlXSBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGNvdW50
KTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1
ZXN0IGdldEFsbChvcHRpb25hbCBJREJLZXlSYW5nZT8gcmFuZ2UgPSBudWxsLCBvcHRpb25hbCBb
RW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0
U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldEFsbChhbnkga2V5LCBvcHRp
b25hbCBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICBbQ2FsbFdpdGg9
U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldEFsbEtleXMob3B0
aW9uYWwgSURCS2V5UmFuZ2U/IHJhbmdlID0gbnVsbCwgb3B0aW9uYWwgW0VuZm9yY2VSYW5nZV0g
dW5zaWduZWQgbG9uZyBjb3VudCk7CisgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlUaHJv
d0V4Y2VwdGlvbl0gSURCUmVxdWVzdCBnZXRBbGxLZXlzKGFueSBrZXksIG9wdGlvbmFsIFtFbmZv
cmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgY291bnQpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0
ZSwgTWF5VGhyb3dFeGNlcHRpb25dIElEQlJlcXVlc3QgY291bnQob3B0aW9uYWwgSURCS2V5UmFu
Z2U/IHJhbmdlID0gbnVsbCk7CiAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlUaHJvd0V4
Y2VwdGlvbl0gSURCUmVxdWVzdCBjb3VudChhbnkga2V5KTsKIH07CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRsCShyZXZpc2lvbiAy
MTUyNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDggQEAKICAgICBDb25kaXRpb25hbD1JTkRF
WEVEX0RBVEFCQVNFLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiBdIGludGVyZmFj
ZSBJREJLZXlSYW5nZSB7Ci0gICAgW092ZXJyaWRlSURMVHlwZT1JRExJREJLZXldIHJlYWRvbmx5
IGF0dHJpYnV0ZSBhbnkgbG93ZXI7Ci0gICAgW092ZXJyaWRlSURMVHlwZT1JRExJREJLZXldIHJl
YWRvbmx5IGF0dHJpYnV0ZSBhbnkgdXBwZXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtPdmVy
cmlkZUlETFR5cGU9SURMSURCS2V5XSBhbnkgbG93ZXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtPdmVycmlkZUlETFR5cGU9SURMSURCS2V5XSBhbnkgdXBwZXI7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gbG93ZXJPcGVuOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
IHVwcGVyT3BlbjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbAkocmV2aXNpb24gMjE1MjU1KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC01MiwxMCArNTIsMTAgQEAgdHlwZWRlZiAoRE9NU3RyaW5nIG9yIHNlcXVlbmNlPERPTVN0
cmluZwogICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25dIElEQlJl
cXVlc3Qgb3BlbkN1cnNvcihhbnkga2V5LCBvcHRpb25hbCBJREJDdXJzb3JEaXJlY3Rpb24gZGly
ZWN0aW9uID0gIm5leHQiKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhj
ZXB0aW9uXSBJREJSZXF1ZXN0IG9wZW5LZXlDdXJzb3Iob3B0aW9uYWwgSURCS2V5UmFuZ2U/IHJh
bmdlID0gbnVsbCwgb3B0aW9uYWwgSURCQ3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbiA9ICJuZXh0
Iik7CiAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCUmVx
dWVzdCBvcGVuS2V5Q3Vyc29yKGFueSBrZXksIG9wdGlvbmFsIElEQkN1cnNvckRpcmVjdGlvbiBk
aXJlY3Rpb24gPSAibmV4dCIpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dF
eGNlcHRpb25dIElEQlJlcXVlc3QgZ2V0QWxsKG9wdGlvbmFsIElEQktleVJhbmdlPyByYW5nZSA9
IG51bGwsIFtFbmZvcmNlUmFuZ2VdIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgY291bnQpOwotICAg
IFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25dIElEQlJlcXVlc3QgZ2V0
QWxsKGFueSBrZXksICBbRW5mb3JjZVJhbmdlXSBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGNvdW50
KTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1
ZXN0IGdldEFsbEtleXMob3B0aW9uYWwgSURCS2V5UmFuZ2U/IHJhbmdlID0gbnVsbCwgW0VuZm9y
Y2VSYW5nZV0gb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBjb3VudCk7Ci0gICAgW0NhbGxXaXRoPVNj
cmlwdFN0YXRlLCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCUmVxdWVzdCBnZXRBbGxLZXlzKGFueSBr
ZXksICBbRW5mb3JjZVJhbmdlXSBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICBb
Q2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldEFs
bChvcHRpb25hbCBJREJLZXlSYW5nZT8gcmFuZ2UgPSBudWxsLCBvcHRpb25hbCBbRW5mb3JjZVJh
bmdlXSB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1h
eVRocm93RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldEFsbChhbnkga2V5LCBvcHRpb25hbCBbRW5m
b3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0U3Rh
dGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldEFsbEtleXMob3B0aW9uYWwgSURC
S2V5UmFuZ2U/IHJhbmdlID0gbnVsbCwgb3B0aW9uYWwgW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQg
bG9uZyBjb3VudCk7CisgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlUaHJvd0V4Y2VwdGlv
bl0gSURCUmVxdWVzdCBnZXRBbGxLZXlzKGFueSBrZXksIG9wdGlvbmFsIFtFbmZvcmNlUmFuZ2Vd
IHVuc2lnbmVkIGxvbmcgY291bnQpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhy
b3dFeGNlcHRpb25dIElEQkluZGV4IGNyZWF0ZUluZGV4KERPTVN0cmluZyBuYW1lLCAoRE9NU3Ry
aW5nIG9yIHNlcXVlbmNlPERPTVN0cmluZz4pIGtleVBhdGgsIG9wdGlvbmFsIElEQkluZGV4UGFy
YW1ldGVycyBvcHRpb25zKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIElEQkluZGV4IGluZGV4
KERPTVN0cmluZyBuYW1lKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgZGVsZXRlSW5k
ZXgoRE9NU3RyaW5nIG5hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwJKHJldmlzaW9uIDIxNTI1NSkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw1ICs2NSw1IEBACiAgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIHNlbmQoQmxvYiBkYXRh
KTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2VuZChVU1ZTdHJpbmcgZGF0YSk7CiAK
LSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgY2xvc2UoW0NsYW1wXSBvcHRpb25hbCB1bnNp
Z25lZCBzaG9ydCBjb2RlLCBvcHRpb25hbCBET01TdHJpbmcgcmVhc29uKTsKKyAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIHZvaWQgY2xvc2Uob3B0aW9uYWwgW0NsYW1wXSB1bnNpZ25lZCBzaG9ydCBj
b2RlLCBvcHRpb25hbCBET01TdHJpbmcgcmVhc29uKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24g
MjE1MjU1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE0MTgsNyArMTQxOCw3IEBAIHN1YiBHZW5lcmF0ZURl
ZmF1bHRWYWx1ZQogICAgIG15ICgkdHlwZVNjb3BlLCAkY29udGV4dCwgJHR5cGUsICRkZWZhdWx0
VmFsdWUpID0gQF87CiAKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlw
ZSkpIHsKLSAgICAgICAgbXkgJHVzZUF0b21pY1N0cmluZyA9ICRjb250ZXh0LT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntBdG9taWNTdHJpbmd9OworICAgICAgICBteSAkdXNlQXRvbWljU3RyaW5nID0g
JHR5cGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0F0b21pY1N0cmluZ307CiAgICAgICAgIGlmICgk
ZGVmYXVsdFZhbHVlIGVxICJudWxsIikgewogICAgICAgICAgICAgcmV0dXJuICR1c2VBdG9taWNT
dHJpbmcgPyAibnVsbEF0b20iIDogIlN0cmluZygpIjsKICAgICAgICAgfSBlbHNpZiAoJGRlZmF1
bHRWYWx1ZSBlcSAiXCJcIiIpIHsKQEAgLTUzNjgsMTAgKzUzNjgsMTAgQEAgc3ViIEdldElETFVu
aW9uTWVtYmVyVHlwZXMKIAogc3ViIEdldEJhc2VJRExUeXBlCiB7Ci0gICAgbXkgKCRpbnRlcmZh
Y2UsICR0eXBlLCAkY29udGV4dCkgPSBAXzsKKyAgICBteSAoJGludGVyZmFjZSwgJHR5cGUpID0g
QF87CiAKLSAgICBpZiAoJGNvbnRleHQgJiYgJGNvbnRleHQtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e092ZXJyaWRlSURMVHlwZX0pIHsKLSAgICAgICAgcmV0dXJuICRjb250ZXh0LT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntPdmVycmlkZUlETFR5cGV9OworICAgIGlmICgkdHlwZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57T3ZlcnJpZGVJRExUeXBlfSkgeworICAgICAgICByZXR1cm4gJHR5cGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e092ZXJyaWRlSURMVHlwZX07CiAgICAgfQogCiAgICAgbXkgJUlETFR5
cGVzID0gKApAQCAtNTQyMSw5ICs1NDIxLDkgQEAgc3ViIEdldEJhc2VJRExUeXBlCiAKIHN1YiBH
ZXRJRExUeXBlCiB7Ci0gICAgbXkgKCRpbnRlcmZhY2UsICR0eXBlLCAkY29udGV4dCkgPSBAXzsK
KyAgICBteSAoJGludGVyZmFjZSwgJHR5cGUpID0gQF87CiAKLSAgICBteSAkYmFzZUlETFR5cGUg
PSBHZXRCYXNlSURMVHlwZSgkaW50ZXJmYWNlLCAkdHlwZSwgJGNvbnRleHQpOworICAgIG15ICRi
YXNlSURMVHlwZSA9IEdldEJhc2VJRExUeXBlKCRpbnRlcmZhY2UsICR0eXBlKTsKICAgICByZXR1
cm4gIklETE51bGxhYmxlPCIgLiAkYmFzZUlETFR5cGUgLiAiPiIgaWYgJHR5cGUtPmlzTnVsbGFi
bGU7CiAgICAgcmV0dXJuICRiYXNlSURMVHlwZTsKIH0KQEAgLTU0ODcsMTggKzU0ODcsMTggQEAg
c3ViIFNob3VsZFBhc3NBcmd1bWVudEJ5UmVmZXJlbmNlCiAKIHN1YiBHZXRJbnRlZ2VyQ29udmVy
c2lvbkNvbmZpZ3VyYXRpb24KIHsKLSAgICBteSAkY29udGV4dCA9IHNoaWZ0OworICAgIG15ICR0
eXBlID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gIkludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlv
bjo6RW5mb3JjZVJhbmdlIiBpZiAkY29udGV4dC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5mb3Jj
ZVJhbmdlfTsKLSAgICByZXR1cm4gIkludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6Q2xh
bXAiIGlmICRjb250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDbGFtcH07CisgICAgcmV0dXJu
ICJJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246OkVuZm9yY2VSYW5nZSIgaWYgJHR5cGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0VuZm9yY2VSYW5nZX07CisgICAgcmV0dXJuICJJbnRlZ2Vy
Q29udmVyc2lvbkNvbmZpZ3VyYXRpb246OkNsYW1wIiBpZiAkdHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Q2xhbXB9OwogICAgIHJldHVybiAiSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9u
OjpOb3JtYWwiOwogfQogCiBzdWIgR2V0U3RyaW5nQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24KIHsK
LSAgICBteSAkY29udGV4dCA9IHNoaWZ0OworICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKLSAgICBy
ZXR1cm4gIlN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uOjpUcmVhdE51bGxBc0VtcHR5U3Ry
aW5nIiBpZiAkY29udGV4dC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57VHJlYXROdWxsQXN9ICYmICRj
b250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntUcmVhdE51bGxBc30gZXEgIkVtcHR5U3RyaW5n
IjsKKyAgICByZXR1cm4gIlN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uOjpUcmVhdE51bGxB
c0VtcHR5U3RyaW5nIiBpZiAkdHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57VHJlYXROdWxsQXN9
ICYmICR0eXBlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntUcmVhdE51bGxBc30gZXEgIkVtcHR5U3Ry
aW5nIjsKICAgICByZXR1cm4gIlN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uOjpOb3JtYWwi
OwogfQogCkBAIC01NTQzLDggKzU1NDMsOCBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgQWRk
VG9JbXBsSW5jbHVkZXNGb3JJRExUeXBlKCR0eXBlLCAkY29uZGl0aW9uYWwpOwogCiAgICAgaWYg
KCR0eXBlLT5uYW1lIGVxICJET01TdHJpbmciKSB7Ci0gICAgICAgIHJldHVybiAoIkF0b21pY1N0
cmluZygkdmFsdWUudG9TdHJpbmcoJHN0YXRlUG9pbnRlciktPnRvRXhpc3RpbmdBdG9taWNTdHJp
bmcoJHN0YXRlUG9pbnRlcikpIiwgMSkgaWYgJGNvbnRleHQtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e1JlcXVpcmVzRXhpc3RpbmdBdG9taWNTdHJpbmd9OwotICAgICAgICByZXR1cm4gKCIkdmFsdWUu
dG9TdHJpbmcoJHN0YXRlUG9pbnRlciktPnRvQXRvbWljU3RyaW5nKCRzdGF0ZVBvaW50ZXIpIiwg
MSkgaWYgJGNvbnRleHQtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0F0b21pY1N0cmluZ307CisgICAg
ICAgIHJldHVybiAoIkF0b21pY1N0cmluZygkdmFsdWUudG9TdHJpbmcoJHN0YXRlUG9pbnRlcikt
PnRvRXhpc3RpbmdBdG9taWNTdHJpbmcoJHN0YXRlUG9pbnRlcikpIiwgMSkgaWYgJHR5cGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e1JlcXVpcmVzRXhpc3RpbmdBdG9taWNTdHJpbmd9OworICAgICAg
ICByZXR1cm4gKCIkdmFsdWUudG9TdHJpbmcoJHN0YXRlUG9pbnRlciktPnRvQXRvbWljU3RyaW5n
KCRzdGF0ZVBvaW50ZXIpIiwgMSkgaWYgJHR5cGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0F0b21p
Y1N0cmluZ307CiAgICAgfQogCiAgICAgIyBwYXJzZUVudW1lcmF0aW9uPD4gcmV0dXJucyBhIHN0
ZDo6b3B0aW9uYWwuIEZvciBkaWN0aW9uYXJ5IG1lbWJlcnMgd2UgbmVlZCBjb252ZXJ0PElETEVu
dW1lcmF0aW9uPigpIHdoaWNoIGd1YXJhbnRlZQpAQCAtNTU2Miw4ICs1NTYyLDggQEAgc3ViIEpT
VmFsdWVUb05hdGl2ZQogICAgIHB1c2goQGNvbnZlcnNpb25Bcmd1bWVudHMsICR2YWx1ZSk7CiAg
ICAgcHVzaChAY29udmVyc2lvbkFyZ3VtZW50cywgJHRoaXNPYmplY3RSZWZlcmVuY2UpIGlmIEpT
VmFsdWVUb05hdGl2ZURPTUNvbnZlcnROZWVkc1RoaXNPYmplY3QoJHR5cGUpOwogICAgIHB1c2go
QGNvbnZlcnNpb25Bcmd1bWVudHMsICRnbG9iYWxPYmplY3RSZWZlcmVuY2UpIGlmIEpTVmFsdWVU
b05hdGl2ZURPTUNvbnZlcnROZWVkc0dsb2JhbE9iamVjdCgkdHlwZSk7Ci0gICAgcHVzaChAY29u
dmVyc2lvbkFyZ3VtZW50cywgR2V0SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uKCRjb250
ZXh0KSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZWdlclR5cGUoJHR5cGUpOwotICAgIHB1c2go
QGNvbnZlcnNpb25Bcmd1bWVudHMsIEdldFN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uKCRj
b250ZXh0KSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7CisgICAgcHVz
aChAY29udmVyc2lvbkFyZ3VtZW50cywgR2V0SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9u
KCR0eXBlKSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZWdlclR5cGUoJHR5cGUpOworICAgIHB1
c2goQGNvbnZlcnNpb25Bcmd1bWVudHMsIEdldFN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9u
KCR0eXBlKSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7CiAgICAgcHVz
aChAY29udmVyc2lvbkFyZ3VtZW50cywgJGV4Y2VwdGlvblRocm93ZXIpIGlmICRleGNlcHRpb25U
aHJvd2VyOwogCiAgICAgcmV0dXJuICgiY29udmVydDwkSURMVHlwZT4oIiAuIGpvaW4oIiwgIiwg
QGNvbnZlcnNpb25Bcmd1bWVudHMpIC4gIikiLCAxKTsKQEAgLTU1ODcsOCArNTU4Nyw4IEBAIHN1
YiBVbnNhZmVUb05hdGl2ZQogICAgICMgRklYTUU6IFN1cHBvcnQgbW9yZSB0eXBlcy4KIAogICAg
IGlmICgkdHlwZS0+bmFtZSBlcSAiRE9NU3RyaW5nIikgewotICAgICAgICByZXR1cm4gKCJBdG9t
aWNTdHJpbmcoJHZhbHVlLT50b0V4aXN0aW5nQXRvbWljU3RyaW5nKCRzdGF0ZVBvaW50ZXIpKSIs
IDEpIGlmICRjb250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntSZXF1aXJlc0V4aXN0aW5nQXRv
bWljU3RyaW5nfTsKLSAgICAgICAgcmV0dXJuICgiJHZhbHVlLT50b0F0b21pY1N0cmluZygkc3Rh
dGVQb2ludGVyKSIsIDEpIGlmICRjb250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntBdG9taWNT
dHJpbmd9OworICAgICAgICByZXR1cm4gKCJBdG9taWNTdHJpbmcoJHZhbHVlLT50b0V4aXN0aW5n
QXRvbWljU3RyaW5nKCRzdGF0ZVBvaW50ZXIpKSIsIDEpIGlmICR0eXBlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntSZXF1aXJlc0V4aXN0aW5nQXRvbWljU3RyaW5nfTsKKyAgICAgICAgcmV0dXJuICgi
JHZhbHVlLT50b0F0b21pY1N0cmluZygkc3RhdGVQb2ludGVyKSIsIDEpIGlmICR0eXBlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntBdG9taWNTdHJpbmd9OwogICAgIH0KIAogICAgIEFkZFRvSW1wbElu
Y2x1ZGVzKCJET01KSVRJRExDb252ZXJ0LmgiKTsKQEAgLTU2MDAsOCArNTYwMCw4IEBAIHN1YiBV
bnNhZmVUb05hdGl2ZQogICAgIHB1c2goQGNvbnZlcnNpb25Bcmd1bWVudHMsICIkdmFsdWUiKTsK
IAogICAgIG15IEBjb252ZXJzaW9uU3RhdGljQXJndW1lbnRzID0gKCk7Ci0gICAgcHVzaChAY29u
dmVyc2lvblN0YXRpY0FyZ3VtZW50cywgR2V0SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9u
KCRjb250ZXh0KSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZWdlclR5cGUoJHR5cGUpOwotICAg
IHB1c2goQGNvbnZlcnNpb25TdGF0aWNBcmd1bWVudHMsIEdldFN0cmluZ0NvbnZlcnNpb25Db25m
aWd1cmF0aW9uKCRjb250ZXh0KSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlw
ZSk7CisgICAgcHVzaChAY29udmVyc2lvblN0YXRpY0FyZ3VtZW50cywgR2V0SW50ZWdlckNvbnZl
cnNpb25Db25maWd1cmF0aW9uKCR0eXBlKSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZWdlclR5
cGUoJHR5cGUpOworICAgIHB1c2goQGNvbnZlcnNpb25TdGF0aWNBcmd1bWVudHMsIEdldFN0cmlu
Z0NvbnZlcnNpb25Db25maWd1cmF0aW9uKCR0eXBlKSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3Ry
aW5nVHlwZSgkdHlwZSk7CiAKICAgICBpZiAoc2NhbGFyKEBjb252ZXJzaW9uU3RhdGljQXJndW1l
bnRzKSA+IDApIHsKICAgICAgICAgcmV0dXJuICgiRE9NSklUOjpEaXJlY3RDb252ZXJ0ZXI8JElE
TFR5cGU+OjpkaXJlY3RDb252ZXJ0PCIgLiBqb2luKCIsICIsIEBjb252ZXJzaW9uU3RhdGljQXJn
dW1lbnRzKSAuICI+KCIgLiBqb2luKCIsICIsIEBjb252ZXJzaW9uQXJndW1lbnRzKSAuICIpIiwg
MSk7CkBAIC01NjExLDEzICs1NjExLDEzIEBAIHN1YiBVbnNhZmVUb05hdGl2ZQogCiBzdWIgTmF0
aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUKIHsKLSAgICBteSAoJHR5cGUsICRjb250
ZXh0KSA9IEBfOworICAgIG15ICgkdHlwZSkgPSBAXzsKIAogICAgICMgRklYTUU6IFdlIG5lZWQg
YSBtb3JlIHJvYnVzdCB3YXkgdG8gc3BlY2lmeSB0aGlzIHJlcXVpcmVtZW50IHNvIGFzIG5vdAog
ICAgICMgdG8gcmVxdWlyZSBzcGVjaWFsaXppbmcgZWFjaCB0eXBlLiBQZXJoYXBzIGp1c3QgcmVx
dWlyaW5nIGFsbCBvdmVycmlkZQogICAgICMgdHlwZXMgdG8gdGFrZSBib3RoIHN0YXRlIGFuZCB0
aGUgZ2xvYmFsIG9iamVjdCB3b3VsZCB3b3JrPwotICAgIGlmICgkY29udGV4dC0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57T3ZlcnJpZGVJRExUeXBlfSkgewotICAgICAgICBteSAkb3ZlcnJpZGVUeXBl
TmFtZSA9ICRjb250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntPdmVycmlkZUlETFR5cGV9Owor
ICAgIGlmICgkdHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57T3ZlcnJpZGVJRExUeXBlfSkgewor
ICAgICAgICBteSAkb3ZlcnJpZGVUeXBlTmFtZSA9ICR0eXBlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntPdmVycmlkZUlETFR5cGV9OwogICAgICAgICByZXR1cm4gMSBpZiAkb3ZlcnJpZGVUeXBlTmFt
ZSBlcSAiSURMSURCS2V5IjsKICAgICAgICAgcmV0dXJuIDEgaWYgJG92ZXJyaWRlVHlwZU5hbWUg
ZXEgIklETFdlYkdMQW55IjsKIApAQCAtNTY0MywxMyArNTY0MywxMyBAQCBzdWIgTmF0aXZlVG9K
U1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUKIAogc3ViIE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZl
cnROZWVkc0dsb2JhbE9iamVjdAogewotICAgIG15ICgkdHlwZSwgJGNvbnRleHQpID0gQF87Cisg
ICAgbXkgKCR0eXBlKSA9IEBfOwogICAgIAogICAgICMgRklYTUU6IFdlIG5lZWQgYSBtb3JlIHJv
YnVzdCB3YXkgdG8gc3BlY2lmeSB0aGlzIHJlcXVpcmVtZW50IHNvIGFzIG5vdAogICAgICMgdG8g
cmVxdWlyZSBzcGVjaWFsaXppbmcgZWFjaCB0eXBlLiBQZXJoYXBzIGp1c3QgcmVxdWlyaW5nIGFs
bCBvdmVycmlkZQogICAgICMgdHlwZXMgdG8gdGFrZSBib3RoIHN0YXRlIGFuZCB0aGUgZ2xvYmFs
IG9iamVjdCB3b3VsZCB3b3JrPwotICAgIGlmICgkY29udGV4dC0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57T3ZlcnJpZGVJRExUeXBlfSkgewotICAgICAgICBteSAkb3ZlcnJpZGVUeXBlTmFtZSA9ICRj
b250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntPdmVycmlkZUlETFR5cGV9OworICAgIGlmICgk
dHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57T3ZlcnJpZGVJRExUeXBlfSkgeworICAgICAgICBt
eSAkb3ZlcnJpZGVUeXBlTmFtZSA9ICR0eXBlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntPdmVycmlk
ZUlETFR5cGV9OwogICAgICAgICByZXR1cm4gMSBpZiAkb3ZlcnJpZGVUeXBlTmFtZSBlcSAiSURM
SURCS2V5IjsKICAgICAgICAgcmV0dXJuIDEgaWYgJG92ZXJyaWRlVHlwZU5hbWUgZXEgIklETFdl
YkdMQW55IjsKIApAQCAtNTcyMiwxMSArNTcyMiwxMSBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAg
ICAgICAgICR2YWx1ZSA9ICJCaW5kaW5nU2VjdXJpdHk6OmNoZWNrU2VjdXJpdHlGb3JOb2RlKCRz
dGF0ZVJlZmVyZW5jZSwgJHZhbHVlKSI7CiAgICAgfQogCi0gICAgbXkgJElETFR5cGUgPSBHZXRJ
RExUeXBlKCRpbnRlcmZhY2UsICR0eXBlLCAkY29udGV4dCk7CisgICAgbXkgJElETFR5cGUgPSBH
ZXRJRExUeXBlKCRpbnRlcmZhY2UsICR0eXBlKTsKIAogICAgIG15IEBjb252ZXJzaW9uQXJndW1l
bnRzID0gKCk7Ci0gICAgcHVzaChAY29udmVyc2lvbkFyZ3VtZW50cywgJHN0YXRlUmVmZXJlbmNl
KSBpZiBOYXRpdmVUb0pTVmFsdWVET01Db252ZXJ0TmVlZHNTdGF0ZSgkdHlwZSwgJGNvbnRleHQp
IHx8ICRtYXlUaHJvd0V4Y2VwdGlvbjsKLSAgICBwdXNoKEBjb252ZXJzaW9uQXJndW1lbnRzLCAk
Z2xvYmFsT2JqZWN0UmVmZXJlbmNlKSBpZiBOYXRpdmVUb0pTVmFsdWVET01Db252ZXJ0TmVlZHNH
bG9iYWxPYmplY3QoJHR5cGUsICRjb250ZXh0KTsKKyAgICBwdXNoKEBjb252ZXJzaW9uQXJndW1l
bnRzLCAkc3RhdGVSZWZlcmVuY2UpIGlmIE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZlcnROZWVkc1N0
YXRlKCR0eXBlKSB8fCAkbWF5VGhyb3dFeGNlcHRpb247CisgICAgcHVzaChAY29udmVyc2lvbkFy
Z3VtZW50cywgJGdsb2JhbE9iamVjdFJlZmVyZW5jZSkgaWYgTmF0aXZlVG9KU1ZhbHVlRE9NQ29u
dmVydE5lZWRzR2xvYmFsT2JqZWN0KCR0eXBlKTsKICAgICBwdXNoKEBjb252ZXJzaW9uQXJndW1l
bnRzLCAidGhyb3dTY29wZSIpIGlmICRtYXlUaHJvd0V4Y2VwdGlvbjsKICAgICBwdXNoKEBjb252
ZXJzaW9uQXJndW1lbnRzLCAkdmFsdWUpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETFBhcnNlci5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQkocmV2aXNpb24gMjE1MjU1KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0JKHdvcmtpbmcgY29weSkKQEAgLTUx
LDYgKzUxLDcgQEAgc3RydWN0KCBJRExUeXBlID0+IHsKICAgICBpc051bGxhYmxlID0+ICAgJyQn
LCAjIElzIHRoZSB0eXBlIE51bGxhYmxlIChUPykKICAgICBpc1VuaW9uID0+ICAgICAgJyQnLCAj
IElzIHRoZSB0eXBlIGEgdW5pb24gKFQgb3IgVSkKICAgICBzdWJ0eXBlcyA9PiAgICAgJ0AnLCAj
IEFycmF5IG9mIHN1YnR5cGVzLCBvbmx5IHZhbGlkIGlmIGlzVW5pb24gb3Igc2VxdWVuY2UKKyAg
ICBleHRlbmRlZEF0dHJpYnV0ZXMgPT4gJyUnLAogfSk7CiAKICMgVXNlZCB0byByZXByZXNlbnQg
J2ludGVyZmFjZScgYmxvY2tzCkBAIC0yNTIsMjAgKzI1Myw2IEBAIHN1YiBhc3NlcnRVbmV4cGVj
dGVkVG9rZW4KICAgICBhc3NlcnQgJG1zZzsKIH0KIAotc3ViIGFzc2VydE5vRXh0ZW5kZWRBdHRy
aWJ1dGVzSW5UeXBlZGVmCi17Ci0gICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICBteSAkbmFtZSA9
IHNoaWZ0OwotICAgIG15ICRsaW5lID0gc2hpZnQ7Ci0gICAgbXkgJHR5cGVkZWYgPSAkdHlwZWRl
ZnN7JG5hbWV9OwotICAgIG15ICRtc2cgPSAiVW5leHBlY3RlZCBleHRlbmRlZEF0dHJpYnV0ZUxp
c3QgaW4gdHlwZWRlZiBcIiRuYW1lXCIgb24gbGluZSAiIC4gJHNlbGYtPntMaW5lfTsKLSAgICBp
ZiAoZGVmaW5lZCAoJGxpbmUpKSB7Ci0gICAgICAgICRtc2cgLj0gIiBJRExQYXJzZXIucG06IiAu
ICRsaW5lOwotICAgIH0KLQotICAgIGFzc2VydCAkbXNnIGlmICV7JHR5cGVkZWYtPmV4dGVuZGVk
QXR0cmlidXRlc307Ci19Ci0KIHN1YiBQYXJzZQogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CkBA
IC0zOTgsNiArMzg1LDY4IEBAIHN1YiBpZGVudGlmaWVyUmVtb3ZlTnVsbGFibGVQcmVmaXgKICAg
ICByZXR1cm4gJHR5cGU7CiB9CiAKK3N1YiBjb3B5RXh0ZW5kZWRBdHRyaWJ1dGVzCit7CisgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworICAgIG15ICRhdHRyID0gc2hpZnQ7
CisKKyAgICBmb3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICBpZiAoJGtleSBl
cSAiQ29uc3RydWN0b3IiKSB7CisgICAgICAgICAgICBwdXNoKEB7JGV4dGVuZGVkQXR0cmlidXRl
TGlzdC0+eyJDb25zdHJ1Y3RvcnMifX0sICRhdHRyLT57JGtleX0pOworICAgICAgICB9IGVsc2lm
ICgka2V5IGVxICJDb25zdHJ1Y3RvcnMiKSB7CisgICAgICAgICAgICBteSBAY29uc3RydWN0b3Jz
ID0gQHskYXR0ci0+eyRrZXl9fTsKKyAgICAgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0cnVjdG9y
IChAY29uc3RydWN0b3JzKSB7CisgICAgICAgICAgICAgICAgcHVzaChAeyRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QtPnsiQ29uc3RydWN0b3JzIn19LCAkY29uc3RydWN0b3IpOworICAgICAgICAgICAg
fQorICAgICAgICB9IGVsc2lmICgka2V5IGVxICJDdXN0b21Db25zdHJ1Y3RvciIpIHsKKyAgICAg
ICAgICAgIHB1c2goQHskZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkN1c3RvbUNvbnN0cnVjdG9y
cyJ9fSwgJGF0dHItPnska2V5fSk7CisgICAgICAgIH0gZWxzaWYgKCRrZXkgZXEgIkN1c3RvbUNv
bnN0cnVjdG9ycyIpIHsKKyAgICAgICAgICAgbXkgQGN1c3RvbUNvbnN0cnVjdG9ycyA9IEB7JGF0
dHItPnska2V5fX07CisgICAgICAgICAgICBmb3JlYWNoIG15ICRjdXN0b21Db25zdHJ1Y3RvciAo
QGN1c3RvbUNvbnN0cnVjdG9ycykgeworICAgICAgICAgICAgICAgIHB1c2goQHskZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0LT57IkN1c3RvbUNvbnN0cnVjdG9ycyJ9fSwgJGN1c3RvbUNvbnN0cnVjdG9y
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QtPnska2V5fSA9ICRhdHRyLT57JGtleX07CisgICAgICAgIH0KKyAgICB9
Cit9CisKKworc3ViIGlzRXh0ZW5kZWRBdHRyaWJ1dGVBcHBsaWNhYmxlVG9UeXBlcworeworICAg
IG15ICRleHRlbmRlZEF0dHJpYnV0ZSA9IHNoaWZ0OworCisgICAgIyBGSVhNRTogVGhpcyBzaG91
bGQgYmUgZGVyaXZlZCBmcm9tIElETEF0dHJpYnV0ZXMuaW4KKyAgICBteSAldHlwZXMgPSAoCisg
ICAgICAgICJDbGFtcCIgPT4gMSwKKyAgICAgICAgIkVuZm9yY2VSYW5nZSIgPT4gMSwKKyAgICAg
ICAgIlRyZWF0TnVsbEFzIiA9PiAxLAorCisgICAgICAgICMgTm9uLXN0YW5kYXJkIGFkZGl0aW9u
cworICAgICAgICAiQXRvbWljU3RyaW5nIiA9PiAxLAorICAgICAgICAiUmVxdWlyZXNFeGlzdGlu
Z0F0b21pY1N0cmluZyIgPT4gMSwKKyAgICAgICAgIk92ZXJyaWRlSURMVHlwZSIgPT4gMSwKKyAg
ICApOworCisgICAgcmV0dXJuICR0eXBlc3skZXh0ZW5kZWRBdHRyaWJ1dGV9OworfQorCitzdWIg
bW92ZUV4dGVuZGVkQXR0cmlidXRlc0FwcGxpY2FibGVUb1R5cGVzCit7CisgICAgbXkgJHR5cGUg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBm
b3IgbXkgJGtleSAoa2V5cyAleyRleHRlbmRlZEF0dHJpYnV0ZUxpc3R9KSB7CisgICAgICAgIGlm
IChpc0V4dGVuZGVkQXR0cmlidXRlQXBwbGljYWJsZVRvVHlwZXMoJGtleSkpIHsKKyAgICAgICAg
ICAgIGlmICghZGVmaW5lZCAkdHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57JGtleX0pIHsKKyAg
ICAgICAgICAgICAgICAkdHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57JGtleX0gPSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0LT57JGtleX07CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGRlbGV0ZSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57JGtleX07CisgICAgICAg
IH0KKyAgICB9Cit9CisKIHN1YiB0eXBlRGVzY3JpcHRpb24KIHsKICAgICBteSAkdHlwZSA9IHNo
aWZ0OwpAQCAtNDEzLDEwICs0NjIsNyBAQCBzdWIgbWFrZVNpbXBsZVR5cGUKIHsKICAgICBteSAk
dHlwZU5hbWUgPSBzaGlmdDsKIAotICAgIG15ICR0eXBlID0gSURMVHlwZS0+bmV3KCk7Ci0gICAg
JHR5cGUtPm5hbWUoJHR5cGVOYW1lKTsKLSAgICAKLSAgICByZXR1cm4gJHR5cGU7CisgICAgcmV0
dXJuIElETFR5cGUtPm5ldyhuYW1lID0+ICR0eXBlTmFtZSk7CiB9CiAKIHN1YiBjbG9uZVR5cGUK
QEAgLTQyOCw2ICs0NzQsOSBAQCBzdWIgY2xvbmVUeXBlCiAgICAgJGNsb25lZFR5cGUtPm5hbWUo
JHR5cGUtPm5hbWUpOwogICAgICRjbG9uZWRUeXBlLT5pc051bGxhYmxlKCR0eXBlLT5pc051bGxh
YmxlKTsKICAgICAkY2xvbmVkVHlwZS0+aXNVbmlvbigkdHlwZS0+aXNVbmlvbik7CisKKyAgICBj
b3B5RXh0ZW5kZWRBdHRyaWJ1dGVzKCRjbG9uZWRUeXBlLT5leHRlbmRlZEF0dHJpYnV0ZXMsICR0
eXBlLT5leHRlbmRlZEF0dHJpYnV0ZXMpOworCiAgICAgZm9yZWFjaCBteSAkc3VidHlwZSAoQHsk
dHlwZS0+c3VidHlwZXN9KSB7CiAgICAgICAgIHB1c2goQHskY2xvbmVkVHlwZS0+c3VidHlwZXN9
LCAkc2VsZi0+Y2xvbmVUeXBlKCRzdWJ0eXBlKSk7CiAgICAgfQpAQCAtNTUyLDYgKzYwMSw3IEBA
IHN1YiB0eXBlQnlBcHBseWluZ1R5cGVkZWZzCiAKICAgICAgICAgbXkgJGNsb25lZFR5cGUgPSAk
c2VsZi0+Y2xvbmVUeXBlKCR0eXBlZGVmLT50eXBlKTsKICAgICAgICAgJGNsb25lZFR5cGUtPmlz
TnVsbGFibGUoJGNsb25lZFR5cGUtPmlzTnVsbGFibGUgfHwgJHR5cGUtPmlzTnVsbGFibGUpOwor
ICAgICAgICBtb3ZlRXh0ZW5kZWRBdHRyaWJ1dGVzQXBwbGljYWJsZVRvVHlwZXMoJGNsb25lZFR5
cGUsICR0eXBlLT5leHRlbmRlZEF0dHJpYnV0ZXMpOwogCiAgICAgICAgIHJldHVybiAkc2VsZi0+
dHlwZUJ5QXBwbHlpbmdUeXBlZGVmcygkY2xvbmVkVHlwZSk7CiAgICAgfQpAQCAtNzk4LDE2ICs4
NDgsMjIgQEAgc3ViIHBhcnNlRGljdGlvbmFyeU1lbWJlcgogICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOwogICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8
fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgewogICAgICAgICBt
eSAkbWVtYmVyID0gSURMRGljdGlvbmFyeU1lbWJlci0+bmV3KCk7CisgICAgICAgICRtZW1iZXIt
PmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKwogICAgICAgICBp
ZiAoJG5leHQtPnZhbHVlIGVxICJyZXF1aXJlZCIpIHsKICAgICAgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicmVxdWlyZWQiLCBfX0xJTkVfXyk7CiAg
ICAgICAgICAgICAkbWVtYmVyLT5pc1JlcXVpcmVkKDEpOworCisgICAgICAgICAgICBteSAkdHlw
ZSA9ICRzZWxmLT5wYXJzZVR5cGVXaXRoRXh0ZW5kZWRBdHRyaWJ1dGVzKCk7CisgICAgICAgICAg
ICAkbWVtYmVyLT50eXBlKCR0eXBlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICRt
ZW1iZXItPmlzUmVxdWlyZWQoMCk7Ci0gICAgICAgIH0KLSAgICAgICAgJG1lbWJlci0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogCi0gICAgICAgIG15ICR0eXBl
ID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotICAgICAgICAkbWVtYmVyLT50eXBlKCR0eXBlKTsKKyAg
ICAgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAgICAgbW92
ZUV4dGVuZGVkQXR0cmlidXRlc0FwcGxpY2FibGVUb1R5cGVzKCR0eXBlLCAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgJG1lbWJlci0+dHlwZSgkdHlw
ZSk7CisgICAgICAgIH0KIAogICAgICAgICBteSAkbmFtZVRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJG5hbWVUb2tlbiwgSWRlbnRpZmll
clRva2VuKTsKQEAgLTEwMzQsNyArMTA5MCw3IEBAIHN1YiBwYXJzZVR5cGVkZWYKICAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ0eXBlZGVmIiwgX19M
SU5FX18pOwogICAgICAgICBteSAkdHlwZWRlZiA9IElETFR5cGVkZWYtPm5ldygpOwogCi0gICAg
ICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICBteSAkdHlwZSA9ICRz
ZWxmLT5wYXJzZVR5cGVXaXRoRXh0ZW5kZWRBdHRyaWJ1dGVzKCk7CiAgICAgICAgICR0eXBlZGVm
LT50eXBlKCR0eXBlKTsKIAogICAgICAgICBteSAkbmFtZVRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CkBAIC0xMzQ2LDYgKzE0MDIsMTEgQEAgc3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25S
ZXN0CiAgICAgfQogICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAk
bmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RfMS8pIHsKICAg
ICAgICAgbXkgJHJldHVyblR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisKKyAgICAg
ICAgIyBOT1RFOiBUaGlzIGlzIGEgbm9uLXN0YW5kYXJkIGFkZGl0aW9uLiBJbiBXZWJJREwsIHRo
ZXJlIGlzIG5vIHdheSB0byBhc3NvY2lhdGUKKyAgICAgICAgIyBleHRlbmRlZCBhdHRyaWJ1dGVz
IHdpdGggYSByZXR1cm4gdHlwZS4KKyAgICAgICAgbW92ZUV4dGVuZGVkQXR0cmlidXRlc0FwcGxp
Y2FibGVUb1R5cGVzKCRyZXR1cm5UeXBlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKwogICAg
ICAgICBteSAkb3BlcmF0aW9uID0gJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKICAgICAgICAgaWYgKGRlZmluZWQgKCRvcGVyYXRpb24pKSB7CiAgICAg
ICAgICAgICAkb3BlcmF0aW9uLT50eXBlKCRyZXR1cm5UeXBlKTsKQEAgLTEzNzcsMjYgKzE0Mzgs
MjIgQEAgc3ViIHBhcnNlQXR0cmlidXRlUmVzdAogCiAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJhdHRyaWJ1dGUiKSB7Ci0gICAg
ICAgIG15ICRuZXdEYXRhTm9kZSA9IElETEF0dHJpYnV0ZS0+bmV3KCk7Ci0gICAgICAgICRuZXdE
YXRhTm9kZS0+aXNSZWFkT25seSgkaXNSZWFkT25seSk7Ci0KICAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJhdHRyaWJ1dGUiLCBfX0xJTkVfXyk7CiAK
LSAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7Ci0gICAgICAgICRuZXdEYXRh
Tm9kZS0+dHlwZSgkdHlwZSk7CisgICAgICAgIG15ICRhdHRyaWJ1dGUgPSBJRExBdHRyaWJ1dGUt
Pm5ldygpOworICAgICAgICAKKyAgICAgICAgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAkYXR0cmlidXRlLT5pc1JlYWRPbmx5
KCRpc1JlYWRPbmx5KTsKKworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGVXaXRo
RXh0ZW5kZWRBdHRyaWJ1dGVzKCk7CisgICAgICAgICRhdHRyaWJ1dGUtPnR5cGUoJHR5cGUpOwog
CiAgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOwogICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKLSAgICAgICAgJG5ld0Rh
dGFOb2RlLT5uYW1lKGlkZW50aWZpZXJSZW1vdmVOdWxsYWJsZVByZWZpeCgkdG9rZW4tPnZhbHVl
KCkpKTsKKyAgICAgICAgJGF0dHJpYnV0ZS0+bmFtZShpZGVudGlmaWVyUmVtb3ZlTnVsbGFibGVQ
cmVmaXgoJHRva2VuLT52YWx1ZSgpKSk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKIAotICAgICAgICAjIEN1c3RvbUNv
bnN0cnVjdG9yIG1heSBhbHNvIGJlIHVzZWQgb24gYXR0cmlidXRlcy4KLSAgICAgICAgaWYgKGRl
ZmluZWQgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJDdXN0b21Db25zdHJ1Y3RvcnMifSkgewot
ICAgICAgICAgICAgZGVsZXRlICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiQ3VzdG9tQ29uc3Ry
dWN0b3JzIn07Ci0gICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkN1c3RvbUNv
bnN0cnVjdG9yIn0gPSAiVkFMVUVfSVNfTUlTU0lORyI7Ci0gICAgICAgIH0KLSAgICAgICAgJG5l
d0RhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Ci0g
ICAgICAgIHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgICAgIHJldHVybiAkYXR0cmlidXRlOwog
ICAgIH0KICAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7CiB9CkBAIC0xNDQxLDYgKzE0OTgsMTAgQEAgc3ViIHBhcnNlT3BlcmF0aW9uT3JJ
dGVyYXRvcgogICAgIH0KICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4g
fHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0XzEvKSB7
CiAgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOworICAg
ICAgICAjIE5PVEU6IFRoaXMgaXMgYSBub24tc3RhbmRhcmQgYWRkaXRpb24uIEluIFdlYklETCwg
dGhlcmUgaXMgbm8gd2F5IHRvIGFzc29jaWF0ZQorICAgICAgICAjIGV4dGVuZGVkIGF0dHJpYnV0
ZXMgd2l0aCBhIHJldHVybiB0eXBlLgorICAgICAgICBtb3ZlRXh0ZW5kZWRBdHRyaWJ1dGVzQXBw
bGljYWJsZVRvVHlwZXMoJHJldHVyblR5cGUsICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworCiAg
ICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAgICAgICBpZiAoJG5leHQt
PnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CiAg
ICAgICAgICAgICBteSAkb3BlcmF0aW9uID0gJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKQEAgLTE0NjEsNiArMTUyMiwxMSBAQCBzdWIgcGFyc2VTcGVj
aWFsT3BlcmF0aW9uCiAgICAgICAgIG15IEBzcGVjaWFscyA9ICgpOwogICAgICAgICBwdXNoKEBz
cGVjaWFscywgQHskc2VsZi0+cGFyc2VTcGVjaWFscygpfSk7CiAgICAgICAgIG15ICRyZXR1cm5U
eXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOworCisgICAgICAgICMgTk9URTogVGhpcyBp
cyBhIG5vbi1zdGFuZGFyZCBhZGRpdGlvbi4gSW4gV2ViSURMLCB0aGVyZSBpcyBubyB3YXkgdG8g
YXNzb2NpYXRlCisgICAgICAgICMgZXh0ZW5kZWQgYXR0cmlidXRlcyB3aXRoIGEgcmV0dXJuIHR5
cGUuCisgICAgICAgIG1vdmVFeHRlbmRlZEF0dHJpYnV0ZXNBcHBsaWNhYmxlVG9UeXBlcygkcmV0
dXJuVHlwZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisKICAgICAgICAgbXkgJG9wZXJhdGlv
biA9ICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAg
ICAgICAgIGlmIChkZWZpbmVkICgkb3BlcmF0aW9uKSkgewogICAgICAgICAgICAgJG9wZXJhdGlv
bi0+dHlwZSgkcmV0dXJuVHlwZSk7CkBAIC0xNTM4LDEyICsxNjA0LDEyIEBAIHN1YiBwYXJzZU9w
dGlvbmFsSXRlcmFibGVJbnRlcmZhY2UKICAgICAkbmV3RGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKIAogICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPCIsIF9fTElORV9fKTsKLSAgICBteSAkdHlwZTEgPSAk
c2VsZi0+cGFyc2VUeXBlKCk7CisgICAgbXkgJHR5cGUxID0gJHNlbGYtPnBhcnNlVHlwZVdpdGhF
eHRlbmRlZEF0dHJpYnV0ZXMoKTsKIAogICAgIGlmICgkc2VsZi0+bmV4dFRva2VuKCktPnZhbHVl
KCkgZXEgIiwiKSB7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiLCIsIF9fTElORV9fKTsKIAotICAgICAgICBteSAkdHlwZTIgPSAkc2VsZi0+cGFy
c2VUeXBlKCk7CisgICAgICAgIG15ICR0eXBlMiA9ICRzZWxmLT5wYXJzZVR5cGVXaXRoRXh0ZW5k
ZWRBdHRyaWJ1dGVzKCk7CiAgICAgICAgICRuZXdEYXRhTm9kZS0+aXNLZXlWYWx1ZSgxKTsKICAg
ICAgICAgJG5ld0RhdGFOb2RlLT5rZXlUeXBlKCR0eXBlMSk7CiAgICAgICAgICRuZXdEYXRhTm9k
ZS0+dmFsdWVUeXBlKCR0eXBlMik7CkBAIC0xNjE4LDkgKzE2ODQsOSBAQCBzdWIgcGFyc2VNYXBM
aWtlUHJvcGVydGllcwogICAgICRuZXdEYXRhTm9kZS0+aXNSZWFkT25seSgkaXNSZWFkT25seSk7
CiAKICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjwiLCBf
X0xJTkVfXyk7Ci0gICAgJG5ld0RhdGFOb2RlLT5rZXlUeXBlKCRzZWxmLT5wYXJzZVR5cGUoKSk7
CisgICAgJG5ld0RhdGFOb2RlLT5rZXlUeXBlKCRzZWxmLT5wYXJzZVR5cGVXaXRoRXh0ZW5kZWRB
dHRyaWJ1dGVzKCkpOwogICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiLCIsIF9fTElORV9fKTsKLSAgICAkbmV3RGF0YU5vZGUtPnZhbHVlVHlwZSgkc2VsZi0+
cGFyc2VUeXBlKCkpOworICAgICRuZXdEYXRhTm9kZS0+dmFsdWVUeXBlKCRzZWxmLT5wYXJzZVR5
cGVXaXRoRXh0ZW5kZWRBdHRyaWJ1dGVzKCkpOwogICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiPiIsIF9fTElORV9fKTsKIAogICAgIG15ICRub3RFbnVtZXJh
YmxlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJGV4dGVuZGVkQXR0cmlidXRlTGlzdDsKQEAgLTE4
MTMsMjcgKzE4NzksMjkgQEAgc3ViIHBhcnNlT3B0aW9uYWxPclJlcXVpcmVkQXJndW1lbnQKICAg
ICBteSAkc2VsZiA9IHNoaWZ0OwogICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlm
dDsKIAotICAgIG15ICRwYXJhbURhdGFOb2RlID0gSURMQXJndW1lbnQtPm5ldygpOwotICAgICRw
YXJhbURhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgbXkgJGFyZ3VtZW50ID0gSURMQXJndW1lbnQtPm5ldygpOworICAgICRhcmd1bWVudC0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogCiAgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvcHRp
b25hbCIpIHsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJvcHRpb25hbCIsIF9fTElORV9fKTsKIAotICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5w
YXJzZVR5cGUoKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoJHR5cGUpOwotICAgICAg
ICAkcGFyYW1EYXRhTm9kZS0+aXNPcHRpb25hbCgxKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUt
Pm5hbWUoJHNlbGYtPnBhcnNlQXJndW1lbnROYW1lKCkpOwotICAgICAgICAkcGFyYW1EYXRhTm9k
ZS0+ZGVmYXVsdCgkc2VsZi0+cGFyc2VEZWZhdWx0KCkpOwotICAgICAgICByZXR1cm4gJHBhcmFt
RGF0YU5vZGU7CisgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZVdpdGhFeHRlbmRl
ZEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgJGFyZ3VtZW50LT50eXBlKCR0eXBlKTsKKyAgICAgICAg
JGFyZ3VtZW50LT5pc09wdGlvbmFsKDEpOworICAgICAgICAkYXJndW1lbnQtPm5hbWUoJHNlbGYt
PnBhcnNlQXJndW1lbnROYW1lKCkpOworICAgICAgICAkYXJndW1lbnQtPmRlZmF1bHQoJHNlbGYt
PnBhcnNlRGVmYXVsdCgpKTsKKyAgICAgICAgcmV0dXJuICRhcmd1bWVudDsKICAgICB9CiAgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+
IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CiAgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBh
cnNlVHlwZSgpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZSgkdHlwZSk7Ci0gICAgICAg
ICRwYXJhbURhdGFOb2RlLT5pc09wdGlvbmFsKDApOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+
aXNWYXJpYWRpYygkc2VsZi0+cGFyc2VFbGxpcHNpcygpKTsKLSAgICAgICAgJHBhcmFtRGF0YU5v
ZGUtPm5hbWUoJHNlbGYtPnBhcnNlQXJndW1lbnROYW1lKCkpOwotICAgICAgICByZXR1cm4gJHBh
cmFtRGF0YU5vZGU7CisgICAgICAgIG1vdmVFeHRlbmRlZEF0dHJpYnV0ZXNBcHBsaWNhYmxlVG9U
eXBlcygkdHlwZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisKKyAgICAgICAgJGFyZ3VtZW50
LT50eXBlKCR0eXBlKTsKKyAgICAgICAgJGFyZ3VtZW50LT5pc09wdGlvbmFsKDApOworICAgICAg
ICAkYXJndW1lbnQtPmlzVmFyaWFkaWMoJHNlbGYtPnBhcnNlRWxsaXBzaXMoKSk7CisgICAgICAg
ICRhcmd1bWVudC0+bmFtZSgkc2VsZi0+cGFyc2VBcmd1bWVudE5hbWUoKSk7CisgICAgICAgIHJl
dHVybiAkYXJndW1lbnQ7CiAgICAgfQogICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KQEAgLTE5MTAsMzIgKzE5NzgsNiBAQCBzdWIg
cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5CiAgICAgcmV0dXJuIHt9OwogfQog
Ci1zdWIgY29weUV4dGVuZGVkQXR0cmlidXRlcwotewotICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgPSBzaGlmdDsKLSAgICBteSAkYXR0ciA9IHNoaWZ0OwotCi0gICAgZm9yIG15ICRrZXkg
KGtleXMgJXskYXR0cn0pIHsKLSAgICAgICAgaWYgKCRrZXkgZXEgIkNvbnN0cnVjdG9yIikgewot
ICAgICAgICAgICAgcHVzaChAeyRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiQ29uc3RydWN0b3Jz
In19LCAkYXR0ci0+eyRrZXl9KTsKLSAgICAgICAgfSBlbHNpZiAoJGtleSBlcSAiQ29uc3RydWN0
b3JzIikgewotICAgICAgICAgICAgbXkgQGNvbnN0cnVjdG9ycyA9IEB7JGF0dHItPnska2V5fX07
Ci0gICAgICAgICAgICBmb3JlYWNoIG15ICRjb25zdHJ1Y3RvciAoQGNvbnN0cnVjdG9ycykgewot
ICAgICAgICAgICAgICAgIHB1c2goQHskZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVj
dG9ycyJ9fSwgJGNvbnN0cnVjdG9yKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNpZiAo
JGtleSBlcSAiQ3VzdG9tQ29uc3RydWN0b3IiKSB7Ci0gICAgICAgICAgICBwdXNoKEB7JGV4dGVu
ZGVkQXR0cmlidXRlTGlzdC0+eyJDdXN0b21Db25zdHJ1Y3RvcnMifX0sICRhdHRyLT57JGtleX0p
OwotICAgICAgICB9IGVsc2lmICgka2V5IGVxICJDdXN0b21Db25zdHJ1Y3RvcnMiKSB7Ci0gICAg
ICAgICAgIG15IEBjdXN0b21Db25zdHJ1Y3RvcnMgPSBAeyRhdHRyLT57JGtleX19OwotICAgICAg
ICAgICAgZm9yZWFjaCBteSAkY3VzdG9tQ29uc3RydWN0b3IgKEBjdXN0b21Db25zdHJ1Y3RvcnMp
IHsKLSAgICAgICAgICAgICAgICBwdXNoKEB7JGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJDdXN0
b21Db25zdHJ1Y3RvcnMifX0sICRjdXN0b21Db25zdHJ1Y3Rvcik7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57JGtl
eX0gPSAkYXR0ci0+eyRrZXl9OwotICAgICAgICB9Ci0gICAgfQotfQotCiBzdWIgcGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZUxpc3QKIHsKICAgICBteSAkc2VsZiA9IHNoaWZ0OwpAQCAtMjE0NiwxMyAr
MjE4OCw0MCBAQCBzdWIgcGFyc2VUeXBlCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgPSB7fTsKKworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAg
bXkgJHVuaW9uVHlwZSA9ICRzZWxmLT5wYXJzZVVuaW9uVHlwZSgpOworICAgICAgICAkdW5pb25U
eXBlLT5pc051bGxhYmxlKCRzZWxmLT5wYXJzZU51bGwoKSk7CisgICAgICAgICR1bmlvblR5cGUt
PmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0
dXJuICR1bmlvblR5cGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRUeXBlXzEvKSB7CisgICAgICAgIG15
ICRzaW5nbGVUeXBlID0gJHNlbGYtPnBhcnNlU2luZ2xlVHlwZSgpOworICAgICAgICAkc2luZ2xl
VHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAg
ICByZXR1cm4gJHNpbmdsZVR5cGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlVHlwZVdpdGhF
eHRlbmRlZEF0dHJpYnV0ZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIAorICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxp
c3RBbGxvd0VtcHR5KCk7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CiAgICAgICAgIG15ICR1bmlvblR5cGUgPSAk
c2VsZi0+cGFyc2VVbmlvblR5cGUoKTsKICAgICAgICAgJHVuaW9uVHlwZS0+aXNOdWxsYWJsZSgk
c2VsZi0+cGFyc2VOdWxsKCkpOworICAgICAgICAkdW5pb25UeXBlLT5leHRlbmRlZEF0dHJpYnV0
ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgICAgIHJldHVybiAkdW5pb25UeXBlOwog
ICAgIH0KICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQt
PnZhbHVlKCkgPX4gLyRuZXh0VHlwZV8xLykgewotICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
U2luZ2xlVHlwZSgpOworICAgICAgICBteSAkc2luZ2xlVHlwZSA9ICRzZWxmLT5wYXJzZVNpbmds
ZVR5cGUoKTsKKyAgICAgICAgJHNpbmdsZVR5cGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRzaW5nbGVUeXBlOwogICAgIH0KICAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
CiB9CkBAIC0yMjA3LDkgKzIyNzYsMTMgQEAgc3ViIHBhcnNlVW5pb25NZW1iZXJUeXBlCiAgICAg
ICAgICR1bmlvblR5cGUtPmlzTnVsbGFibGUoJHNlbGYtPnBhcnNlTnVsbCgpKTsKICAgICAgICAg
cmV0dXJuICR1bmlvblR5cGU7CiAgICAgfQorCisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKwogICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9
fiAvJG5leHRTaW5nbGVUeXBlXzEvKSB7CiAgICAgICAgIG15ICRub25BbnlUeXBlID0gJHNlbGYt
PnBhcnNlTm9uQW55VHlwZSgpOwogICAgICAgICAkbm9uQW55VHlwZS0+aXNOdWxsYWJsZSgkc2Vs
Zi0+cGFyc2VOdWxsKCkpOworICAgICAgICAkbm9uQW55VHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogICAgICAgICByZXR1cm4gJG5vbkFueVR5cGU7CiAg
ICAgfQogICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKQEAgLTIyODAsNyArMjM1Myw3IEBAIHN1YiBwYXJzZU5vbkFueVR5cGUKICAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXF1ZW5jZSIs
IF9fTElORV9fKTsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI8IiwgX19MSU5FX18pOwogCi0gICAgICAgIG15ICRzdWJ0eXBlID0gJHNlbGYtPnBh
cnNlVHlwZSgpOworICAgICAgICBteSAkc3VidHlwZSA9ICRzZWxmLT5wYXJzZVR5cGVXaXRoRXh0
ZW5kZWRBdHRyaWJ1dGVzKCk7CiAKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICI+IiwgX19MSU5FX18pOwogCkBAIC0yMjkzLDcgKzIzNjYsNyBAQCBz
dWIgcGFyc2VOb25BbnlUeXBlCiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiRnJvemVuQXJyYXkiLCBfX0xJTkVfXyk7CiAgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPCIsIF9fTElORV9fKTsKIAotICAg
ICAgICBteSAkc3VidHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgbXkgJHN1YnR5
cGUgPSAkc2VsZi0+cGFyc2VUeXBlV2l0aEV4dGVuZGVkQXR0cmlidXRlcygpOwogCiAgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPiIsIF9fTElORV9f
KTsKIApAQCAtMjMyNCw3ICsyMzk3LDcgQEAgc3ViIHBhcnNlTm9uQW55VHlwZQogCiAgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiLCIsIF9fTElORV9f
KTsKIAotICAgICAgICBteSAkdmFsdWVUeXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAg
ICBteSAkdmFsdWVUeXBlID0gJHNlbGYtPnBhcnNlVHlwZVdpdGhFeHRlbmRlZEF0dHJpYnV0ZXMo
KTsKIAogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
Ij4iLCBfX0xJTkVfXyk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwJKHJldmlzaW9uIDIxNTI1NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
NjIsOCArNjIsOCBAQCBlbnVtIFRlc3RDb25maWRlbmNlIHsgImhpZ2giLCAia2luZGEtbG93CiAg
ICAgYXR0cmlidXRlIGJ5dGUgYnl0ZUF0dHI7CiAgICAgYXR0cmlidXRlIG9jdGV0IG9jdGV0QXR0
cjsKICAgICBbVW5zY29wYWJsZV0gYXR0cmlidXRlIHNob3J0IHNob3J0QXR0cjsKLSAgICBbQ2xh
bXBdIGF0dHJpYnV0ZSBzaG9ydCBjbGFtcGVkU2hvcnRBdHRyOwotICAgIFtFbmZvcmNlUmFuZ2Vd
IGF0dHJpYnV0ZSBzaG9ydCBlbmZvcmNlUmFuZ2VTaG9ydEF0dHI7CisgICAgYXR0cmlidXRlIFtD
bGFtcF0gc2hvcnQgY2xhbXBlZFNob3J0QXR0cjsKKyAgICBhdHRyaWJ1dGUgW0VuZm9yY2VSYW5n
ZV0gc2hvcnQgZW5mb3JjZVJhbmdlU2hvcnRBdHRyOwogICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBz
aG9ydCB1bnNpZ25lZFNob3J0QXR0cjsKICAgICBhdHRyaWJ1dGUgbG9uZyBsb25nQXR0cjsKICAg
ICBhdHRyaWJ1dGUgbG9uZyBsb25nIGxvbmdMb25nQXR0cjsKQEAgLTc0LDkgKzc0LDkgQEAgZW51
bSBUZXN0Q29uZmlkZW5jZSB7ICJoaWdoIiwgImtpbmRhLWxvdwogICAgIGF0dHJpYnV0ZSBUZXN0
T2JqPyB0ZXN0TnVsbGFibGVPYmpBdHRyOwogICAgIFtMZW5pZW50VGhpc10gYXR0cmlidXRlIFRl
c3RPYmogbGVuaWVudFRlc3RPYmpBdHRyOwogICAgIFtVbmZvcmdlYWJsZV0gcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyB1bmZvcmdlYWJsZUF0dHI7Ci0gICAgW1RyZWF0TnVsbEFzPUVtcHR5
U3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nOwotICAgIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gYXR0cmlidXRlIFVTVlN0cmlu
ZyB1c3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZzsKLSAgICBbVHJlYXROdWxs
QXM9RW1wdHlTdHJpbmddIGF0dHJpYnV0ZSBCeXRlU3RyaW5nIGJ5dGVTdHJpbmdBdHRyVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZzsKKyAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3Ry
aW5nXSBET01TdHJpbmcgc3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmc7CisgICAg
YXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gVVNWU3RyaW5nIHVzdnN0cmluZ0F0
dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nOworICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9
RW1wdHlTdHJpbmddIEJ5dGVTdHJpbmcgYnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nOwogICAgIGF0dHJpYnV0ZSByZWNvcmQ8RE9NU3RyaW5nLCBsb25nPiBzdHJpbmdMb25n
UmVjb3JkQXR0cjsKICAgICBhdHRyaWJ1dGUgcmVjb3JkPFVTVlN0cmluZywgbG9uZz4gdXN2c3Ry
aW5nTG9uZ1JlY29yZEF0dHI7CiAgICAgYXR0cmlidXRlIHJlY29yZDxCeXRlU3RyaW5nLCBsb25n
PiB1c3ZzdHJpbmdMb25nUmVjb3JkQXR0cjsKQEAgLTIxNCwxNSArMjE0LDE1IEBAIGVudW0gVGVz
dENvbmZpZGVuY2UgeyAiaGlnaCIsICJraW5kYS1sb3cKICAgICB2b2lkICAgIG1ldGhvZFdpdGhO
b25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyhsb25nIG5vbk9wdCwgb3B0aW9uYWwgbG9u
ZyBvcHQxLCBvcHRpb25hbCBsb25nIG9wdDIpOwogICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlv
bmFsU3RyaW5nKG9wdGlvbmFsIERPTVN0cmluZyBzdHIpOwogICAgIHZvaWQgICAgbWV0aG9kV2l0
aE9wdGlvbmFsVVNWU3RyaW5nKG9wdGlvbmFsIFVTVlN0cmluZyBzdHIpOwotICAgIHZvaWQgICAg
bWV0aG9kV2l0aE9wdGlvbmFsQXRvbWljU3RyaW5nKFtBdG9taWNTdHJpbmddIG9wdGlvbmFsIERP
TVN0cmluZyBzdHIpOworICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlvbmFsQXRvbWljU3RyaW5n
KG9wdGlvbmFsIFtBdG9taWNTdHJpbmddIERPTVN0cmluZyBzdHIpOwogICAgIHZvaWQgICAgbWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVmYXVsdFZhbHVlKG9wdGlvbmFsIERPTVN0cmluZyBz
dHIgPSAiZm9vIik7Ci0gICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9uYWxBdG9taWNTdHJpbmdB
bmREZWZhdWx0VmFsdWUoW0F0b21pY1N0cmluZ10gb3B0aW9uYWwgRE9NU3RyaW5nIHN0ciA9ICJm
b28iKTsKKyAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbEF0b21pY1N0cmluZ0FuZERlZmF1
bHRWYWx1ZShvcHRpb25hbCBbQXRvbWljU3RyaW5nXSBET01TdHJpbmcgc3RyID0gImZvbyIpOwog
ICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxsKG9wdGlvbmFsIERPTVN0
cmluZyBzdHIgPSBudWxsKTsKICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lz
VW5kZWZpbmVkKG9wdGlvbmFsIERPTVN0cmluZyBzdHIgPSAidW5kZWZpbmVkIik7Ci0gICAgdm9p
ZCAgICBtZXRob2RXaXRoT3B0aW9uYWxBdG9taWNTdHJpbmdJc051bGwoW0F0b21pY1N0cmluZ10g
b3B0aW9uYWwgRE9NU3RyaW5nIHN0ciA9IG51bGwpOworICAgIHZvaWQgICAgbWV0aG9kV2l0aE9w
dGlvbmFsQXRvbWljU3RyaW5nSXNOdWxsKG9wdGlvbmFsIFtBdG9taWNTdHJpbmddIERPTVN0cmlu
ZyBzdHIgPSBudWxsKTsKICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzRW1w
dHlTdHJpbmcob3B0aW9uYWwgRE9NU3RyaW5nIHN0ciA9ICIiKTsKICAgICB2b2lkICAgIG1ldGhv
ZFdpdGhPcHRpb25hbFVTVlN0cmluZ0lzRW1wdHlTdHJpbmcob3B0aW9uYWwgVVNWU3RyaW5nIHN0
ciA9ICIiKTsKLSAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbEF0b21pY1N0cmluZ0lzRW1w
dHlTdHJpbmcoW0F0b21pY1N0cmluZ10gb3B0aW9uYWwgRE9NU3RyaW5nIHN0ciA9ICIiKTsKKyAg
ICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbEF0b21pY1N0cmluZ0lzRW1wdHlTdHJpbmcob3B0
aW9uYWwgW0F0b21pY1N0cmluZ10gRE9NU3RyaW5nIHN0ciA9ICIiKTsKICAgICB2b2lkICAgIG1l
dGhvZFdpdGhPcHRpb25hbERvdWJsZUlzTmFOKG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUg
bnVtYmVyID0gTmFOKTsKICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU4o
b3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IG51bWJlciA9IE5hTik7CiAgICAgdm9pZCAgICBt
ZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZyhvcHRpb25hbCBsb25nIGxvbmcgbnVtYmVyKTsKQEAg
LTMyNCw3ICszMjQsOSBAQCBlbnVtIFRlc3RDb25maWRlbmNlIHsgImhpZ2giLCAia2luZGEtbG93
CiAgICAgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjFdIHN0YXRpYyB2b2lkIG92ZXJsb2FkZWRNZXRo
b2QxKERPTVN0cmluZyB0eXBlKTsKIAogICAgIHZvaWQgY2xhc3NNZXRob2RXaXRoQ2xhbXAoW0Ns
YW1wXSB1bnNpZ25lZCBzaG9ydCBvYmpBcmdzU2hvcnQsIFtDbGFtcF0gdW5zaWduZWQgbG9uZyBv
YmpBcmdzTG9uZyk7CisgICAgdm9pZCBjbGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwob3B0
aW9uYWwgW0NsYW1wXSBsb25nIG9iakFyZ3NMb25nID0gMCk7CiAgICAgdm9pZCBjbGFzc01ldGhv
ZFdpdGhFbmZvcmNlUmFuZ2UoW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgc2hvcnQgb2JqQXJnc1No
b3J0LCBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIG9iakFyZ3NMb25nKTsKKyAgICB2b2lk
IGNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWwob3B0aW9uYWwgW0VuZm9yY2VS
YW5nZV0gbG9uZyBvYmpBcmdzTG9uZyA9IDApOwogCiAgICAgdm9pZCBtZXRob2RXaXRoVW5zaWdu
ZWRMb25nU2VxdWVuY2Uoc2VxdWVuY2U8dW5zaWduZWQgbG9uZz4gdW5zaWduZWRMb25nU2VxdWVu
Y2UpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gc2VxdWVuY2U8RE9NU3RyaW5nPiBzdHJpbmdB
cnJheUZ1bmN0aW9uKHNlcXVlbmNlPERPTVN0cmluZz4gdmFsdWVzKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0VHlwZWRlZnMuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0VHlwZWRlZnMuaWRs
CShyZXZpc2lvbiAyMTUyNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdFR5cGVkZWZzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsMTEgQEAKIAog
ICAgIHZvaWQgdW5pb25BcmcoVU5JT05fU1RSSU5HX0xPTkcgdW5pb25BcmcpOwogCi0gICAgdm9p
ZCBmdW5jV2l0aENsYW1wKFtDbGFtcF0gVUxPTkdMT05HIGFyZzEsIFtDbGFtcF0gb3B0aW9uYWwg
VUxPTkdMT05HIGFyZzIpOworICAgIHZvaWQgZnVuY1dpdGhDbGFtcChbQ2xhbXBdIFVMT05HTE9O
RyBhcmcxLCBvcHRpb25hbCBbQ2xhbXBdIFVMT05HTE9ORyBhcmcyKTsKKwl2b2lkIGZ1bmNXaXRo
Q2xhbXBJblR5cGVkZWYoQ0xBTVBFRF9MT05HIGFyZyk7CisKKwlhdHRyaWJ1dGUgW0NsYW1wXSBV
TE9OR0xPTkcgYXR0cmlidXRlV2l0aENsYW1wOworCWF0dHJpYnV0ZSBDTEFNUEVEX0xPTkcgYXR0
cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmOwogCiAgICAgW0ltbXV0YWJsZV0gU1ZHUE9JTlQgaW1t
dXRhYmxlUG9pbnRGdW5jdGlvbigpOwogCkBAIC03NSw2ICs3OSw3IEBAIHR5cGVkZWYgdW5zaWdu
ZWQgbG9uZyBsb25nICAgICAgICAgVUxPTkcKIHR5cGVkZWYgU2VyaWFsaXplZFNjcmlwdFZhbHVl
ICAgICAgU0NSSVBUX1ZBTFVFOwogdHlwZWRlZiBzZXF1ZW5jZTxsb25nPiAgICAgICAgICAgICBT
RVFVRU5DRV9PRl9MT05HUzsKIHR5cGVkZWYgbG9uZz8gICAgICAgICAgICAgICAgICAgICAgTlVM
TEFCTEVfTE9ORzsKK3R5cGVkZWYgW0NsYW1wXSBsb25nICAgICAgICAgICAgICAgQ0xBTVBFRF9M
T05HOwogdHlwZWRlZiBTVkdQb2ludCAgICAgICAgICAgICAgICAgICBTVkdQT0lOVDsKIHR5cGVk
ZWYgRE9NU3RyaW5nICAgICAgICAgICAgICAgICAgU1RSSU5HOwogdHlwZWRlZiBzZXF1ZW5jZTxE
T01TdHJpbmc+ICAgICAgICBTRVFVRU5DRV9PRl9TVFJJTkdTOwpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJl
dmlzaW9uIDIxNTI1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjA0LDcgKzEyMDQsOSBAQCBKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2QxKEpTQzo6RXhlY1N0YXRlKik7CiAjZW5kaWYKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wKEpT
Qzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwoSlNDOjpF
eGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZShKU0M6OkV4ZWNTdGF0
ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbChKU0M6OkV4ZWNT
dGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKEpTQzo6RXhlY1N0YXRl
Kik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJp
bmdMaXN0RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTE4NDgsNyArMTg1MCw5IEBAIHN0
YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm8KICAgICB7ICJvdmVybG9hZFdp
dGhPcHRpb25hbFVuaW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAib3Zl
cmxvYWRXaXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlciIsIEpTQzo6RnVuY3Rp
b24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1
aXNoaW5nUGFyYW1ldGVyKSwgKGludHB0cl90KSAoMikgfSB9LAogICAgIHsgImNsYXNzTWV0aG9k
V2l0aENsYW1wIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0
aG9kV2l0aENsYW1wKSwgKGludHB0cl90KSAoMikgfSB9LAorICAgIHsgImNsYXNzTWV0aG9kV2l0
aENsYW1wT25PcHRpb25hbCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
bGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAg
eyAiY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZSksIChpbnRwdHJfdCkgKDIp
IH0gfSwKKyAgICB7ICJjbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsIiwgSlND
OjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VS
YW5nZU9uT3B0aW9uYWwpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0aFVu
c2lnbmVkTG9uZ1NlcXVlbmNlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZSksIChpbnRwdHJfdCkgKDEpIH0gfSwKICAg
ICB7ICJzdHJpbmdBcnJheUZ1bmN0aW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24pLCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAi
ZG9tU3RyaW5nTGlzdEZ1bmN0aW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlvbiksIChpbnRwdHJfdCkgKDEpIH0gfSwKQEAgLTc4MDYs
NiArNzgxMCwyNCBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NN
ZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsQ2FsbGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0T2Jq
KiwgSlNDOjpUaHJvd1Njb3BlJik7CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwoRXhl
Y1N0YXRlKiBzdGF0ZSkKK3sKKyAgICByZXR1cm4gQmluZGluZ0NhbGxlcjxKU1Rlc3RPYmo+Ojpj
YWxsT3BlcmF0aW9uPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xh
bXBPbk9wdGlvbmFsQ2FsbGVyPihzdGF0ZSwgImNsYXNzTWV0aG9kV2l0aENsYW1wT25PcHRpb25h
bCIpOworfQorCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWxDYWxsZXIoSlNDOjpF
eGVjU3RhdGUqIHN0YXRlLCBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMsIEpTQzo6VGhyb3dTY29wZSYg
dGhyb3dTY29wZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUpOworICAgIFVOVVNFRF9QQVJB
TSh0aHJvd1Njb3BlKTsKKyAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwor
ICAgIGF1dG8gb2JqQXJnc0xvbmcgPSBjb252ZXJ0PElETExvbmc+KCpzdGF0ZSwgc3RhdGUtPmFy
Z3VtZW50KDApLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246OkNsYW1wKTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIGlt
cGwuY2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsKFdURk1vdmUob2JqQXJnc0xvbmcpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCiBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFz
c01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VDYWxsZXIoSlNDOjpFeGVjU3RhdGUqLCBKU1Rlc3RPYmoq
LCBKU0M6OlRocm93U2NvcGUmKTsKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZShFeGVjU3Rh
dGUqIHN0YXRlKQpAQCAtNzgyOCw2ICs3ODUwLDI0IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsQ2FsbGVy
KEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0T2JqKiwgSlNDOjpUaHJvd1Njb3BlJik7CisKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01l
dGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsKEV4ZWNTdGF0ZSogc3RhdGUpCit7CisgICAg
cmV0dXJuIEJpbmRpbmdDYWxsZXI8SlNUZXN0T2JqPjo6Y2FsbE9wZXJhdGlvbjxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWxDYWxs
ZXI+KHN0YXRlLCAiY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbCIpOworfQor
CitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsQ2FsbGVyKEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSwgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzLCBKU0M6OlRocm93U2NvcGUmIHRo
cm93U2NvcGUpCit7CisgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKKyAgICBVTlVTRURfUEFSQU0o
dGhyb3dTY29wZSk7CisgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKKyAg
ICBhdXRvIG9iakFyZ3NMb25nID0gY29udmVydDxJRExMb25nPigqc3RhdGUsIHN0YXRlLT5hcmd1
bWVudCgwKSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpFbmZvcmNlUmFuZ2UpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Cisg
ICAgaW1wbC5jbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsKFdURk1vdmUob2Jq
QXJnc0xvbmcpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
fQorCiBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2VDYWxsZXIoSlNDOjpFeGVjU3Rh
dGUqLCBKU1Rlc3RPYmoqLCBKU0M6OlRocm93U2NvcGUmKTsKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExv
bmdTZXF1ZW5jZShFeGVjU3RhdGUqIHN0YXRlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCShy
ZXZpc2lvbiAyMTUyNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3QKIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVT
ZXF1ZW5jZU9mVW5pb25zQXJnKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblVuaW9uQXJnKEpT
Qzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXAoSlNDOjpFeGVjU3RhdGUqKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25JbW11dGFibGVQb2ludEZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmlu
Z1NlcXVlbmNlRnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVu
Y2VGdW5jdGlvbjIoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTY3LDYgKzY4LDEwIEBAIGJvb2wgc2V0
SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXQKIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVz
dFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcChKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgc2V0SlNUZXN0
VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXAoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIHNldEpTVGVzdFR5cGVk
ZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdFR5cGVk
ZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKQEAgLTE2OCw2ICsxNzMsOCBAQCBzdGF0
aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0VHlwZWRlCiAgICAgeyAiY29uc3RydWN0b3Ii
LCBEb250RW51bSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlw
ZWRlZnNDb25zdHJ1Y3RvcikgfSB9LAogICAgIHsgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIiwgQ3Vz
dG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0ciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIpIH0gfSwKICAgICB7ICJpbW11dGFi
bGVTZXJpYWxpemVkU2NyaXB0VmFsdWUiLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RU
eXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFR5cGVkZWZzSW1t
dXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKSB9IH0sCisgICAgeyAiYXR0cmlidXRlV2l0aENs
YW1wIiwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXApLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcCkgfSB9LAorICAgIHsgImF0
dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZiIsIEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNBdHRy
aWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYpIH0gfSwKICAgICB7ICJhdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbiIsIEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSB9IH0s
CiAgICAgeyAiYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNB
dHRyV2l0aFNldHRlckV4Y2VwdGlvbikgfSB9LAogICAgIHsgInN0cmluZ0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uIiwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNTdHJpbmdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24pIH0gfSwKQEAgLTE4MSw2ICsxODgsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlVmFsdWUgSlNUZXN0VHlwZWRlCiAgICAgeyAibnVsbGFibGVTZXF1ZW5jZU9mVW5pb25zQXJn
IiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1
ZW5jZU9mVW5pb25zQXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgInVuaW9uQXJnIiwg
SlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uVW5pb25BcmcpLCAoaW50
cHRyX3QpICgxKSB9IH0sCiAgICAgeyAiZnVuY1dpdGhDbGFtcCIsIEpTQzo6RnVuY3Rpb24sIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXApLCAoaW50cHRyX3QpICgxKSB9
IH0sCisgICAgeyAiZnVuY1dpdGhDbGFtcEluVHlwZWRlZiIsIEpTQzo6RnVuY3Rpb24sIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXBJblR5cGVkZWYpLCAoaW50cHRyX3Qp
ICgxKSB9IH0sCiAgICAgeyAiaW1tdXRhYmxlUG9pbnRGdW5jdGlvbiIsIEpTQzo6RnVuY3Rpb24s
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkltbXV0YWJsZVBvaW50RnVuY3Rpb24pLCAoaW50
cHRyX3QpICgwKSB9IH0sCiAgICAgeyAic3RyaW5nU2VxdWVuY2VGdW5jdGlvbiIsIEpTQzo6RnVu
Y3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRnVuY3Rpb24p
LCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAic3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIiLCBK
U0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1
bmN0aW9uMiksIChpbnRwdHJfdCkgKDEpIH0gfSwKQEAgLTI4Miw2ICsyOTAsMzggQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29ucwogICAgIHJldHVybiBKU1Rlc3RTdWJP
Ymo6OmdldENvbnN0cnVjdG9yKHN0YXRlLnZtKCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXBHZXR0ZXIoRXhlY1N0YXRlJiwgSlNUZXN0VHlwZWRlZnMmLCBUaHJvd1Njb3BlJiB0aHJv
d1Njb3BlKTsKKworRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xh
bXAoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCit7CisgICAgcmV0dXJuIEJpbmRpbmdDYWxsZXI8SlNUZXN0VHlwZWRlZnM+OjphdHRyaWJ1
dGU8anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBHZXR0ZXI+KHN0YXRlLCB0aGlzVmFs
dWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXAiKTsKK30KKworc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wR2V0dGVyKEV4ZWNTdGF0ZSYgc3RhdGUsIEpT
VGVzdFR5cGVkZWZzJiB0aGlzT2JqZWN0LCBUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQoreworICAg
IFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUpOworICAg
IGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9
IHRvSlM8SURMVW5zaWduZWRMb25nTG9uZz4oaW1wbC5hdHRyaWJ1dGVXaXRoQ2xhbXAoKSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVk
ZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmR2V0dGVyKEV4ZWNTdGF0ZSYsIEpTVGVzdFR5
cGVkZWZzJiwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSk7CisKK0VuY29kZWRKU1ZhbHVlIGpzVGVz
dFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQoreworICAgIHJldHVybiBCaW5k
aW5nQ2FsbGVyPEpTVGVzdFR5cGVkZWZzPjo6YXR0cmlidXRlPGpzVGVzdFR5cGVkZWZzQXR0cmli
dXRlV2l0aENsYW1wSW5UeXBlZGVmR2V0dGVyPihzdGF0ZSwgdGhpc1ZhbHVlLCAiYXR0cmlidXRl
V2l0aENsYW1wSW5UeXBlZGVmIik7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZkdldHRlcihFeGVjU3RhdGUmIHN0YXRl
LCBKU1Rlc3RUeXBlZGVmcyYgdGhpc09iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK3sK
KyAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7CisgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsK
KyAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7CisgICAgSlNWYWx1ZSByZXN1
bHQgPSB0b0pTPElETExvbmc+KGltcGwuYXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKCkpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBl
ZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uR2V0dGVyKEV4ZWNTdGF0ZSYsIEpTVGVzdFR5cGVk
ZWZzJiwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSk7CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5
cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkBAIC00MDgsNiArNDQ4LDQ0IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0ltbXUKIH0KIAogCitzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBGdW5jdGlvbihFeGVjU3Rh
dGUmLCBKU1Rlc3RUeXBlZGVmcyYsIEpTVmFsdWUsIFRocm93U2NvcGUmKTsKKworYm9vbCBzZXRK
U1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3sKKyAgICBy
ZXR1cm4gQmluZGluZ0NhbGxlcjxKU1Rlc3RUeXBlZGVmcz46OnNldEF0dHJpYnV0ZTxzZXRKU1Rl
c3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEZ1bmN0aW9uPihzdGF0ZSwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXAiKTsKK30KKworc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wRnVuY3Rpb24oRXhlY1N0YXRl
JiBzdGF0ZSwgSlNUZXN0VHlwZWRlZnMmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUsIFRocm93
U2NvcGUmIHRocm93U2NvcGUpCit7CisgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKKyAgICBVTlVT
RURfUEFSQU0odGhyb3dTY29wZSk7CisgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBl
ZCgpOworICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETFVuc2lnbmVkTG9uZ0xvbmc+
KHN0YXRlLCB2YWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpDbGFtcCk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7CisgICAgaW1wbC5zZXRB
dHRyaWJ1dGVXaXRoQ2xhbXAoV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgIHJldHVybiB0cnVl
OworfQorCisKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdp
dGhDbGFtcEluVHlwZWRlZkZ1bmN0aW9uKEV4ZWNTdGF0ZSYsIEpTVGVzdFR5cGVkZWZzJiwgSlNW
YWx1ZSwgVGhyb3dTY29wZSYpOworCitib29sIHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0
aENsYW1wSW5UeXBlZGVmKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQoreworICAgIHJldHVybiBCaW5kaW5nQ2Fs
bGVyPEpTVGVzdFR5cGVkZWZzPjo6c2V0QXR0cmlidXRlPHNldEpTVGVzdFR5cGVkZWZzQXR0cmli
dXRlV2l0aENsYW1wSW5UeXBlZGVmRnVuY3Rpb24+KHN0YXRlLCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgImF0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZiIpOworfQorCitzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZGdW5jdGlv
bihFeGVjU3RhdGUmIHN0YXRlLCBKU1Rlc3RUeXBlZGVmcyYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OworICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICBhdXRvJiBpbXBsID0gdGhpc09i
amVjdC53cmFwcGVkKCk7CisgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMTG9uZz4o
c3RhdGUsIHZhbHVlLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246OkNsYW1wKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTsKKyAgICBpbXBsLnNldEF0
dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZihXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKKwogc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFR5cGVkZWZzQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb25GdW5jdGlvbihFeGVjU3RhdGUmLCBKU1Rlc3RUeXBlZGVmcyYs
IEpTVmFsdWUsIFRocm93U2NvcGUmKTsKIAogYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQpAQCAtNjc2LDYgKzc1NCwyNiBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wSW5UeXBl
ZGVmQ2FsbGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0VHlwZWRlZnMqLCBKU0M6OlRocm93U2Nv
cGUmKTsKKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZihFeGVjU3RhdGUqIHN0YXRlKQorewor
ICAgIHJldHVybiBCaW5kaW5nQ2FsbGVyPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbE9wZXJhdGlvbjxq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZkNhbGxl
cj4oc3RhdGUsICJmdW5jV2l0aENsYW1wSW5UeXBlZGVmIik7Cit9CisKK3N0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dp
dGhDbGFtcEluVHlwZWRlZkNhbGxlcihKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTVGVzdFR5cGVk
ZWZzKiBjYXN0ZWRUaGlzLCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCit7CisgICAgVU5V
U0VEX1BBUkFNKHN0YXRlKTsKKyAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7CisgICAgYXV0
byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKKyAgICBpZiAoVU5MSUtFTFkoc3RhdGUt
PmFyZ3VtZW50Q291bnQoKSA8IDEpKQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKHN0YXRl
LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihzdGF0ZSkpOworICAg
IGF1dG8gYXJnID0gY29udmVydDxJRExMb25nPigqc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1
bWVudCgwKSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpDbGFtcCk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBpbXBs
LmZ1bmNXaXRoQ2xhbXBJblR5cGVkZWYoV1RGTW92ZShhcmcpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCiBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkltbXV0YWJsZVBvaW50RnVu
Y3Rpb25DYWxsZXIoSlNDOjpFeGVjU3RhdGUqLCBKU1Rlc3RUeXBlZGVmcyosIEpTQzo6VGhyb3dT
Y29wZSYpOwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25JbW11dGFibGVQb2ludEZ1bmN0aW9uKEV4ZWNTdGF0ZSogc3RhdGUpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9BZXNDdHJQYXJhbXMuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0Flc0N0clBhcmFt
cy5pZGwJKHJldmlzaW9uIDIxNTI1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0
ZXJzL0Flc0N0clBhcmFtcy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDUgKzM2LDUgQEAKICAg
ICByZXF1aXJlZCBCdWZmZXJTb3VyY2UgY291bnRlcjsKICAgICAvLyBUaGUgbGVuZ3RoLCBpbiBi
aXRzLCBvZiB0aGUgcmlnaHRtb3N0IHBhcnQgb2YgdGhlIGNvdW50ZXIgYmxvY2sKICAgICAvLyB0
aGF0IGlzIGluY3JlbWVudGVkLgotICAgIFtFbmZvcmNlUmFuZ2VdIHJlcXVpcmVkIG9jdGV0IGxl
bmd0aDsKKyAgICByZXF1aXJlZCBbRW5mb3JjZVJhbmdlXSBvY3RldCBsZW5ndGg7CiB9OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQWVzS2V5UGFyYW1zLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9BZXNLZXlQYXJhbXMu
aWRsCShyZXZpc2lvbiAyMTUyNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVy
cy9BZXNLZXlQYXJhbXMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw1ICszMSw1IEBACiAgICAg
SW1wbGVtZW50ZWRBcz1DcnlwdG9BbGdvcml0aG1BZXNLZXlQYXJhbXMKIF0gZGljdGlvbmFyeSBB
ZXNLZXlQYXJhbXMgOiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKICAgICAvLyBUaGUgbGVu
Z3RoLCBpbiBiaXRzLCBvZiB0aGUga2V5LgotICAgIFtFbmZvcmNlUmFuZ2VdIHJlcXVpcmVkIHVu
c2lnbmVkIHNob3J0IGxlbmd0aDsKKyAgICByZXF1aXJlZCBbRW5mb3JjZVJhbmdlXSB1bnNpZ25l
ZCBzaG9ydCBsZW5ndGg7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRl
cnMvUGJrZGYyUGFyYW1zLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
cGFyYW1ldGVycy9QYmtkZjJQYXJhbXMuaWRsCShyZXZpc2lvbiAyMTUyNTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9QYmtkZjJQYXJhbXMuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw2IEBACiAgICAgSW1wbGVtZW50ZWRBcz1DcnlwdG9BbGdvcml0aG1QYmtk
ZjJQYXJhbXMsCiBdIGRpY3Rpb25hcnkgUGJrZGYyUGFyYW1zIDogQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyB7CiAgICAgcmVxdWlyZWQgQnVmZmVyU291cmNlIHNhbHQ7Ci0gICAgW0VuZm9yY2VS
YW5nZV0gcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBpdGVyYXRpb25zOworICAgIHJlcXVpcmVkIFtF
bmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgaXRlcmF0aW9uczsKICAgICByZXF1aXJlZCBhbnkg
aGFzaDsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9Sc2FLZXlH
ZW5QYXJhbXMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0
ZXJzL1JzYUtleUdlblBhcmFtcy5pZGwJKHJldmlzaW9uIDIxNTI1NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9wYXJhbWV0ZXJzL1JzYUtleUdlblBhcmFtcy5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDcgKzI4LDcgQEAKICAgICBJbXBsZW1lbnRlZEFzPUNyeXB0b0FsZ29yaXRobVJzYUtl
eUdlblBhcmFtcwogXSBkaWN0aW9uYXJ5IFJzYUtleUdlblBhcmFtcyA6IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMgewogICAgIC8vIFRoZSBsZW5ndGgsIGluIGJpdHMsIG9mIHRoZSBSU0EgbW9k
dWx1cwotICAgIFtFbmZvcmNlUmFuZ2VdIHJlcXVpcmVkIHVuc2lnbmVkIGxvbmcgbW9kdWx1c0xl
bmd0aDsKKyAgICByZXF1aXJlZCBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIG1vZHVsdXNM
ZW5ndGg7CiAgICAgLy8gVGhlIFJTQSBwdWJsaWMgZXhwb25lbnQKICAgICByZXF1aXJlZCBVaW50
OEFycmF5IHB1YmxpY0V4cG9uZW50OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
VHlwZUNvbnZlcnNpb25zLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L1R5cGVDb252ZXJzaW9ucy5pZGwJKHJldmlzaW9uIDIxNTI1NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvVHlwZUNvbnZlcnNpb25zLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzEsMjQgKzMx
LDI0IEBAIGVudW0gVW5pb25UeXBlIHsgIm5vZGUiLCAic2VxdWVuY2UiLCAiZGkKICAgICBFeHBv
cnRNYWNybz1XRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCwKIF0gaW50ZXJmYWNlIFR5cGVDb252
ZXJzaW9ucyB7CiAgICAgYXR0cmlidXRlIGxvbmcgdGVzdExvbmc7Ci0gICAgW0VuZm9yY2VSYW5n
ZV0gYXR0cmlidXRlIGxvbmcgdGVzdEVuZm9yY2VSYW5nZUxvbmc7CisgICAgYXR0cmlidXRlIFtF
bmZvcmNlUmFuZ2VdIGxvbmcgdGVzdEVuZm9yY2VSYW5nZUxvbmc7CiAgICAgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgdGVzdFVuc2lnbmVkTG9uZzsKLSAgICBbRW5mb3JjZVJhbmdlXSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyB0ZXN0RW5mb3JjZVJhbmdlVW5zaWduZWRMb25nOworICAgIGF0dHJp
YnV0ZSBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIHRlc3RFbmZvcmNlUmFuZ2VVbnNpZ25l
ZExvbmc7CiAKICAgICBhdHRyaWJ1dGUgbG9uZyBsb25nIHRlc3RMb25nTG9uZzsKLSAgICBbRW5m
b3JjZVJhbmdlXSBhdHRyaWJ1dGUgbG9uZyBsb25nIHRlc3RFbmZvcmNlUmFuZ2VMb25nTG9uZzsK
KyAgICBhdHRyaWJ1dGUgW0VuZm9yY2VSYW5nZV0gbG9uZyBsb25nIHRlc3RFbmZvcmNlUmFuZ2VM
b25nTG9uZzsKICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHRlc3RVbnNpZ25lZExv
bmdMb25nOwotICAgIFtFbmZvcmNlUmFuZ2VdIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcg
dGVzdEVuZm9yY2VSYW5nZVVuc2lnbmVkTG9uZ0xvbmc7CisgICAgYXR0cmlidXRlIFtFbmZvcmNl
UmFuZ2VdIHVuc2lnbmVkIGxvbmcgbG9uZyB0ZXN0RW5mb3JjZVJhbmdlVW5zaWduZWRMb25nTG9u
ZzsKIAogICAgIGF0dHJpYnV0ZSBieXRlIHRlc3RCeXRlOwotICAgIFtFbmZvcmNlUmFuZ2VdIGF0
dHJpYnV0ZSBieXRlIHRlc3RFbmZvcmNlUmFuZ2VCeXRlOworICAgIGF0dHJpYnV0ZSBbRW5mb3Jj
ZVJhbmdlXSBieXRlIHRlc3RFbmZvcmNlUmFuZ2VCeXRlOwogICAgIGF0dHJpYnV0ZSBvY3RldCB0
ZXN0T2N0ZXQ7Ci0gICAgW0VuZm9yY2VSYW5nZV0gYXR0cmlidXRlIG9jdGV0IHRlc3RFbmZvcmNl
UmFuZ2VPY3RldDsKKyAgICBhdHRyaWJ1dGUgW0VuZm9yY2VSYW5nZV0gb2N0ZXQgdGVzdEVuZm9y
Y2VSYW5nZU9jdGV0OwogCiAgICAgYXR0cmlidXRlIHNob3J0IHRlc3RTaG9ydDsKLSAgICBbRW5m
b3JjZVJhbmdlXSBhdHRyaWJ1dGUgc2hvcnQgdGVzdEVuZm9yY2VSYW5nZVNob3J0OworICAgIGF0
dHJpYnV0ZSBbRW5mb3JjZVJhbmdlXSBzaG9ydCB0ZXN0RW5mb3JjZVJhbmdlU2hvcnQ7CiAgICAg
YXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHRlc3RVbnNpZ25lZFNob3J0OwotICAgIFtFbmZvcmNl
UmFuZ2VdIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCB0ZXN0RW5mb3JjZVJhbmdlVW5zaWduZWRT
aG9ydDsKKyAgICBhdHRyaWJ1dGUgW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgc2hvcnQgdGVzdEVu
Zm9yY2VSYW5nZVVuc2lnbmVkU2hvcnQ7CiAKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRlc3RT
dHJpbmc7CiAgICAgYXR0cmlidXRlIEJ5dGVTdHJpbmcgdGVzdEJ5dGVTdHJpbmc7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306884</attachid>
            <date>2017-04-11 20:38:28 -0700</date>
            <delta_ts>2017-04-13 10:40:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170759-20170411203824.patch</filename>
            <type>text/plain</type>
            <size>76644</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwMCBAQAorMjAxNy0wNC0xMSAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIEFkZCBzdXBwb3J0IGZv
ciBleHRlbmRlZCBhdHRyaWJ1dGVzIG9uIHR5cGVzIGluIFdlYklETAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBVcGRhdGUgcGFyc2luZyBmb3IgV2Vi
SURMIGdyYW1tYXIgY2hhbmdlcy4KKyAgICAgICAgLSBBZGRzIGFuIGV4dGVuZGVkIGF0dHJpYnV0
ZXMgaGFzaCB0byBJRExUeXBlIHRoYXQgaXMgZmlsbGVkIGFjY29yZGluZworICAgICAgICAgIHRv
IHRoZSBXZWJJREwgYW5ub3RhdGVkIHR5cGUgcnVsZXMuCisgICAgICAgIC0gVXBkYXRlcyBjb2Rl
IGdlbmVyYXRpb24gdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgSURMVHlwZSdzIGV4dGVuZGVkIGF0dHJp
YnV0ZQorICAgICAgICAgIHNpbXBsaWZ5aW5nIHNvbWUgZXhpc3RpbmcgY29kZS4KKyAgICAgICAg
LSBVcGRhdGUgSURMcyBpbiB0aGUgcHJvamVjdCB0byBhZGhlcmUgdG8gdGhlIG5ldyBncmFtbWFy
LgorICAgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXQuaWRsOgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0Flc0N0clBhcmFtcy5p
ZGw6CisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQWVzS2V5UGFyYW1zLmlkbDoKKyAgICAg
ICAgKiBjcnlwdG8vcGFyYW1ldGVycy9QYmtkZjJQYXJhbXMuaWRsOgorICAgICAgICAqIGNyeXB0
by9wYXJhbWV0ZXJzL1JzYUtleUdlblBhcmFtcy5pZGw6CisgICAgICAgICogdGVzdGluZy9UeXBl
Q29udmVyc2lvbnMuaWRsOgorICAgICAgICBVcGRhdGUgZm9yIGdyYW1tYXIgY2hhbmdlLgorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZW5lcmF0ZURlZmF1bHRWYWx1ZSk6CisgICAgICAgIChHZXRCYXNlSURMVHlwZSk6CisgICAgICAg
IChHZXRJRExUeXBlKToKKyAgICAgICAgKEdldEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlv
bik6CisgICAgICAgIChHZXRTdHJpbmdDb252ZXJzaW9uQ29uZmlndXJhdGlvbik6CisgICAgICAg
IChKU1ZhbHVlVG9OYXRpdmUpOgorICAgICAgICAoVW5zYWZlVG9OYXRpdmUpOgorICAgICAgICAo
TmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUpOgorICAgICAgICAoTmF0aXZlVG9K
U1ZhbHVlRE9NQ29udmVydE5lZWRzR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKE5hdGl2ZVRvSlNW
YWx1ZSk6CisgICAgICAgIFJlbW92ZSB0aGUgbmVlZCBmb3IgdGhlIHR5cGUncyBjb250ZXh0IGlu
IG1hbnkgcGxhY2VzIHNpbmNlIHR5cGUKKyAgICAgICAgYXNzb2NpYXRlZCBleHRlbmRlZCBhdHRy
aWJ1dGVzIGFyZSBub3cgb24gdGhlIHR5cGUgaXRzZWxmLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChjb3B5RXh0ZW5kZWRBdHRyaWJ1dGVzKToK
KyAgICAgICAgTW92ZSB1cCBzbyBpdCBjYW4gYmUgcmV1c2VkLgorCisgICAgICAgIChpc0V4dGVu
ZGVkQXR0cmlidXRlQXBwbGljYWJsZVRvVHlwZXMpOgorICAgICAgICBBZGQgdGVtcG9yYXJ5IHBy
ZWRpY2F0ZWQgdG8gaW5kaWNhdGUgd2hpY2ggYXR0cmlidXRlcyBzaG91bGQgYmUgbW92ZWQgdG8g
dHlwZXMuIFRoaXMKKyAgICAgICAgbG9naWMgc2hvdWxkIGJlIG1vdmVkIHRvIElETEF0dHJpYnV0
ZXMudHh0LgorCisgICAgICAgIChtb3ZlRXh0ZW5kZWRBdHRyaWJ1dGVzQXBwbGljYWJsZVRvVHlw
ZXMpOgorICAgICAgICBBZGQgaGVscGVyIHRvIG1vdmUgYXR0cmlidXRlcyB0byB0aGUgdHlwZSdz
IGV4dGVuZGVkIGF0dHJpYnV0ZXMgaGFzaCBpZiBhcHBsaWNhYmxlLgorCisgICAgICAgIChtYWtl
U2ltcGxlVHlwZSk6CisgICAgICAgIFVzZSBpbml0aWFsaXplciBzeW50YXggdG8gc2ltcGxpZnku
CisKKyAgICAgICAgKGNsb25lVHlwZSk6CisgICAgICAgIFN1cHBvcnQgY2xvbmluZyB0eXBlcyB3
aXRoIGV4dGVuZGVkIGF0dHJpYnV0ZXMuCisKKyAgICAgICAgKHR5cGVCeUFwcGx5aW5nVHlwZWRl
ZnMpOgorICAgICAgICBXaGVuIGNvbnN0cnVjdGluZyB0aGUgY2xvbmUgZm9yIGEgdHlwZWRlZiBh
cHBsaWNhdGlvbiwgbW92ZSBhbnkgYXBwbGljYWJsZSBhdHRyaWJ1dGVzCisgICAgICAgIHRvIHRo
ZSBjbG9uZSBmcm9tIHRoZSBvcmlnaW5hbCB0eXBlLgorCisgICAgICAgIChwYXJzZURpY3Rpb25h
cnlNZW1iZXIpOgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlQXR0cmli
dXRlT3JPcGVyYXRpb25SZXN0KToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlUmVzdCk6CisgICAg
ICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IpOgorICAgICAgICAocGFyc2VTcGVjaWFsT3Bl
cmF0aW9uKToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxJdGVyYWJsZUludGVyZmFjZSk6CisgICAg
ICAgIChwYXJzZU1hcExpa2VQcm9wZXJ0aWVzKToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxPclJl
cXVpcmVkQXJndW1lbnQpOgorICAgICAgICAocGFyc2VUeXBlKToKKyAgICAgICAgKHBhcnNlVHlw
ZVdpdGhFeHRlbmRlZEF0dHJpYnV0ZXMpOgorICAgICAgICAocGFyc2VVbmlvbk1lbWJlclR5cGUp
OgorICAgICAgICAocGFyc2VOb25BbnlUeXBlKToKKyAgICAgICAgVXBkYXRlIGZvciBuZXcgZ3Jh
bW1hciwgbW92aW5nIGFwcGxpY2FibGUgYXR0cmlidXRlcyBlYWdlcmx5LgorCisgICAgICAgIChh
c3NlcnROb0V4dGVuZGVkQXR0cmlidXRlc0luVHlwZWRlZik6IERlbGV0ZWQuCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wT25PcHRpb25h
bCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0
aG9kV2l0aENsYW1wT25PcHRpb25hbENhbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWwp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhv
ZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsQ2FsbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXApOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZHZXR0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXApOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBGdW5jdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFt
cEluVHlwZWRlZik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0
ZVdpdGhDbGFtcEluVHlwZWRlZkZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wSW5UeXBlZGVmKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wSW5U
eXBlZGVmQ2FsbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RUeXBlZGVmcy5pZGw6Cisg
ICAgICAgIFVwZGF0ZSBmb3IgbmV3IGdyYW1tYXIuIEFkZCBzb21lIG5ldyB0ZXN0cyBmb3IgdW5j
b3ZlcmVkIGNhc2VzLgorCiAyMDE3LTA0LTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBs
ZS5jb20+CiAKICAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gQWxsb3cgbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzIHRvIGJlIHByb3ZpZGVkIHRocm91Z2ggV2ViS2l0QWRkaXRpb25zCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAko
cmV2aXNpb24gMjE1MjU2KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAgICBDb25kaXRp
b25hbD1JTkRFWEVEX0RBVEFCQVNFLAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAogXSBpbnRl
cmZhY2UgSURCRmFjdG9yeSB7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IE1heVRocm93RXhjZXB0aW9uXSBJREJPcGVuREJSZXF1ZXN0IG9wZW4oRE9NU3RyaW5nIG5hbWUs
IFtFbmZvcmNlUmFuZ2VdIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uKTsKKyAg
ICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIElE
Qk9wZW5EQlJlcXVlc3Qgb3BlbihET01TdHJpbmcgbmFtZSwgb3B0aW9uYWwgW0VuZm9yY2VSYW5n
ZV0gdW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24pOwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCT3BlbkRCUmVxdWVzdCBkZWxldGVE
YXRhYmFzZShET01TdHJpbmcgbmFtZSk7CiAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlU
aHJvd0V4Y2VwdGlvbl0gc2hvcnQgY21wKGFueSBmaXJzdCwgYW55IHNlY29uZCk7CiB9OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbAkocmV2
aXNpb24gMjE1MjU2KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5k
ZXguaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00OSwxMCArNDksMTAgQEAgdHlwZWRlZiAoRE9NU3Ry
aW5nIG9yIHNlcXVlbmNlPERPTVN0cmluZwogICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5
VGhyb3dFeGNlcHRpb25dIElEQlJlcXVlc3QgZ2V0KGFueSBrZXkpOwogICAgIFtDYWxsV2l0aD1T
Y3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25dIElEQlJlcXVlc3QgZ2V0S2V5KElEQktleVJh
bmdlPyBrZXkpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25d
IElEQlJlcXVlc3QgZ2V0S2V5KGFueSBrZXkpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwg
TWF5VGhyb3dFeGNlcHRpb25dIElEQlJlcXVlc3QgZ2V0QWxsKG9wdGlvbmFsIElEQktleVJhbmdl
PyByYW5nZSA9IG51bGwsIFtFbmZvcmNlUmFuZ2VdIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgY291
bnQpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25dIElEQlJl
cXVlc3QgZ2V0QWxsKGFueSBrZXksICBbRW5mb3JjZVJhbmdlXSBvcHRpb25hbCB1bnNpZ25lZCBs
b25nIGNvdW50KTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9u
XSBJREJSZXF1ZXN0IGdldEFsbEtleXMob3B0aW9uYWwgSURCS2V5UmFuZ2U/IHJhbmdlID0gbnVs
bCwgW0VuZm9yY2VSYW5nZV0gb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBjb3VudCk7Ci0gICAgW0Nh
bGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCUmVxdWVzdCBnZXRBbGxL
ZXlzKGFueSBrZXksICBbRW5mb3JjZVJhbmdlXSBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGNvdW50
KTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1
ZXN0IGdldEFsbChvcHRpb25hbCBJREJLZXlSYW5nZT8gcmFuZ2UgPSBudWxsLCBvcHRpb25hbCBb
RW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0
U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldEFsbChhbnkga2V5LCBvcHRp
b25hbCBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICBbQ2FsbFdpdGg9
U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldEFsbEtleXMob3B0
aW9uYWwgSURCS2V5UmFuZ2U/IHJhbmdlID0gbnVsbCwgb3B0aW9uYWwgW0VuZm9yY2VSYW5nZV0g
dW5zaWduZWQgbG9uZyBjb3VudCk7CisgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlUaHJv
d0V4Y2VwdGlvbl0gSURCUmVxdWVzdCBnZXRBbGxLZXlzKGFueSBrZXksIG9wdGlvbmFsIFtFbmZv
cmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgY291bnQpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0
ZSwgTWF5VGhyb3dFeGNlcHRpb25dIElEQlJlcXVlc3QgY291bnQob3B0aW9uYWwgSURCS2V5UmFu
Z2U/IHJhbmdlID0gbnVsbCk7CiAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlUaHJvd0V4
Y2VwdGlvbl0gSURCUmVxdWVzdCBjb3VudChhbnkga2V5KTsKIH07CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRsCShyZXZpc2lvbiAy
MTUyNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDggQEAKICAgICBDb25kaXRpb25hbD1JTkRF
WEVEX0RBVEFCQVNFLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiBdIGludGVyZmFj
ZSBJREJLZXlSYW5nZSB7Ci0gICAgW092ZXJyaWRlSURMVHlwZT1JRExJREJLZXldIHJlYWRvbmx5
IGF0dHJpYnV0ZSBhbnkgbG93ZXI7Ci0gICAgW092ZXJyaWRlSURMVHlwZT1JRExJREJLZXldIHJl
YWRvbmx5IGF0dHJpYnV0ZSBhbnkgdXBwZXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtPdmVy
cmlkZUlETFR5cGU9SURMSURCS2V5XSBhbnkgbG93ZXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtPdmVycmlkZUlETFR5cGU9SURMSURCS2V5XSBhbnkgdXBwZXI7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gbG93ZXJPcGVuOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
IHVwcGVyT3BlbjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbAkocmV2aXNpb24gMjE1MjU2KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC01MiwxMCArNTIsMTAgQEAgdHlwZWRlZiAoRE9NU3RyaW5nIG9yIHNlcXVlbmNlPERPTVN0
cmluZwogICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25dIElEQlJl
cXVlc3Qgb3BlbkN1cnNvcihhbnkga2V5LCBvcHRpb25hbCBJREJDdXJzb3JEaXJlY3Rpb24gZGly
ZWN0aW9uID0gIm5leHQiKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhj
ZXB0aW9uXSBJREJSZXF1ZXN0IG9wZW5LZXlDdXJzb3Iob3B0aW9uYWwgSURCS2V5UmFuZ2U/IHJh
bmdlID0gbnVsbCwgb3B0aW9uYWwgSURCQ3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbiA9ICJuZXh0
Iik7CiAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCUmVx
dWVzdCBvcGVuS2V5Q3Vyc29yKGFueSBrZXksIG9wdGlvbmFsIElEQkN1cnNvckRpcmVjdGlvbiBk
aXJlY3Rpb24gPSAibmV4dCIpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dF
eGNlcHRpb25dIElEQlJlcXVlc3QgZ2V0QWxsKG9wdGlvbmFsIElEQktleVJhbmdlPyByYW5nZSA9
IG51bGwsIFtFbmZvcmNlUmFuZ2VdIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgY291bnQpOwotICAg
IFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25dIElEQlJlcXVlc3QgZ2V0
QWxsKGFueSBrZXksICBbRW5mb3JjZVJhbmdlXSBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGNvdW50
KTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1
ZXN0IGdldEFsbEtleXMob3B0aW9uYWwgSURCS2V5UmFuZ2U/IHJhbmdlID0gbnVsbCwgW0VuZm9y
Y2VSYW5nZV0gb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBjb3VudCk7Ci0gICAgW0NhbGxXaXRoPVNj
cmlwdFN0YXRlLCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCUmVxdWVzdCBnZXRBbGxLZXlzKGFueSBr
ZXksICBbRW5mb3JjZVJhbmdlXSBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICBb
Q2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldEFs
bChvcHRpb25hbCBJREJLZXlSYW5nZT8gcmFuZ2UgPSBudWxsLCBvcHRpb25hbCBbRW5mb3JjZVJh
bmdlXSB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1h
eVRocm93RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldEFsbChhbnkga2V5LCBvcHRpb25hbCBbRW5m
b3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0U3Rh
dGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldEFsbEtleXMob3B0aW9uYWwgSURC
S2V5UmFuZ2U/IHJhbmdlID0gbnVsbCwgb3B0aW9uYWwgW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQg
bG9uZyBjb3VudCk7CisgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlUaHJvd0V4Y2VwdGlv
bl0gSURCUmVxdWVzdCBnZXRBbGxLZXlzKGFueSBrZXksIG9wdGlvbmFsIFtFbmZvcmNlUmFuZ2Vd
IHVuc2lnbmVkIGxvbmcgY291bnQpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhy
b3dFeGNlcHRpb25dIElEQkluZGV4IGNyZWF0ZUluZGV4KERPTVN0cmluZyBuYW1lLCAoRE9NU3Ry
aW5nIG9yIHNlcXVlbmNlPERPTVN0cmluZz4pIGtleVBhdGgsIG9wdGlvbmFsIElEQkluZGV4UGFy
YW1ldGVycyBvcHRpb25zKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIElEQkluZGV4IGluZGV4
KERPTVN0cmluZyBuYW1lKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgZGVsZXRlSW5k
ZXgoRE9NU3RyaW5nIG5hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw1ICs2NSw1IEBACiAgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIHNlbmQoQmxvYiBkYXRh
KTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2VuZChVU1ZTdHJpbmcgZGF0YSk7CiAK
LSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgY2xvc2UoW0NsYW1wXSBvcHRpb25hbCB1bnNp
Z25lZCBzaG9ydCBjb2RlLCBvcHRpb25hbCBET01TdHJpbmcgcmVhc29uKTsKKyAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIHZvaWQgY2xvc2Uob3B0aW9uYWwgW0NsYW1wXSB1bnNpZ25lZCBzaG9ydCBj
b2RlLCBvcHRpb25hbCBET01TdHJpbmcgcmVhc29uKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24g
MjE1MjU2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE0MTgsNyArMTQxOCw3IEBAIHN1YiBHZW5lcmF0ZURl
ZmF1bHRWYWx1ZQogICAgIG15ICgkdHlwZVNjb3BlLCAkY29udGV4dCwgJHR5cGUsICRkZWZhdWx0
VmFsdWUpID0gQF87CiAKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlw
ZSkpIHsKLSAgICAgICAgbXkgJHVzZUF0b21pY1N0cmluZyA9ICRjb250ZXh0LT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntBdG9taWNTdHJpbmd9OworICAgICAgICBteSAkdXNlQXRvbWljU3RyaW5nID0g
JHR5cGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0F0b21pY1N0cmluZ307CiAgICAgICAgIGlmICgk
ZGVmYXVsdFZhbHVlIGVxICJudWxsIikgewogICAgICAgICAgICAgcmV0dXJuICR1c2VBdG9taWNT
dHJpbmcgPyAibnVsbEF0b20iIDogIlN0cmluZygpIjsKICAgICAgICAgfSBlbHNpZiAoJGRlZmF1
bHRWYWx1ZSBlcSAiXCJcIiIpIHsKQEAgLTUzNjgsMTAgKzUzNjgsMTAgQEAgc3ViIEdldElETFVu
aW9uTWVtYmVyVHlwZXMKIAogc3ViIEdldEJhc2VJRExUeXBlCiB7Ci0gICAgbXkgKCRpbnRlcmZh
Y2UsICR0eXBlLCAkY29udGV4dCkgPSBAXzsKKyAgICBteSAoJGludGVyZmFjZSwgJHR5cGUpID0g
QF87CiAKLSAgICBpZiAoJGNvbnRleHQgJiYgJGNvbnRleHQtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e092ZXJyaWRlSURMVHlwZX0pIHsKLSAgICAgICAgcmV0dXJuICRjb250ZXh0LT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntPdmVycmlkZUlETFR5cGV9OworICAgIGlmICgkdHlwZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57T3ZlcnJpZGVJRExUeXBlfSkgeworICAgICAgICByZXR1cm4gJHR5cGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e092ZXJyaWRlSURMVHlwZX07CiAgICAgfQogCiAgICAgbXkgJUlETFR5
cGVzID0gKApAQCAtNTQyMSw5ICs1NDIxLDkgQEAgc3ViIEdldEJhc2VJRExUeXBlCiAKIHN1YiBH
ZXRJRExUeXBlCiB7Ci0gICAgbXkgKCRpbnRlcmZhY2UsICR0eXBlLCAkY29udGV4dCkgPSBAXzsK
KyAgICBteSAoJGludGVyZmFjZSwgJHR5cGUpID0gQF87CiAKLSAgICBteSAkYmFzZUlETFR5cGUg
PSBHZXRCYXNlSURMVHlwZSgkaW50ZXJmYWNlLCAkdHlwZSwgJGNvbnRleHQpOworICAgIG15ICRi
YXNlSURMVHlwZSA9IEdldEJhc2VJRExUeXBlKCRpbnRlcmZhY2UsICR0eXBlKTsKICAgICByZXR1
cm4gIklETE51bGxhYmxlPCIgLiAkYmFzZUlETFR5cGUgLiAiPiIgaWYgJHR5cGUtPmlzTnVsbGFi
bGU7CiAgICAgcmV0dXJuICRiYXNlSURMVHlwZTsKIH0KQEAgLTU0ODcsMTggKzU0ODcsMTggQEAg
c3ViIFNob3VsZFBhc3NBcmd1bWVudEJ5UmVmZXJlbmNlCiAKIHN1YiBHZXRJbnRlZ2VyQ29udmVy
c2lvbkNvbmZpZ3VyYXRpb24KIHsKLSAgICBteSAkY29udGV4dCA9IHNoaWZ0OworICAgIG15ICR0
eXBlID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gIkludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlv
bjo6RW5mb3JjZVJhbmdlIiBpZiAkY29udGV4dC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5mb3Jj
ZVJhbmdlfTsKLSAgICByZXR1cm4gIkludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6Q2xh
bXAiIGlmICRjb250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDbGFtcH07CisgICAgcmV0dXJu
ICJJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246OkVuZm9yY2VSYW5nZSIgaWYgJHR5cGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0VuZm9yY2VSYW5nZX07CisgICAgcmV0dXJuICJJbnRlZ2Vy
Q29udmVyc2lvbkNvbmZpZ3VyYXRpb246OkNsYW1wIiBpZiAkdHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Q2xhbXB9OwogICAgIHJldHVybiAiSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9u
OjpOb3JtYWwiOwogfQogCiBzdWIgR2V0U3RyaW5nQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24KIHsK
LSAgICBteSAkY29udGV4dCA9IHNoaWZ0OworICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKLSAgICBy
ZXR1cm4gIlN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uOjpUcmVhdE51bGxBc0VtcHR5U3Ry
aW5nIiBpZiAkY29udGV4dC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57VHJlYXROdWxsQXN9ICYmICRj
b250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntUcmVhdE51bGxBc30gZXEgIkVtcHR5U3RyaW5n
IjsKKyAgICByZXR1cm4gIlN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uOjpUcmVhdE51bGxB
c0VtcHR5U3RyaW5nIiBpZiAkdHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57VHJlYXROdWxsQXN9
ICYmICR0eXBlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntUcmVhdE51bGxBc30gZXEgIkVtcHR5U3Ry
aW5nIjsKICAgICByZXR1cm4gIlN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uOjpOb3JtYWwi
OwogfQogCkBAIC01NTQzLDggKzU1NDMsOCBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgQWRk
VG9JbXBsSW5jbHVkZXNGb3JJRExUeXBlKCR0eXBlLCAkY29uZGl0aW9uYWwpOwogCiAgICAgaWYg
KCR0eXBlLT5uYW1lIGVxICJET01TdHJpbmciKSB7Ci0gICAgICAgIHJldHVybiAoIkF0b21pY1N0
cmluZygkdmFsdWUudG9TdHJpbmcoJHN0YXRlUG9pbnRlciktPnRvRXhpc3RpbmdBdG9taWNTdHJp
bmcoJHN0YXRlUG9pbnRlcikpIiwgMSkgaWYgJGNvbnRleHQtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e1JlcXVpcmVzRXhpc3RpbmdBdG9taWNTdHJpbmd9OwotICAgICAgICByZXR1cm4gKCIkdmFsdWUu
dG9TdHJpbmcoJHN0YXRlUG9pbnRlciktPnRvQXRvbWljU3RyaW5nKCRzdGF0ZVBvaW50ZXIpIiwg
MSkgaWYgJGNvbnRleHQtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0F0b21pY1N0cmluZ307CisgICAg
ICAgIHJldHVybiAoIkF0b21pY1N0cmluZygkdmFsdWUudG9TdHJpbmcoJHN0YXRlUG9pbnRlcikt
PnRvRXhpc3RpbmdBdG9taWNTdHJpbmcoJHN0YXRlUG9pbnRlcikpIiwgMSkgaWYgJHR5cGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e1JlcXVpcmVzRXhpc3RpbmdBdG9taWNTdHJpbmd9OworICAgICAg
ICByZXR1cm4gKCIkdmFsdWUudG9TdHJpbmcoJHN0YXRlUG9pbnRlciktPnRvQXRvbWljU3RyaW5n
KCRzdGF0ZVBvaW50ZXIpIiwgMSkgaWYgJHR5cGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0F0b21p
Y1N0cmluZ307CiAgICAgfQogCiAgICAgIyBwYXJzZUVudW1lcmF0aW9uPD4gcmV0dXJucyBhIHN0
ZDo6b3B0aW9uYWwuIEZvciBkaWN0aW9uYXJ5IG1lbWJlcnMgd2UgbmVlZCBjb252ZXJ0PElETEVu
dW1lcmF0aW9uPigpIHdoaWNoIGd1YXJhbnRlZQpAQCAtNTU2Miw4ICs1NTYyLDggQEAgc3ViIEpT
VmFsdWVUb05hdGl2ZQogICAgIHB1c2goQGNvbnZlcnNpb25Bcmd1bWVudHMsICR2YWx1ZSk7CiAg
ICAgcHVzaChAY29udmVyc2lvbkFyZ3VtZW50cywgJHRoaXNPYmplY3RSZWZlcmVuY2UpIGlmIEpT
VmFsdWVUb05hdGl2ZURPTUNvbnZlcnROZWVkc1RoaXNPYmplY3QoJHR5cGUpOwogICAgIHB1c2go
QGNvbnZlcnNpb25Bcmd1bWVudHMsICRnbG9iYWxPYmplY3RSZWZlcmVuY2UpIGlmIEpTVmFsdWVU
b05hdGl2ZURPTUNvbnZlcnROZWVkc0dsb2JhbE9iamVjdCgkdHlwZSk7Ci0gICAgcHVzaChAY29u
dmVyc2lvbkFyZ3VtZW50cywgR2V0SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uKCRjb250
ZXh0KSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZWdlclR5cGUoJHR5cGUpOwotICAgIHB1c2go
QGNvbnZlcnNpb25Bcmd1bWVudHMsIEdldFN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uKCRj
b250ZXh0KSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7CisgICAgcHVz
aChAY29udmVyc2lvbkFyZ3VtZW50cywgR2V0SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9u
KCR0eXBlKSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZWdlclR5cGUoJHR5cGUpOworICAgIHB1
c2goQGNvbnZlcnNpb25Bcmd1bWVudHMsIEdldFN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9u
KCR0eXBlKSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7CiAgICAgcHVz
aChAY29udmVyc2lvbkFyZ3VtZW50cywgJGV4Y2VwdGlvblRocm93ZXIpIGlmICRleGNlcHRpb25U
aHJvd2VyOwogCiAgICAgcmV0dXJuICgiY29udmVydDwkSURMVHlwZT4oIiAuIGpvaW4oIiwgIiwg
QGNvbnZlcnNpb25Bcmd1bWVudHMpIC4gIikiLCAxKTsKQEAgLTU1ODcsOCArNTU4Nyw4IEBAIHN1
YiBVbnNhZmVUb05hdGl2ZQogICAgICMgRklYTUU6IFN1cHBvcnQgbW9yZSB0eXBlcy4KIAogICAg
IGlmICgkdHlwZS0+bmFtZSBlcSAiRE9NU3RyaW5nIikgewotICAgICAgICByZXR1cm4gKCJBdG9t
aWNTdHJpbmcoJHZhbHVlLT50b0V4aXN0aW5nQXRvbWljU3RyaW5nKCRzdGF0ZVBvaW50ZXIpKSIs
IDEpIGlmICRjb250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntSZXF1aXJlc0V4aXN0aW5nQXRv
bWljU3RyaW5nfTsKLSAgICAgICAgcmV0dXJuICgiJHZhbHVlLT50b0F0b21pY1N0cmluZygkc3Rh
dGVQb2ludGVyKSIsIDEpIGlmICRjb250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntBdG9taWNT
dHJpbmd9OworICAgICAgICByZXR1cm4gKCJBdG9taWNTdHJpbmcoJHZhbHVlLT50b0V4aXN0aW5n
QXRvbWljU3RyaW5nKCRzdGF0ZVBvaW50ZXIpKSIsIDEpIGlmICR0eXBlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntSZXF1aXJlc0V4aXN0aW5nQXRvbWljU3RyaW5nfTsKKyAgICAgICAgcmV0dXJuICgi
JHZhbHVlLT50b0F0b21pY1N0cmluZygkc3RhdGVQb2ludGVyKSIsIDEpIGlmICR0eXBlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntBdG9taWNTdHJpbmd9OwogICAgIH0KIAogICAgIEFkZFRvSW1wbElu
Y2x1ZGVzKCJET01KSVRJRExDb252ZXJ0LmgiKTsKQEAgLTU2MDAsOCArNTYwMCw4IEBAIHN1YiBV
bnNhZmVUb05hdGl2ZQogICAgIHB1c2goQGNvbnZlcnNpb25Bcmd1bWVudHMsICIkdmFsdWUiKTsK
IAogICAgIG15IEBjb252ZXJzaW9uU3RhdGljQXJndW1lbnRzID0gKCk7Ci0gICAgcHVzaChAY29u
dmVyc2lvblN0YXRpY0FyZ3VtZW50cywgR2V0SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9u
KCRjb250ZXh0KSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZWdlclR5cGUoJHR5cGUpOwotICAg
IHB1c2goQGNvbnZlcnNpb25TdGF0aWNBcmd1bWVudHMsIEdldFN0cmluZ0NvbnZlcnNpb25Db25m
aWd1cmF0aW9uKCRjb250ZXh0KSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlw
ZSk7CisgICAgcHVzaChAY29udmVyc2lvblN0YXRpY0FyZ3VtZW50cywgR2V0SW50ZWdlckNvbnZl
cnNpb25Db25maWd1cmF0aW9uKCR0eXBlKSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZWdlclR5
cGUoJHR5cGUpOworICAgIHB1c2goQGNvbnZlcnNpb25TdGF0aWNBcmd1bWVudHMsIEdldFN0cmlu
Z0NvbnZlcnNpb25Db25maWd1cmF0aW9uKCR0eXBlKSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3Ry
aW5nVHlwZSgkdHlwZSk7CiAKICAgICBpZiAoc2NhbGFyKEBjb252ZXJzaW9uU3RhdGljQXJndW1l
bnRzKSA+IDApIHsKICAgICAgICAgcmV0dXJuICgiRE9NSklUOjpEaXJlY3RDb252ZXJ0ZXI8JElE
TFR5cGU+OjpkaXJlY3RDb252ZXJ0PCIgLiBqb2luKCIsICIsIEBjb252ZXJzaW9uU3RhdGljQXJn
dW1lbnRzKSAuICI+KCIgLiBqb2luKCIsICIsIEBjb252ZXJzaW9uQXJndW1lbnRzKSAuICIpIiwg
MSk7CkBAIC01NjExLDEzICs1NjExLDEzIEBAIHN1YiBVbnNhZmVUb05hdGl2ZQogCiBzdWIgTmF0
aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUKIHsKLSAgICBteSAoJHR5cGUsICRjb250
ZXh0KSA9IEBfOworICAgIG15ICgkdHlwZSkgPSBAXzsKIAogICAgICMgRklYTUU6IFdlIG5lZWQg
YSBtb3JlIHJvYnVzdCB3YXkgdG8gc3BlY2lmeSB0aGlzIHJlcXVpcmVtZW50IHNvIGFzIG5vdAog
ICAgICMgdG8gcmVxdWlyZSBzcGVjaWFsaXppbmcgZWFjaCB0eXBlLiBQZXJoYXBzIGp1c3QgcmVx
dWlyaW5nIGFsbCBvdmVycmlkZQogICAgICMgdHlwZXMgdG8gdGFrZSBib3RoIHN0YXRlIGFuZCB0
aGUgZ2xvYmFsIG9iamVjdCB3b3VsZCB3b3JrPwotICAgIGlmICgkY29udGV4dC0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57T3ZlcnJpZGVJRExUeXBlfSkgewotICAgICAgICBteSAkb3ZlcnJpZGVUeXBl
TmFtZSA9ICRjb250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntPdmVycmlkZUlETFR5cGV9Owor
ICAgIGlmICgkdHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57T3ZlcnJpZGVJRExUeXBlfSkgewor
ICAgICAgICBteSAkb3ZlcnJpZGVUeXBlTmFtZSA9ICR0eXBlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntPdmVycmlkZUlETFR5cGV9OwogICAgICAgICByZXR1cm4gMSBpZiAkb3ZlcnJpZGVUeXBlTmFt
ZSBlcSAiSURMSURCS2V5IjsKICAgICAgICAgcmV0dXJuIDEgaWYgJG92ZXJyaWRlVHlwZU5hbWUg
ZXEgIklETFdlYkdMQW55IjsKIApAQCAtNTY0MywxMyArNTY0MywxMyBAQCBzdWIgTmF0aXZlVG9K
U1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUKIAogc3ViIE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZl
cnROZWVkc0dsb2JhbE9iamVjdAogewotICAgIG15ICgkdHlwZSwgJGNvbnRleHQpID0gQF87Cisg
ICAgbXkgKCR0eXBlKSA9IEBfOwogICAgIAogICAgICMgRklYTUU6IFdlIG5lZWQgYSBtb3JlIHJv
YnVzdCB3YXkgdG8gc3BlY2lmeSB0aGlzIHJlcXVpcmVtZW50IHNvIGFzIG5vdAogICAgICMgdG8g
cmVxdWlyZSBzcGVjaWFsaXppbmcgZWFjaCB0eXBlLiBQZXJoYXBzIGp1c3QgcmVxdWlyaW5nIGFs
bCBvdmVycmlkZQogICAgICMgdHlwZXMgdG8gdGFrZSBib3RoIHN0YXRlIGFuZCB0aGUgZ2xvYmFs
IG9iamVjdCB3b3VsZCB3b3JrPwotICAgIGlmICgkY29udGV4dC0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57T3ZlcnJpZGVJRExUeXBlfSkgewotICAgICAgICBteSAkb3ZlcnJpZGVUeXBlTmFtZSA9ICRj
b250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntPdmVycmlkZUlETFR5cGV9OworICAgIGlmICgk
dHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57T3ZlcnJpZGVJRExUeXBlfSkgeworICAgICAgICBt
eSAkb3ZlcnJpZGVUeXBlTmFtZSA9ICR0eXBlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntPdmVycmlk
ZUlETFR5cGV9OwogICAgICAgICByZXR1cm4gMSBpZiAkb3ZlcnJpZGVUeXBlTmFtZSBlcSAiSURM
SURCS2V5IjsKICAgICAgICAgcmV0dXJuIDEgaWYgJG92ZXJyaWRlVHlwZU5hbWUgZXEgIklETFdl
YkdMQW55IjsKIApAQCAtNTcyMiwxMSArNTcyMiwxMSBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAg
ICAgICAgICR2YWx1ZSA9ICJCaW5kaW5nU2VjdXJpdHk6OmNoZWNrU2VjdXJpdHlGb3JOb2RlKCRz
dGF0ZVJlZmVyZW5jZSwgJHZhbHVlKSI7CiAgICAgfQogCi0gICAgbXkgJElETFR5cGUgPSBHZXRJ
RExUeXBlKCRpbnRlcmZhY2UsICR0eXBlLCAkY29udGV4dCk7CisgICAgbXkgJElETFR5cGUgPSBH
ZXRJRExUeXBlKCRpbnRlcmZhY2UsICR0eXBlKTsKIAogICAgIG15IEBjb252ZXJzaW9uQXJndW1l
bnRzID0gKCk7Ci0gICAgcHVzaChAY29udmVyc2lvbkFyZ3VtZW50cywgJHN0YXRlUmVmZXJlbmNl
KSBpZiBOYXRpdmVUb0pTVmFsdWVET01Db252ZXJ0TmVlZHNTdGF0ZSgkdHlwZSwgJGNvbnRleHQp
IHx8ICRtYXlUaHJvd0V4Y2VwdGlvbjsKLSAgICBwdXNoKEBjb252ZXJzaW9uQXJndW1lbnRzLCAk
Z2xvYmFsT2JqZWN0UmVmZXJlbmNlKSBpZiBOYXRpdmVUb0pTVmFsdWVET01Db252ZXJ0TmVlZHNH
bG9iYWxPYmplY3QoJHR5cGUsICRjb250ZXh0KTsKKyAgICBwdXNoKEBjb252ZXJzaW9uQXJndW1l
bnRzLCAkc3RhdGVSZWZlcmVuY2UpIGlmIE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZlcnROZWVkc1N0
YXRlKCR0eXBlKSB8fCAkbWF5VGhyb3dFeGNlcHRpb247CisgICAgcHVzaChAY29udmVyc2lvbkFy
Z3VtZW50cywgJGdsb2JhbE9iamVjdFJlZmVyZW5jZSkgaWYgTmF0aXZlVG9KU1ZhbHVlRE9NQ29u
dmVydE5lZWRzR2xvYmFsT2JqZWN0KCR0eXBlKTsKICAgICBwdXNoKEBjb252ZXJzaW9uQXJndW1l
bnRzLCAidGhyb3dTY29wZSIpIGlmICRtYXlUaHJvd0V4Y2VwdGlvbjsKICAgICBwdXNoKEBjb252
ZXJzaW9uQXJndW1lbnRzLCAkdmFsdWUpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETFBhcnNlci5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQkocmV2aXNpb24gMjE1MjU2KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0JKHdvcmtpbmcgY29weSkKQEAgLTUx
LDYgKzUxLDcgQEAgc3RydWN0KCBJRExUeXBlID0+IHsKICAgICBpc051bGxhYmxlID0+ICAgJyQn
LCAjIElzIHRoZSB0eXBlIE51bGxhYmxlIChUPykKICAgICBpc1VuaW9uID0+ICAgICAgJyQnLCAj
IElzIHRoZSB0eXBlIGEgdW5pb24gKFQgb3IgVSkKICAgICBzdWJ0eXBlcyA9PiAgICAgJ0AnLCAj
IEFycmF5IG9mIHN1YnR5cGVzLCBvbmx5IHZhbGlkIGlmIGlzVW5pb24gb3Igc2VxdWVuY2UKKyAg
ICBleHRlbmRlZEF0dHJpYnV0ZXMgPT4gJyUnLAogfSk7CiAKICMgVXNlZCB0byByZXByZXNlbnQg
J2ludGVyZmFjZScgYmxvY2tzCkBAIC0yNTIsMjAgKzI1Myw2IEBAIHN1YiBhc3NlcnRVbmV4cGVj
dGVkVG9rZW4KICAgICBhc3NlcnQgJG1zZzsKIH0KIAotc3ViIGFzc2VydE5vRXh0ZW5kZWRBdHRy
aWJ1dGVzSW5UeXBlZGVmCi17Ci0gICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICBteSAkbmFtZSA9
IHNoaWZ0OwotICAgIG15ICRsaW5lID0gc2hpZnQ7Ci0gICAgbXkgJHR5cGVkZWYgPSAkdHlwZWRl
ZnN7JG5hbWV9OwotICAgIG15ICRtc2cgPSAiVW5leHBlY3RlZCBleHRlbmRlZEF0dHJpYnV0ZUxp
c3QgaW4gdHlwZWRlZiBcIiRuYW1lXCIgb24gbGluZSAiIC4gJHNlbGYtPntMaW5lfTsKLSAgICBp
ZiAoZGVmaW5lZCAoJGxpbmUpKSB7Ci0gICAgICAgICRtc2cgLj0gIiBJRExQYXJzZXIucG06IiAu
ICRsaW5lOwotICAgIH0KLQotICAgIGFzc2VydCAkbXNnIGlmICV7JHR5cGVkZWYtPmV4dGVuZGVk
QXR0cmlidXRlc307Ci19Ci0KIHN1YiBQYXJzZQogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CkBA
IC0zOTgsNiArMzg1LDY4IEBAIHN1YiBpZGVudGlmaWVyUmVtb3ZlTnVsbGFibGVQcmVmaXgKICAg
ICByZXR1cm4gJHR5cGU7CiB9CiAKK3N1YiBjb3B5RXh0ZW5kZWRBdHRyaWJ1dGVzCit7CisgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworICAgIG15ICRhdHRyID0gc2hpZnQ7
CisKKyAgICBmb3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICBpZiAoJGtleSBl
cSAiQ29uc3RydWN0b3IiKSB7CisgICAgICAgICAgICBwdXNoKEB7JGV4dGVuZGVkQXR0cmlidXRl
TGlzdC0+eyJDb25zdHJ1Y3RvcnMifX0sICRhdHRyLT57JGtleX0pOworICAgICAgICB9IGVsc2lm
ICgka2V5IGVxICJDb25zdHJ1Y3RvcnMiKSB7CisgICAgICAgICAgICBteSBAY29uc3RydWN0b3Jz
ID0gQHskYXR0ci0+eyRrZXl9fTsKKyAgICAgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0cnVjdG9y
IChAY29uc3RydWN0b3JzKSB7CisgICAgICAgICAgICAgICAgcHVzaChAeyRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QtPnsiQ29uc3RydWN0b3JzIn19LCAkY29uc3RydWN0b3IpOworICAgICAgICAgICAg
fQorICAgICAgICB9IGVsc2lmICgka2V5IGVxICJDdXN0b21Db25zdHJ1Y3RvciIpIHsKKyAgICAg
ICAgICAgIHB1c2goQHskZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkN1c3RvbUNvbnN0cnVjdG9y
cyJ9fSwgJGF0dHItPnska2V5fSk7CisgICAgICAgIH0gZWxzaWYgKCRrZXkgZXEgIkN1c3RvbUNv
bnN0cnVjdG9ycyIpIHsKKyAgICAgICAgICAgbXkgQGN1c3RvbUNvbnN0cnVjdG9ycyA9IEB7JGF0
dHItPnska2V5fX07CisgICAgICAgICAgICBmb3JlYWNoIG15ICRjdXN0b21Db25zdHJ1Y3RvciAo
QGN1c3RvbUNvbnN0cnVjdG9ycykgeworICAgICAgICAgICAgICAgIHB1c2goQHskZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0LT57IkN1c3RvbUNvbnN0cnVjdG9ycyJ9fSwgJGN1c3RvbUNvbnN0cnVjdG9y
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QtPnska2V5fSA9ICRhdHRyLT57JGtleX07CisgICAgICAgIH0KKyAgICB9
Cit9CisKKworc3ViIGlzRXh0ZW5kZWRBdHRyaWJ1dGVBcHBsaWNhYmxlVG9UeXBlcworeworICAg
IG15ICRleHRlbmRlZEF0dHJpYnV0ZSA9IHNoaWZ0OworCisgICAgIyBGSVhNRTogVGhpcyBzaG91
bGQgYmUgZGVyaXZlZCBmcm9tIElETEF0dHJpYnV0ZXMuaW4KKyAgICBteSAldHlwZXMgPSAoCisg
ICAgICAgICJDbGFtcCIgPT4gMSwKKyAgICAgICAgIkVuZm9yY2VSYW5nZSIgPT4gMSwKKyAgICAg
ICAgIlRyZWF0TnVsbEFzIiA9PiAxLAorCisgICAgICAgICMgTm9uLXN0YW5kYXJkIGFkZGl0aW9u
cworICAgICAgICAiQXRvbWljU3RyaW5nIiA9PiAxLAorICAgICAgICAiUmVxdWlyZXNFeGlzdGlu
Z0F0b21pY1N0cmluZyIgPT4gMSwKKyAgICAgICAgIk92ZXJyaWRlSURMVHlwZSIgPT4gMSwKKyAg
ICApOworCisgICAgcmV0dXJuICR0eXBlc3skZXh0ZW5kZWRBdHRyaWJ1dGV9OworfQorCitzdWIg
bW92ZUV4dGVuZGVkQXR0cmlidXRlc0FwcGxpY2FibGVUb1R5cGVzCit7CisgICAgbXkgJHR5cGUg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBm
b3IgbXkgJGtleSAoa2V5cyAleyRleHRlbmRlZEF0dHJpYnV0ZUxpc3R9KSB7CisgICAgICAgIGlm
IChpc0V4dGVuZGVkQXR0cmlidXRlQXBwbGljYWJsZVRvVHlwZXMoJGtleSkpIHsKKyAgICAgICAg
ICAgIGlmICghZGVmaW5lZCAkdHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57JGtleX0pIHsKKyAg
ICAgICAgICAgICAgICAkdHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57JGtleX0gPSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0LT57JGtleX07CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGRlbGV0ZSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57JGtleX07CisgICAgICAg
IH0KKyAgICB9Cit9CisKIHN1YiB0eXBlRGVzY3JpcHRpb24KIHsKICAgICBteSAkdHlwZSA9IHNo
aWZ0OwpAQCAtNDEzLDEwICs0NjIsNyBAQCBzdWIgbWFrZVNpbXBsZVR5cGUKIHsKICAgICBteSAk
dHlwZU5hbWUgPSBzaGlmdDsKIAotICAgIG15ICR0eXBlID0gSURMVHlwZS0+bmV3KCk7Ci0gICAg
JHR5cGUtPm5hbWUoJHR5cGVOYW1lKTsKLSAgICAKLSAgICByZXR1cm4gJHR5cGU7CisgICAgcmV0
dXJuIElETFR5cGUtPm5ldyhuYW1lID0+ICR0eXBlTmFtZSk7CiB9CiAKIHN1YiBjbG9uZVR5cGUK
QEAgLTQyOCw2ICs0NzQsOSBAQCBzdWIgY2xvbmVUeXBlCiAgICAgJGNsb25lZFR5cGUtPm5hbWUo
JHR5cGUtPm5hbWUpOwogICAgICRjbG9uZWRUeXBlLT5pc051bGxhYmxlKCR0eXBlLT5pc051bGxh
YmxlKTsKICAgICAkY2xvbmVkVHlwZS0+aXNVbmlvbigkdHlwZS0+aXNVbmlvbik7CisKKyAgICBj
b3B5RXh0ZW5kZWRBdHRyaWJ1dGVzKCRjbG9uZWRUeXBlLT5leHRlbmRlZEF0dHJpYnV0ZXMsICR0
eXBlLT5leHRlbmRlZEF0dHJpYnV0ZXMpOworCiAgICAgZm9yZWFjaCBteSAkc3VidHlwZSAoQHsk
dHlwZS0+c3VidHlwZXN9KSB7CiAgICAgICAgIHB1c2goQHskY2xvbmVkVHlwZS0+c3VidHlwZXN9
LCAkc2VsZi0+Y2xvbmVUeXBlKCRzdWJ0eXBlKSk7CiAgICAgfQpAQCAtNTUyLDYgKzYwMSw3IEBA
IHN1YiB0eXBlQnlBcHBseWluZ1R5cGVkZWZzCiAKICAgICAgICAgbXkgJGNsb25lZFR5cGUgPSAk
c2VsZi0+Y2xvbmVUeXBlKCR0eXBlZGVmLT50eXBlKTsKICAgICAgICAgJGNsb25lZFR5cGUtPmlz
TnVsbGFibGUoJGNsb25lZFR5cGUtPmlzTnVsbGFibGUgfHwgJHR5cGUtPmlzTnVsbGFibGUpOwor
ICAgICAgICBtb3ZlRXh0ZW5kZWRBdHRyaWJ1dGVzQXBwbGljYWJsZVRvVHlwZXMoJGNsb25lZFR5
cGUsICR0eXBlLT5leHRlbmRlZEF0dHJpYnV0ZXMpOwogCiAgICAgICAgIHJldHVybiAkc2VsZi0+
dHlwZUJ5QXBwbHlpbmdUeXBlZGVmcygkY2xvbmVkVHlwZSk7CiAgICAgfQpAQCAtNzk4LDE2ICs4
NDgsMjIgQEAgc3ViIHBhcnNlRGljdGlvbmFyeU1lbWJlcgogICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOwogICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8
fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgewogICAgICAgICBt
eSAkbWVtYmVyID0gSURMRGljdGlvbmFyeU1lbWJlci0+bmV3KCk7CisgICAgICAgICRtZW1iZXIt
PmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKwogICAgICAgICBp
ZiAoJG5leHQtPnZhbHVlIGVxICJyZXF1aXJlZCIpIHsKICAgICAgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicmVxdWlyZWQiLCBfX0xJTkVfXyk7CiAg
ICAgICAgICAgICAkbWVtYmVyLT5pc1JlcXVpcmVkKDEpOworCisgICAgICAgICAgICBteSAkdHlw
ZSA9ICRzZWxmLT5wYXJzZVR5cGVXaXRoRXh0ZW5kZWRBdHRyaWJ1dGVzKCk7CisgICAgICAgICAg
ICAkbWVtYmVyLT50eXBlKCR0eXBlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICRt
ZW1iZXItPmlzUmVxdWlyZWQoMCk7Ci0gICAgICAgIH0KLSAgICAgICAgJG1lbWJlci0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogCi0gICAgICAgIG15ICR0eXBl
ID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotICAgICAgICAkbWVtYmVyLT50eXBlKCR0eXBlKTsKKyAg
ICAgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAgICAgbW92
ZUV4dGVuZGVkQXR0cmlidXRlc0FwcGxpY2FibGVUb1R5cGVzKCR0eXBlLCAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgJG1lbWJlci0+dHlwZSgkdHlw
ZSk7CisgICAgICAgIH0KIAogICAgICAgICBteSAkbmFtZVRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJG5hbWVUb2tlbiwgSWRlbnRpZmll
clRva2VuKTsKQEAgLTEwMzQsNyArMTA5MCw3IEBAIHN1YiBwYXJzZVR5cGVkZWYKICAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ0eXBlZGVmIiwgX19M
SU5FX18pOwogICAgICAgICBteSAkdHlwZWRlZiA9IElETFR5cGVkZWYtPm5ldygpOwogCi0gICAg
ICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICBteSAkdHlwZSA9ICRz
ZWxmLT5wYXJzZVR5cGVXaXRoRXh0ZW5kZWRBdHRyaWJ1dGVzKCk7CiAgICAgICAgICR0eXBlZGVm
LT50eXBlKCR0eXBlKTsKIAogICAgICAgICBteSAkbmFtZVRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CkBAIC0xMzQ2LDYgKzE0MDIsMTEgQEAgc3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25S
ZXN0CiAgICAgfQogICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAk
bmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RfMS8pIHsKICAg
ICAgICAgbXkgJHJldHVyblR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisKKyAgICAg
ICAgIyBOT1RFOiBUaGlzIGlzIGEgbm9uLXN0YW5kYXJkIGFkZGl0aW9uLiBJbiBXZWJJREwsIHRo
ZXJlIGlzIG5vIHdheSB0byBhc3NvY2lhdGUKKyAgICAgICAgIyBleHRlbmRlZCBhdHRyaWJ1dGVz
IHdpdGggYSByZXR1cm4gdHlwZS4KKyAgICAgICAgbW92ZUV4dGVuZGVkQXR0cmlidXRlc0FwcGxp
Y2FibGVUb1R5cGVzKCRyZXR1cm5UeXBlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKwogICAg
ICAgICBteSAkb3BlcmF0aW9uID0gJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKICAgICAgICAgaWYgKGRlZmluZWQgKCRvcGVyYXRpb24pKSB7CiAgICAg
ICAgICAgICAkb3BlcmF0aW9uLT50eXBlKCRyZXR1cm5UeXBlKTsKQEAgLTEzNzcsMjYgKzE0Mzgs
MjIgQEAgc3ViIHBhcnNlQXR0cmlidXRlUmVzdAogCiAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJhdHRyaWJ1dGUiKSB7Ci0gICAg
ICAgIG15ICRuZXdEYXRhTm9kZSA9IElETEF0dHJpYnV0ZS0+bmV3KCk7Ci0gICAgICAgICRuZXdE
YXRhTm9kZS0+aXNSZWFkT25seSgkaXNSZWFkT25seSk7Ci0KICAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJhdHRyaWJ1dGUiLCBfX0xJTkVfXyk7CiAK
LSAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7Ci0gICAgICAgICRuZXdEYXRh
Tm9kZS0+dHlwZSgkdHlwZSk7CisgICAgICAgIG15ICRhdHRyaWJ1dGUgPSBJRExBdHRyaWJ1dGUt
Pm5ldygpOworICAgICAgICAKKyAgICAgICAgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAkYXR0cmlidXRlLT5pc1JlYWRPbmx5
KCRpc1JlYWRPbmx5KTsKKworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGVXaXRo
RXh0ZW5kZWRBdHRyaWJ1dGVzKCk7CisgICAgICAgICRhdHRyaWJ1dGUtPnR5cGUoJHR5cGUpOwog
CiAgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOwogICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKLSAgICAgICAgJG5ld0Rh
dGFOb2RlLT5uYW1lKGlkZW50aWZpZXJSZW1vdmVOdWxsYWJsZVByZWZpeCgkdG9rZW4tPnZhbHVl
KCkpKTsKKyAgICAgICAgJGF0dHJpYnV0ZS0+bmFtZShpZGVudGlmaWVyUmVtb3ZlTnVsbGFibGVQ
cmVmaXgoJHRva2VuLT52YWx1ZSgpKSk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKIAotICAgICAgICAjIEN1c3RvbUNv
bnN0cnVjdG9yIG1heSBhbHNvIGJlIHVzZWQgb24gYXR0cmlidXRlcy4KLSAgICAgICAgaWYgKGRl
ZmluZWQgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJDdXN0b21Db25zdHJ1Y3RvcnMifSkgewot
ICAgICAgICAgICAgZGVsZXRlICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiQ3VzdG9tQ29uc3Ry
dWN0b3JzIn07Ci0gICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkN1c3RvbUNv
bnN0cnVjdG9yIn0gPSAiVkFMVUVfSVNfTUlTU0lORyI7Ci0gICAgICAgIH0KLSAgICAgICAgJG5l
d0RhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Ci0g
ICAgICAgIHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgICAgIHJldHVybiAkYXR0cmlidXRlOwog
ICAgIH0KICAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7CiB9CkBAIC0xNDQxLDYgKzE0OTgsMTAgQEAgc3ViIHBhcnNlT3BlcmF0aW9uT3JJ
dGVyYXRvcgogICAgIH0KICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4g
fHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0XzEvKSB7
CiAgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOworICAg
ICAgICAjIE5PVEU6IFRoaXMgaXMgYSBub24tc3RhbmRhcmQgYWRkaXRpb24uIEluIFdlYklETCwg
dGhlcmUgaXMgbm8gd2F5IHRvIGFzc29jaWF0ZQorICAgICAgICAjIGV4dGVuZGVkIGF0dHJpYnV0
ZXMgd2l0aCBhIHJldHVybiB0eXBlLgorICAgICAgICBtb3ZlRXh0ZW5kZWRBdHRyaWJ1dGVzQXBw
bGljYWJsZVRvVHlwZXMoJHJldHVyblR5cGUsICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworCiAg
ICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAgICAgICBpZiAoJG5leHQt
PnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CiAg
ICAgICAgICAgICBteSAkb3BlcmF0aW9uID0gJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKQEAgLTE0NjEsNiArMTUyMiwxMSBAQCBzdWIgcGFyc2VTcGVj
aWFsT3BlcmF0aW9uCiAgICAgICAgIG15IEBzcGVjaWFscyA9ICgpOwogICAgICAgICBwdXNoKEBz
cGVjaWFscywgQHskc2VsZi0+cGFyc2VTcGVjaWFscygpfSk7CiAgICAgICAgIG15ICRyZXR1cm5U
eXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOworCisgICAgICAgICMgTk9URTogVGhpcyBp
cyBhIG5vbi1zdGFuZGFyZCBhZGRpdGlvbi4gSW4gV2ViSURMLCB0aGVyZSBpcyBubyB3YXkgdG8g
YXNzb2NpYXRlCisgICAgICAgICMgZXh0ZW5kZWQgYXR0cmlidXRlcyB3aXRoIGEgcmV0dXJuIHR5
cGUuCisgICAgICAgIG1vdmVFeHRlbmRlZEF0dHJpYnV0ZXNBcHBsaWNhYmxlVG9UeXBlcygkcmV0
dXJuVHlwZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisKICAgICAgICAgbXkgJG9wZXJhdGlv
biA9ICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAg
ICAgICAgIGlmIChkZWZpbmVkICgkb3BlcmF0aW9uKSkgewogICAgICAgICAgICAgJG9wZXJhdGlv
bi0+dHlwZSgkcmV0dXJuVHlwZSk7CkBAIC0xNTM4LDEyICsxNjA0LDEyIEBAIHN1YiBwYXJzZU9w
dGlvbmFsSXRlcmFibGVJbnRlcmZhY2UKICAgICAkbmV3RGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKIAogICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPCIsIF9fTElORV9fKTsKLSAgICBteSAkdHlwZTEgPSAk
c2VsZi0+cGFyc2VUeXBlKCk7CisgICAgbXkgJHR5cGUxID0gJHNlbGYtPnBhcnNlVHlwZVdpdGhF
eHRlbmRlZEF0dHJpYnV0ZXMoKTsKIAogICAgIGlmICgkc2VsZi0+bmV4dFRva2VuKCktPnZhbHVl
KCkgZXEgIiwiKSB7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiLCIsIF9fTElORV9fKTsKIAotICAgICAgICBteSAkdHlwZTIgPSAkc2VsZi0+cGFy
c2VUeXBlKCk7CisgICAgICAgIG15ICR0eXBlMiA9ICRzZWxmLT5wYXJzZVR5cGVXaXRoRXh0ZW5k
ZWRBdHRyaWJ1dGVzKCk7CiAgICAgICAgICRuZXdEYXRhTm9kZS0+aXNLZXlWYWx1ZSgxKTsKICAg
ICAgICAgJG5ld0RhdGFOb2RlLT5rZXlUeXBlKCR0eXBlMSk7CiAgICAgICAgICRuZXdEYXRhTm9k
ZS0+dmFsdWVUeXBlKCR0eXBlMik7CkBAIC0xNjE4LDkgKzE2ODQsOSBAQCBzdWIgcGFyc2VNYXBM
aWtlUHJvcGVydGllcwogICAgICRuZXdEYXRhTm9kZS0+aXNSZWFkT25seSgkaXNSZWFkT25seSk7
CiAKICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjwiLCBf
X0xJTkVfXyk7Ci0gICAgJG5ld0RhdGFOb2RlLT5rZXlUeXBlKCRzZWxmLT5wYXJzZVR5cGUoKSk7
CisgICAgJG5ld0RhdGFOb2RlLT5rZXlUeXBlKCRzZWxmLT5wYXJzZVR5cGVXaXRoRXh0ZW5kZWRB
dHRyaWJ1dGVzKCkpOwogICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiLCIsIF9fTElORV9fKTsKLSAgICAkbmV3RGF0YU5vZGUtPnZhbHVlVHlwZSgkc2VsZi0+
cGFyc2VUeXBlKCkpOworICAgICRuZXdEYXRhTm9kZS0+dmFsdWVUeXBlKCRzZWxmLT5wYXJzZVR5
cGVXaXRoRXh0ZW5kZWRBdHRyaWJ1dGVzKCkpOwogICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiPiIsIF9fTElORV9fKTsKIAogICAgIG15ICRub3RFbnVtZXJh
YmxlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJGV4dGVuZGVkQXR0cmlidXRlTGlzdDsKQEAgLTE4
MTMsMjcgKzE4NzksMjkgQEAgc3ViIHBhcnNlT3B0aW9uYWxPclJlcXVpcmVkQXJndW1lbnQKICAg
ICBteSAkc2VsZiA9IHNoaWZ0OwogICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlm
dDsKIAotICAgIG15ICRwYXJhbURhdGFOb2RlID0gSURMQXJndW1lbnQtPm5ldygpOwotICAgICRw
YXJhbURhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgbXkgJGFyZ3VtZW50ID0gSURMQXJndW1lbnQtPm5ldygpOworICAgICRhcmd1bWVudC0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogCiAgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvcHRp
b25hbCIpIHsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJvcHRpb25hbCIsIF9fTElORV9fKTsKIAotICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5w
YXJzZVR5cGUoKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoJHR5cGUpOwotICAgICAg
ICAkcGFyYW1EYXRhTm9kZS0+aXNPcHRpb25hbCgxKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUt
Pm5hbWUoJHNlbGYtPnBhcnNlQXJndW1lbnROYW1lKCkpOwotICAgICAgICAkcGFyYW1EYXRhTm9k
ZS0+ZGVmYXVsdCgkc2VsZi0+cGFyc2VEZWZhdWx0KCkpOwotICAgICAgICByZXR1cm4gJHBhcmFt
RGF0YU5vZGU7CisgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZVdpdGhFeHRlbmRl
ZEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgJGFyZ3VtZW50LT50eXBlKCR0eXBlKTsKKyAgICAgICAg
JGFyZ3VtZW50LT5pc09wdGlvbmFsKDEpOworICAgICAgICAkYXJndW1lbnQtPm5hbWUoJHNlbGYt
PnBhcnNlQXJndW1lbnROYW1lKCkpOworICAgICAgICAkYXJndW1lbnQtPmRlZmF1bHQoJHNlbGYt
PnBhcnNlRGVmYXVsdCgpKTsKKyAgICAgICAgcmV0dXJuICRhcmd1bWVudDsKICAgICB9CiAgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+
IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CiAgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBh
cnNlVHlwZSgpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZSgkdHlwZSk7Ci0gICAgICAg
ICRwYXJhbURhdGFOb2RlLT5pc09wdGlvbmFsKDApOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+
aXNWYXJpYWRpYygkc2VsZi0+cGFyc2VFbGxpcHNpcygpKTsKLSAgICAgICAgJHBhcmFtRGF0YU5v
ZGUtPm5hbWUoJHNlbGYtPnBhcnNlQXJndW1lbnROYW1lKCkpOwotICAgICAgICByZXR1cm4gJHBh
cmFtRGF0YU5vZGU7CisgICAgICAgIG1vdmVFeHRlbmRlZEF0dHJpYnV0ZXNBcHBsaWNhYmxlVG9U
eXBlcygkdHlwZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisKKyAgICAgICAgJGFyZ3VtZW50
LT50eXBlKCR0eXBlKTsKKyAgICAgICAgJGFyZ3VtZW50LT5pc09wdGlvbmFsKDApOworICAgICAg
ICAkYXJndW1lbnQtPmlzVmFyaWFkaWMoJHNlbGYtPnBhcnNlRWxsaXBzaXMoKSk7CisgICAgICAg
ICRhcmd1bWVudC0+bmFtZSgkc2VsZi0+cGFyc2VBcmd1bWVudE5hbWUoKSk7CisgICAgICAgIHJl
dHVybiAkYXJndW1lbnQ7CiAgICAgfQogICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KQEAgLTE5MTAsMzIgKzE5NzgsNiBAQCBzdWIg
cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5CiAgICAgcmV0dXJuIHt9OwogfQog
Ci1zdWIgY29weUV4dGVuZGVkQXR0cmlidXRlcwotewotICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgPSBzaGlmdDsKLSAgICBteSAkYXR0ciA9IHNoaWZ0OwotCi0gICAgZm9yIG15ICRrZXkg
KGtleXMgJXskYXR0cn0pIHsKLSAgICAgICAgaWYgKCRrZXkgZXEgIkNvbnN0cnVjdG9yIikgewot
ICAgICAgICAgICAgcHVzaChAeyRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiQ29uc3RydWN0b3Jz
In19LCAkYXR0ci0+eyRrZXl9KTsKLSAgICAgICAgfSBlbHNpZiAoJGtleSBlcSAiQ29uc3RydWN0
b3JzIikgewotICAgICAgICAgICAgbXkgQGNvbnN0cnVjdG9ycyA9IEB7JGF0dHItPnska2V5fX07
Ci0gICAgICAgICAgICBmb3JlYWNoIG15ICRjb25zdHJ1Y3RvciAoQGNvbnN0cnVjdG9ycykgewot
ICAgICAgICAgICAgICAgIHB1c2goQHskZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVj
dG9ycyJ9fSwgJGNvbnN0cnVjdG9yKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNpZiAo
JGtleSBlcSAiQ3VzdG9tQ29uc3RydWN0b3IiKSB7Ci0gICAgICAgICAgICBwdXNoKEB7JGV4dGVu
ZGVkQXR0cmlidXRlTGlzdC0+eyJDdXN0b21Db25zdHJ1Y3RvcnMifX0sICRhdHRyLT57JGtleX0p
OwotICAgICAgICB9IGVsc2lmICgka2V5IGVxICJDdXN0b21Db25zdHJ1Y3RvcnMiKSB7Ci0gICAg
ICAgICAgIG15IEBjdXN0b21Db25zdHJ1Y3RvcnMgPSBAeyRhdHRyLT57JGtleX19OwotICAgICAg
ICAgICAgZm9yZWFjaCBteSAkY3VzdG9tQ29uc3RydWN0b3IgKEBjdXN0b21Db25zdHJ1Y3RvcnMp
IHsKLSAgICAgICAgICAgICAgICBwdXNoKEB7JGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJDdXN0
b21Db25zdHJ1Y3RvcnMifX0sICRjdXN0b21Db25zdHJ1Y3Rvcik7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57JGtl
eX0gPSAkYXR0ci0+eyRrZXl9OwotICAgICAgICB9Ci0gICAgfQotfQotCiBzdWIgcGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZUxpc3QKIHsKICAgICBteSAkc2VsZiA9IHNoaWZ0OwpAQCAtMjE0NiwxMyAr
MjE4OCw0MCBAQCBzdWIgcGFyc2VUeXBlCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgPSB7fTsKKworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAg
bXkgJHVuaW9uVHlwZSA9ICRzZWxmLT5wYXJzZVVuaW9uVHlwZSgpOworICAgICAgICAkdW5pb25U
eXBlLT5pc051bGxhYmxlKCRzZWxmLT5wYXJzZU51bGwoKSk7CisgICAgICAgICR1bmlvblR5cGUt
PmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0
dXJuICR1bmlvblR5cGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRUeXBlXzEvKSB7CisgICAgICAgIG15
ICRzaW5nbGVUeXBlID0gJHNlbGYtPnBhcnNlU2luZ2xlVHlwZSgpOworICAgICAgICAkc2luZ2xl
VHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAg
ICByZXR1cm4gJHNpbmdsZVR5cGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlVHlwZVdpdGhF
eHRlbmRlZEF0dHJpYnV0ZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIAorICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxp
c3RBbGxvd0VtcHR5KCk7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CiAgICAgICAgIG15ICR1bmlvblR5cGUgPSAk
c2VsZi0+cGFyc2VVbmlvblR5cGUoKTsKICAgICAgICAgJHVuaW9uVHlwZS0+aXNOdWxsYWJsZSgk
c2VsZi0+cGFyc2VOdWxsKCkpOworICAgICAgICAkdW5pb25UeXBlLT5leHRlbmRlZEF0dHJpYnV0
ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgICAgIHJldHVybiAkdW5pb25UeXBlOwog
ICAgIH0KICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQt
PnZhbHVlKCkgPX4gLyRuZXh0VHlwZV8xLykgewotICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
U2luZ2xlVHlwZSgpOworICAgICAgICBteSAkc2luZ2xlVHlwZSA9ICRzZWxmLT5wYXJzZVNpbmds
ZVR5cGUoKTsKKyAgICAgICAgJHNpbmdsZVR5cGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRzaW5nbGVUeXBlOwogICAgIH0KICAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
CiB9CkBAIC0yMjA3LDkgKzIyNzYsMTMgQEAgc3ViIHBhcnNlVW5pb25NZW1iZXJUeXBlCiAgICAg
ICAgICR1bmlvblR5cGUtPmlzTnVsbGFibGUoJHNlbGYtPnBhcnNlTnVsbCgpKTsKICAgICAgICAg
cmV0dXJuICR1bmlvblR5cGU7CiAgICAgfQorCisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKwogICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9
fiAvJG5leHRTaW5nbGVUeXBlXzEvKSB7CiAgICAgICAgIG15ICRub25BbnlUeXBlID0gJHNlbGYt
PnBhcnNlTm9uQW55VHlwZSgpOwogICAgICAgICAkbm9uQW55VHlwZS0+aXNOdWxsYWJsZSgkc2Vs
Zi0+cGFyc2VOdWxsKCkpOworICAgICAgICAkbm9uQW55VHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogICAgICAgICByZXR1cm4gJG5vbkFueVR5cGU7CiAg
ICAgfQogICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKQEAgLTIyODAsNyArMjM1Myw3IEBAIHN1YiBwYXJzZU5vbkFueVR5cGUKICAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXF1ZW5jZSIs
IF9fTElORV9fKTsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI8IiwgX19MSU5FX18pOwogCi0gICAgICAgIG15ICRzdWJ0eXBlID0gJHNlbGYtPnBh
cnNlVHlwZSgpOworICAgICAgICBteSAkc3VidHlwZSA9ICRzZWxmLT5wYXJzZVR5cGVXaXRoRXh0
ZW5kZWRBdHRyaWJ1dGVzKCk7CiAKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICI+IiwgX19MSU5FX18pOwogCkBAIC0yMjkzLDcgKzIzNjYsNyBAQCBz
dWIgcGFyc2VOb25BbnlUeXBlCiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiRnJvemVuQXJyYXkiLCBfX0xJTkVfXyk7CiAgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPCIsIF9fTElORV9fKTsKIAotICAg
ICAgICBteSAkc3VidHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgbXkgJHN1YnR5
cGUgPSAkc2VsZi0+cGFyc2VUeXBlV2l0aEV4dGVuZGVkQXR0cmlidXRlcygpOwogCiAgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPiIsIF9fTElORV9f
KTsKIApAQCAtMjMyNCw3ICsyMzk3LDcgQEAgc3ViIHBhcnNlTm9uQW55VHlwZQogCiAgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiLCIsIF9fTElORV9f
KTsKIAotICAgICAgICBteSAkdmFsdWVUeXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAg
ICBteSAkdmFsdWVUeXBlID0gJHNlbGYtPnBhcnNlVHlwZVdpdGhFeHRlbmRlZEF0dHJpYnV0ZXMo
KTsKIAogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
Ij4iLCBfX0xJTkVfXyk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
NjIsOCArNjIsOCBAQCBlbnVtIFRlc3RDb25maWRlbmNlIHsgImhpZ2giLCAia2luZGEtbG93CiAg
ICAgYXR0cmlidXRlIGJ5dGUgYnl0ZUF0dHI7CiAgICAgYXR0cmlidXRlIG9jdGV0IG9jdGV0QXR0
cjsKICAgICBbVW5zY29wYWJsZV0gYXR0cmlidXRlIHNob3J0IHNob3J0QXR0cjsKLSAgICBbQ2xh
bXBdIGF0dHJpYnV0ZSBzaG9ydCBjbGFtcGVkU2hvcnRBdHRyOwotICAgIFtFbmZvcmNlUmFuZ2Vd
IGF0dHJpYnV0ZSBzaG9ydCBlbmZvcmNlUmFuZ2VTaG9ydEF0dHI7CisgICAgYXR0cmlidXRlIFtD
bGFtcF0gc2hvcnQgY2xhbXBlZFNob3J0QXR0cjsKKyAgICBhdHRyaWJ1dGUgW0VuZm9yY2VSYW5n
ZV0gc2hvcnQgZW5mb3JjZVJhbmdlU2hvcnRBdHRyOwogICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBz
aG9ydCB1bnNpZ25lZFNob3J0QXR0cjsKICAgICBhdHRyaWJ1dGUgbG9uZyBsb25nQXR0cjsKICAg
ICBhdHRyaWJ1dGUgbG9uZyBsb25nIGxvbmdMb25nQXR0cjsKQEAgLTc0LDkgKzc0LDkgQEAgZW51
bSBUZXN0Q29uZmlkZW5jZSB7ICJoaWdoIiwgImtpbmRhLWxvdwogICAgIGF0dHJpYnV0ZSBUZXN0
T2JqPyB0ZXN0TnVsbGFibGVPYmpBdHRyOwogICAgIFtMZW5pZW50VGhpc10gYXR0cmlidXRlIFRl
c3RPYmogbGVuaWVudFRlc3RPYmpBdHRyOwogICAgIFtVbmZvcmdlYWJsZV0gcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyB1bmZvcmdlYWJsZUF0dHI7Ci0gICAgW1RyZWF0TnVsbEFzPUVtcHR5
U3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nOwotICAgIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gYXR0cmlidXRlIFVTVlN0cmlu
ZyB1c3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZzsKLSAgICBbVHJlYXROdWxs
QXM9RW1wdHlTdHJpbmddIGF0dHJpYnV0ZSBCeXRlU3RyaW5nIGJ5dGVTdHJpbmdBdHRyVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZzsKKyAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3Ry
aW5nXSBET01TdHJpbmcgc3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmc7CisgICAg
YXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gVVNWU3RyaW5nIHVzdnN0cmluZ0F0
dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nOworICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9
RW1wdHlTdHJpbmddIEJ5dGVTdHJpbmcgYnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nOwogICAgIGF0dHJpYnV0ZSByZWNvcmQ8RE9NU3RyaW5nLCBsb25nPiBzdHJpbmdMb25n
UmVjb3JkQXR0cjsKICAgICBhdHRyaWJ1dGUgcmVjb3JkPFVTVlN0cmluZywgbG9uZz4gdXN2c3Ry
aW5nTG9uZ1JlY29yZEF0dHI7CiAgICAgYXR0cmlidXRlIHJlY29yZDxCeXRlU3RyaW5nLCBsb25n
PiB1c3ZzdHJpbmdMb25nUmVjb3JkQXR0cjsKQEAgLTIxNCwxNSArMjE0LDE1IEBAIGVudW0gVGVz
dENvbmZpZGVuY2UgeyAiaGlnaCIsICJraW5kYS1sb3cKICAgICB2b2lkICAgIG1ldGhvZFdpdGhO
b25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyhsb25nIG5vbk9wdCwgb3B0aW9uYWwgbG9u
ZyBvcHQxLCBvcHRpb25hbCBsb25nIG9wdDIpOwogICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlv
bmFsU3RyaW5nKG9wdGlvbmFsIERPTVN0cmluZyBzdHIpOwogICAgIHZvaWQgICAgbWV0aG9kV2l0
aE9wdGlvbmFsVVNWU3RyaW5nKG9wdGlvbmFsIFVTVlN0cmluZyBzdHIpOwotICAgIHZvaWQgICAg
bWV0aG9kV2l0aE9wdGlvbmFsQXRvbWljU3RyaW5nKFtBdG9taWNTdHJpbmddIG9wdGlvbmFsIERP
TVN0cmluZyBzdHIpOworICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlvbmFsQXRvbWljU3RyaW5n
KG9wdGlvbmFsIFtBdG9taWNTdHJpbmddIERPTVN0cmluZyBzdHIpOwogICAgIHZvaWQgICAgbWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVmYXVsdFZhbHVlKG9wdGlvbmFsIERPTVN0cmluZyBz
dHIgPSAiZm9vIik7Ci0gICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9uYWxBdG9taWNTdHJpbmdB
bmREZWZhdWx0VmFsdWUoW0F0b21pY1N0cmluZ10gb3B0aW9uYWwgRE9NU3RyaW5nIHN0ciA9ICJm
b28iKTsKKyAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbEF0b21pY1N0cmluZ0FuZERlZmF1
bHRWYWx1ZShvcHRpb25hbCBbQXRvbWljU3RyaW5nXSBET01TdHJpbmcgc3RyID0gImZvbyIpOwog
ICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxsKG9wdGlvbmFsIERPTVN0
cmluZyBzdHIgPSBudWxsKTsKICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lz
VW5kZWZpbmVkKG9wdGlvbmFsIERPTVN0cmluZyBzdHIgPSAidW5kZWZpbmVkIik7Ci0gICAgdm9p
ZCAgICBtZXRob2RXaXRoT3B0aW9uYWxBdG9taWNTdHJpbmdJc051bGwoW0F0b21pY1N0cmluZ10g
b3B0aW9uYWwgRE9NU3RyaW5nIHN0ciA9IG51bGwpOworICAgIHZvaWQgICAgbWV0aG9kV2l0aE9w
dGlvbmFsQXRvbWljU3RyaW5nSXNOdWxsKG9wdGlvbmFsIFtBdG9taWNTdHJpbmddIERPTVN0cmlu
ZyBzdHIgPSBudWxsKTsKICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzRW1w
dHlTdHJpbmcob3B0aW9uYWwgRE9NU3RyaW5nIHN0ciA9ICIiKTsKICAgICB2b2lkICAgIG1ldGhv
ZFdpdGhPcHRpb25hbFVTVlN0cmluZ0lzRW1wdHlTdHJpbmcob3B0aW9uYWwgVVNWU3RyaW5nIHN0
ciA9ICIiKTsKLSAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbEF0b21pY1N0cmluZ0lzRW1w
dHlTdHJpbmcoW0F0b21pY1N0cmluZ10gb3B0aW9uYWwgRE9NU3RyaW5nIHN0ciA9ICIiKTsKKyAg
ICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbEF0b21pY1N0cmluZ0lzRW1wdHlTdHJpbmcob3B0
aW9uYWwgW0F0b21pY1N0cmluZ10gRE9NU3RyaW5nIHN0ciA9ICIiKTsKICAgICB2b2lkICAgIG1l
dGhvZFdpdGhPcHRpb25hbERvdWJsZUlzTmFOKG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUg
bnVtYmVyID0gTmFOKTsKICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU4o
b3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IG51bWJlciA9IE5hTik7CiAgICAgdm9pZCAgICBt
ZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZyhvcHRpb25hbCBsb25nIGxvbmcgbnVtYmVyKTsKQEAg
LTMyNCw3ICszMjQsOSBAQCBlbnVtIFRlc3RDb25maWRlbmNlIHsgImhpZ2giLCAia2luZGEtbG93
CiAgICAgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjFdIHN0YXRpYyB2b2lkIG92ZXJsb2FkZWRNZXRo
b2QxKERPTVN0cmluZyB0eXBlKTsKIAogICAgIHZvaWQgY2xhc3NNZXRob2RXaXRoQ2xhbXAoW0Ns
YW1wXSB1bnNpZ25lZCBzaG9ydCBvYmpBcmdzU2hvcnQsIFtDbGFtcF0gdW5zaWduZWQgbG9uZyBv
YmpBcmdzTG9uZyk7CisgICAgdm9pZCBjbGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwob3B0
aW9uYWwgW0NsYW1wXSBsb25nIG9iakFyZ3NMb25nID0gMCk7CiAgICAgdm9pZCBjbGFzc01ldGhv
ZFdpdGhFbmZvcmNlUmFuZ2UoW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgc2hvcnQgb2JqQXJnc1No
b3J0LCBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIG9iakFyZ3NMb25nKTsKKyAgICB2b2lk
IGNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWwob3B0aW9uYWwgW0VuZm9yY2VS
YW5nZV0gbG9uZyBvYmpBcmdzTG9uZyA9IDApOwogCiAgICAgdm9pZCBtZXRob2RXaXRoVW5zaWdu
ZWRMb25nU2VxdWVuY2Uoc2VxdWVuY2U8dW5zaWduZWQgbG9uZz4gdW5zaWduZWRMb25nU2VxdWVu
Y2UpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gc2VxdWVuY2U8RE9NU3RyaW5nPiBzdHJpbmdB
cnJheUZ1bmN0aW9uKHNlcXVlbmNlPERPTVN0cmluZz4gdmFsdWVzKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0VHlwZWRlZnMuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0VHlwZWRlZnMuaWRs
CShyZXZpc2lvbiAyMTUyNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdFR5cGVkZWZzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsMTEgQEAKIAog
ICAgIHZvaWQgdW5pb25BcmcoVU5JT05fU1RSSU5HX0xPTkcgdW5pb25BcmcpOwogCi0gICAgdm9p
ZCBmdW5jV2l0aENsYW1wKFtDbGFtcF0gVUxPTkdMT05HIGFyZzEsIFtDbGFtcF0gb3B0aW9uYWwg
VUxPTkdMT05HIGFyZzIpOworICAgIHZvaWQgZnVuY1dpdGhDbGFtcChbQ2xhbXBdIFVMT05HTE9O
RyBhcmcxLCBvcHRpb25hbCBbQ2xhbXBdIFVMT05HTE9ORyBhcmcyKTsKKwl2b2lkIGZ1bmNXaXRo
Q2xhbXBJblR5cGVkZWYoQ0xBTVBFRF9MT05HIGFyZyk7CisKKwlhdHRyaWJ1dGUgW0NsYW1wXSBV
TE9OR0xPTkcgYXR0cmlidXRlV2l0aENsYW1wOworCWF0dHJpYnV0ZSBDTEFNUEVEX0xPTkcgYXR0
cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmOwogCiAgICAgW0ltbXV0YWJsZV0gU1ZHUE9JTlQgaW1t
dXRhYmxlUG9pbnRGdW5jdGlvbigpOwogCkBAIC03NSw2ICs3OSw3IEBAIHR5cGVkZWYgdW5zaWdu
ZWQgbG9uZyBsb25nICAgICAgICAgVUxPTkcKIHR5cGVkZWYgU2VyaWFsaXplZFNjcmlwdFZhbHVl
ICAgICAgU0NSSVBUX1ZBTFVFOwogdHlwZWRlZiBzZXF1ZW5jZTxsb25nPiAgICAgICAgICAgICBT
RVFVRU5DRV9PRl9MT05HUzsKIHR5cGVkZWYgbG9uZz8gICAgICAgICAgICAgICAgICAgICAgTlVM
TEFCTEVfTE9ORzsKK3R5cGVkZWYgW0NsYW1wXSBsb25nICAgICAgICAgICAgICAgQ0xBTVBFRF9M
T05HOwogdHlwZWRlZiBTVkdQb2ludCAgICAgICAgICAgICAgICAgICBTVkdQT0lOVDsKIHR5cGVk
ZWYgRE9NU3RyaW5nICAgICAgICAgICAgICAgICAgU1RSSU5HOwogdHlwZWRlZiBzZXF1ZW5jZTxE
T01TdHJpbmc+ICAgICAgICBTRVFVRU5DRV9PRl9TVFJJTkdTOwpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJl
dmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjA0LDcgKzEyMDQsOSBAQCBKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2QxKEpTQzo6RXhlY1N0YXRlKik7CiAjZW5kaWYKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wKEpT
Qzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwoSlNDOjpF
eGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZShKU0M6OkV4ZWNTdGF0
ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbChKU0M6OkV4ZWNT
dGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKEpTQzo6RXhlY1N0YXRl
Kik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJp
bmdMaXN0RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTE4NDgsNyArMTg1MCw5IEBAIHN0
YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm8KICAgICB7ICJvdmVybG9hZFdp
dGhPcHRpb25hbFVuaW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAib3Zl
cmxvYWRXaXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlciIsIEpTQzo6RnVuY3Rp
b24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1
aXNoaW5nUGFyYW1ldGVyKSwgKGludHB0cl90KSAoMikgfSB9LAogICAgIHsgImNsYXNzTWV0aG9k
V2l0aENsYW1wIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0
aG9kV2l0aENsYW1wKSwgKGludHB0cl90KSAoMikgfSB9LAorICAgIHsgImNsYXNzTWV0aG9kV2l0
aENsYW1wT25PcHRpb25hbCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
bGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAg
eyAiY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZSksIChpbnRwdHJfdCkgKDIp
IH0gfSwKKyAgICB7ICJjbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsIiwgSlND
OjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VS
YW5nZU9uT3B0aW9uYWwpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0aFVu
c2lnbmVkTG9uZ1NlcXVlbmNlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZSksIChpbnRwdHJfdCkgKDEpIH0gfSwKICAg
ICB7ICJzdHJpbmdBcnJheUZ1bmN0aW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24pLCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAi
ZG9tU3RyaW5nTGlzdEZ1bmN0aW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlvbiksIChpbnRwdHJfdCkgKDEpIH0gfSwKQEAgLTc4MDYs
NiArNzgxMCwyNCBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NN
ZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsQ2FsbGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0T2Jq
KiwgSlNDOjpUaHJvd1Njb3BlJik7CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwoRXhl
Y1N0YXRlKiBzdGF0ZSkKK3sKKyAgICByZXR1cm4gQmluZGluZ0NhbGxlcjxKU1Rlc3RPYmo+Ojpj
YWxsT3BlcmF0aW9uPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xh
bXBPbk9wdGlvbmFsQ2FsbGVyPihzdGF0ZSwgImNsYXNzTWV0aG9kV2l0aENsYW1wT25PcHRpb25h
bCIpOworfQorCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWxDYWxsZXIoSlNDOjpF
eGVjU3RhdGUqIHN0YXRlLCBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMsIEpTQzo6VGhyb3dTY29wZSYg
dGhyb3dTY29wZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUpOworICAgIFVOVVNFRF9QQVJB
TSh0aHJvd1Njb3BlKTsKKyAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwor
ICAgIGF1dG8gb2JqQXJnc0xvbmcgPSBjb252ZXJ0PElETExvbmc+KCpzdGF0ZSwgc3RhdGUtPmFy
Z3VtZW50KDApLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246OkNsYW1wKTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIGlt
cGwuY2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsKFdURk1vdmUob2JqQXJnc0xvbmcpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCiBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFz
c01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VDYWxsZXIoSlNDOjpFeGVjU3RhdGUqLCBKU1Rlc3RPYmoq
LCBKU0M6OlRocm93U2NvcGUmKTsKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZShFeGVjU3Rh
dGUqIHN0YXRlKQpAQCAtNzgyOCw2ICs3ODUwLDI0IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsQ2FsbGVy
KEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0T2JqKiwgSlNDOjpUaHJvd1Njb3BlJik7CisKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01l
dGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsKEV4ZWNTdGF0ZSogc3RhdGUpCit7CisgICAg
cmV0dXJuIEJpbmRpbmdDYWxsZXI8SlNUZXN0T2JqPjo6Y2FsbE9wZXJhdGlvbjxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWxDYWxs
ZXI+KHN0YXRlLCAiY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbCIpOworfQor
CitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsQ2FsbGVyKEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSwgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzLCBKU0M6OlRocm93U2NvcGUmIHRo
cm93U2NvcGUpCit7CisgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKKyAgICBVTlVTRURfUEFSQU0o
dGhyb3dTY29wZSk7CisgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKKyAg
ICBhdXRvIG9iakFyZ3NMb25nID0gY29udmVydDxJRExMb25nPigqc3RhdGUsIHN0YXRlLT5hcmd1
bWVudCgwKSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpFbmZvcmNlUmFuZ2UpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Cisg
ICAgaW1wbC5jbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsKFdURk1vdmUob2Jq
QXJnc0xvbmcpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
fQorCiBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2VDYWxsZXIoSlNDOjpFeGVjU3Rh
dGUqLCBKU1Rlc3RPYmoqLCBKU0M6OlRocm93U2NvcGUmKTsKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExv
bmdTZXF1ZW5jZShFeGVjU3RhdGUqIHN0YXRlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCShy
ZXZpc2lvbiAyMTUyNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3QKIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVT
ZXF1ZW5jZU9mVW5pb25zQXJnKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblVuaW9uQXJnKEpT
Qzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXAoSlNDOjpFeGVjU3RhdGUqKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25JbW11dGFibGVQb2ludEZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmlu
Z1NlcXVlbmNlRnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVu
Y2VGdW5jdGlvbjIoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTY3LDYgKzY4LDEwIEBAIGJvb2wgc2V0
SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXQKIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVz
dFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcChKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgc2V0SlNUZXN0
VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXAoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIHNldEpTVGVzdFR5cGVk
ZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdFR5cGVk
ZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKQEAgLTE2OCw2ICsxNzMsOCBAQCBzdGF0
aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0VHlwZWRlCiAgICAgeyAiY29uc3RydWN0b3Ii
LCBEb250RW51bSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlw
ZWRlZnNDb25zdHJ1Y3RvcikgfSB9LAogICAgIHsgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIiwgQ3Vz
dG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0ciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIpIH0gfSwKICAgICB7ICJpbW11dGFi
bGVTZXJpYWxpemVkU2NyaXB0VmFsdWUiLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RU
eXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFR5cGVkZWZzSW1t
dXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKSB9IH0sCisgICAgeyAiYXR0cmlidXRlV2l0aENs
YW1wIiwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXApLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcCkgfSB9LAorICAgIHsgImF0
dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZiIsIEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNBdHRy
aWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYpIH0gfSwKICAgICB7ICJhdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbiIsIEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSB9IH0s
CiAgICAgeyAiYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNB
dHRyV2l0aFNldHRlckV4Y2VwdGlvbikgfSB9LAogICAgIHsgInN0cmluZ0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uIiwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNTdHJpbmdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24pIH0gfSwKQEAgLTE4MSw2ICsxODgsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlVmFsdWUgSlNUZXN0VHlwZWRlCiAgICAgeyAibnVsbGFibGVTZXF1ZW5jZU9mVW5pb25zQXJn
IiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1
ZW5jZU9mVW5pb25zQXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgInVuaW9uQXJnIiwg
SlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uVW5pb25BcmcpLCAoaW50
cHRyX3QpICgxKSB9IH0sCiAgICAgeyAiZnVuY1dpdGhDbGFtcCIsIEpTQzo6RnVuY3Rpb24sIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXApLCAoaW50cHRyX3QpICgxKSB9
IH0sCisgICAgeyAiZnVuY1dpdGhDbGFtcEluVHlwZWRlZiIsIEpTQzo6RnVuY3Rpb24sIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXBJblR5cGVkZWYpLCAoaW50cHRyX3Qp
ICgxKSB9IH0sCiAgICAgeyAiaW1tdXRhYmxlUG9pbnRGdW5jdGlvbiIsIEpTQzo6RnVuY3Rpb24s
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkltbXV0YWJsZVBvaW50RnVuY3Rpb24pLCAoaW50
cHRyX3QpICgwKSB9IH0sCiAgICAgeyAic3RyaW5nU2VxdWVuY2VGdW5jdGlvbiIsIEpTQzo6RnVu
Y3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRnVuY3Rpb24p
LCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAic3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIiLCBK
U0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1
bmN0aW9uMiksIChpbnRwdHJfdCkgKDEpIH0gfSwKQEAgLTI4Miw2ICsyOTAsMzggQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29ucwogICAgIHJldHVybiBKU1Rlc3RTdWJP
Ymo6OmdldENvbnN0cnVjdG9yKHN0YXRlLnZtKCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXBHZXR0ZXIoRXhlY1N0YXRlJiwgSlNUZXN0VHlwZWRlZnMmLCBUaHJvd1Njb3BlJiB0aHJv
d1Njb3BlKTsKKworRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xh
bXAoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCit7CisgICAgcmV0dXJuIEJpbmRpbmdDYWxsZXI8SlNUZXN0VHlwZWRlZnM+OjphdHRyaWJ1
dGU8anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBHZXR0ZXI+KHN0YXRlLCB0aGlzVmFs
dWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXAiKTsKK30KKworc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wR2V0dGVyKEV4ZWNTdGF0ZSYgc3RhdGUsIEpT
VGVzdFR5cGVkZWZzJiB0aGlzT2JqZWN0LCBUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQoreworICAg
IFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUpOworICAg
IGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9
IHRvSlM8SURMVW5zaWduZWRMb25nTG9uZz4oaW1wbC5hdHRyaWJ1dGVXaXRoQ2xhbXAoKSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVk
ZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmR2V0dGVyKEV4ZWNTdGF0ZSYsIEpTVGVzdFR5
cGVkZWZzJiwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSk7CisKK0VuY29kZWRKU1ZhbHVlIGpzVGVz
dFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQoreworICAgIHJldHVybiBCaW5k
aW5nQ2FsbGVyPEpTVGVzdFR5cGVkZWZzPjo6YXR0cmlidXRlPGpzVGVzdFR5cGVkZWZzQXR0cmli
dXRlV2l0aENsYW1wSW5UeXBlZGVmR2V0dGVyPihzdGF0ZSwgdGhpc1ZhbHVlLCAiYXR0cmlidXRl
V2l0aENsYW1wSW5UeXBlZGVmIik7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZkdldHRlcihFeGVjU3RhdGUmIHN0YXRl
LCBKU1Rlc3RUeXBlZGVmcyYgdGhpc09iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK3sK
KyAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7CisgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsK
KyAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7CisgICAgSlNWYWx1ZSByZXN1
bHQgPSB0b0pTPElETExvbmc+KGltcGwuYXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKCkpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBl
ZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uR2V0dGVyKEV4ZWNTdGF0ZSYsIEpTVGVzdFR5cGVk
ZWZzJiwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSk7CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5
cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkBAIC00MDgsNiArNDQ4LDQ0IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0ltbXUKIH0KIAogCitzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBGdW5jdGlvbihFeGVjU3Rh
dGUmLCBKU1Rlc3RUeXBlZGVmcyYsIEpTVmFsdWUsIFRocm93U2NvcGUmKTsKKworYm9vbCBzZXRK
U1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3sKKyAgICBy
ZXR1cm4gQmluZGluZ0NhbGxlcjxKU1Rlc3RUeXBlZGVmcz46OnNldEF0dHJpYnV0ZTxzZXRKU1Rl
c3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEZ1bmN0aW9uPihzdGF0ZSwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXAiKTsKK30KKworc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wRnVuY3Rpb24oRXhlY1N0YXRl
JiBzdGF0ZSwgSlNUZXN0VHlwZWRlZnMmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUsIFRocm93
U2NvcGUmIHRocm93U2NvcGUpCit7CisgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKKyAgICBVTlVT
RURfUEFSQU0odGhyb3dTY29wZSk7CisgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBl
ZCgpOworICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETFVuc2lnbmVkTG9uZ0xvbmc+
KHN0YXRlLCB2YWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpDbGFtcCk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7CisgICAgaW1wbC5zZXRB
dHRyaWJ1dGVXaXRoQ2xhbXAoV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgIHJldHVybiB0cnVl
OworfQorCisKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdp
dGhDbGFtcEluVHlwZWRlZkZ1bmN0aW9uKEV4ZWNTdGF0ZSYsIEpTVGVzdFR5cGVkZWZzJiwgSlNW
YWx1ZSwgVGhyb3dTY29wZSYpOworCitib29sIHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0
aENsYW1wSW5UeXBlZGVmKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQoreworICAgIHJldHVybiBCaW5kaW5nQ2Fs
bGVyPEpTVGVzdFR5cGVkZWZzPjo6c2V0QXR0cmlidXRlPHNldEpTVGVzdFR5cGVkZWZzQXR0cmli
dXRlV2l0aENsYW1wSW5UeXBlZGVmRnVuY3Rpb24+KHN0YXRlLCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgImF0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZiIpOworfQorCitzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZGdW5jdGlv
bihFeGVjU3RhdGUmIHN0YXRlLCBKU1Rlc3RUeXBlZGVmcyYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OworICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICBhdXRvJiBpbXBsID0gdGhpc09i
amVjdC53cmFwcGVkKCk7CisgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMTG9uZz4o
c3RhdGUsIHZhbHVlLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246OkNsYW1wKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTsKKyAgICBpbXBsLnNldEF0
dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZihXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKKwogc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFR5cGVkZWZzQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb25GdW5jdGlvbihFeGVjU3RhdGUmLCBKU1Rlc3RUeXBlZGVmcyYs
IEpTVmFsdWUsIFRocm93U2NvcGUmKTsKIAogYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQpAQCAtNjc2LDYgKzc1NCwyNiBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wSW5UeXBl
ZGVmQ2FsbGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0VHlwZWRlZnMqLCBKU0M6OlRocm93U2Nv
cGUmKTsKKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZihFeGVjU3RhdGUqIHN0YXRlKQorewor
ICAgIHJldHVybiBCaW5kaW5nQ2FsbGVyPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbE9wZXJhdGlvbjxq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZkNhbGxl
cj4oc3RhdGUsICJmdW5jV2l0aENsYW1wSW5UeXBlZGVmIik7Cit9CisKK3N0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dp
dGhDbGFtcEluVHlwZWRlZkNhbGxlcihKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTVGVzdFR5cGVk
ZWZzKiBjYXN0ZWRUaGlzLCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCit7CisgICAgVU5V
U0VEX1BBUkFNKHN0YXRlKTsKKyAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7CisgICAgYXV0
byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKKyAgICBpZiAoVU5MSUtFTFkoc3RhdGUt
PmFyZ3VtZW50Q291bnQoKSA8IDEpKQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKHN0YXRl
LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihzdGF0ZSkpOworICAg
IGF1dG8gYXJnID0gY29udmVydDxJRExMb25nPigqc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1
bWVudCgwKSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpDbGFtcCk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBpbXBs
LmZ1bmNXaXRoQ2xhbXBJblR5cGVkZWYoV1RGTW92ZShhcmcpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCiBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkltbXV0YWJsZVBvaW50RnVu
Y3Rpb25DYWxsZXIoSlNDOjpFeGVjU3RhdGUqLCBKU1Rlc3RUeXBlZGVmcyosIEpTQzo6VGhyb3dT
Y29wZSYpOwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25JbW11dGFibGVQb2ludEZ1bmN0aW9uKEV4ZWNTdGF0ZSogc3RhdGUpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9BZXNDdHJQYXJhbXMuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0Flc0N0clBhcmFt
cy5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0
ZXJzL0Flc0N0clBhcmFtcy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDUgKzM2LDUgQEAKICAg
ICByZXF1aXJlZCBCdWZmZXJTb3VyY2UgY291bnRlcjsKICAgICAvLyBUaGUgbGVuZ3RoLCBpbiBi
aXRzLCBvZiB0aGUgcmlnaHRtb3N0IHBhcnQgb2YgdGhlIGNvdW50ZXIgYmxvY2sKICAgICAvLyB0
aGF0IGlzIGluY3JlbWVudGVkLgotICAgIFtFbmZvcmNlUmFuZ2VdIHJlcXVpcmVkIG9jdGV0IGxl
bmd0aDsKKyAgICByZXF1aXJlZCBbRW5mb3JjZVJhbmdlXSBvY3RldCBsZW5ndGg7CiB9OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQWVzS2V5UGFyYW1zLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9BZXNLZXlQYXJhbXMu
aWRsCShyZXZpc2lvbiAyMTUyNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVy
cy9BZXNLZXlQYXJhbXMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw1ICszMSw1IEBACiAgICAg
SW1wbGVtZW50ZWRBcz1DcnlwdG9BbGdvcml0aG1BZXNLZXlQYXJhbXMKIF0gZGljdGlvbmFyeSBB
ZXNLZXlQYXJhbXMgOiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKICAgICAvLyBUaGUgbGVu
Z3RoLCBpbiBiaXRzLCBvZiB0aGUga2V5LgotICAgIFtFbmZvcmNlUmFuZ2VdIHJlcXVpcmVkIHVu
c2lnbmVkIHNob3J0IGxlbmd0aDsKKyAgICByZXF1aXJlZCBbRW5mb3JjZVJhbmdlXSB1bnNpZ25l
ZCBzaG9ydCBsZW5ndGg7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRl
cnMvUGJrZGYyUGFyYW1zLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
cGFyYW1ldGVycy9QYmtkZjJQYXJhbXMuaWRsCShyZXZpc2lvbiAyMTUyNTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9QYmtkZjJQYXJhbXMuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw2IEBACiAgICAgSW1wbGVtZW50ZWRBcz1DcnlwdG9BbGdvcml0aG1QYmtk
ZjJQYXJhbXMsCiBdIGRpY3Rpb25hcnkgUGJrZGYyUGFyYW1zIDogQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyB7CiAgICAgcmVxdWlyZWQgQnVmZmVyU291cmNlIHNhbHQ7Ci0gICAgW0VuZm9yY2VS
YW5nZV0gcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBpdGVyYXRpb25zOworICAgIHJlcXVpcmVkIFtF
bmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgaXRlcmF0aW9uczsKICAgICByZXF1aXJlZCBhbnkg
aGFzaDsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9Sc2FLZXlH
ZW5QYXJhbXMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0
ZXJzL1JzYUtleUdlblBhcmFtcy5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9wYXJhbWV0ZXJzL1JzYUtleUdlblBhcmFtcy5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDcgKzI4LDcgQEAKICAgICBJbXBsZW1lbnRlZEFzPUNyeXB0b0FsZ29yaXRobVJzYUtl
eUdlblBhcmFtcwogXSBkaWN0aW9uYXJ5IFJzYUtleUdlblBhcmFtcyA6IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMgewogICAgIC8vIFRoZSBsZW5ndGgsIGluIGJpdHMsIG9mIHRoZSBSU0EgbW9k
dWx1cwotICAgIFtFbmZvcmNlUmFuZ2VdIHJlcXVpcmVkIHVuc2lnbmVkIGxvbmcgbW9kdWx1c0xl
bmd0aDsKKyAgICByZXF1aXJlZCBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIG1vZHVsdXNM
ZW5ndGg7CiAgICAgLy8gVGhlIFJTQSBwdWJsaWMgZXhwb25lbnQKICAgICByZXF1aXJlZCBVaW50
OEFycmF5IHB1YmxpY0V4cG9uZW50OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZURlY2xhcmF0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVEZWNsYXJhdGlvbi5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgs
NyBAQAogICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0cmluZyByZW1v
dmVQcm9wZXJ0eShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKICAgICBET01TdHJpbmc/IGdldFBy
b3BlcnR5UHJpb3JpdHkoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CiAKLSAgICBbQ0VSZWFjdGlv
bnMsIE1heVRocm93RXhjZXB0aW9uXSB2b2lkIHNldFByb3BlcnR5KERPTVN0cmluZyBwcm9wZXJ0
eU5hbWUsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHZhbHVlLCBbVHJlYXRO
dWxsQXM9RW1wdHlTdHJpbmddIG9wdGlvbmFsIERPTVN0cmluZyBwcmlvcml0eSA9ICIiKTsKKyAg
ICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSB2b2lkIHNldFByb3BlcnR5KERPTVN0
cmluZyBwcm9wZXJ0eU5hbWUsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHZh
bHVlLCBvcHRpb25hbCBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBwcmlvcml0
eSA9ICIiKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsK
ICAgICBnZXR0ZXIgRE9NU3RyaW5nIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFMaXN0LmlkbAkocmV2aXNpb24gMjE1MjU2KQorKysgU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhTGlzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAogICAgIEpTQ3VzdG9tSGVhZGVyLAogXSBpbnRl
cmZhY2UgTWVkaWFMaXN0IHsKLSAgICBbU2V0dGVyTWF5VGhyb3dFeGNlcHRpb24sIFRyZWF0TnVs
bEFzPUVtcHR5U3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lZGlhVGV4dDsKKyAgICBbU2V0
dGVyTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmdd
IERPTVN0cmluZyBtZWRpYVRleHQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbGVuZ3RoOwogCiAgICAgZ2V0dGVyIERPTVN0cmluZz8gaXRlbSh1bnNpZ25lZCBsb25nIGlu
ZGV4KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5pZGwJKHJldmlzaW9uIDIx
NTI1NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMTgsNyArMTgsNyBAQAogICovCiAKIGludGVyZmFjZSBDaGFyYWN0ZXJEYXRhIDog
Tm9kZSB7Ci0gICAgW0NFUmVhY3Rpb25zLCBUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gYXR0cmli
dXRlIERPTVN0cmluZyBkYXRhOworICAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtUcmVhdE51
bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGRhdGE7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJp
bmc/IHN1YnN0cmluZ0RhdGEodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtOTcsOCArOTcs
OCBAQAogICAgIHNlcXVlbmNlPERPTVN0cmluZz4gZ2V0QXR0cmlidXRlTmFtZXMoKTsKIAogICAg
IEhUTUxDb2xsZWN0aW9uIGdldEVsZW1lbnRzQnlDbGFzc05hbWUoRE9NU3RyaW5nIG5hbWUpOwot
ICAgIFtDRVJlYWN0aW9ucywgVHJlYXROdWxsQXM9RW1wdHlTdHJpbmcsIFNldHRlck1heVRocm93
RXhjZXB0aW9uXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlubmVySFRNTDsKLSAgICBbQ0VSZWFjdGlv
bnMsIFRyZWF0TnVsbEFzPUVtcHR5U3RyaW5nLCBTZXR0ZXJNYXlUaHJvd0V4Y2VwdGlvbl0gYXR0
cmlidXRlIERPTVN0cmluZyBvdXRlckhUTUw7CisgICAgW0NFUmVhY3Rpb25zLCBTZXR0ZXJNYXlU
aHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3Ry
aW5nIGlubmVySFRNTDsKKyAgICBbQ0VSZWFjdGlvbnMsIFNldHRlck1heVRocm93RXhjZXB0aW9u
XSBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgb3V0ZXJIVE1M
OwogCiAgICAgW0NFUmVhY3Rpb25zLCBSZWZsZWN0PWNsYXNzXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGNsYXNzTmFtZTsKICAgICBbUHV0Rm9yd2FyZHM9dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01Ub2tlbkxpc3QgY2xhc3NMaXN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAko
cmV2aXNpb24gMjE1MjU2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNo
YWRvd1Jvb3RNb2RlIG1vZGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgaG9zdDsK
IAotICAgIFtDRVJlYWN0aW9ucywgU2V0dGVyTWF5VGhyb3dFeGNlcHRpb24sIFRyZWF0TnVsbEFz
PUVtcHR5U3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlubmVySFRNTDsKKyAgICBbQ0VSZWFj
dGlvbnMsIFNldHRlck1heVRocm93RXhjZXB0aW9uXSBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPUVt
cHR5U3RyaW5nXSBET01TdHJpbmcgaW5uZXJIVE1MOwogfTsKIAogU2hhZG93Um9vdCBpbXBsZW1l
bnRzIERvY3VtZW50T3JTaGFkb3dSb290OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Qm9keUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJv
ZHlFbGVtZW50LmlkbAkocmV2aXNpb24gMjE1MjU2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQm9keUVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xOSwxMiArMTksMTIgQEAKICAq
LwogCiBpbnRlcmZhY2UgSFRNTEJvZHlFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgIFtSZWZs
ZWN0LCBUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBhTGluazsK
KyAgICBbUmVmbGVjdF0gYXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3Ry
aW5nIGFMaW5rOwogICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGJhY2tncm91bmQ7
Ci0gICAgW1JlZmxlY3QsIFRyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGJnQ29sb3I7Ci0gICAgW1JlZmxlY3QsIFRyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGxpbms7Ci0gICAgW1JlZmxlY3QsIFRyZWF0TnVsbEFzPUVtcHR5U3Ry
aW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHQ7Ci0gICAgW1JlZmxlY3QsIFRyZWF0TnVsbEFz
PUVtcHR5U3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZMaW5rOworICAgIFtSZWZsZWN0XSBh
dHRyaWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgYmdDb2xvcjsKKyAg
ICBbUmVmbGVjdF0gYXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5n
IGxpbms7CisgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmdd
IERPTVN0cmluZyB0ZXh0OworICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPUVt
cHR5U3RyaW5nXSBET01TdHJpbmcgdkxpbms7CiAKICAgICBbTm90RW51bWVyYWJsZSwgV2luZG93
RXZlbnRIYW5kbGVyXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYmx1cjsKICAgICBbTm90RW51
bWVyYWJsZSwgV2luZG93RXZlbnRIYW5kbGVyXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZXJy
b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCShyZXZpc2lvbiAyMTUy
NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDkgKzM4LDkgQEAKICAgICB2b2lkIHJlbGVhc2VFdmVudHMoKTsKIAogICAgIC8v
IERlcHJlY2F0ZWQgYXR0cmlidXRlcy4KLSAgICBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIGF0
dHJpYnV0ZSBET01TdHJpbmcgYmdDb2xvcjsKLSAgICBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmdd
IGF0dHJpYnV0ZSBET01TdHJpbmcgZmdDb2xvcjsKLSAgICBbVHJlYXROdWxsQXM9RW1wdHlTdHJp
bmddIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpbmtDb2xvcjsKLSAgICBbVHJlYXROdWxsQXM9RW1w
dHlTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgbGlua0NvbG9yOwotICAgIFtUcmVhdE51bGxB
cz1FbXB0eVN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyB2bGlua0NvbG9yOworICAgIGF0dHJp
YnV0ZSBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBiZ0NvbG9yOworICAgIGF0
dHJpYnV0ZSBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBmZ0NvbG9yOworICAg
IGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBhbGlua0NvbG9y
OworICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBsaW5r
Q29sb3I7CisgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5n
IHZsaW5rQ29sb3I7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwJKHJl
dmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0zOCw4ICszOCw4IEBACiAgICAgW0NFUmVhY3Rpb25zLCBSZWZsZWN0
XSBhdHRyaWJ1dGUgYm9vbGVhbiBoaWRkZW47CiAgICAgW0NFUmVhY3Rpb25zLCBSZWZsZWN0XSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGFjY2Vzc0tleTsKIAotICAgIFtDRVJlYWN0aW9ucywgU2V0dGVy
TWF5VGhyb3dFeGNlcHRpb24sIFRyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGlubmVyVGV4dDsKLSAgICBbQ0VSZWFjdGlvbnMsIFNldHRlck1heVRocm93RXhjZXB0
aW9uLCBUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBvdXRlclRl
eHQ7CisgICAgW0NFUmVhY3Rpb25zLCBTZXR0ZXJNYXlUaHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRl
IFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGlubmVyVGV4dDsKKyAgICBbQ0VS
ZWFjdGlvbnMsIFNldHRlck1heVRocm93RXhjZXB0aW9uXSBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFz
PUVtcHR5U3RyaW5nXSBET01TdHJpbmcgb3V0ZXJUZXh0OwogCiAgICAgW0NFUmVhY3Rpb25zLCBT
ZXR0ZXJNYXlUaHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIERPTVN0cmluZyBjb250ZW50RWRpdGFi
bGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNDb250ZW50RWRpdGFibGU7CkBA
IC00Nyw3ICs0Nyw3IEBACiAgICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBzcGVs
bGNoZWNrOwogCiAgICAgW0NvbmRpdGlvbmFsPUlPU19BVVRPQ09SUkVDVF9BTkRfQVVUT0NBUElU
QUxJWkVdIGF0dHJpYnV0ZSBib29sZWFuIGF1dG9jb3JyZWN0OwotICAgIFtDb25kaXRpb25hbD1J
T1NfQVVUT0NPUlJFQ1RfQU5EX0FVVE9DQVBJVEFMSVpFLCBUcmVhdE51bGxBcz1FbXB0eVN0cmlu
Z10gYXR0cmlidXRlIERPTVN0cmluZyBhdXRvY2FwaXRhbGl6ZTsKKyAgICBbQ29uZGl0aW9uYWw9
SU9TX0FVVE9DT1JSRUNUX0FORF9BVVRPQ0FQSVRBTElaRV0gYXR0cmlidXRlIFtUcmVhdE51bGxB
cz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGF1dG9jYXBpdGFsaXplOwogCiAgICAgdm9pZCBjbGlj
aygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaWRsCShyZXZp
c2lvbiAyMTUyNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAKICAqLwogCiBpbnRlcmZhY2UgSFRNTEZv
bnRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgIFtSZWZsZWN0LCBUcmVhdE51bGxBcz1FbXB0
eVN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBjb2xvcjsKKyAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGNvbG9yOwogICAgIFtSZWZs
ZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZhY2U7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgc2l6ZTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVs
ZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudC5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDggKzI4LDggQEAgaW50ZXJmYWNl
IEhUTUxGcmFtZUVsZW1lbnQgOiBIVE1MRWxlbWVudAogICAgIFtDaGVja1NlY3VyaXR5Rm9yTm9k
ZV0gcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50IGNvbnRlbnREb2N1bWVudDsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NV2luZG93IGNvbnRlbnRXaW5kb3c7CiAKLSAgICBbUmVmbGVjdCwg
VHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgbWFyZ2luSGVpZ2h0
OwotICAgIFtSZWZsZWN0LCBUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gYXR0cmlidXRlIERPTVN0
cmluZyBtYXJnaW5XaWR0aDsKKyAgICBbUmVmbGVjdF0gYXR0cmlidXRlIFtUcmVhdE51bGxBcz1F
bXB0eVN0cmluZ10gRE9NU3RyaW5nIG1hcmdpbkhlaWdodDsKKyAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIG1hcmdpbldpZHRoOwogCiAg
ICAgW0NoZWNrU2VjdXJpdHlGb3JOb2RlLCBNYXlUaHJvd0V4Y2VwdGlvbl0gRG9jdW1lbnQgZ2V0
U1ZHRG9jdW1lbnQoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElG
cmFtZUVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw4IEBAIGludGVyZmFj
ZSBIVE1MSUZyYW1lRWxlbWVudCA6IEhUTUxFbGVtZW4KICAgICBbUmVmbGVjdF0gYXR0cmlidXRl
IERPTVN0cmluZyBmcmFtZUJvcmRlcjsKICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmlu
ZyBoZWlnaHQ7CiAgICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIFVTVlN0cmluZyBsb25nRGVz
YzsKLSAgICBbUmVmbGVjdCwgVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIGF0dHJpYnV0ZSBET01T
dHJpbmcgbWFyZ2luSGVpZ2h0OwotICAgIFtSZWZsZWN0LCBUcmVhdE51bGxBcz1FbXB0eVN0cmlu
Z10gYXR0cmlidXRlIERPTVN0cmluZyBtYXJnaW5XaWR0aDsKKyAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIG1hcmdpbkhlaWdodDsKKyAg
ICBbUmVmbGVjdF0gYXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5n
IG1hcmdpbldpZHRoOwogICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAK
ICAgICBbUHV0Rm9yd2FyZHM9dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01Ub2tlbkxpc3Qg
c2FuZGJveDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmlkbAko
cmV2aXNpb24gMjE1MjU2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
YWxpZ247CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWx0OwotICAgIFtSZWZs
ZWN0LCBUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBib3JkZXI7
CisgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0
cmluZyBib3JkZXI7CiAgICAgYXR0cmlidXRlIERPTVN0cmluZz8gY3Jvc3NPcmlnaW47CiAgICAg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgaGVpZ2h0OwogICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBoc3BhY2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAKICAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7IC8vIHJlYWRvbmx5IGRyb3BwZWQgYXMgcGFydCBvZiBE
T00gbGV2ZWwgMgogICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZGVmYXVsdFZhbHVlOwogICAgIC8v
IFNlZSB0aGUgZGlzY3Vzc2lvbiBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAwMDg1Ci0gICAgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nLCBTZXR0ZXJNYXlUaHJv
d0V4Y2VwdGlvbl0gYXR0cmlidXRlIERPTVN0cmluZyB2YWx1ZTsKKyAgICBbU2V0dGVyTWF5VGhy
b3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmlu
ZyB2YWx1ZTsKICAgICBbU2V0dGVyTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBEYXRlPyB2
YWx1ZUFzRGF0ZTsKICAgICBbU2V0dGVyTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZG91YmxlIHZhbHVlQXNOdW1iZXI7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsCShyZXZpc2lvbiAyMTUyNTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyAr
MjcsNyBAQAogICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvZGU7CiAgICAgW1Jl
ZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ247CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0
ZSBET01TdHJpbmcgYXJjaGl2ZTsKLSAgICBbUmVmbGVjdCwgVHJlYXROdWxsQXM9RW1wdHlTdHJp
bmddIGF0dHJpYnV0ZSBET01TdHJpbmcgYm9yZGVyOworICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUg
W1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgYm9yZGVyOwogICAgIFtSZWZsZWN0
LCBVUkxdIGF0dHJpYnV0ZSBVU1ZTdHJpbmcgY29kZUJhc2U7CiAgICAgW1JlZmxlY3RdIGF0dHJp
YnV0ZSBET01TdHJpbmcgY29kZVR5cGU7CiAgICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIFVT
VlN0cmluZyBkYXRhOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVu
dC5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1
dEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw4ICsyOSw4IEBAIGludGVyZmFjZSBI
VE1MT3V0cHV0RWxlbWVudCA6IEhUTUxFbGVtZW4KICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERP
TVN0cmluZyBuYW1lOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwot
ICAgIFtDRVJlYWN0aW9ucywgVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIGF0dHJpYnV0ZSBET01T
dHJpbmcgZGVmYXVsdFZhbHVlOwotICAgIFtDRVJlYWN0aW9ucywgVHJlYXROdWxsQXM9RW1wdHlT
dHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7CisgICAgW0NFUmVhY3Rpb25zXSBhdHRy
aWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgZGVmYXVsdFZhbHVlOwor
ICAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9N
U3RyaW5nIHZhbHVlOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlk
YXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlIHZhbGlkaXR5OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5pZGwJKHJldmlz
aW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw3IEBAIGludGVyZmFjZSBIVE1MVGFibGVD
ZWxsRWxlbWVudCA6IEhUTUxFbGUKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBjZWxsSW5k
ZXg7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ247CiAgICAgW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYXhpczsKLSAgICBbUmVmbGVjdCwgVHJlYXROdWxsQXM9
RW1wdHlTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgYmdDb2xvcjsKKyAgICBbUmVmbGVjdF0g
YXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGJnQ29sb3I7CiAg
ICAgW1JlZmxlY3Q9Y2hhcl0gYXR0cmlidXRlIERPTVN0cmluZyBjaDsKICAgICBbUmVmbGVjdD1j
aGFyb2ZmXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoT2ZmOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDEw
ICsyNiwxMCBAQCBpbnRlcmZhY2UgSFRNTFRhYmxlRWxlbWVudCA6IEhUTUxFbGVtZW50CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIHJvd3M7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEhUTUxDb2xsZWN0aW9uIHRCb2RpZXM7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgYWxpZ247Ci0gICAgW1JlZmxlY3QsIFRyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGJnQ29sb3I7CisgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBbVHJl
YXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBiZ0NvbG9yOwogICAgIFtSZWZsZWN0XSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGJvcmRlcjsKLSAgICBbUmVmbGVjdCwgVHJlYXROdWxsQXM9RW1w
dHlTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgY2VsbFBhZGRpbmc7Ci0gICAgW1JlZmxlY3Qs
IFRyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNlbGxTcGFjaW5n
OworICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01T
dHJpbmcgY2VsbFBhZGRpbmc7CisgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9
RW1wdHlTdHJpbmddIERPTVN0cmluZyBjZWxsU3BhY2luZzsKIAogICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGZyYW1lOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZVJvd0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlUm93RWxlbWVudC5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIz
LDcgQEAgaW50ZXJmYWNlIEhUTUxUYWJsZVJvd0VsZW1lbnQgOiBIVE1MRWxlbQogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIHNlY3Rpb25Sb3dJbmRleDsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgSFRNTENvbGxlY3Rpb24gY2VsbHM7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgYWxpZ247Ci0gICAgW1JlZmxlY3QsIFRyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGJnQ29sb3I7CisgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBbVHJlYXROdWxs
QXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBiZ0NvbG9yOwogICAgIFtSZWZsZWN0PWNoYXJdIGF0
dHJpYnV0ZSBET01TdHJpbmcgY2g7CiAgICAgW1JlZmxlY3Q9Y2hhcm9mZl0gYXR0cmlidXRlIERP
TVN0cmluZyBjaE9mZjsKICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB2QWxpZ247
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwJKHJl
dmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgaW50ZXJmYWNlIEhUTUxUZXh0
QXJlYUVsZW1lbnQgOiBIVE1MRWxlbQogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyB0eXBlOwogICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZGVmYXVsdFZhbHVlOwotICAgIFtUcmVh
dE51bGxBcz1FbXB0eVN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyB2YWx1ZTsKKyAgICBhdHRy
aWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgdmFsdWU7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdGV4dExlbmd0aDsKIAogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIHdpbGxWYWxpZGF0ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwJKHJldmlzaW9uIDIxNTI1NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNyBAQAogICAgIHZvaWQgcHJpbnQo
KTsKICAgICB2b2lkIHN0b3AoKTsKIAotICAgIFtDdXN0b21dIERPTVdpbmRvdyBvcGVuKG9wdGlv
bmFsIFVTVlN0cmluZyB1cmwgPSAiYWJvdXQ6YmxhbmsiLCBvcHRpb25hbCBET01TdHJpbmcgdGFy
Z2V0ID0gIl9ibGFuayIsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gb3B0aW9uYWwgRE9NU3Ry
aW5nIGZlYXR1cmVzID0gIiIpOworICAgIFtDdXN0b21dIERPTVdpbmRvdyBvcGVuKG9wdGlvbmFs
IFVTVlN0cmluZyB1cmwgPSAiYWJvdXQ6YmxhbmsiLCBvcHRpb25hbCBET01TdHJpbmcgdGFyZ2V0
ID0gIl9ibGFuayIsIG9wdGlvbmFsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5n
IGZlYXR1cmVzID0gIiIpOwogCiAgICAgW0N1c3RvbV0gYW55IHNob3dNb2RhbERpYWxvZyhET01T
dHJpbmcgdXJsLCBvcHRpb25hbCBhbnkgZGlhbG9nQXJncywgb3B0aW9uYWwgRE9NU3RyaW5nIGZl
YXR1cmVBcmdzKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9UeXBlQ29udmVyc2lv
bnMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvVHlwZUNvbnZlcnNp
b25zLmlkbAkocmV2aXNpb24gMjE1MjU2KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9UeXBl
Q29udmVyc2lvbnMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwyNCArMzEsMjQgQEAgZW51bSBV
bmlvblR5cGUgeyAibm9kZSIsICJzZXF1ZW5jZSIsICJkaQogICAgIEV4cG9ydE1hY3JvPVdFQkNP
UkVfVEVTVFNVUFBPUlRfRVhQT1JULAogXSBpbnRlcmZhY2UgVHlwZUNvbnZlcnNpb25zIHsKICAg
ICBhdHRyaWJ1dGUgbG9uZyB0ZXN0TG9uZzsKLSAgICBbRW5mb3JjZVJhbmdlXSBhdHRyaWJ1dGUg
bG9uZyB0ZXN0RW5mb3JjZVJhbmdlTG9uZzsKKyAgICBhdHRyaWJ1dGUgW0VuZm9yY2VSYW5nZV0g
bG9uZyB0ZXN0RW5mb3JjZVJhbmdlTG9uZzsKICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB0
ZXN0VW5zaWduZWRMb25nOwotICAgIFtFbmZvcmNlUmFuZ2VdIGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIHRlc3RFbmZvcmNlUmFuZ2VVbnNpZ25lZExvbmc7CisgICAgYXR0cmlidXRlIFtFbmZvcmNl
UmFuZ2VdIHVuc2lnbmVkIGxvbmcgdGVzdEVuZm9yY2VSYW5nZVVuc2lnbmVkTG9uZzsKIAogICAg
IGF0dHJpYnV0ZSBsb25nIGxvbmcgdGVzdExvbmdMb25nOwotICAgIFtFbmZvcmNlUmFuZ2VdIGF0
dHJpYnV0ZSBsb25nIGxvbmcgdGVzdEVuZm9yY2VSYW5nZUxvbmdMb25nOworICAgIGF0dHJpYnV0
ZSBbRW5mb3JjZVJhbmdlXSBsb25nIGxvbmcgdGVzdEVuZm9yY2VSYW5nZUxvbmdMb25nOwogICAg
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgdGVzdFVuc2lnbmVkTG9uZ0xvbmc7Ci0gICAg
W0VuZm9yY2VSYW5nZV0gYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyB0ZXN0RW5mb3JjZVJh
bmdlVW5zaWduZWRMb25nTG9uZzsKKyAgICBhdHRyaWJ1dGUgW0VuZm9yY2VSYW5nZV0gdW5zaWdu
ZWQgbG9uZyBsb25nIHRlc3RFbmZvcmNlUmFuZ2VVbnNpZ25lZExvbmdMb25nOwogCiAgICAgYXR0
cmlidXRlIGJ5dGUgdGVzdEJ5dGU7Ci0gICAgW0VuZm9yY2VSYW5nZV0gYXR0cmlidXRlIGJ5dGUg
dGVzdEVuZm9yY2VSYW5nZUJ5dGU7CisgICAgYXR0cmlidXRlIFtFbmZvcmNlUmFuZ2VdIGJ5dGUg
dGVzdEVuZm9yY2VSYW5nZUJ5dGU7CiAgICAgYXR0cmlidXRlIG9jdGV0IHRlc3RPY3RldDsKLSAg
ICBbRW5mb3JjZVJhbmdlXSBhdHRyaWJ1dGUgb2N0ZXQgdGVzdEVuZm9yY2VSYW5nZU9jdGV0Owor
ICAgIGF0dHJpYnV0ZSBbRW5mb3JjZVJhbmdlXSBvY3RldCB0ZXN0RW5mb3JjZVJhbmdlT2N0ZXQ7
CiAKICAgICBhdHRyaWJ1dGUgc2hvcnQgdGVzdFNob3J0OwotICAgIFtFbmZvcmNlUmFuZ2VdIGF0
dHJpYnV0ZSBzaG9ydCB0ZXN0RW5mb3JjZVJhbmdlU2hvcnQ7CisgICAgYXR0cmlidXRlIFtFbmZv
cmNlUmFuZ2VdIHNob3J0IHRlc3RFbmZvcmNlUmFuZ2VTaG9ydDsKICAgICBhdHRyaWJ1dGUgdW5z
aWduZWQgc2hvcnQgdGVzdFVuc2lnbmVkU2hvcnQ7Ci0gICAgW0VuZm9yY2VSYW5nZV0gYXR0cmli
dXRlIHVuc2lnbmVkIHNob3J0IHRlc3RFbmZvcmNlUmFuZ2VVbnNpZ25lZFNob3J0OworICAgIGF0
dHJpYnV0ZSBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBzaG9ydCB0ZXN0RW5mb3JjZVJhbmdlVW5z
aWduZWRTaG9ydDsKIAogICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdGVzdFN0cmluZzsKICAgICBh
dHRyaWJ1dGUgQnl0ZVN0cmluZyB0ZXN0Qnl0ZVN0cmluZzsK
</data>
<flag name="review"
          id="328275"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="328301"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>