<?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>168016</bug_id>
          
          <creation_ts>2017-02-08 12:24:32 -0800</creation_ts>
          <short_desc>[MediaStream] Remove legacy Navigator.webkitGetUserMedia</short_desc>
          <delta_ts>2017-02-09 09:31:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>168034</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>thiago.lacerda</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1274501</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-02-08 12:24:32 -0800</bug_when>
    <thetext>Remove legacy Navigator.webkitGetUserMedia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274509</commentid>
    <comment_count>1</comment_count>
      <attachid>300937</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-02-08 12:45:30 -0800</bug_when>
    <thetext>Created attachment 300937
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274525</commentid>
    <comment_count>2</comment_count>
      <attachid>300945</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-02-08 13:08:46 -0800</bug_when>
    <thetext>Created attachment 300945
Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274551</commentid>
    <comment_count>3</comment_count>
      <attachid>300957</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-02-08 14:02:26 -0800</bug_when>
    <thetext>Created attachment 300957
Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274578</commentid>
    <comment_count>4</comment_count>
      <attachid>300967</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-02-08 14:32:04 -0800</bug_when>
    <thetext>Created attachment 300967
Another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274605</commentid>
    <comment_count>5</comment_count>
      <attachid>300967</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-02-08 15:26:16 -0800</bug_when>
    <thetext>Comment on attachment 300967
Another patch.

The Mac build failures seem to happen when JSNavigator.cpp isn&apos;t regenerated when it should be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274620</commentid>
    <comment_count>6</comment_count>
      <attachid>300967</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-08 15:52:37 -0800</bug_when>
    <thetext>Comment on attachment 300967
Another patch.

Clearing flags on attachment: 300967

Committed r211907: &lt;http://trac.webkit.org/changeset/211907&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274621</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-08 15:52:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274626</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-02-08 15:58:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/30431544&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274634</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-08 16:28:02 -0800</bug_when>
    <thetext>Reverted r211907 for reason:

Broke the build

Committed r211909: &lt;http://trac.webkit.org/changeset/211909&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274638</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-08 16:44:16 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 300967 [details]
&gt; Another patch.
&gt; 
&gt; The Mac build failures seem to happen when JSNavigator.cpp isn&apos;t regenerated
&gt; when it should be.

I would suggest &quot;touching&quot; Navigator.idl in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274639</commentid>
    <comment_count>11</comment_count>
      <attachid>300984</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-02-08 16:54:11 -0800</bug_when>
    <thetext>Created attachment 300984
Another patch.

Touch Navigator.idl to force a rebuild.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274666</commentid>
    <comment_count>12</comment_count>
      <attachid>300984</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-08 17:32:29 -0800</bug_when>
    <thetext>Comment on attachment 300984
Another patch.

Clearing flags on attachment: 300984

Committed r211912: &lt;http://trac.webkit.org/changeset/211912&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274667</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-08 17:32:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274721</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-08 20:29:04 -0800</bug_when>
    <thetext>Is this caused by this change?
https://build.webkit.org/results/Apple%20Sierra%20Release%20WK2%20(Tests)/r211926%20(3412)/http/tests/media/media-stream/disconnected-frame-permission-denied-pretty-diff.html
https://build.webkit.org/results/Apple%20Sierra%20Release%20WK2%20(Tests)/r211926%20(3412)/http/tests/media/media-stream/disconnected-frame-pretty-diff.html
https://build.webkit.org/results/Apple%20Sierra%20Release%20WK2%20(Tests)/r211926%20(3412)/http/tests/media/media-stream/disconnected-frame-already-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274722</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-08 20:30:17 -0800</bug_when>
    <thetext>I would think so</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274731</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-08 20:40:36 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; I would think so

please fix or roll out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274734</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-08 20:47:30 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 168034</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274736</commentid>
    <comment_count>18</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-08 20:47:47 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; I would think so
&gt; 
&gt; please fix or roll out.

OK, let&apos;s roll out for now and reland it tomorrow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274837</commentid>
    <comment_count>19</comment_count>
      <attachid>301036</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-02-09 07:47:40 -0800</bug_when>
    <thetext>Created attachment 301036
One more time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274863</commentid>
    <comment_count>20</comment_count>
      <attachid>301036</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-09 08:31:55 -0800</bug_when>
    <thetext>Comment on attachment 301036
One more time

Rejecting attachment 301036 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;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 301036, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/3048520</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274875</commentid>
    <comment_count>21</comment_count>
      <attachid>301044</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-02-09 08:53:50 -0800</bug_when>
    <thetext>Created attachment 301044
Another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274892</commentid>
    <comment_count>22</comment_count>
      <attachid>301044</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-09 09:31:32 -0800</bug_when>
    <thetext>Comment on attachment 301044
Another patch.

Clearing flags on attachment: 301044

Committed r211962: &lt;http://trac.webkit.org/changeset/211962&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274893</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-09 09:31:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300937</attachid>
            <date>2017-02-08 12:45:30 -0800</date>
            <delta_ts>2017-02-08 13:08:46 -0800</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>remove_navigator_getusermedia_patch_1.txt</filename>
            <type>text/plain</type>
            <size>31265</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE3LTAyLTA4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
UmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGV4aXN0aW5n
IHRlc3RzIHVwZGF0ZWQuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIw
MTctMDItMDYgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01lZGlhU3RyZWFtIE1hY10gUmVtb3ZlIHNvbWUgdW51c2VkIGNvZGUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjExNzYxKQorKysgU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTYzLDcgKzE2Myw2IEBA
IEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFUcmFja0NvbnN0cmFpbnRzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaWRsIFwKLSAgICAk
KFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVy
cm9yRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29u
ZmlndXJhdGlvbi5pZGwgXApAQCAtMTM0NCw3ICsxMzQzLDYgQEAgV2ViQ29yZV9CVUlMVElOU19T
T1VSQ0VTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuanMg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmpzIFwKICAgICAk
e1dlYkNvcmV9L01vZHVsZXMvZmV0Y2gvV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5qcyBcCi0gICAg
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcyBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmpzIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25JbnRl
cm5hbHMuanMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1
aW5nU3RyYXRlZ3kuanMgXApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbAkocmV2aXNpb24gMjExNzYx
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVk
aWEuaWRsCShub25leGlzdGVudCkKQEAgLTEsMjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi1bCi0gICAgQ29uZGl0aW9u
YWw9TUVESUFfU1RSRUFNLAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9TWVkaWFTdHJlYW0sCi1dIHBh
cnRpYWwgaW50ZXJmYWNlIE5hdmlnYXRvciB7Ci0gICAgW0pTQnVpbHRpbl0gdm9pZCB3ZWJraXRH
ZXRVc2VyTWVkaWEoTWVkaWFTdHJlYW1Db25zdHJhaW50cyBjb25zdHJhaW50cywgTmF2aWdhdG9y
VXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgTmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKLX07CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5q
cwkocmV2aXNpb24gMjExNzYxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9OYXZpZ2F0b3JVc2VyTWVkaWEuanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLy8gQGNvbmRpdGlvbmFsPUVOQUJMRShNRURJQV9TVFJF
QU0pCi0KLWZ1bmN0aW9uIHdlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBzdWNjZXNzQ2FsbGJh
Y2ssIGVycm9yQ2FsbGJhY2spCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgLy8gRklYTUU6
IFdlIHNob3VsZCByYWlzZSBhIERPTSB1bnN1cHBvcnRlZCBleGNlcHRpb24gaWYgdGhlcmUgaXMg
bm8gbmF2aWdhdG9yIGFuZCBwcm9wZXJseSBkZXRlY3Qgd2hldGhlciBtZXRob2QgaXMgbm90IGNh
bGxlZCBvbiBhIE5hdmlnYXRvciBvYmplY3QuCi0gICAgaWYgKCEodGhpcy5tZWRpYURldmljZXMg
JiYgdGhpcy5tZWRpYURldmljZXMuQGdldFVzZXJNZWRpYSkpCi0gICAgICAgIHRocm93IEBtYWtl
VGhpc1R5cGVFcnJvcigiTmF2aWdhdG9yIiwgIndlYmtpdEdldFVzZXJNZWRpYSIpOwotCi0gICAg
aWYgKGFyZ3VtZW50cy5sZW5ndGggPCAzKQotICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIk5vdCBl
bm91Z2ggYXJndW1lbnRzIik7Ci0KLSAgICBpZiAob3B0aW9ucyAhPT0gQE9iamVjdChvcHRpb25z
KSkKLSAgICAgICAgQHRocm93VHlwZUVycm9yKCJBcmd1bWVudCAxIChvcHRpb25zKSB0byBOYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYW4gb2JqZWN0Iik7Ci0KLSAgICBpZiAo
dHlwZW9mIHN1Y2Nlc3NDYWxsYmFjayAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgQHRocm93VHlw
ZUVycm9yKCJBcmd1bWVudCAyICgnc3VjY2Vzc0NhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKLSAgICBpZiAodHlwZW9mIGVycm9y
Q2FsbGJhY2sgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIEB0aHJvd1R5cGVFcnJvcigiQXJndW1l
bnQgMyAoJ2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11
c3QgYmUgYSBmdW5jdGlvbiIpOwotCi0gICAgdGhpcy5tZWRpYURldmljZXMuQGdldFVzZXJNZWRp
YShvcHRpb25zKS5AdGhlbihzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOwotfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMjExNzYxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC03MTUxLDcgKzcxNTEsNiBAQAogCQkw
NzIyMUI1NzE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tFdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjU4MTdDRUMzMjcwMDg0OEU1
MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFTdHJlYW1UcmFja0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3MjIxQjU5MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tFdmVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MjIxQjVDMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZp
Z2F0b3JVc2VyTWVkaWEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRvclVzZXJN
ZWRpYS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjYzMTdDRUMzMjcw
MDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSVENEYXRhQ2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3MjIxQjY0MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEYXRhQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzIyMUI2NTE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5u
ZWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0RhdGFDaGFubmVsLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4MzAsNyArODgyOSw2IEBACiAJCTQxOUJDMkRDMTY4
NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFZpc2l0ZWRMaW5rU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTlCQzJERDE2ODUzMjk5MDBENjRENkQgLyogVmlzaXRlZExpbmtTdGF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpdGVkTGlua1N0YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUJFNzUyMUJDN0YzREIwMEUxQzg1QiAv
KiBXZWJDb3JlQnVpbHRpbk5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvcmVCdWlsdGluTmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE5
QkU3NUExQkNCRDNFRDAwRTFDODVCIC8qIE5hdmlnYXRvclVzZXJNZWRpYS5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IE5hdmlnYXRvclVzZXJNZWRpYS5qczsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5RkFGQUQxQUJBQkNENTAwNUI4MjhCIC8qIFJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVh
ZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkNGIC8qIFJlYWRhYmxlU3RyZWFtLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxQTAyM0VEMUEzOURCNzkwMEY3MjJERiAvKiBXcml0YWJsZVN0cmVhbS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV3JpdGFibGVTdHJlYW0uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTUyNzcsOCArMTUyNzUsNiBAQAogCQkJCTVFQTcyNUNBMUFDQUJD
QjUwMEVBRDE3QiAvKiBOYXZpZ2F0b3JNZWRpYURldmljZXMuY3BwICovLAogCQkJCTVFQTcyNUNC
MUFDQUJDQjUwMEVBRDE3QiAvKiBOYXZpZ2F0b3JNZWRpYURldmljZXMuaCAqLywKIAkJCQk1RUE3
MjVDQzFBQ0FCQ0I1MDBFQUQxN0IgLyogTmF2aWdhdG9yTWVkaWFEZXZpY2VzLmlkbCAqLywKLQkJ
CQkwNzIyMUI1QzE3Q0VDMzI3MDA4NDhFNTEgLyogTmF2aWdhdG9yVXNlck1lZGlhLmlkbCAqLywK
LQkJCQk0MTlCRTc1QTFCQ0JEM0VEMDBFMUM4NUIgLyogTmF2aWdhdG9yVXNlck1lZGlhLmpzICov
LAogCQkJCTA3MDRBNDA1MUQ2REU5RjEwMDg2RENEQiAvKiBPdmVyY29uc3RyYWluZWRFcnJvci5o
ICovLAogCQkJCTA3MDRBNDAzMUQ2REU5RjEwMDg2RENEQiAvKiBPdmVyY29uc3RyYWluZWRFcnJv
ci5pZGwgKi8sCiAJCQkJMDcyQTcwM0UxRDZFOEY2MjAwREYwQUZDIC8qIE92ZXJjb25zdHJhaW5l
ZEVycm9yRXZlbnQuaCAqLywKSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwkocmV2aXNpb24g
MjExODkyKQorKysgU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEyIEBACisyMDE3LTAyLTA4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUmVtb3ZlIGxlZ2FjeSBOYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFy
YW1ldGVycy5qczoKKwogMjAxNy0wMi0wNyAgRGV2aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0
QGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBncmFkaWVudCBlZGl0b3Igc2hv
dWxkIGFsbG93IHN3aXRjaGluZyB0aGUgdW5pdHMgb2YgdGhlICdhbmdsZScgcGFyYW1ldGVyCklu
ZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVu
Y3Rpb25QYXJhbWV0ZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMJKHJldmlzaW9u
IDIxMTc2MSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9O
YXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTExNjEsMjEgKzEx
NjEsNiBAQCBXZWJJbnNwZWN0b3IuTmF0aXZlUHJvdG90eXBlRnVuY3Rpb25QYXJhCiAgICAgICAg
IF9fcHJvdG9fXzogbnVsbCwKICAgICB9LAogCi0gICAgTmF2aWdhdG9yOiB7Ci0gICAgICAgIHdl
YmtpdEdldFVzZXJNZWRpYTogIm9wdGlvbnMsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFj
ayIsCi0gICAgICAgIF9fcHJvdG9fXzogbnVsbCwKLSAgICB9LAotCi0gICAgTmF2aWdhdG9yVXNl
ck1lZGlhRXJyb3JDYWxsYmFjazogewotICAgICAgICBoYW5kbGVFdmVudDogImVycm9yIiwKLSAg
ICAgICAgX19wcm90b19fOiBudWxsLAotICAgIH0sCi0KLSAgICBOYXZpZ2F0b3JVc2VyTWVkaWFT
dWNjZXNzQ2FsbGJhY2s6IHsKLSAgICAgICAgaGFuZGxlRXZlbnQ6ICJzdHJlYW0iLAotICAgICAg
ICBfX3Byb3RvX186IG51bGwsCi0gICAgfSwKLQogICAgIE5vZGVGaWx0ZXI6IHsKICAgICAgICAg
YWNjZXB0Tm9kZTogIltuXSIsCiAgICAgICAgIF9fcHJvdG9fXzogbnVsbCwKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxMTc2MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI2IEBACisyMDE3LTAyLTA4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjgwMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGUgdmFsaWQgdGVzdHMgdG8gdXNlIG5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhLiBSZW1vdmUgdGVzdHMKKyAgICAgICAgc3BlY2lmaWMgdG8gTmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tQWRkUmVtb3ZlU3RyZWFtLmh0bWw6CisgICAgICAgICogZmFzdC9t
ZWRpYXN0cmVhbS9hcmd1bWVudC10eXBlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRtbDoKKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQuaHRtbDoKKyAgICAgICAg
KiBmYXN0L21lZGlhc3RyZWFtL2VuYWJsZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vZXJyb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldHVz
ZXJtZWRpYS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc2NyaXB0
LXRlc3RzL2FyZ3VtZW50LXR5cGVzLmpzOiBSZW1vdmVkLi4KKyAgICAgICAgKiBmYXN0L21lZGlh
c3RyZWFtL3NjcmlwdC10ZXN0cy9lbmFibGVkLmpzOgorICAgICAgICAoaGFzR2V0VXNlck1lZGlh
UHJvcGVydHkpOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sOgorICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vd2Via2l0R2V0VXNlck1lZGlhLXNoYWRvd2luZy10aGVu
Lmh0bWw6IFJlbW92ZWQuCisKIDIwMTctMDItMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5mQGdt
YWlsLmNvbT4KIAogICAgICAgICBBbGxvdyBzb21lIHNjaGVtZXMgdG8gb3B0LW91dCBvZiBDT1JT
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLUFk
ZFJlbW92ZVN0cmVhbS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tQWRkUmVtb3ZlU3RyZWFtLmh0bWwJKHJldmlzaW9uIDIx
MTc2MSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24t
QWRkUmVtb3ZlU3RyZWFtLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiA8aHRt
bD4KICAgICA8aGVhZD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9n
ZXRVc2VyTWVkaWEtaGVscGVyLmpzIj48L3NjcmlwdD4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHk+
CiAgICAgICAgIDxzY3JpcHQ+CkBAIC0yMCw3ICsyMSw5IEBACiAgICAgICAgICAgICBmdW5jdGlv
biBnZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2spCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaywgZXJyb3IpOworICAgICAgICAgICAgICAg
ICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShkaWN0aW9uYXJ5KQorICAg
ICAgICAgICAgICAgICAgICAgICAgLnRoZW4oY2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAg
ICAgICAuY2F0Y2goZXJyb3IpOwogICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnd2Via2l0R2V0VXNlck1lZGlhIHRocmV3IGV4Y2Vw
dGlvbiA6JyArIGUpOwogICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLmh0bWwJ
KHJldmlzaW9uIDIxMTc2MSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1l
bnQtdHlwZXMuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotICAgIDxoZWFkPgot
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9ib2R5
PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9hcmd1bWVudC10eXBlcy5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHls
ZQojIyAtMSArMCwwICMjCi1MRgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2Vk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVk
LXBlcm1pc3Npb24tYWxsb3dlZC5odG1sCShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTE1LDE3ICsxNSwxOSBAQCBmdW5jdGlvbiBhbGxvd1Blcm1pc3Npb24oKSB7
CiB9CiAKIHZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07Ci1uYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgewotICAgaWYg
KHBlcm1pc3Npb25TZXQpIHsKLSAgICAgICAgdGVzdFBhc3NlZCgnU3VjY2VzcyBjYWxsYmFjayBp
bnZva2VkJyk7CituYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShvcHRpb25zKQor
ICAgIC50aGVuKHN0cmVhbSA9PiB7CisgICAgICAgaWYgKHBlcm1pc3Npb25TZXQpIHsKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCcpOworICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwor
ICAgIH0pCisgICAgLmNhdGNoKGVyciA9PiB7CisgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNh
bGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sg
aW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLX0sIGZ1bmN0aW9uKGUpIHsKLSAgICB0ZXN0RmFpbGVk
KCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwotICAgIGZpbmlzaEpTVGVz
dCgpOwotfSk7CisgICAgfSk7CiAKIHdpbmRvdy5zZXRUaW1lb3V0KGFsbG93UGVybWlzc2lvbiwg
MTAwKTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxh
eWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwJKHJldmlzaW9uIDIx
MTc2MSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9u
LWRlbmllZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxOSArMTYsMTkgQEAgZnVuY3Rpb24g
ZGVueVBlcm1pc3Npb24oKSB7CiAKIHZhciBlcnJvcjsKIHZhciBvcHRpb25zID0ge2F1ZGlvOiB0
cnVlLCB2aWRlbzogdHJ1ZX07Ci1uYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMs
IGZ1bmN0aW9uKHN0cmVhbSkgewotICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52
b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKGUp
IHsKLSAgICBpZiAocGVybWlzc2lvblNldCkgewotICAgICAgICBlcnJvciA9IGU7Ci0gICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXJyb3IubmFtZScsICdOb3RBbGxvd2VkRXJyb3InKTsK
K25hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKG9wdGlvbnMpCisgICAgLnRoZW4o
c3RyZWFtID0+IHsKKyAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2Vk
IHVuZXhwZWN0ZWRseScpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLSAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0
ZWRseScpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7CisgICAgfSkKKyAgICAuY2F0Y2goZXJy
ID0+IHsKKyAgICAgICAgaWYgKHBlcm1pc3Npb25TZXQpIHsKKyAgICAgICAgICAgIGVycm9yID0g
ZXJyOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvci5uYW1lJywgJ05v
dEFsbG93ZWRFcnJvcicpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
J0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH0pOwogCiB3aW5kb3cuc2V0VGltZW91dChkZW55UGVybWlzc2lvbiwgMTAw
KTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbmFibGVk
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L2VuYWJsZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2VuYWJsZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0z
LDEwICszLDEyIEBAIFRlc3RzIHRoYXQgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSAKIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHR5cGVvZiBuYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhID09ICdmdW5jdGlvbicgaXMgdHJ1ZQorUEFTUyB0eXBlb2YgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcyA9PSAnb2JqZWN0JyBpcyB0cnVlCitQQVNTIHR5cGVvZiBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSA9PSAnZnVuY3Rpb24nIGlzIHRydWUKIFBBU1MgaGFz
R2V0VXNlck1lZGlhUHJvcGVydHkoKSBpcyB0cnVlCi1QQVNTICd3ZWJraXRHZXRVc2VyTWVkaWEn
IGluIG5hdmlnYXRvciBpcyB0cnVlCi1QQVNTIG5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0eSgnd2Vi
a2l0R2V0VXNlck1lZGlhJykgaXMgZmFsc2UKK1BBU1MgJ21lZGlhRGV2aWNlcycgaW4gbmF2aWdh
dG9yIGlzIHRydWUKK1BBU1MgJ2dldFVzZXJNZWRpYScgaW4gbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cyBpcyB0cnVlCitQQVNTIG5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0eSgnbWVkaWFEZXZpY2VzJykg
aXMgZmFsc2UKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbAkocmV2aXNpb24g
MjExNzYxKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNSwxNCArMTUsMTYgQEAgZWxzZQogCiB2YXIgZXJyb3I7CiB2YXIgb3B0
aW9ucyA9IHthdWRpbzpmYWxzZSwgdmlkZW86dHJ1ZX07Ci1uYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgewotICAgIHRlc3RGYWlsZWQoJ1N1Y2Nl
c3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsK
LX0sIGZ1bmN0aW9uKGUpIHsKLSAgICBlcnJvciA9IGU7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdlcnJvci5uYW1lJywgJ05vdEFsbG93ZWRFcnJvcicpOwotICAgIGZpbmlzaEpTVGVzdCgp
OwotfSk7CituYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShvcHRpb25zKQorICAg
IC50aGVuKHN0cmVhbSA9PiB7CisgICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sg
aW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSkK
KyAgICAuY2F0Y2goZXJyID0+IHsKKyAgICAgICAgZXJyb3IgPSBlcnI7CisgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygnZXJyb3IubmFtZScsICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEuaHRtbAkocmV2aXNp
b24gMjExNzYxKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEu
aHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDEwNSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
LSAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAg
ICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgd2Via2l0R2V0VXNlck1lZGlhLiIpOwotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGlzR3JhbnRlZCkgewotICAg
ICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGlzR3JhbnRlZCk7Ci0gICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiVGhpcyB0ZXN0IGNhbiBub3Qg
YmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXIiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgdmFyIHN0cmVhbTsKLSAgICAgICAgICAgIHZhciBlcnJvckFyZzsKLQotICAgICAgICAg
ICAgZnVuY3Rpb24gZXJyb3IoKSB7Ci0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnRXJyb3Ig
Y2FsbGJhY2sgY2FsbGVkLicpOwotICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBleHBlY3RlZEVycm9yKCkgewotICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ0Vycm9yIGNhbGxiYWNrIGNhbGxlZC4nKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtSW5FcnJvcihzKSB7Ci0g
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnU3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVu
Y3Rpb24gZ290U3RyZWFtNShzKSB7Ci0gICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwotICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAn
MScpOwotICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBmdW5jdGlvbiBlcnJvcjEoZSkgewotICAgICAgICAgICAgICAgIGVycm9yQXJn
ID0gZTsKLSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdFcnJvciBjYWxsYmFjayBjYWxsZWQu
Jyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvckFyZy5uYW1l
JywgJ092ZXJjb25zdHJhaW5lZEVycm9yJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdlcnJvckFyZy5tZXNzYWdlJywgJ0ludmFsaWQgY29uc3RyYWludCcpOwotCi0g
ICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
e2F1ZGlvOnt2b2x1bWU6e2V4YWN0OjF9fSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTUsIDApOyIp
OwotICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhKHthdWRpbzp7dm9sdW1lOntleGFjdDoxfX0sIHZpZGVvOnRydWV9LCBnb3RTdHJlYW01
LCBlcnJvcik7Iik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0
cmVhbTQocykgewotICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7Ci0gICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgnU3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLSAgICAgICAgICAgICAg
ICBzaG91bGRCZSgnc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLQotICAg
ICAgICAgICAgICAgIHNob3VsZFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHth
dWRpbzp0cnVlLCB2aWRlbzp7d2lkdGg6e2V4YWN0OjExfX19LCBnb3RTdHJlYW1JbkVycm9yLCBu
dWxsKTsiKTsKLSAgICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86e3dpZHRoOntleGFjdDoxMX19fSwgZ290
U3RyZWFtSW5FcnJvciwgZXJyb3IxKTsiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ZnVuY3Rpb24gZ290U3RyZWFtMyhzKSB7Ci0gICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwot
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgn
LCAnMScpOwotCi0gICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEoe2F1ZGlvOnt9LCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtNCwgbnVsbCk7Iik7
Ci0gICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2Vy
TWVkaWEoe2F1ZGlvOnt9LCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtNCwgZXJyb3IpOyIpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBnb3RTdHJlYW0yKHMpIHsKLSAgICAg
ICAgICAgICAgICBzdHJlYW0gPSBzOwotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0cmVh
bSBnZW5lcmF0ZWQuJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRBdWRp
b1RyYWNrcygpLmxlbmd0aCcsICcwJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVh
bS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Ci0KLSAgICAgICAgICAgICAgICBzaG91
bGRUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86
dHJ1ZX0sIGdvdFN0cmVhbTMsIG51bGwpOyIpOwotICAgICAgICAgICAgICAgIHNob3VsZE5vdFRo
cm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVl
fSwgZ290U3RyZWFtMywgZXJyb3IpOyIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBm
dW5jdGlvbiBnb3RTdHJlYW0xKHMpIHsKLSAgICAgICAgICAgICAgICBzdHJlYW0gPSBzOwotICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7Ci0gICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Ci0g
ICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcs
ICcwJyk7Ci0KLSAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygibmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSh7dmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTIsIG51bGwpOyIpCi0gICAgICAgICAg
ICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVv
OnRydWV9LCBnb3RTdHJlYW0yLCBlcnJvcik7IikKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOmZh
bHNlLCB2aWRlbzpmYWxzZX0sIGVycm9yLCBleHBlY3RlZEVycm9yKTsiKQotICAgICAgICAgICAg
c2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2
aWRlbzpmYWxzZX0sIGVycm9yLCBudWxsKTsiKQotCi0gICAgICAgICAgICBzZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uKHRydWUpOwotICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9LCBnb3RTdHJlYW0xLCBlcnJvcik7Iik7Ci0K
LSAgICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLSAgICAgICAgICAgIHdp
bmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotICAgICAgICA8L3NjcmlwdD4KLSAgICAg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotICAgIDwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vc3VjY2Vzcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vc3VjY2Vzcy5odG1sCShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsMTIgKzE0LDE0IEBA
IGVsc2UKICAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRl
c3RSdW5uZXInKTsKIAogdmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsK
LW5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7
Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19LCBmdW5jdGlvbihlKSB7Ci0gICAgdGVzdEZhaWxlZCgn
RXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3Qo
KTsKLX0pOworbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9ucykKKyAg
ICAudGhlbihzdHJlYW0gPT4geworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KQorICAg
IC5jYXRjaChlcnIgPT4geworICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZv
a2VkIHVuZXhwZWN0ZWRseScpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKIDwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS93ZWJr
aXRHZXRVc2VyTWVkaWEtc2hhZG93aW5nLXRoZW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL3dlYmtpdEdldFVzZXJNZWRpYS1zaGFkb3dpbmctdGhlbi5o
dG1sCShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3dl
YmtpdEdldFVzZXJNZWRpYS1zaGFkb3dpbmctdGhlbi5odG1sCShub25leGlzdGVudCkKQEAgLTEs
NDQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPHRpdGxlPlNoYWRvd2luZyB0aGVuKCk8L3Rp
dGxlPgotPC9oZWFkPgotPGJvZHk+Ci08IS0tCi1UaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUg
aW1wbGVtZW50YXRpb24gb2YgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBkb2VzIG5vdCB1
c2UgcHVibGljIHByb21pc2UgQVBJcy4KLS0tPgotPHAgaWQ9Im91dHB1dCI+PC9wPgotPHNjcmlw
dD4KLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIGVuZFRlc3QodGVzdFN0YXR1cykgewotICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgib3V0cHV0IikudGV4dENvbnRlbnQgPSB0ZXN0U3RhdHVzOwotICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9Ci0KLSAgICAvLyBTaGFkb3cgUHJvbWlzZS5w
cm90b3R5cGUudGhlbgotICAgIFByb21pc2UucHJvdG90eXBlLnRoZW4gPSAoZnVuY3Rpb24gKCkg
ewotICAgICAgICBjb25zdCByZWFsVGhlbiA9IFByb21pc2UucHJvdG90eXBlLnRoZW47Ci0gICAg
ICAgIHJldHVybiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBlbmRUZXN0KCJGQUlMOiBFeGVj
dXRlZCBzaGFkb3dlZCwgcHVibGljIC50aGVuKCkiKTsKLSAgICAgICAgfQotICAgIH0pKCk7Ci0K
LSAgICBmdW5jdGlvbiBnb3RVc2VyTWVkaWEobWVkaWFTdHJlYW0pIHsKLSAgICAgICAgZW5kVGVz
dCgiRkFJTDogR290IHVzZXIgbWVkaWEiKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB1c2VyTWVk
aWFFcnJvcihlcnJvcikgewotICAgICAgICBlbmRUZXN0KCJQQVNTIik7Ci0gICAgfQotCi0gICAg
dmFyIG9wdGlvbnMgPSB7IGF1ZGlvOiBmYWxzZSwgdmlkZW86IGZhbHNlIH07Ci0gICAgbmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBnb3RVc2VyTWVkaWEsIHVzZXJNZWRpYUVy
cm9yKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9hcmd1bWVudC10
eXBlcy5qcwkocmV2aXNpb24gMjExNzYxKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9zY3JpcHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw3MCAr
MCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdHMgdGhlIGFjY2VwdGFibGUgdHlwZXMgZm9yIGFyZ3Vt
ZW50cyB0byBuYXZpZ2F0b3IuZ2V0VXNlck1lZGlhIG1ldGhvZHMuIik7Ci0KLWZ1bmN0aW9uIHRl
c3QoZXhwcmVzc2lvbiwgZXhwcmVzc2lvblNob3VsZFRocm93LCBleHBlY3RlZEV4Y2VwdGlvbikg
ewotICAgIGlmIChleHByZXNzaW9uU2hvdWxkVGhyb3cpIHsKLSAgICAgICAgaWYgKGV4cGVjdGVk
RXhjZXB0aW9uKQotICAgICAgICAgICAgc2hvdWxkVGhyb3coZXhwcmVzc2lvbiwgJyInICsgZXhw
ZWN0ZWRFeGNlcHRpb24gKyAnIicpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzaG91bGRU
aHJvdyhleHByZXNzaW9uLCAnIlR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMiJyk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgc2hvdWxkTm90VGhyb3coZXhwcmVzc2lvbik7Ci0gICAgfQot
fQotCi12YXIgZXJyb3JDYWxsYmFja0Vycm9yID0gbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgMyAo
J2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUg
YSBmdW5jdGlvbiIpCi12YXIgaW52YWxpZERpY3Rpb25hcnlFcnJvciA9IG5ldyBUeXBlRXJyb3Io
J0ZpcnN0IGFyZ3VtZW50IG9mIHdlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgdmFsaWQgRGlj
dGlvbmFyeScpCi12YXIgbm90U3VwcG9ydGVkRXJyb3IgPSBuZXcgRXJyb3IoJ05vdFN1cHBvcnRl
ZEVycm9yOiBET00gRXhjZXB0aW9uIDknKTsKLXZhciBzdWNjZXNzQ2FsbGJhY2tFcnJvciA9IG5l
dyBUeXBlRXJyb3IoIkFyZ3VtZW50IDIgKCdzdWNjZXNzQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbiIpCi12YXIgdHlwZUVycm9yID0g
bmV3IFR5cGVFcnJvcignVHlwZSBlcnJvcicpOwotdmFyIHR5cGVOb3RBbk9iamVjdEVycm9yID0g
bmV3IFR5cGVFcnJvcignTm90IGFuIG9iamVjdC4nKTsKLQotdmFyIGVtcHR5RnVuY3Rpb24gPSBm
dW5jdGlvbigpIHt9OwotCi0vLyBObyBhcmd1bWVudHMKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEoKScsIHRydWUpOwotCi0vLyAxIEFyZ3VtZW50IChOYXZpZ3Rvci53ZWJraXRH
ZXRVc2VyTWVkaWEgcmVxdWlyZXMgYXQgbGVhc3QgMyBhcmd1bWVudHMpLgotdGVzdCgnbmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYSh1bmRlZmluZWQpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKG51bGwpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKHsgfSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEodHJ1ZSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2Vy
TWVkaWEoNDIpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKElu
ZmluaXR5KScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgtSW5m
aW5pdHkpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGVtcHR5
RnVuY3Rpb24pJywgdHJ1ZSk7Ci0KLS8vIDIgQXJndW1lbnRzLgotdGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwot
dGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh1bmRlZmluZWQsIGVtcHR5RnVuY3Rp
b24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG51bGwsIGVt
cHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KHsgfSwgZW1wdHlGdW5jdGlvbiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEodHJ1ZSwgZW1wdHlGdW5jdGlvbiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEoNDIsIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKEluZmluaXR5LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUp
OwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgtSW5maW5pdHksIGVtcHR5RnVu
Y3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGVtcHR5
RnVuY3Rpb24sIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sICJmb29iYXIiKScsIHRydWUpOwotdGVzdCgnbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCB1bmRlZmluZWQpJywgdHJ1
ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIG51
bGwpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzog
dHJ1ZX0sIHt9KScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7
dmlkZW86IHRydWV9LCB0cnVlKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSh7dmlkZW86IHRydWV9LCA0MiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJr
aXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgSW5maW5pdHkpJywgdHJ1ZSk7Ci10ZXN0KCdu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIC1JbmZpbml0eSknLCB0
cnVlKTsKLQotLy8gMyBBcmd1bWVudHMuCi10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHsgfSwgZW1wdHlGdW5jdGlvbiwgZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Ci10ZXN0KCdu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24s
IGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB1bmRlZmluZWQpJywgdHJ1ZSwgZXJy
b3JDYWxsYmFja0Vycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1
ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBlbXB0eUZ1bmN0aW9uLCB1bmRlZmluZWQpJywgdHJ1ZSwg
ZXJyb3JDYWxsYmFja0Vycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
e2F1ZGlvOnRydWV9LCBlbXB0eUZ1bmN0aW9uLCB1bmRlZmluZWQpJywgdHJ1ZSwgZXJyb3JDYWxs
YmFja0Vycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0
cnVlfSwgZW1wdHlGdW5jdGlvbiwgInZpZGVvIiknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJyb3Ip
OwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0
eUZ1bmN0aW9uLCBudWxsKScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvciApOwotdGVzdCgnbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB7
fSknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB0cnVlKScsIHRydWUsIGVy
cm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2
aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIDQyKScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJv
cik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVt
cHR5RnVuY3Rpb24sIEluZmluaXR5KScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0
KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rp
b24sIC1JbmZpbml0eSknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJyb3IpOwotCi13aW5kb3cuanNU
ZXN0SXNBc3luYyA9IGZhbHNlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9z
Y3JpcHQtdGVzdHMvZW5hYmxlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9lbmFibGVkLmpzCShyZXZpc2lvbiAyMTE3NjEpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9lbmFibGVkLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zLDE1ICszLDIyIEBAIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IG5hdmln
YXRvci53ZWJraXQKIGZ1bmN0aW9uIGhhc0dldFVzZXJNZWRpYVByb3BlcnR5KCkKIHsKICAgICBm
b3IgKHZhciBwcm9wZXJ0eSBpbiBuYXZpZ2F0b3IpIHsKLSAgICAgICAgaWYgKHByb3BlcnR5ID09
ICJ3ZWJraXRHZXRVc2VyTWVkaWEiKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IGlmIChwcm9wZXJ0eSA9PSAibWVkaWFEZXZpY2VzIikgeworICAgICAgICAgICAgdmFyIGRldmlj
ZXMgPSBuYXZpZ2F0b3JbcHJvcGVydHldOworICAgICAgICAgICAgZm9yIChwcm9wZXJ0eSBpbiBk
ZXZpY2VzKSB7CisgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5ID09ICJnZXRVc2VyTWVkaWEi
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXNob3VsZEJlVHJ1ZSgidHlwZW9m
IG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEgPT0gJ2Z1bmN0aW9uJyIpOworc2hvdWxkQmVU
cnVlKCJ0eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyA9PSAnb2JqZWN0JyIpOworc2hvdWxk
QmVUcnVlKCJ0eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEgPT0gJ2Z1
bmN0aW9uJyIpOwogc2hvdWxkQmVUcnVlKCJoYXNHZXRVc2VyTWVkaWFQcm9wZXJ0eSgpIik7Ci1z
aG91bGRCZVRydWUoIid3ZWJraXRHZXRVc2VyTWVkaWEnIGluIG5hdmlnYXRvciIpOwotc2hvdWxk
QmVGYWxzZSgibmF2aWdhdG9yLmhhc093blByb3BlcnR5KCd3ZWJraXRHZXRVc2VyTWVkaWEnKSIp
Oworc2hvdWxkQmVUcnVlKCInbWVkaWFEZXZpY2VzJyBpbiBuYXZpZ2F0b3IiKTsKK3Nob3VsZEJl
VHJ1ZSgiJ2dldFVzZXJNZWRpYScgaW4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyIpOworc2hvdWxk
QmVGYWxzZSgibmF2aWdhdG9yLmhhc093blByb3BlcnR5KCdtZWRpYURldmljZXMnKSIpOwogCiB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300945</attachid>
            <date>2017-02-08 13:08:46 -0800</date>
            <delta_ts>2017-02-08 14:02:26 -0800</delta_ts>
            <desc>Updated patch.</desc>
            <filename>remove_navigator_getusermedia_patch_2.txt</filename>
            <type>text/plain</type>
            <size>36614</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE3LTAyLTA4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
UmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGV4aXN0aW5n
IHRlc3RzIHVwZGF0ZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6IE5hdmlnYXRvclVzZXJNZWRpYS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OiBEaXR0by4KKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogRGl0dG8uCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRsOiBSZW1vdmVkLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNy0wMi0w
NiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVk
aWFTdHJlYW0gTWFjXSBSZW1vdmUgc29tZSB1bnVzZWQgY29kZQpJbmRleDogU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQJKHJldmlzaW9uIDIxMTc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0zNjY1LDcgKzM2NjUsNiBAQCBzZXQoV2ViQ29yZV9CVUlMVElO
U19TT1VSQ0VTCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3Qu
anMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuanMKICAg
ICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNjb3BlRmV0Y2guanMK
LSAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRp
YS5qcwogICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uanMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uSW50ZXJuYWxzLmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1z
L0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3kuanMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQkocmV2aXNpb24gMjExNzYxKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTYzLDcgKzE2Myw2IEBAIEpTX0JJTkRJTkdfSURM
UyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0
cmFpbnRzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5pZGwg
XApAQCAtMTM0NCw3ICsxMzQzLDYgQEAgV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VTID0gXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuanMgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmpzIFwKICAgICAke1dlYkNvcmV9L01vZHVs
ZXMvZmV0Y2gvV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5qcyBcCi0gICAgJChXZWJDb3JlKS9Nb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcyBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmpzIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25JbnRlcm5hbHMuanMgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3kuanMg
XApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2Vy
TWVkaWEuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbAkocmV2aXNpb24gMjExNzYxKQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRsCShub25leGlz
dGVudCkKQEAgLTEsMjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi1bCi0gICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFN
LAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9TWVkaWFTdHJlYW0sCi1dIHBhcnRpYWwgaW50ZXJmYWNl
IE5hdmlnYXRvciB7Ci0gICAgW0pTQnVpbHRpbl0gdm9pZCB3ZWJraXRHZXRVc2VyTWVkaWEoTWVk
aWFTdHJlYW1Db25zdHJhaW50cyBjb25zdHJhaW50cywgTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vz
c0NhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFj
ayBlcnJvckNhbGxiYWNrKTsKLX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwkocmV2aXNpb24gMjEx
NzYxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2Vy
TWVkaWEuanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IENhbm9uIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotLy8gQGNvbmRpdGlvbmFsPUVOQUJMRShNRURJQV9TVFJFQU0pCi0KLWZ1bmN0aW9u
IHdlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJh
Y2spCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCByYWlz
ZSBhIERPTSB1bnN1cHBvcnRlZCBleGNlcHRpb24gaWYgdGhlcmUgaXMgbm8gbmF2aWdhdG9yIGFu
ZCBwcm9wZXJseSBkZXRlY3Qgd2hldGhlciBtZXRob2QgaXMgbm90IGNhbGxlZCBvbiBhIE5hdmln
YXRvciBvYmplY3QuCi0gICAgaWYgKCEodGhpcy5tZWRpYURldmljZXMgJiYgdGhpcy5tZWRpYURl
dmljZXMuQGdldFVzZXJNZWRpYSkpCi0gICAgICAgIHRocm93IEBtYWtlVGhpc1R5cGVFcnJvcigi
TmF2aWdhdG9yIiwgIndlYmtpdEdldFVzZXJNZWRpYSIpOwotCi0gICAgaWYgKGFyZ3VtZW50cy5s
ZW5ndGggPCAzKQotICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRz
Iik7Ci0KLSAgICBpZiAob3B0aW9ucyAhPT0gQE9iamVjdChvcHRpb25zKSkKLSAgICAgICAgQHRo
cm93VHlwZUVycm9yKCJBcmd1bWVudCAxIChvcHRpb25zKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhIG11c3QgYmUgYW4gb2JqZWN0Iik7Ci0KLSAgICBpZiAodHlwZW9mIHN1Y2Nlc3ND
YWxsYmFjayAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgQHRocm93VHlwZUVycm9yKCJBcmd1bWVu
dCAyICgnc3VjY2Vzc0NhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBt
dXN0IGJlIGEgZnVuY3Rpb24iKTsKLSAgICBpZiAodHlwZW9mIGVycm9yQ2FsbGJhY2sgIT09ICJm
dW5jdGlvbiIpCi0gICAgICAgIEB0aHJvd1R5cGVFcnJvcigiQXJndW1lbnQgMyAoJ2Vycm9yQ2Fs
bGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlv
biIpOwotCi0gICAgdGhpcy5tZWRpYURldmljZXMuQGdldFVzZXJNZWRpYShvcHRpb25zKS5AdGhl
bihzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOwotfQpJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjEx
NzYxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsOCArMTQ2LDYgQEAKIAkJMDczQjg3NjcxRTQzODVBQzAw
NzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlv
U2FtcGxlQnVmZmVyTGlzdC5oICovOyB9OwogCQkwNzNCODc2ODFFNDM4NUFDMDA3MUMwRUMgLyog
QXVkaW9TYW1wbGVEYXRhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURh
dGFTb3VyY2UuY3BwICovOyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9T
YW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNl
LmggKi87IH07Ci0JCTA3M0JFMzQwMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJN
ZWRpYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzNCRTMzRTE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEuY3BwICovOyB9
OwotCQkwNzNCRTM0MTE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0JFMzNGMTdE
MTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3M0JFMzRFMTdEMTgwQjIwMDJCRDQz
MSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQkFCMTdDRjBBRDQwMDg0OEU1MSAv
KiBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCAqLzsgfTsKIAkJMDczQkUzNEYx
N0QxODE4MzAwMkJENDMxIC8qIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCQTYxN0NGMEFENDAw
ODQ4RTUxIC8qIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwICovOyB9OwogCQkwNzQ0RUNF
RDFFMEM0RTMwMDAwRDA5NDQgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQ0RUNFQzFFMEM0QUU1
MDAwRDA5NDQgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gKi87IH07CkBAIC03MTUx
LDcgKzcxNDksNiBAQAogCQkwNzIyMUI1NzE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1U
cmFja0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlh
U3RyZWFtVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIx
QjU4MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1UcmFja0V2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjU5MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0
cmVhbVRyYWNrRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJh
Y2tFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MjIxQjVDMTdDRUMz
MjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE5hdmlnYXRvclVzZXJNZWRpYS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3MjIxQjYzMTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENEYXRhQ2hhbm5lbC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjY0MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEYXRh
Q2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEYXRhQ2hhbm5l
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIyMUI2NTE3Q0VDMzI3MDA4NDhF
NTEgLyogUlRDRGF0YUNoYW5uZWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0RhdGFD
aGFubmVsLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyNDQsOCArNzI0MSw2
IEBACiAJCTA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBF
QyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1NhbXBsZURhdGFT
b3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDczQkUzM0UxN0QxN0UwMTAw
MkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMDczQkUzM0YxN0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNl
ck1lZGlhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTmF2aWdhdG9yVXNl
ck1lZGlhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDRFQ0VCMUUwQzRBRTUw
MDBEMDk0NCAvKiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzQ0RUNFQzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybVRpbWVSYW5n
ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODgzMCw3ICs4ODI1LDYgQEAK
IAkJNDE5QkMyREMxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaXRlZExpbmtTdGF0ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUJDMkREMTY4NTMyOTkwMEQ2NEQ2RCAvKiBW
aXNpdGVkTGlua1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpc2l0
ZWRMaW5rU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5QkU3NTIxQkM3
RjNEQjAwRTFDODVCIC8qIFdlYkNvcmVCdWlsdGluTmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk0MTlCRTc1QTFCQ0JEM0VEMDBFMUM4NUIgLyogTmF2aWdhdG9yVXNlck1lZGlh
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gTmF2aWdhdG9yVXNl
ck1lZGlhLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlGQUZBRDFBQkFCQ0Q1
MDA1QjgyOEIgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MUEwMjNFRDFBMzlEQjc5MDBGNzIyQ0YgLyogUmVhZGFibGVTdHJl
YW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkRGIC8qIFdyaXRh
YmxlU3RyZWFtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXcml0YWJsZVN0cmVhbS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTI3Nyw4ICsxNTI3MSw2IEBACiAJCQkJ
NUVBNzI1Q0ExQUNBQkNCNTAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2aWNlcy5jcHAgKi8s
CiAJCQkJNUVBNzI1Q0IxQUNBQkNCNTAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2aWNlcy5o
ICovLAogCQkJCTVFQTcyNUNDMUFDQUJDQjUwMEVBRDE3QiAvKiBOYXZpZ2F0b3JNZWRpYURldmlj
ZXMuaWRsICovLAotCQkJCTA3MjIxQjVDMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JVc2Vy
TWVkaWEuaWRsICovLAotCQkJCTQxOUJFNzVBMUJDQkQzRUQwMEUxQzg1QiAvKiBOYXZpZ2F0b3JV
c2VyTWVkaWEuanMgKi8sCiAJCQkJMDcwNEE0MDUxRDZERTlGMTAwODZEQ0RCIC8qIE92ZXJjb25z
dHJhaW5lZEVycm9yLmggKi8sCiAJCQkJMDcwNEE0MDMxRDZERTlGMTAwODZEQ0RCIC8qIE92ZXJj
b25zdHJhaW5lZEVycm9yLmlkbCAqLywKIAkJCQkwNzJBNzAzRTFENkU4RjYyMDBERjBBRkMgLyog
T3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oICovLApAQCAtMTU1MDYsOCArMTU0OTgsNiBAQAog
CQkJCTkzMkNDMEQxMURGRkQ2NjcwMDRDMEY5RiAvKiBKU01lZGlhVHJhY2tDb25zdHJhaW50cy5o
ICovLAogCQkJCTA3ODdDNDY3MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0
ZWRDb25zdHJhaW50cy5jcHAgKi8sCiAJCQkJMDc4N0M0NjgxQkZCREY2RjAwNkRDRDdGIC8qIEpT
TWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggKi8sCi0JCQkJMDczQkUzM0UxN0QxN0Uw
MTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcCAqLywKLQkJCQkwNzNCRTMzRjE3
RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEuaCAqLywKIAkJCQkwNzA0QTQw
OTFENkRGQzY5MDA4NkRDREIgLyogSlNPdmVyY29uc3RyYWluZWRFcnJvci5jcHAgKi8sCiAJCQkJ
MDcwNEE0MEExRDZERkM2OTAwODZEQ0RCIC8qIEpTT3ZlcmNvbnN0cmFpbmVkRXJyb3IuaCAqLywK
IAkJCQkwNzA0QTQxMzFENkYzOUZCMDA4NkRDREIgLyogSlNPdmVyY29uc3RyYWluZWRFcnJvckV2
ZW50LmNwcCAqLywKQEAgLTI2NjgwLDcgKzI2NjcwLDYgQEAKIAkJCQlDNkYwOEZDQTE0MzEwMDBE
MDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEOUMy
QzEwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOUQyNDdGODBENzU3RTM0MDBGREY5NTkgLyogSlNOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICov
LAotCQkJCTA3M0JFMzQxMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDM5QzMxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1
c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxMTVCNzMwOUY4NENENjAwQ0E0RkMxIC8qIEpT
Tm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NTBEOEUwQTkwRTUyMTAwMEZGMjE1
IC8qIEpTTm9kZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMwNDk4LDcgKzMwNDg3LDYg
QEAKIAkJCQlDNkYwOEZDOTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzJDMDBDMTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5v
ZGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlEMjQ3RjcwRDc1N0UzNDAwRkRGOTU5IC8q
IEpTTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTA3M0JFMzQwMTdEMTdFMDEwMDJC
RDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNERD
MEQzNzA5RkVEMDczMDA3QjAyMzUgLyogSlNOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
RDlDMjY0MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTMxNTBFQTYxREE3MjE5MDAwMTk0MDEyIC8qIEpTTm9kZURPTUpJVC5jcHAgaW4gU291
cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwkocmV2aXNpb24gMjExODkyKQor
KysgU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEyIEBACisyMDE3LTAyLTA4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjgwMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5q
czoKKwogMjAxNy0wMi0wNyAgRGV2aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBncmFkaWVudCBlZGl0b3Igc2hvdWxkIGFsbG93
IHN3aXRjaGluZyB0aGUgdW5pdHMgb2YgdGhlICdhbmdsZScgcGFyYW1ldGVyCkluZGV4OiBTb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJh
bWV0ZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMJKHJldmlzaW9uIDIxMTc2MSkK
KysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5j
dGlvblBhcmFtZXRlcnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTExNjEsMjEgKzExNjEsNiBAQCBX
ZWJJbnNwZWN0b3IuTmF0aXZlUHJvdG90eXBlRnVuY3Rpb25QYXJhCiAgICAgICAgIF9fcHJvdG9f
XzogbnVsbCwKICAgICB9LAogCi0gICAgTmF2aWdhdG9yOiB7Ci0gICAgICAgIHdlYmtpdEdldFVz
ZXJNZWRpYTogIm9wdGlvbnMsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjayIsCi0gICAg
ICAgIF9fcHJvdG9fXzogbnVsbCwKLSAgICB9LAotCi0gICAgTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3JDYWxsYmFjazogewotICAgICAgICBoYW5kbGVFdmVudDogImVycm9yIiwKLSAgICAgICAgX19w
cm90b19fOiBudWxsLAotICAgIH0sCi0KLSAgICBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2Fs
bGJhY2s6IHsKLSAgICAgICAgaGFuZGxlRXZlbnQ6ICJzdHJlYW0iLAotICAgICAgICBfX3Byb3Rv
X186IG51bGwsCi0gICAgfSwKLQogICAgIE5vZGVGaWx0ZXI6IHsKICAgICAgICAgYWNjZXB0Tm9k
ZTogIltuXSIsCiAgICAgICAgIF9fcHJvdG9fXzogbnVsbCwKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIx
MTc2MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDI2IEBACisyMDE3LTAyLTA4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjgwMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGUgdmFsaWQgdGVzdHMgdG8gdXNlIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhLiBSZW1vdmUgdGVzdHMKKyAgICAgICAgc3BlY2lmaWMgdG8gTmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24tQWRkUmVtb3ZlU3RyZWFtLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9hcmd1bWVudC10eXBlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlh
c3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L21l
ZGlhc3RyZWFtL2VuYWJsZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vZXJyb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2Fy
Z3VtZW50LXR5cGVzLmpzOiBSZW1vdmVkLi4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3Nj
cmlwdC10ZXN0cy9lbmFibGVkLmpzOgorICAgICAgICAoaGFzR2V0VXNlck1lZGlhUHJvcGVydHkp
OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sOgorICAgICAgICAqIGZh
c3QvbWVkaWFzdHJlYW0vd2Via2l0R2V0VXNlck1lZGlhLXNoYWRvd2luZy10aGVuLmh0bWw6IFJl
bW92ZWQuCisKIDIwMTctMDItMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5mQGdtYWlsLmNvbT4K
IAogICAgICAgICBBbGxvdyBzb21lIHNjaGVtZXMgdG8gb3B0LW91dCBvZiBDT1JTCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLUFkZFJlbW92ZVN0
cmVhbS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24tQWRkUmVtb3ZlU3RyZWFtLmh0bWwJKHJldmlzaW9uIDIxMTc2MSkKKysr
IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tQWRkUmVtb3Zl
U3RyZWFtLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiA8aHRtbD4KICAgICA8
aGVhZD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9nZXRVc2VyTWVk
aWEtaGVscGVyLmpzIj48L3NjcmlwdD4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHk+CiAgICAgICAg
IDxzY3JpcHQ+CkBAIC0yMCw3ICsyMSw5IEBACiAgICAgICAgICAgICBmdW5jdGlvbiBnZXRVc2Vy
TWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2spCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YShkaWN0aW9uYXJ5LCBjYWxsYmFjaywgZXJyb3IpOworICAgICAgICAgICAgICAgICAgICBuYXZp
Z2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShkaWN0aW9uYXJ5KQorICAgICAgICAgICAg
ICAgICAgICAgICAgLnRoZW4oY2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAgICAgICAuY2F0
Y2goZXJyb3IpOwogICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgnd2Via2l0R2V0VXNlck1lZGlhIHRocmV3IGV4Y2VwdGlvbiA6JyAr
IGUpOwogICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLmh0bWwJKHJldmlzaW9u
IDIxMTc2MSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMu
aHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAg
ICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
YXJndW1lbnQtdHlwZXMuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1s
PgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcmd1
bWVudC10eXBlcy5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSAr
MCwwICMjCi1MRgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Np
b24tYWxsb3dlZC5odG1sCShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTE1LDE3ICsxNSwxOSBAQCBmdW5jdGlvbiBhbGxvd1Blcm1pc3Npb24oKSB7CiB9CiAKIHZh
ciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07Ci1uYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgewotICAgaWYgKHBlcm1pc3Np
b25TZXQpIHsKLSAgICAgICAgdGVzdFBhc3NlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkJyk7
CituYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShvcHRpb25zKQorICAgIC50aGVu
KHN0cmVhbSA9PiB7CisgICAgICAgaWYgKHBlcm1pc3Npb25TZXQpIHsKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCcpOworICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdGVzdEZh
aWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgIH0pCisg
ICAgLmNhdGNoKGVyciA9PiB7CisgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGlu
dm9rZWQgdW5leHBlY3RlZGx5Jyk7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1
bmV4cGVjdGVkbHknKTsKLX0sIGZ1bmN0aW9uKGUpIHsKLSAgICB0ZXN0RmFpbGVkKCdFcnJvciBj
YWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7
CisgICAgfSk7CiAKIHdpbmRvdy5zZXRUaW1lb3V0KGFsbG93UGVybWlzc2lvbiwgMTAwKTsKIDwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1p
c3Npb24tZGVuaWVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwJKHJldmlzaW9uIDIxMTc2MSkKKysr
IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxOSArMTYsMTkgQEAgZnVuY3Rpb24gZGVueVBlcm1p
c3Npb24oKSB7CiAKIHZhciBlcnJvcjsKIHZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRl
bzogdHJ1ZX07Ci1uYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9u
KHN0cmVhbSkgewotICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4
cGVjdGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKGUpIHsKLSAgICBp
ZiAocGVybWlzc2lvblNldCkgewotICAgICAgICBlcnJvciA9IGU7Ci0gICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnZXJyb3IubmFtZScsICdOb3RBbGxvd2VkRXJyb3InKTsKK25hdmlnYXRv
ci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKG9wdGlvbnMpCisgICAgLnRoZW4oc3RyZWFtID0+
IHsKKyAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0
ZWRseScpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwot
ICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7CisgICAgfSkKKyAgICAuY2F0Y2goZXJyID0+IHsKKyAg
ICAgICAgaWYgKHBlcm1pc3Npb25TZXQpIHsKKyAgICAgICAgICAgIGVycm9yID0gZXJyOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvci5uYW1lJywgJ05vdEFsbG93ZWRF
cnJvcicpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNh
bGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgIH0pOwogCiB3aW5kb3cuc2V0VGltZW91dChkZW55UGVybWlzc2lvbiwgMTAwKTsKIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbmFibGVkLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2VuYWJsZWQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2VuYWJsZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDEwICszLDEy
IEBAIFRlc3RzIHRoYXQgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSAKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHR5cGVvZiBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhID09ICdmdW5jdGlvbicgaXMgdHJ1ZQorUEFTUyB0eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcyA9PSAnb2JqZWN0JyBpcyB0cnVlCitQQVNTIHR5cGVvZiBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSA9PSAnZnVuY3Rpb24nIGlzIHRydWUKIFBBU1MgaGFzR2V0VXNlck1l
ZGlhUHJvcGVydHkoKSBpcyB0cnVlCi1QQVNTICd3ZWJraXRHZXRVc2VyTWVkaWEnIGluIG5hdmln
YXRvciBpcyB0cnVlCi1QQVNTIG5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0eSgnd2Via2l0R2V0VXNl
ck1lZGlhJykgaXMgZmFsc2UKK1BBU1MgJ21lZGlhRGV2aWNlcycgaW4gbmF2aWdhdG9yIGlzIHRy
dWUKK1BBU1MgJ2dldFVzZXJNZWRpYScgaW4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyBpcyB0cnVl
CitQQVNTIG5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0eSgnbWVkaWFEZXZpY2VzJykgaXMgZmFsc2UK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbAkocmV2aXNpb24gMjExNzYxKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xNSwxNCArMTUsMTYgQEAgZWxzZQogCiB2YXIgZXJyb3I7CiB2YXIgb3B0aW9ucyA9IHth
dWRpbzpmYWxzZSwgdmlkZW86dHJ1ZX07Ci1uYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9w
dGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgewotICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJh
Y2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0
aW9uKGUpIHsKLSAgICBlcnJvciA9IGU7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJv
ci5uYW1lJywgJ05vdEFsbG93ZWRFcnJvcicpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Citu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShvcHRpb25zKQorICAgIC50aGVuKHN0
cmVhbSA9PiB7CisgICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1
bmV4cGVjdGVkbHknKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSkKKyAgICAuY2F0
Y2goZXJyID0+IHsKKyAgICAgICAgZXJyb3IgPSBlcnI7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnZXJyb3IubmFtZScsICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgfSk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEuaHRtbAkocmV2aXNpb24gMjExNzYx
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEuaHRtbAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDEwNSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9oZWFk
PgotICAgIDxib2R5PgotICAgICAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLSAgICAgICAg
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgd2Via2l0R2V0VXNlck1lZGlhLiIpOwotCi0gICAgICAgICAgICBm
dW5jdGlvbiBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGlzR3JhbnRlZCkgewotICAgICAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGlzR3JhbnRlZCk7Ci0gICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdp
dGhvdXQgdGhlIHRlc3RSdW5uZXIiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFy
IHN0cmVhbTsKLSAgICAgICAgICAgIHZhciBlcnJvckFyZzsKLQotICAgICAgICAgICAgZnVuY3Rp
b24gZXJyb3IoKSB7Ci0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sg
Y2FsbGVkLicpOwotICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiBleHBlY3RlZEVycm9yKCkgewotICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoJ0Vycm9yIGNhbGxiYWNrIGNhbGxlZC4nKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtSW5FcnJvcihzKSB7Ci0gICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgnU3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICAgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZ290
U3RyZWFtNShzKSB7Ci0gICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBmdW5jdGlvbiBlcnJvcjEoZSkgewotICAgICAgICAgICAgICAgIGVycm9yQXJnID0gZTsKLSAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdFcnJvciBjYWxsYmFjayBjYWxsZWQuJyk7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvckFyZy5uYW1lJywgJ092ZXJj
b25zdHJhaW5lZEVycm9yJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdlcnJvckFyZy5tZXNzYWdlJywgJ0ludmFsaWQgY29uc3RyYWludCcpOwotCi0gICAgICAgICAg
ICAgICAgc2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnt2
b2x1bWU6e2V4YWN0OjF9fSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTUsIDApOyIpOwotICAgICAg
ICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHth
dWRpbzp7dm9sdW1lOntleGFjdDoxfX0sIHZpZGVvOnRydWV9LCBnb3RTdHJlYW01LCBlcnJvcik7
Iik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTQocykg
ewotICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgnU3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFt
LmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZSgnc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLQotICAgICAgICAgICAg
ICAgIHNob3VsZFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVl
LCB2aWRlbzp7d2lkdGg6e2V4YWN0OjExfX19LCBnb3RTdHJlYW1JbkVycm9yLCBudWxsKTsiKTsK
LSAgICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86e3dpZHRoOntleGFjdDoxMX19fSwgZ290U3RyZWFtSW5F
cnJvciwgZXJyb3IxKTsiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24g
Z290U3RyZWFtMyhzKSB7Ci0gICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwotICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwot
Ci0gICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEoe2F1ZGlvOnt9LCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtNCwgbnVsbCk7Iik7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1
ZGlvOnt9LCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtNCwgZXJyb3IpOyIpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiBnb3RTdHJlYW0yKHMpIHsKLSAgICAgICAgICAgICAg
ICBzdHJlYW0gPSBzOwotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0
ZWQuJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygp
Lmxlbmd0aCcsICcwJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRl
b1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Ci0KLSAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygi
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdv
dFN0cmVhbTMsIG51bGwpOyIpOwotICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3Ry
ZWFtMywgZXJyb3IpOyIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBn
b3RTdHJlYW0xKHMpIHsKLSAgICAgICAgICAgICAgICBzdHJlYW0gPSBzOwotICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Ci0gICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcwJyk7Ci0K
LSAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YSh7dmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTIsIG51bGwpOyIpCi0gICAgICAgICAgICAgICAgc2hv
dWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOnRydWV9LCBn
b3RTdHJlYW0yLCBlcnJvcik7IikKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2hvdWxk
Tm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRl
bzpmYWxzZX0sIGVycm9yLCBleHBlY3RlZEVycm9yKTsiKQotICAgICAgICAgICAgc2hvdWxkVGhy
b3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzpmYWxz
ZX0sIGVycm9yLCBudWxsKTsiKQotCi0gICAgICAgICAgICBzZXRVc2VyTWVkaWFQZXJtaXNzaW9u
KHRydWUpOwotICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEoe2F1ZGlvOnRydWV9LCBnb3RTdHJlYW0xLCBlcnJvcik7Iik7Ci0KLSAgICAgICAg
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLSAgICAgICAgICAgIHdpbmRvdy5zdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotICAgICAgICA8L3NjcmlwdD4KLSAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotICAgIDwv
Ym9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vz
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vz
cy5odG1sCShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3N1Y2Nlc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsMTIgKzE0LDE0IEBAIGVsc2UKICAg
ICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXIn
KTsKIAogdmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsKLW5hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgZmlu
aXNoSlNUZXN0KCk7Ci19LCBmdW5jdGlvbihlKSB7Ci0gICAgdGVzdEZhaWxlZCgnRXJyb3IgY2Fs
bGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwor
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9ucykKKyAgICAudGhlbihz
dHJlYW0gPT4geworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KQorICAgIC5jYXRjaChl
cnIgPT4geworICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhw
ZWN0ZWRseScpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKIDwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS93ZWJraXRHZXRVc2Vy
TWVkaWEtc2hhZG93aW5nLXRoZW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL3dlYmtpdEdldFVzZXJNZWRpYS1zaGFkb3dpbmctdGhlbi5odG1sCShyZXZp
c2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3dlYmtpdEdldFVz
ZXJNZWRpYS1zaGFkb3dpbmctdGhlbi5odG1sCShub25leGlzdGVudCkKQEAgLTEsNDQgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+Ci0gICAgPHRpdGxlPlNoYWRvd2luZyB0aGVuKCk8L3RpdGxlPgotPC9o
ZWFkPgotPGJvZHk+Ci08IS0tCi1UaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgaW1wbGVtZW50
YXRpb24gb2YgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBkb2VzIG5vdCB1c2UgcHVibGlj
IHByb21pc2UgQVBJcy4KLS0tPgotPHAgaWQ9Im91dHB1dCI+PC9wPgotPHNjcmlwdD4KLSAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIGVuZFRlc3QodGVzdFN0YXR1cykgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgib3V0cHV0IikudGV4dENvbnRlbnQgPSB0ZXN0U3RhdHVzOwotICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKLSAgICB9Ci0KLSAgICAvLyBTaGFkb3cgUHJvbWlzZS5wcm90b3R5cGUu
dGhlbgotICAgIFByb21pc2UucHJvdG90eXBlLnRoZW4gPSAoZnVuY3Rpb24gKCkgewotICAgICAg
ICBjb25zdCByZWFsVGhlbiA9IFByb21pc2UucHJvdG90eXBlLnRoZW47Ci0gICAgICAgIHJldHVy
biBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBlbmRUZXN0KCJGQUlMOiBFeGVjdXRlZCBzaGFk
b3dlZCwgcHVibGljIC50aGVuKCkiKTsKLSAgICAgICAgfQotICAgIH0pKCk7Ci0KLSAgICBmdW5j
dGlvbiBnb3RVc2VyTWVkaWEobWVkaWFTdHJlYW0pIHsKLSAgICAgICAgZW5kVGVzdCgiRkFJTDog
R290IHVzZXIgbWVkaWEiKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB1c2VyTWVkaWFFcnJvcihl
cnJvcikgewotICAgICAgICBlbmRUZXN0KCJQQVNTIik7Ci0gICAgfQotCi0gICAgdmFyIG9wdGlv
bnMgPSB7IGF1ZGlvOiBmYWxzZSwgdmlkZW86IGZhbHNlIH07Ci0gICAgbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYShvcHRpb25zLCBnb3RVc2VyTWVkaWEsIHVzZXJNZWRpYUVycm9yKTsKLQot
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3NjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcwko
cmV2aXNpb24gMjExNzYxKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQt
dGVzdHMvYXJndW1lbnQtdHlwZXMuanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw3MCArMCwwIEBACi1k
ZXNjcmlwdGlvbigiVGVzdHMgdGhlIGFjY2VwdGFibGUgdHlwZXMgZm9yIGFyZ3VtZW50cyB0byBu
YXZpZ2F0b3IuZ2V0VXNlck1lZGlhIG1ldGhvZHMuIik7Ci0KLWZ1bmN0aW9uIHRlc3QoZXhwcmVz
c2lvbiwgZXhwcmVzc2lvblNob3VsZFRocm93LCBleHBlY3RlZEV4Y2VwdGlvbikgewotICAgIGlm
IChleHByZXNzaW9uU2hvdWxkVGhyb3cpIHsKLSAgICAgICAgaWYgKGV4cGVjdGVkRXhjZXB0aW9u
KQotICAgICAgICAgICAgc2hvdWxkVGhyb3coZXhwcmVzc2lvbiwgJyInICsgZXhwZWN0ZWRFeGNl
cHRpb24gKyAnIicpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzaG91bGRUaHJvdyhleHBy
ZXNzaW9uLCAnIlR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMiJyk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgc2hvdWxkTm90VGhyb3coZXhwcmVzc2lvbik7Ci0gICAgfQotfQotCi12YXIg
ZXJyb3JDYWxsYmFja0Vycm9yID0gbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgMyAoJ2Vycm9yQ2Fs
bGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlv
biIpCi12YXIgaW52YWxpZERpY3Rpb25hcnlFcnJvciA9IG5ldyBUeXBlRXJyb3IoJ0ZpcnN0IGFy
Z3VtZW50IG9mIHdlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgdmFsaWQgRGljdGlvbmFyeScp
Ci12YXIgbm90U3VwcG9ydGVkRXJyb3IgPSBuZXcgRXJyb3IoJ05vdFN1cHBvcnRlZEVycm9yOiBE
T00gRXhjZXB0aW9uIDknKTsKLXZhciBzdWNjZXNzQ2FsbGJhY2tFcnJvciA9IG5ldyBUeXBlRXJy
b3IoIkFyZ3VtZW50IDIgKCdzdWNjZXNzQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbiIpCi12YXIgdHlwZUVycm9yID0gbmV3IFR5cGVF
cnJvcignVHlwZSBlcnJvcicpOwotdmFyIHR5cGVOb3RBbk9iamVjdEVycm9yID0gbmV3IFR5cGVF
cnJvcignTm90IGFuIG9iamVjdC4nKTsKLQotdmFyIGVtcHR5RnVuY3Rpb24gPSBmdW5jdGlvbigp
IHt9OwotCi0vLyBObyBhcmd1bWVudHMKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEoKScsIHRydWUpOwotCi0vLyAxIEFyZ3VtZW50IChOYXZpZ3Rvci53ZWJraXRHZXRVc2VyTWVk
aWEgcmVxdWlyZXMgYXQgbGVhc3QgMyBhcmd1bWVudHMpLgotdGVzdCgnbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYSh1bmRlZmluZWQpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKG51bGwpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhKHsgfSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
e3ZpZGVvOiB0cnVlfSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEodHJ1ZSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoNDIp
JywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKEluZmluaXR5KScs
IHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgtSW5maW5pdHkpJywg
dHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGVtcHR5RnVuY3Rpb24p
JywgdHJ1ZSk7Ci0KLS8vIDIgQXJndW1lbnRzLgotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh1bmRlZmluZWQsIGVtcHR5RnVuY3Rpb24pJywgdHJ1
ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG51bGwsIGVtcHR5RnVuY3Rp
b24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHsgfSwgZW1w
dHlGdW5jdGlvbiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
dHJ1ZSwgZW1wdHlGdW5jdGlvbiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEoNDIsIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKEluZmluaXR5LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgn
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgtSW5maW5pdHksIGVtcHR5RnVuY3Rpb24pJywg
dHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGVtcHR5RnVuY3Rpb24s
IGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHt2aWRlbzogdHJ1ZX0sICJmb29iYXIiKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCB1bmRlZmluZWQpJywgdHJ1ZSk7Ci10ZXN0
KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIG51bGwpJywgdHJ1
ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIHt9
KScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9LCB0cnVlKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7
dmlkZW86IHRydWV9LCA0MiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2Vy
TWVkaWEoe3ZpZGVvOiB0cnVlfSwgSW5maW5pdHkpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIC1JbmZpbml0eSknLCB0cnVlKTsKLQot
Ly8gMyBBcmd1bWVudHMuCi10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHsgfSwg
ZW1wdHlGdW5jdGlvbiwgZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Ci10ZXN0KCduYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIGVtcHR5RnVu
Y3Rpb24pJywgZmFsc2UpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlk
ZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB1bmRlZmluZWQpJywgdHJ1ZSwgZXJyb3JDYWxsYmFj
a0Vycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUs
IHZpZGVvOnRydWV9LCBlbXB0eUZ1bmN0aW9uLCB1bmRlZmluZWQpJywgdHJ1ZSwgZXJyb3JDYWxs
YmFja0Vycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRy
dWV9LCBlbXB0eUZ1bmN0aW9uLCB1bmRlZmluZWQpJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9y
KTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1w
dHlGdW5jdGlvbiwgInZpZGVvIiknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJyb3IpOwotdGVzdCgn
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9u
LCBudWxsKScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvciApOwotdGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB7fSknLCB0cnVl
LCBlcnJvckNhbGxiYWNrRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB0cnVlKScsIHRydWUsIGVycm9yQ2FsbGJh
Y2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1
ZX0sIGVtcHR5RnVuY3Rpb24sIDQyKScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0
KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rp
b24sIEluZmluaXR5KScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIC1JbmZp
bml0eSknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJyb3IpOwotCi13aW5kb3cuanNUZXN0SXNBc3lu
YyA9IGZhbHNlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVz
dHMvZW5hYmxlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3NjcmlwdC10ZXN0cy9lbmFibGVkLmpzCShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9lbmFibGVkLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0zLDE1ICszLDIyIEBAIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IG5hdmlnYXRvci53ZWJr
aXQKIGZ1bmN0aW9uIGhhc0dldFVzZXJNZWRpYVByb3BlcnR5KCkKIHsKICAgICBmb3IgKHZhciBw
cm9wZXJ0eSBpbiBuYXZpZ2F0b3IpIHsKLSAgICAgICAgaWYgKHByb3BlcnR5ID09ICJ3ZWJraXRH
ZXRVc2VyTWVkaWEiKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChwcm9w
ZXJ0eSA9PSAibWVkaWFEZXZpY2VzIikgeworICAgICAgICAgICAgdmFyIGRldmljZXMgPSBuYXZp
Z2F0b3JbcHJvcGVydHldOworICAgICAgICAgICAgZm9yIChwcm9wZXJ0eSBpbiBkZXZpY2VzKSB7
CisgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5ID09ICJnZXRVc2VyTWVkaWEiKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAg
IH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXNob3VsZEJlVHJ1ZSgidHlwZW9mIG5hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEgPT0gJ2Z1bmN0aW9uJyIpOworc2hvdWxkQmVUcnVlKCJ0eXBl
b2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyA9PSAnb2JqZWN0JyIpOworc2hvdWxkQmVUcnVlKCJ0
eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEgPT0gJ2Z1bmN0aW9uJyIp
Owogc2hvdWxkQmVUcnVlKCJoYXNHZXRVc2VyTWVkaWFQcm9wZXJ0eSgpIik7Ci1zaG91bGRCZVRy
dWUoIid3ZWJraXRHZXRVc2VyTWVkaWEnIGluIG5hdmlnYXRvciIpOwotc2hvdWxkQmVGYWxzZSgi
bmF2aWdhdG9yLmhhc093blByb3BlcnR5KCd3ZWJraXRHZXRVc2VyTWVkaWEnKSIpOworc2hvdWxk
QmVUcnVlKCInbWVkaWFEZXZpY2VzJyBpbiBuYXZpZ2F0b3IiKTsKK3Nob3VsZEJlVHJ1ZSgiJ2dl
dFVzZXJNZWRpYScgaW4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyIpOworc2hvdWxkQmVGYWxzZSgi
bmF2aWdhdG9yLmhhc093blByb3BlcnR5KCdtZWRpYURldmljZXMnKSIpOwogCiB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300957</attachid>
            <date>2017-02-08 14:02:26 -0800</date>
            <delta_ts>2017-02-08 14:32:04 -0800</delta_ts>
            <desc>Updated patch.</desc>
            <filename>remove_navigator_getusermedia_patch_3.txt</filename>
            <type>text/plain</type>
            <size>36614</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE3LTAyLTA4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
UmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGV4aXN0aW5n
IHRlc3RzIHVwZGF0ZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6IE5hdmlnYXRvclVzZXJNZWRpYS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OiBEaXR0by4KKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogRGl0dG8uCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRsOiBSZW1vdmVkLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNy0wMi0w
NiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVk
aWFTdHJlYW0gTWFjXSBSZW1vdmUgc29tZSB1bnVzZWQgY29kZQpJbmRleDogU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQJKHJldmlzaW9uIDIxMTc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0zNjY1LDcgKzM2NjUsNiBAQCBzZXQoV2ViQ29yZV9CVUlMVElO
U19TT1VSQ0VTCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3Qu
anMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuanMKICAg
ICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNjb3BlRmV0Y2guanMK
LSAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRp
YS5qcwogICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uanMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uSW50ZXJuYWxzLmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1z
L0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3kuanMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQkocmV2aXNpb24gMjExNzYxKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTYzLDcgKzE2Myw2IEBAIEpTX0JJTkRJTkdfSURM
UyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0
cmFpbnRzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5pZGwg
XApAQCAtMTM0NCw3ICsxMzQzLDYgQEAgV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VTID0gXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuanMgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmpzIFwKICAgICAke1dlYkNvcmV9L01vZHVs
ZXMvZmV0Y2gvV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5qcyBcCi0gICAgJChXZWJDb3JlKS9Nb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcyBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmpzIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25JbnRlcm5hbHMuanMgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3kuanMg
XApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2Vy
TWVkaWEuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbAkocmV2aXNpb24gMjExNzYxKQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRsCShub25leGlz
dGVudCkKQEAgLTEsMjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi1bCi0gICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFN
LAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9TWVkaWFTdHJlYW0sCi1dIHBhcnRpYWwgaW50ZXJmYWNl
IE5hdmlnYXRvciB7Ci0gICAgW0pTQnVpbHRpbl0gdm9pZCB3ZWJraXRHZXRVc2VyTWVkaWEoTWVk
aWFTdHJlYW1Db25zdHJhaW50cyBjb25zdHJhaW50cywgTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vz
c0NhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFj
ayBlcnJvckNhbGxiYWNrKTsKLX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwkocmV2aXNpb24gMjEx
NzYxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2Vy
TWVkaWEuanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IENhbm9uIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotLy8gQGNvbmRpdGlvbmFsPUVOQUJMRShNRURJQV9TVFJFQU0pCi0KLWZ1bmN0aW9u
IHdlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJh
Y2spCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCByYWlz
ZSBhIERPTSB1bnN1cHBvcnRlZCBleGNlcHRpb24gaWYgdGhlcmUgaXMgbm8gbmF2aWdhdG9yIGFu
ZCBwcm9wZXJseSBkZXRlY3Qgd2hldGhlciBtZXRob2QgaXMgbm90IGNhbGxlZCBvbiBhIE5hdmln
YXRvciBvYmplY3QuCi0gICAgaWYgKCEodGhpcy5tZWRpYURldmljZXMgJiYgdGhpcy5tZWRpYURl
dmljZXMuQGdldFVzZXJNZWRpYSkpCi0gICAgICAgIHRocm93IEBtYWtlVGhpc1R5cGVFcnJvcigi
TmF2aWdhdG9yIiwgIndlYmtpdEdldFVzZXJNZWRpYSIpOwotCi0gICAgaWYgKGFyZ3VtZW50cy5s
ZW5ndGggPCAzKQotICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRz
Iik7Ci0KLSAgICBpZiAob3B0aW9ucyAhPT0gQE9iamVjdChvcHRpb25zKSkKLSAgICAgICAgQHRo
cm93VHlwZUVycm9yKCJBcmd1bWVudCAxIChvcHRpb25zKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhIG11c3QgYmUgYW4gb2JqZWN0Iik7Ci0KLSAgICBpZiAodHlwZW9mIHN1Y2Nlc3ND
YWxsYmFjayAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgQHRocm93VHlwZUVycm9yKCJBcmd1bWVu
dCAyICgnc3VjY2Vzc0NhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBt
dXN0IGJlIGEgZnVuY3Rpb24iKTsKLSAgICBpZiAodHlwZW9mIGVycm9yQ2FsbGJhY2sgIT09ICJm
dW5jdGlvbiIpCi0gICAgICAgIEB0aHJvd1R5cGVFcnJvcigiQXJndW1lbnQgMyAoJ2Vycm9yQ2Fs
bGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlv
biIpOwotCi0gICAgdGhpcy5tZWRpYURldmljZXMuQGdldFVzZXJNZWRpYShvcHRpb25zKS5AdGhl
bihzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOwotfQpJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjEx
NzYxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsOCArMTQ2LDYgQEAKIAkJMDczQjg3NjcxRTQzODVBQzAw
NzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlv
U2FtcGxlQnVmZmVyTGlzdC5oICovOyB9OwogCQkwNzNCODc2ODFFNDM4NUFDMDA3MUMwRUMgLyog
QXVkaW9TYW1wbGVEYXRhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURh
dGFTb3VyY2UuY3BwICovOyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9T
YW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNl
LmggKi87IH07Ci0JCTA3M0JFMzQwMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJN
ZWRpYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzNCRTMzRTE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEuY3BwICovOyB9
OwotCQkwNzNCRTM0MTE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0JFMzNGMTdE
MTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3M0JFMzRFMTdEMTgwQjIwMDJCRDQz
MSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQkFCMTdDRjBBRDQwMDg0OEU1MSAv
KiBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCAqLzsgfTsKIAkJMDczQkUzNEYx
N0QxODE4MzAwMkJENDMxIC8qIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCQTYxN0NGMEFENDAw
ODQ4RTUxIC8qIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwICovOyB9OwogCQkwNzQ0RUNF
RDFFMEM0RTMwMDAwRDA5NDQgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQ0RUNFQzFFMEM0QUU1
MDAwRDA5NDQgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gKi87IH07CkBAIC03MTUx
LDcgKzcxNDksNiBAQAogCQkwNzIyMUI1NzE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1U
cmFja0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlh
U3RyZWFtVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIx
QjU4MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1UcmFja0V2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjU5MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0
cmVhbVRyYWNrRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJh
Y2tFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MjIxQjVDMTdDRUMz
MjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE5hdmlnYXRvclVzZXJNZWRpYS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3MjIxQjYzMTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENEYXRhQ2hhbm5lbC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjY0MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEYXRh
Q2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEYXRhQ2hhbm5l
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIyMUI2NTE3Q0VDMzI3MDA4NDhF
NTEgLyogUlRDRGF0YUNoYW5uZWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0RhdGFD
aGFubmVsLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyNDQsOCArNzI0MSw2
IEBACiAJCTA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBF
QyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1NhbXBsZURhdGFT
b3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDczQkUzM0UxN0QxN0UwMTAw
MkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMDczQkUzM0YxN0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNl
ck1lZGlhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTmF2aWdhdG9yVXNl
ck1lZGlhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDRFQ0VCMUUwQzRBRTUw
MDBEMDk0NCAvKiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzQ0RUNFQzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybVRpbWVSYW5n
ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODgzMCw3ICs4ODI1LDYgQEAK
IAkJNDE5QkMyREMxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaXRlZExpbmtTdGF0ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUJDMkREMTY4NTMyOTkwMEQ2NEQ2RCAvKiBW
aXNpdGVkTGlua1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpc2l0
ZWRMaW5rU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5QkU3NTIxQkM3
RjNEQjAwRTFDODVCIC8qIFdlYkNvcmVCdWlsdGluTmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk0MTlCRTc1QTFCQ0JEM0VEMDBFMUM4NUIgLyogTmF2aWdhdG9yVXNlck1lZGlh
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gTmF2aWdhdG9yVXNl
ck1lZGlhLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlGQUZBRDFBQkFCQ0Q1
MDA1QjgyOEIgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MUEwMjNFRDFBMzlEQjc5MDBGNzIyQ0YgLyogUmVhZGFibGVTdHJl
YW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkRGIC8qIFdyaXRh
YmxlU3RyZWFtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXcml0YWJsZVN0cmVhbS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTI3Nyw4ICsxNTI3MSw2IEBACiAJCQkJ
NUVBNzI1Q0ExQUNBQkNCNTAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2aWNlcy5jcHAgKi8s
CiAJCQkJNUVBNzI1Q0IxQUNBQkNCNTAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2aWNlcy5o
ICovLAogCQkJCTVFQTcyNUNDMUFDQUJDQjUwMEVBRDE3QiAvKiBOYXZpZ2F0b3JNZWRpYURldmlj
ZXMuaWRsICovLAotCQkJCTA3MjIxQjVDMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JVc2Vy
TWVkaWEuaWRsICovLAotCQkJCTQxOUJFNzVBMUJDQkQzRUQwMEUxQzg1QiAvKiBOYXZpZ2F0b3JV
c2VyTWVkaWEuanMgKi8sCiAJCQkJMDcwNEE0MDUxRDZERTlGMTAwODZEQ0RCIC8qIE92ZXJjb25z
dHJhaW5lZEVycm9yLmggKi8sCiAJCQkJMDcwNEE0MDMxRDZERTlGMTAwODZEQ0RCIC8qIE92ZXJj
b25zdHJhaW5lZEVycm9yLmlkbCAqLywKIAkJCQkwNzJBNzAzRTFENkU4RjYyMDBERjBBRkMgLyog
T3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oICovLApAQCAtMTU1MDYsOCArMTU0OTgsNiBAQAog
CQkJCTkzMkNDMEQxMURGRkQ2NjcwMDRDMEY5RiAvKiBKU01lZGlhVHJhY2tDb25zdHJhaW50cy5o
ICovLAogCQkJCTA3ODdDNDY3MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0
ZWRDb25zdHJhaW50cy5jcHAgKi8sCiAJCQkJMDc4N0M0NjgxQkZCREY2RjAwNkRDRDdGIC8qIEpT
TWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggKi8sCi0JCQkJMDczQkUzM0UxN0QxN0Uw
MTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcCAqLywKLQkJCQkwNzNCRTMzRjE3
RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEuaCAqLywKIAkJCQkwNzA0QTQw
OTFENkRGQzY5MDA4NkRDREIgLyogSlNPdmVyY29uc3RyYWluZWRFcnJvci5jcHAgKi8sCiAJCQkJ
MDcwNEE0MEExRDZERkM2OTAwODZEQ0RCIC8qIEpTT3ZlcmNvbnN0cmFpbmVkRXJyb3IuaCAqLywK
IAkJCQkwNzA0QTQxMzFENkYzOUZCMDA4NkRDREIgLyogSlNPdmVyY29uc3RyYWluZWRFcnJvckV2
ZW50LmNwcCAqLywKQEAgLTI2NjgwLDcgKzI2NjcwLDYgQEAKIAkJCQlDNkYwOEZDQTE0MzEwMDBE
MDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEOUMy
QzEwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOUQyNDdGODBENzU3RTM0MDBGREY5NTkgLyogSlNOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICov
LAotCQkJCTA3M0JFMzQxMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDM5QzMxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1
c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxMTVCNzMwOUY4NENENjAwQ0E0RkMxIC8qIEpT
Tm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NTBEOEUwQTkwRTUyMTAwMEZGMjE1
IC8qIEpTTm9kZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMwNDk4LDcgKzMwNDg3LDYg
QEAKIAkJCQlDNkYwOEZDOTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzJDMDBDMTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5v
ZGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlEMjQ3RjcwRDc1N0UzNDAwRkRGOTU5IC8q
IEpTTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTA3M0JFMzQwMTdEMTdFMDEwMDJC
RDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNERD
MEQzNzA5RkVEMDczMDA3QjAyMzUgLyogSlNOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
RDlDMjY0MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTMxNTBFQTYxREE3MjE5MDAwMTk0MDEyIC8qIEpTTm9kZURPTUpJVC5jcHAgaW4gU291
cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwkocmV2aXNpb24gMjExODkyKQor
KysgU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEyIEBACisyMDE3LTAyLTA4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjgwMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5q
czoKKwogMjAxNy0wMi0wNyAgRGV2aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBncmFkaWVudCBlZGl0b3Igc2hvdWxkIGFsbG93
IHN3aXRjaGluZyB0aGUgdW5pdHMgb2YgdGhlICdhbmdsZScgcGFyYW1ldGVyCkluZGV4OiBTb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJh
bWV0ZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMJKHJldmlzaW9uIDIxMTc2MSkK
KysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5j
dGlvblBhcmFtZXRlcnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTExNjEsMjEgKzExNjEsNiBAQCBX
ZWJJbnNwZWN0b3IuTmF0aXZlUHJvdG90eXBlRnVuY3Rpb25QYXJhCiAgICAgICAgIF9fcHJvdG9f
XzogbnVsbCwKICAgICB9LAogCi0gICAgTmF2aWdhdG9yOiB7Ci0gICAgICAgIHdlYmtpdEdldFVz
ZXJNZWRpYTogIm9wdGlvbnMsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjayIsCi0gICAg
ICAgIF9fcHJvdG9fXzogbnVsbCwKLSAgICB9LAotCi0gICAgTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3JDYWxsYmFjazogewotICAgICAgICBoYW5kbGVFdmVudDogImVycm9yIiwKLSAgICAgICAgX19w
cm90b19fOiBudWxsLAotICAgIH0sCi0KLSAgICBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2Fs
bGJhY2s6IHsKLSAgICAgICAgaGFuZGxlRXZlbnQ6ICJzdHJlYW0iLAotICAgICAgICBfX3Byb3Rv
X186IG51bGwsCi0gICAgfSwKLQogICAgIE5vZGVGaWx0ZXI6IHsKICAgICAgICAgYWNjZXB0Tm9k
ZTogIltuXSIsCiAgICAgICAgIF9fcHJvdG9fXzogbnVsbCwKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIx
MTc2MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDI2IEBACisyMDE3LTAyLTA4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjgwMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGUgdmFsaWQgdGVzdHMgdG8gdXNlIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhLiBSZW1vdmUgdGVzdHMKKyAgICAgICAgc3BlY2lmaWMgdG8gTmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24tQWRkUmVtb3ZlU3RyZWFtLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9hcmd1bWVudC10eXBlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlh
c3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L21l
ZGlhc3RyZWFtL2VuYWJsZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vZXJyb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2Fy
Z3VtZW50LXR5cGVzLmpzOiBSZW1vdmVkLi4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3Nj
cmlwdC10ZXN0cy9lbmFibGVkLmpzOgorICAgICAgICAoaGFzR2V0VXNlck1lZGlhUHJvcGVydHkp
OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sOgorICAgICAgICAqIGZh
c3QvbWVkaWFzdHJlYW0vd2Via2l0R2V0VXNlck1lZGlhLXNoYWRvd2luZy10aGVuLmh0bWw6IFJl
bW92ZWQuCisKIDIwMTctMDItMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5mQGdtYWlsLmNvbT4K
IAogICAgICAgICBBbGxvdyBzb21lIHNjaGVtZXMgdG8gb3B0LW91dCBvZiBDT1JTCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLUFkZFJlbW92ZVN0
cmVhbS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24tQWRkUmVtb3ZlU3RyZWFtLmh0bWwJKHJldmlzaW9uIDIxMTc2MSkKKysr
IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tQWRkUmVtb3Zl
U3RyZWFtLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiA8aHRtbD4KICAgICA8
aGVhZD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9nZXRVc2VyTWVk
aWEtaGVscGVyLmpzIj48L3NjcmlwdD4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHk+CiAgICAgICAg
IDxzY3JpcHQ+CkBAIC0yMCw3ICsyMSw5IEBACiAgICAgICAgICAgICBmdW5jdGlvbiBnZXRVc2Vy
TWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2spCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YShkaWN0aW9uYXJ5LCBjYWxsYmFjaywgZXJyb3IpOworICAgICAgICAgICAgICAgICAgICBuYXZp
Z2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShkaWN0aW9uYXJ5KQorICAgICAgICAgICAg
ICAgICAgICAgICAgLnRoZW4oY2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAgICAgICAuY2F0
Y2goZXJyb3IpOwogICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgnd2Via2l0R2V0VXNlck1lZGlhIHRocmV3IGV4Y2VwdGlvbiA6JyAr
IGUpOwogICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLmh0bWwJKHJldmlzaW9u
IDIxMTc2MSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMu
aHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAg
ICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
YXJndW1lbnQtdHlwZXMuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1s
PgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcmd1
bWVudC10eXBlcy5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSAr
MCwwICMjCi1MRgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Np
b24tYWxsb3dlZC5odG1sCShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTE1LDE3ICsxNSwxOSBAQCBmdW5jdGlvbiBhbGxvd1Blcm1pc3Npb24oKSB7CiB9CiAKIHZh
ciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07Ci1uYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgewotICAgaWYgKHBlcm1pc3Np
b25TZXQpIHsKLSAgICAgICAgdGVzdFBhc3NlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkJyk7
CituYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShvcHRpb25zKQorICAgIC50aGVu
KHN0cmVhbSA9PiB7CisgICAgICAgaWYgKHBlcm1pc3Npb25TZXQpIHsKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCcpOworICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdGVzdEZh
aWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgIH0pCisg
ICAgLmNhdGNoKGVyciA9PiB7CisgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGlu
dm9rZWQgdW5leHBlY3RlZGx5Jyk7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1
bmV4cGVjdGVkbHknKTsKLX0sIGZ1bmN0aW9uKGUpIHsKLSAgICB0ZXN0RmFpbGVkKCdFcnJvciBj
YWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7
CisgICAgfSk7CiAKIHdpbmRvdy5zZXRUaW1lb3V0KGFsbG93UGVybWlzc2lvbiwgMTAwKTsKIDwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1p
c3Npb24tZGVuaWVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwJKHJldmlzaW9uIDIxMTc2MSkKKysr
IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxOSArMTYsMTkgQEAgZnVuY3Rpb24gZGVueVBlcm1p
c3Npb24oKSB7CiAKIHZhciBlcnJvcjsKIHZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRl
bzogdHJ1ZX07Ci1uYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9u
KHN0cmVhbSkgewotICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4
cGVjdGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKGUpIHsKLSAgICBp
ZiAocGVybWlzc2lvblNldCkgewotICAgICAgICBlcnJvciA9IGU7Ci0gICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnZXJyb3IubmFtZScsICdOb3RBbGxvd2VkRXJyb3InKTsKK25hdmlnYXRv
ci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKG9wdGlvbnMpCisgICAgLnRoZW4oc3RyZWFtID0+
IHsKKyAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0
ZWRseScpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwot
ICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7CisgICAgfSkKKyAgICAuY2F0Y2goZXJyID0+IHsKKyAg
ICAgICAgaWYgKHBlcm1pc3Npb25TZXQpIHsKKyAgICAgICAgICAgIGVycm9yID0gZXJyOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvci5uYW1lJywgJ05vdEFsbG93ZWRF
cnJvcicpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNh
bGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgIH0pOwogCiB3aW5kb3cuc2V0VGltZW91dChkZW55UGVybWlzc2lvbiwgMTAwKTsKIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbmFibGVkLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2VuYWJsZWQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2VuYWJsZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDEwICszLDEy
IEBAIFRlc3RzIHRoYXQgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSAKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHR5cGVvZiBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhID09ICdmdW5jdGlvbicgaXMgdHJ1ZQorUEFTUyB0eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcyA9PSAnb2JqZWN0JyBpcyB0cnVlCitQQVNTIHR5cGVvZiBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSA9PSAnZnVuY3Rpb24nIGlzIHRydWUKIFBBU1MgaGFzR2V0VXNlck1l
ZGlhUHJvcGVydHkoKSBpcyB0cnVlCi1QQVNTICd3ZWJraXRHZXRVc2VyTWVkaWEnIGluIG5hdmln
YXRvciBpcyB0cnVlCi1QQVNTIG5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0eSgnd2Via2l0R2V0VXNl
ck1lZGlhJykgaXMgZmFsc2UKK1BBU1MgJ21lZGlhRGV2aWNlcycgaW4gbmF2aWdhdG9yIGlzIHRy
dWUKK1BBU1MgJ2dldFVzZXJNZWRpYScgaW4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyBpcyB0cnVl
CitQQVNTIG5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0eSgnbWVkaWFEZXZpY2VzJykgaXMgZmFsc2UK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbAkocmV2aXNpb24gMjExNzYxKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xNSwxNCArMTUsMTYgQEAgZWxzZQogCiB2YXIgZXJyb3I7CiB2YXIgb3B0aW9ucyA9IHth
dWRpbzpmYWxzZSwgdmlkZW86dHJ1ZX07Ci1uYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9w
dGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgewotICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJh
Y2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0
aW9uKGUpIHsKLSAgICBlcnJvciA9IGU7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJv
ci5uYW1lJywgJ05vdEFsbG93ZWRFcnJvcicpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Citu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShvcHRpb25zKQorICAgIC50aGVuKHN0
cmVhbSA9PiB7CisgICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1
bmV4cGVjdGVkbHknKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSkKKyAgICAuY2F0
Y2goZXJyID0+IHsKKyAgICAgICAgZXJyb3IgPSBlcnI7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnZXJyb3IubmFtZScsICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgfSk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEuaHRtbAkocmV2aXNpb24gMjExNzYx
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEuaHRtbAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDEwNSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9oZWFk
PgotICAgIDxib2R5PgotICAgICAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLSAgICAgICAg
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgd2Via2l0R2V0VXNlck1lZGlhLiIpOwotCi0gICAgICAgICAgICBm
dW5jdGlvbiBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGlzR3JhbnRlZCkgewotICAgICAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGlzR3JhbnRlZCk7Ci0gICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdp
dGhvdXQgdGhlIHRlc3RSdW5uZXIiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFy
IHN0cmVhbTsKLSAgICAgICAgICAgIHZhciBlcnJvckFyZzsKLQotICAgICAgICAgICAgZnVuY3Rp
b24gZXJyb3IoKSB7Ci0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sg
Y2FsbGVkLicpOwotICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiBleHBlY3RlZEVycm9yKCkgewotICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoJ0Vycm9yIGNhbGxiYWNrIGNhbGxlZC4nKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtSW5FcnJvcihzKSB7Ci0gICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgnU3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICAgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZ290
U3RyZWFtNShzKSB7Ci0gICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBmdW5jdGlvbiBlcnJvcjEoZSkgewotICAgICAgICAgICAgICAgIGVycm9yQXJnID0gZTsKLSAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdFcnJvciBjYWxsYmFjayBjYWxsZWQuJyk7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvckFyZy5uYW1lJywgJ092ZXJj
b25zdHJhaW5lZEVycm9yJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdlcnJvckFyZy5tZXNzYWdlJywgJ0ludmFsaWQgY29uc3RyYWludCcpOwotCi0gICAgICAgICAg
ICAgICAgc2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnt2
b2x1bWU6e2V4YWN0OjF9fSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTUsIDApOyIpOwotICAgICAg
ICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHth
dWRpbzp7dm9sdW1lOntleGFjdDoxfX0sIHZpZGVvOnRydWV9LCBnb3RTdHJlYW01LCBlcnJvcik7
Iik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTQocykg
ewotICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgnU3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFt
LmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZSgnc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLQotICAgICAgICAgICAg
ICAgIHNob3VsZFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVl
LCB2aWRlbzp7d2lkdGg6e2V4YWN0OjExfX19LCBnb3RTdHJlYW1JbkVycm9yLCBudWxsKTsiKTsK
LSAgICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86e3dpZHRoOntleGFjdDoxMX19fSwgZ290U3RyZWFtSW5F
cnJvciwgZXJyb3IxKTsiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24g
Z290U3RyZWFtMyhzKSB7Ci0gICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwotICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwot
Ci0gICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEoe2F1ZGlvOnt9LCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtNCwgbnVsbCk7Iik7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1
ZGlvOnt9LCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtNCwgZXJyb3IpOyIpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiBnb3RTdHJlYW0yKHMpIHsKLSAgICAgICAgICAgICAg
ICBzdHJlYW0gPSBzOwotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0
ZWQuJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygp
Lmxlbmd0aCcsICcwJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRl
b1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Ci0KLSAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygi
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdv
dFN0cmVhbTMsIG51bGwpOyIpOwotICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3Ry
ZWFtMywgZXJyb3IpOyIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBn
b3RTdHJlYW0xKHMpIHsKLSAgICAgICAgICAgICAgICBzdHJlYW0gPSBzOwotICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Ci0gICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcwJyk7Ci0K
LSAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YSh7dmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTIsIG51bGwpOyIpCi0gICAgICAgICAgICAgICAgc2hv
dWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOnRydWV9LCBn
b3RTdHJlYW0yLCBlcnJvcik7IikKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2hvdWxk
Tm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRl
bzpmYWxzZX0sIGVycm9yLCBleHBlY3RlZEVycm9yKTsiKQotICAgICAgICAgICAgc2hvdWxkVGhy
b3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzpmYWxz
ZX0sIGVycm9yLCBudWxsKTsiKQotCi0gICAgICAgICAgICBzZXRVc2VyTWVkaWFQZXJtaXNzaW9u
KHRydWUpOwotICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEoe2F1ZGlvOnRydWV9LCBnb3RTdHJlYW0xLCBlcnJvcik7Iik7Ci0KLSAgICAgICAg
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLSAgICAgICAgICAgIHdpbmRvdy5zdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotICAgICAgICA8L3NjcmlwdD4KLSAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotICAgIDwv
Ym9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vz
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vz
cy5odG1sCShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3N1Y2Nlc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsMTIgKzE0LDE0IEBAIGVsc2UKICAg
ICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXIn
KTsKIAogdmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsKLW5hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgZmlu
aXNoSlNUZXN0KCk7Ci19LCBmdW5jdGlvbihlKSB7Ci0gICAgdGVzdEZhaWxlZCgnRXJyb3IgY2Fs
bGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwor
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9ucykKKyAgICAudGhlbihz
dHJlYW0gPT4geworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KQorICAgIC5jYXRjaChl
cnIgPT4geworICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhw
ZWN0ZWRseScpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKIDwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS93ZWJraXRHZXRVc2Vy
TWVkaWEtc2hhZG93aW5nLXRoZW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL3dlYmtpdEdldFVzZXJNZWRpYS1zaGFkb3dpbmctdGhlbi5odG1sCShyZXZp
c2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3dlYmtpdEdldFVz
ZXJNZWRpYS1zaGFkb3dpbmctdGhlbi5odG1sCShub25leGlzdGVudCkKQEAgLTEsNDQgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+Ci0gICAgPHRpdGxlPlNoYWRvd2luZyB0aGVuKCk8L3RpdGxlPgotPC9o
ZWFkPgotPGJvZHk+Ci08IS0tCi1UaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgaW1wbGVtZW50
YXRpb24gb2YgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBkb2VzIG5vdCB1c2UgcHVibGlj
IHByb21pc2UgQVBJcy4KLS0tPgotPHAgaWQ9Im91dHB1dCI+PC9wPgotPHNjcmlwdD4KLSAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIGVuZFRlc3QodGVzdFN0YXR1cykgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgib3V0cHV0IikudGV4dENvbnRlbnQgPSB0ZXN0U3RhdHVzOwotICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKLSAgICB9Ci0KLSAgICAvLyBTaGFkb3cgUHJvbWlzZS5wcm90b3R5cGUu
dGhlbgotICAgIFByb21pc2UucHJvdG90eXBlLnRoZW4gPSAoZnVuY3Rpb24gKCkgewotICAgICAg
ICBjb25zdCByZWFsVGhlbiA9IFByb21pc2UucHJvdG90eXBlLnRoZW47Ci0gICAgICAgIHJldHVy
biBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBlbmRUZXN0KCJGQUlMOiBFeGVjdXRlZCBzaGFk
b3dlZCwgcHVibGljIC50aGVuKCkiKTsKLSAgICAgICAgfQotICAgIH0pKCk7Ci0KLSAgICBmdW5j
dGlvbiBnb3RVc2VyTWVkaWEobWVkaWFTdHJlYW0pIHsKLSAgICAgICAgZW5kVGVzdCgiRkFJTDog
R290IHVzZXIgbWVkaWEiKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB1c2VyTWVkaWFFcnJvcihl
cnJvcikgewotICAgICAgICBlbmRUZXN0KCJQQVNTIik7Ci0gICAgfQotCi0gICAgdmFyIG9wdGlv
bnMgPSB7IGF1ZGlvOiBmYWxzZSwgdmlkZW86IGZhbHNlIH07Ci0gICAgbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYShvcHRpb25zLCBnb3RVc2VyTWVkaWEsIHVzZXJNZWRpYUVycm9yKTsKLQot
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3NjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcwko
cmV2aXNpb24gMjExNzYxKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQt
dGVzdHMvYXJndW1lbnQtdHlwZXMuanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw3MCArMCwwIEBACi1k
ZXNjcmlwdGlvbigiVGVzdHMgdGhlIGFjY2VwdGFibGUgdHlwZXMgZm9yIGFyZ3VtZW50cyB0byBu
YXZpZ2F0b3IuZ2V0VXNlck1lZGlhIG1ldGhvZHMuIik7Ci0KLWZ1bmN0aW9uIHRlc3QoZXhwcmVz
c2lvbiwgZXhwcmVzc2lvblNob3VsZFRocm93LCBleHBlY3RlZEV4Y2VwdGlvbikgewotICAgIGlm
IChleHByZXNzaW9uU2hvdWxkVGhyb3cpIHsKLSAgICAgICAgaWYgKGV4cGVjdGVkRXhjZXB0aW9u
KQotICAgICAgICAgICAgc2hvdWxkVGhyb3coZXhwcmVzc2lvbiwgJyInICsgZXhwZWN0ZWRFeGNl
cHRpb24gKyAnIicpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzaG91bGRUaHJvdyhleHBy
ZXNzaW9uLCAnIlR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMiJyk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgc2hvdWxkTm90VGhyb3coZXhwcmVzc2lvbik7Ci0gICAgfQotfQotCi12YXIg
ZXJyb3JDYWxsYmFja0Vycm9yID0gbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgMyAoJ2Vycm9yQ2Fs
bGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlv
biIpCi12YXIgaW52YWxpZERpY3Rpb25hcnlFcnJvciA9IG5ldyBUeXBlRXJyb3IoJ0ZpcnN0IGFy
Z3VtZW50IG9mIHdlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgdmFsaWQgRGljdGlvbmFyeScp
Ci12YXIgbm90U3VwcG9ydGVkRXJyb3IgPSBuZXcgRXJyb3IoJ05vdFN1cHBvcnRlZEVycm9yOiBE
T00gRXhjZXB0aW9uIDknKTsKLXZhciBzdWNjZXNzQ2FsbGJhY2tFcnJvciA9IG5ldyBUeXBlRXJy
b3IoIkFyZ3VtZW50IDIgKCdzdWNjZXNzQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbiIpCi12YXIgdHlwZUVycm9yID0gbmV3IFR5cGVF
cnJvcignVHlwZSBlcnJvcicpOwotdmFyIHR5cGVOb3RBbk9iamVjdEVycm9yID0gbmV3IFR5cGVF
cnJvcignTm90IGFuIG9iamVjdC4nKTsKLQotdmFyIGVtcHR5RnVuY3Rpb24gPSBmdW5jdGlvbigp
IHt9OwotCi0vLyBObyBhcmd1bWVudHMKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEoKScsIHRydWUpOwotCi0vLyAxIEFyZ3VtZW50IChOYXZpZ3Rvci53ZWJraXRHZXRVc2VyTWVk
aWEgcmVxdWlyZXMgYXQgbGVhc3QgMyBhcmd1bWVudHMpLgotdGVzdCgnbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYSh1bmRlZmluZWQpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKG51bGwpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhKHsgfSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
e3ZpZGVvOiB0cnVlfSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEodHJ1ZSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoNDIp
JywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKEluZmluaXR5KScs
IHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgtSW5maW5pdHkpJywg
dHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGVtcHR5RnVuY3Rpb24p
JywgdHJ1ZSk7Ci0KLS8vIDIgQXJndW1lbnRzLgotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh1bmRlZmluZWQsIGVtcHR5RnVuY3Rpb24pJywgdHJ1
ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG51bGwsIGVtcHR5RnVuY3Rp
b24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHsgfSwgZW1w
dHlGdW5jdGlvbiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
dHJ1ZSwgZW1wdHlGdW5jdGlvbiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEoNDIsIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKEluZmluaXR5LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgn
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgtSW5maW5pdHksIGVtcHR5RnVuY3Rpb24pJywg
dHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGVtcHR5RnVuY3Rpb24s
IGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHt2aWRlbzogdHJ1ZX0sICJmb29iYXIiKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCB1bmRlZmluZWQpJywgdHJ1ZSk7Ci10ZXN0
KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIG51bGwpJywgdHJ1
ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIHt9
KScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9LCB0cnVlKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7
dmlkZW86IHRydWV9LCA0MiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2Vy
TWVkaWEoe3ZpZGVvOiB0cnVlfSwgSW5maW5pdHkpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIC1JbmZpbml0eSknLCB0cnVlKTsKLQot
Ly8gMyBBcmd1bWVudHMuCi10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHsgfSwg
ZW1wdHlGdW5jdGlvbiwgZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Ci10ZXN0KCduYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIGVtcHR5RnVu
Y3Rpb24pJywgZmFsc2UpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlk
ZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB1bmRlZmluZWQpJywgdHJ1ZSwgZXJyb3JDYWxsYmFj
a0Vycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUs
IHZpZGVvOnRydWV9LCBlbXB0eUZ1bmN0aW9uLCB1bmRlZmluZWQpJywgdHJ1ZSwgZXJyb3JDYWxs
YmFja0Vycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRy
dWV9LCBlbXB0eUZ1bmN0aW9uLCB1bmRlZmluZWQpJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9y
KTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1w
dHlGdW5jdGlvbiwgInZpZGVvIiknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJyb3IpOwotdGVzdCgn
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9u
LCBudWxsKScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvciApOwotdGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB7fSknLCB0cnVl
LCBlcnJvckNhbGxiYWNrRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB0cnVlKScsIHRydWUsIGVycm9yQ2FsbGJh
Y2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1
ZX0sIGVtcHR5RnVuY3Rpb24sIDQyKScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0
KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rp
b24sIEluZmluaXR5KScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIC1JbmZp
bml0eSknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJyb3IpOwotCi13aW5kb3cuanNUZXN0SXNBc3lu
YyA9IGZhbHNlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVz
dHMvZW5hYmxlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3NjcmlwdC10ZXN0cy9lbmFibGVkLmpzCShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9lbmFibGVkLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0zLDE1ICszLDIyIEBAIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IG5hdmlnYXRvci53ZWJr
aXQKIGZ1bmN0aW9uIGhhc0dldFVzZXJNZWRpYVByb3BlcnR5KCkKIHsKICAgICBmb3IgKHZhciBw
cm9wZXJ0eSBpbiBuYXZpZ2F0b3IpIHsKLSAgICAgICAgaWYgKHByb3BlcnR5ID09ICJ3ZWJraXRH
ZXRVc2VyTWVkaWEiKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChwcm9w
ZXJ0eSA9PSAibWVkaWFEZXZpY2VzIikgeworICAgICAgICAgICAgdmFyIGRldmljZXMgPSBuYXZp
Z2F0b3JbcHJvcGVydHldOworICAgICAgICAgICAgZm9yIChwcm9wZXJ0eSBpbiBkZXZpY2VzKSB7
CisgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5ID09ICJnZXRVc2VyTWVkaWEiKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAg
IH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXNob3VsZEJlVHJ1ZSgidHlwZW9mIG5hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEgPT0gJ2Z1bmN0aW9uJyIpOworc2hvdWxkQmVUcnVlKCJ0eXBl
b2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyA9PSAnb2JqZWN0JyIpOworc2hvdWxkQmVUcnVlKCJ0
eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEgPT0gJ2Z1bmN0aW9uJyIp
Owogc2hvdWxkQmVUcnVlKCJoYXNHZXRVc2VyTWVkaWFQcm9wZXJ0eSgpIik7Ci1zaG91bGRCZVRy
dWUoIid3ZWJraXRHZXRVc2VyTWVkaWEnIGluIG5hdmlnYXRvciIpOwotc2hvdWxkQmVGYWxzZSgi
bmF2aWdhdG9yLmhhc093blByb3BlcnR5KCd3ZWJraXRHZXRVc2VyTWVkaWEnKSIpOworc2hvdWxk
QmVUcnVlKCInbWVkaWFEZXZpY2VzJyBpbiBuYXZpZ2F0b3IiKTsKK3Nob3VsZEJlVHJ1ZSgiJ2dl
dFVzZXJNZWRpYScgaW4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyIpOworc2hvdWxkQmVGYWxzZSgi
bmF2aWdhdG9yLmhhc093blByb3BlcnR5KCdtZWRpYURldmljZXMnKSIpOwogCiB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300967</attachid>
            <date>2017-02-08 14:32:04 -0800</date>
            <delta_ts>2017-02-08 16:54:11 -0800</delta_ts>
            <desc>Another patch.</desc>
            <filename>remove_navigator_getusermedia_patch_4.txt</filename>
            <type>text/plain</type>
            <size>37508</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE3LTAyLTA4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
UmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGV4aXN0aW5n
IHRlc3RzIHVwZGF0ZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6IE5hdmlnYXRvclVzZXJNZWRpYS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OiBEaXR0by4KKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogRGl0dG8uCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRsOiBSZW1vdmVkLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNy0wMi0w
NiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVk
aWFTdHJlYW0gTWFjXSBSZW1vdmUgc29tZSB1bnVzZWQgY29kZQpJbmRleDogU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQJKHJldmlzaW9uIDIxMTc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0yMjIsNyArMjIyLDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19J
RExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5p
ZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50
cy5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhRGV2aWNlcy5pZGwK
LSAgICBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5pZGwKICAgICBNb2R1
bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yLmlkbAogICAgIE1vZHVsZXMvbWVk
aWFzdHJlYW0vT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5pZGwKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaWRsCkBAIC0zNjY1LDcgKzM2NjQsNiBAQCBzZXQoV2Vi
Q29yZV9CVUlMVElOU19TT1VSQ0VTCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlcXVlc3QuanMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVz
cG9uc2UuanMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNj
b3BlRmV0Y2guanMKLSAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmln
YXRvclVzZXJNZWRpYS5qcwogICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uanMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uSW50ZXJuYWxzLmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3kuanMKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5jcHAJKHJldmlzaW9uIDIxMTc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUwLDcgKzM1MCw2IEBACiAjaW5j
bHVkZSAiSlNOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwIgogI2luY2x1ZGUgIkpTTmF2aWdhdG9y
R2VvbG9jYXRpb24uY3BwIgogI2luY2x1ZGUgIkpTTmF2aWdhdG9yTWVkaWFEZXZpY2VzLmNwcCIK
LSNpbmNsdWRlICJKU05hdmlnYXRvclVzZXJNZWRpYS5jcHAiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0
b3JWaWJyYXRpb24uY3BwIgogI2luY2x1ZGUgIkpTTm9kZS5jcHAiCiAjaW5jbHVkZSAiSlNOb2Rl
RmlsdGVyLmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24g
MjExNzYxKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBj
b3B5KQpAQCAtMTYzLDcgKzE2Myw2IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJh
aW50cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JN
ZWRpYURldmljZXMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2
aWdhdG9yVXNlck1lZGlhLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L092ZXJjb25zdHJhaW5lZEVycm9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5pZGwgXApAQCAtMTM0NCw3ICsxMzQz
LDYgQEAgV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9mZXRjaC9GZXRjaFJlcXVlc3QuanMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmpzIFwKICAgICAke1dlYkNvcmV9L01vZHVsZXMvZmV0Y2gvV29ya2VyR2xv
YmFsU2NvcGVGZXRjaC5qcyBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05h
dmlnYXRvclVzZXJNZWRpYS5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb25JbnRlcm5hbHMuanMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3kuanMgXApJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1l
ZGlhLmlkbAkocmV2aXNpb24gMjExNzYxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRsCShub25leGlzdGVudCkKQEAgLTEsMjUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqLwotCi1bCi0gICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAotICAgIEVuYWJsZWRBdFJ1
bnRpbWU9TWVkaWFTdHJlYW0sCi1dIHBhcnRpYWwgaW50ZXJmYWNlIE5hdmlnYXRvciB7Ci0gICAg
W0pTQnVpbHRpbl0gdm9pZCB3ZWJraXRHZXRVc2VyTWVkaWEoTWVkaWFTdHJlYW1Db25zdHJhaW50
cyBjb25zdHJhaW50cywgTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrIHN1Y2Nlc3ND
YWxsYmFjaywgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsK
LX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVz
ZXJNZWRpYS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwkocmV2aXNpb24gMjExNzYxKQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuanMJKG5vbmV4aXN0
ZW50KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIElu
Yy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLy8gQGNvbmRp
dGlvbmFsPUVOQUJMRShNRURJQV9TVFJFQU0pCi0KLWZ1bmN0aW9uIHdlYmtpdEdldFVzZXJNZWRp
YShvcHRpb25zLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spCi17Ci0gICAgInVzZSBz
dHJpY3QiOwotCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCByYWlzZSBhIERPTSB1bnN1cHBvcnRl
ZCBleGNlcHRpb24gaWYgdGhlcmUgaXMgbm8gbmF2aWdhdG9yIGFuZCBwcm9wZXJseSBkZXRlY3Qg
d2hldGhlciBtZXRob2QgaXMgbm90IGNhbGxlZCBvbiBhIE5hdmlnYXRvciBvYmplY3QuCi0gICAg
aWYgKCEodGhpcy5tZWRpYURldmljZXMgJiYgdGhpcy5tZWRpYURldmljZXMuQGdldFVzZXJNZWRp
YSkpCi0gICAgICAgIHRocm93IEBtYWtlVGhpc1R5cGVFcnJvcigiTmF2aWdhdG9yIiwgIndlYmtp
dEdldFVzZXJNZWRpYSIpOwotCi0gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAzKQotICAgICAg
ICBAdGhyb3dUeXBlRXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7Ci0KLSAgICBpZiAob3B0
aW9ucyAhPT0gQE9iamVjdChvcHRpb25zKSkKLSAgICAgICAgQHRocm93VHlwZUVycm9yKCJBcmd1
bWVudCAxIChvcHRpb25zKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUg
YW4gb2JqZWN0Iik7Ci0KLSAgICBpZiAodHlwZW9mIHN1Y2Nlc3NDYWxsYmFjayAhPT0gImZ1bmN0
aW9uIikKLSAgICAgICAgQHRocm93VHlwZUVycm9yKCJBcmd1bWVudCAyICgnc3VjY2Vzc0NhbGxi
YWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rpb24i
KTsKLSAgICBpZiAodHlwZW9mIGVycm9yQ2FsbGJhY2sgIT09ICJmdW5jdGlvbiIpCi0gICAgICAg
IEB0aHJvd1R5cGVFcnJvcigiQXJndW1lbnQgMyAoJ2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbiIpOwotCi0gICAgdGhpcy5t
ZWRpYURldmljZXMuQGdldFVzZXJNZWRpYShvcHRpb25zKS5AdGhlbihzdWNjZXNzQ2FsbGJhY2ss
IGVycm9yQ2FsbGJhY2spOwotfQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjExNzYxKQorKysgU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDYsOCArMTQ2LDYgQEAKIAkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2Ft
cGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5o
ICovOyB9OwogCQkwNzNCODc2ODFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291
cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuY3BwICovOyB9
OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFF
NDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IH07Ci0JCTA3M0JF
MzQwMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCRTMzRTE3RDE3RTAxMDAy
QkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEuY3BwICovOyB9OwotCQkwNzNCRTM0MTE3RDE3
RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0JFMzNGMTdEMTdFMDEwMDJCRDQzMSAvKiBK
U05hdmlnYXRvclVzZXJNZWRpYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTA3M0JFMzRFMTdEMTgwQjIwMDJCRDQzMSAvKiBSVENTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3MjIxQkFCMTdDRjBBRDQwMDg0OEU1MSAvKiBSVENTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yLmNwcCAqLzsgfTsKIAkJMDczQkUzNEYxN0QxODE4MzAwMkJENDMxIC8q
IFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCQTYxN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0ljZUNh
bmRpZGF0ZURlc2NyaXB0b3IuY3BwICovOyB9OwogCQkwNzQ0RUNFRDFFMEM0RTMwMDAwRDA5NDQg
LyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQ0RUNFQzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gKi87IH07CkBAIC03MTUxLDcgKzcxNDksNiBAQAogCQkw
NzIyMUI1NzE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tFdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjU4MTdDRUMzMjcwMDg0OEU1
MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFTdHJlYW1UcmFja0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3MjIxQjU5MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tFdmVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MjIxQjVDMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZp
Z2F0b3JVc2VyTWVkaWEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRvclVzZXJN
ZWRpYS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjYzMTdDRUMzMjcw
MDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSVENEYXRhQ2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3MjIxQjY0MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEYXRhQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzIyMUI2NTE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5u
ZWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0RhdGFDaGFubmVsLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyNDQsOCArNzI0MSw2IEBACiAJCTA3M0I4NzYzMUU0
Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURh
dGFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9T
YW1wbGVEYXRhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3
NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDczQkUzM0UxN0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2aWdh
dG9yVXNlck1lZGlhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
TmF2aWdhdG9yVXNlck1lZGlhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcz
QkUzM0YxN0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTmF2aWdhdG9yVXNlck1lZGlhLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDRFQ0VCMUUwQzRBRTUwMDBEMDk0NCAvKiBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzQ0RUNFQzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0RTgyQjgx
OEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybVRpbWVSYW5nZXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtODgzMCw3ICs4ODI1LDYgQEAKIAkJNDE5QkMyREMxNjg1MzI5
OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVmlzaXRlZExpbmtTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxOUJDMkREMTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpc2l0ZWRMaW5rU3RhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5QkU3NTIxQkM3RjNEQjAwRTFDODVCIC8qIFdl
YkNvcmVCdWlsdGluTmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTlCRTc1
QTFCQ0JEM0VEMDBFMUM4NUIgLyogTmF2aWdhdG9yVXNlck1lZGlhLmpzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gTmF2aWdhdG9yVXNlck1lZGlhLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlGQUZBRDFBQkFCQ0Q1MDA1QjgyOEIgLyogUmVhZGFi
bGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJs
ZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MUEwMjNFRDFBMzlEQjc5MDBGNzIyQ0YgLyogUmVhZGFibGVTdHJlYW0uaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkRGIC8qIFdyaXRhYmxlU3RyZWFtLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXcml0YWJsZVN0cmVhbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNTI3Nyw4ICsxNTI3MSw2IEBACiAJCQkJNUVBNzI1Q0ExQUNBQkNCNTAw
RUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2aWNlcy5jcHAgKi8sCiAJCQkJNUVBNzI1Q0IxQUNB
QkNCNTAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2aWNlcy5oICovLAogCQkJCTVFQTcyNUND
MUFDQUJDQjUwMEVBRDE3QiAvKiBOYXZpZ2F0b3JNZWRpYURldmljZXMuaWRsICovLAotCQkJCTA3
MjIxQjVDMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWEuaWRsICovLAotCQkJ
CTQxOUJFNzVBMUJDQkQzRUQwMEUxQzg1QiAvKiBOYXZpZ2F0b3JVc2VyTWVkaWEuanMgKi8sCiAJ
CQkJMDcwNEE0MDUxRDZERTlGMTAwODZEQ0RCIC8qIE92ZXJjb25zdHJhaW5lZEVycm9yLmggKi8s
CiAJCQkJMDcwNEE0MDMxRDZERTlGMTAwODZEQ0RCIC8qIE92ZXJjb25zdHJhaW5lZEVycm9yLmlk
bCAqLywKIAkJCQkwNzJBNzAzRTFENkU4RjYyMDBERjBBRkMgLyogT3ZlcmNvbnN0cmFpbmVkRXJy
b3JFdmVudC5oICovLApAQCAtMTU1MDYsOCArMTU0OTgsNiBAQAogCQkJCTkzMkNDMEQxMURGRkQ2
NjcwMDRDMEY5RiAvKiBKU01lZGlhVHJhY2tDb25zdHJhaW50cy5oICovLAogCQkJCTA3ODdDNDY3
MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHAg
Ki8sCiAJCQkJMDc4N0M0NjgxQkZCREY2RjAwNkRDRDdGIC8qIEpTTWVkaWFUcmFja1N1cHBvcnRl
ZENvbnN0cmFpbnRzLmggKi8sCi0JCQkJMDczQkUzM0UxN0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2
aWdhdG9yVXNlck1lZGlhLmNwcCAqLywKLQkJCQkwNzNCRTMzRjE3RDE3RTAxMDAyQkQ0MzEgLyog
SlNOYXZpZ2F0b3JVc2VyTWVkaWEuaCAqLywKIAkJCQkwNzA0QTQwOTFENkRGQzY5MDA4NkRDREIg
LyogSlNPdmVyY29uc3RyYWluZWRFcnJvci5jcHAgKi8sCiAJCQkJMDcwNEE0MEExRDZERkM2OTAw
ODZEQ0RCIC8qIEpTT3ZlcmNvbnN0cmFpbmVkRXJyb3IuaCAqLywKIAkJCQkwNzA0QTQxMzFENkYz
OUZCMDA4NkRDREIgLyogSlNPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmNwcCAqLywKQEAgLTI2
NjgwLDcgKzI2NjcwLDYgQEAKIAkJCQlDNkYwOEZDQTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRh
dGlvblJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEOUMyQzEwQzE3QjY5RTAwNUM5MEEy
IC8qIEpTTmFtZWROb2RlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUQyNDdGODBENzU3RTM0
MDBGREY5NTkgLyogSlNOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTA3M0JFMzQxMTdE
MTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM5NDM5QzMxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1c3RvbS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTQxMTVCNzMwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE3NTBEOEUwQTkwRTUyMTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9y
LmggaW4gSGVhZGVycyAqLywKQEAgLTMwNDk4LDcgKzMwNDg3LDYgQEAKIAkJCQlDNkYwOEZDOTE0
MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0Q5QzJDMDBDMTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXAuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTlEMjQ3RjcwRDc1N0UzNDAwRkRGOTU5IC8qIEpTTmF2aWdhdG9yLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTA3M0JFMzQwMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRv
clVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNERDMEQzNzA5RkVEMDczMDA3QjAy
MzUgLyogSlNOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRDlDMjY0MEMxN0FBNjcwMDVD
OTBBMiAvKiBKU05vZGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTMxNTBFQTYxREE3
MjE5MDAwMTk0MDEyIC8qIEpTTm9kZURPTUpJVC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYklu
c3BlY3RvclVJL0NoYW5nZUxvZwkocmV2aXNpb24gMjExODkyKQorKysgU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE3LTAy
LTA4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtN
ZWRpYVN0cmVhbV0gUmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qczoKKwogMjAxNy0wMi0wNyAg
RGV2aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBncmFkaWVudCBlZGl0b3Igc2hvdWxkIGFsbG93IHN3aXRjaGluZyB0aGUgdW5p
dHMgb2YgdGhlICdhbmdsZScgcGFyYW1ldGVyCkluZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVG
dW5jdGlvblBhcmFtZXRlcnMuanMJKHJldmlzaW9uIDIxMTc2MSkKKysrIFNvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTExNjEsMjEgKzExNjEsNiBAQCBXZWJJbnNwZWN0b3IuTmF0aXZl
UHJvdG90eXBlRnVuY3Rpb25QYXJhCiAgICAgICAgIF9fcHJvdG9fXzogbnVsbCwKICAgICB9LAog
Ci0gICAgTmF2aWdhdG9yOiB7Ci0gICAgICAgIHdlYmtpdEdldFVzZXJNZWRpYTogIm9wdGlvbnMs
IHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjayIsCi0gICAgICAgIF9fcHJvdG9fXzogbnVs
bCwKLSAgICB9LAotCi0gICAgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjazogewotICAg
ICAgICBoYW5kbGVFdmVudDogImVycm9yIiwKLSAgICAgICAgX19wcm90b19fOiBudWxsLAotICAg
IH0sCi0KLSAgICBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s6IHsKLSAgICAgICAg
aGFuZGxlRXZlbnQ6ICJzdHJlYW0iLAotICAgICAgICBfX3Byb3RvX186IG51bGwsCi0gICAgfSwK
LQogICAgIE5vZGVGaWx0ZXI6IHsKICAgICAgICAgYWNjZXB0Tm9kZTogIltuXSIsCiAgICAgICAg
IF9fcHJvdG9fXzogbnVsbCwKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTc2MSkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE3LTAyLTA4
ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRp
YVN0cmVhbV0gUmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdmFsaWQg
dGVzdHMgdG8gdXNlIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhLiBSZW1vdmUg
dGVzdHMKKyAgICAgICAgc3BlY2lmaWMgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYS4K
KworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tQWRkUmVtb3Zl
U3RyZWFtLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9hcmd1bWVudC10eXBlcy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNz
aW9uLWFsbG93ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVy
bWlzc2lvbi1kZW5pZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2VuYWJsZWQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2FyZ3VtZW50LXR5cGVzLmpzOiBS
ZW1vdmVkLi4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9lbmFibGVk
LmpzOgorICAgICAgICAoaGFzR2V0VXNlck1lZGlhUHJvcGVydHkpOgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vd2Vi
a2l0R2V0VXNlck1lZGlhLXNoYWRvd2luZy10aGVuLmh0bWw6IFJlbW92ZWQuCisKIDIwMTctMDIt
MDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5mQGdtYWlsLmNvbT4KIAogICAgICAgICBBbGxvdyBz
b21lIHNjaGVtZXMgdG8gb3B0LW91dCBvZiBDT1JTCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLUFkZFJlbW92ZVN0cmVhbS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tQWRk
UmVtb3ZlU3RyZWFtLmh0bWwJKHJldmlzaW9uIDIxMTc2MSkKKysrIExheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tQWRkUmVtb3ZlU3RyZWFtLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTIsNiArMiw3IEBACiA8aHRtbD4KICAgICA8aGVhZD4KICAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpzIj48L3Nj
cmlwdD4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHk+CiAgICAgICAgIDxzY3JpcHQ+CkBAIC0yMCw3
ICsyMSw5IEBACiAgICAgICAgICAgICBmdW5jdGlvbiBnZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwg
Y2FsbGJhY2spCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICAgICAgICAgICAgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxs
YmFjaywgZXJyb3IpOworICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYShkaWN0aW9uYXJ5KQorICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4o
Y2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZXJyb3IpOwogICAgICAg
ICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgn
d2Via2l0R2V0VXNlck1lZGlhIHRocmV3IGV4Y2VwdGlvbiA6JyArIGUpOwogICAgICAgICAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vYXJndW1lbnQtdHlwZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLmh0bWwJKHJldmlzaW9uIDIxMTc2MSkKKysrIExheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMuaHRtbAkobm9uZXhpc3RlbnQp
CkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJv
ZHk+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMi
Pjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcmd1bWVudC10eXBlcy5odG1sCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1MRgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sCShy
ZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQt
cGVybWlzc2lvbi1hbGxvd2VkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDE3ICsxNSwxOSBA
QCBmdW5jdGlvbiBhbGxvd1Blcm1pc3Npb24oKSB7CiB9CiAKIHZhciBvcHRpb25zID0ge2F1ZGlv
OiB0cnVlLCB2aWRlbzogdHJ1ZX07Ci1uYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlv
bnMsIGZ1bmN0aW9uKHN0cmVhbSkgewotICAgaWYgKHBlcm1pc3Npb25TZXQpIHsKLSAgICAgICAg
dGVzdFBhc3NlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkJyk7CituYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYShvcHRpb25zKQorICAgIC50aGVuKHN0cmVhbSA9PiB7CisgICAg
ICAgaWYgKHBlcm1pc3Npb25TZXQpIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N1Y2Nlc3Mg
Y2FsbGJhY2sgaW52b2tlZCcpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxs
YmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgIH0pCisgICAgLmNhdGNoKGVyciA9PiB7
CisgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5
Jyk7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAg
IHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLX0s
IGZ1bmN0aW9uKGUpIHsKLSAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVu
ZXhwZWN0ZWRseScpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7CisgICAgfSk7CiAKIHdpbmRv
dy5zZXRUaW1lb3V0KGFsbG93UGVybWlzc2lvbiwgMTAwKTsKIDwvc2NyaXB0PgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1p
c3Npb24tZGVuaWVkLmh0bWwJKHJldmlzaW9uIDIxMTc2MSkKKysrIExheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xNiwxOSArMTYsMTkgQEAgZnVuY3Rpb24gZGVueVBlcm1pc3Npb24oKSB7CiAKIHZhciBl
cnJvcjsKIHZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07Ci1uYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgewotICAgIHRl
c3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICBm
aW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKGUpIHsKLSAgICBpZiAocGVybWlzc2lvblNldCkg
ewotICAgICAgICBlcnJvciA9IGU7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXJy
b3IubmFtZScsICdOb3RBbGxvd2VkRXJyb3InKTsKK25hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKG9wdGlvbnMpCisgICAgLnRoZW4oc3RyZWFtID0+IHsKKyAgICAgICAgdGVzdEZh
aWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwogICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICB0ZXN0RmFpbGVkKCdF
cnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwotICAgIGZpbmlzaEpTVGVzdCgp
OwotfSk7CisgICAgfSkKKyAgICAuY2F0Y2goZXJyID0+IHsKKyAgICAgICAgaWYgKHBlcm1pc3Np
b25TZXQpIHsKKyAgICAgICAgICAgIGVycm9yID0gZXJyOworICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdlcnJvci5uYW1lJywgJ05vdEFsbG93ZWRFcnJvcicpOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5l
eHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOwogCiB3aW5kb3cu
c2V0VGltZW91dChkZW55UGVybWlzc2lvbiwgMTAwKTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbmFibGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2VuYWJsZWQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2VuYWJsZWQtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDEwICszLDEyIEBAIFRlc3RzIHRoYXQgbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAog
Ci1QQVNTIHR5cGVvZiBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhID09ICdmdW5jdGlvbicg
aXMgdHJ1ZQorUEFTUyB0eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyA9PSAnb2JqZWN0JyBp
cyB0cnVlCitQQVNTIHR5cGVvZiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSA9
PSAnZnVuY3Rpb24nIGlzIHRydWUKIFBBU1MgaGFzR2V0VXNlck1lZGlhUHJvcGVydHkoKSBpcyB0
cnVlCi1QQVNTICd3ZWJraXRHZXRVc2VyTWVkaWEnIGluIG5hdmlnYXRvciBpcyB0cnVlCi1QQVNT
IG5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0eSgnd2Via2l0R2V0VXNlck1lZGlhJykgaXMgZmFsc2UK
K1BBU1MgJ21lZGlhRGV2aWNlcycgaW4gbmF2aWdhdG9yIGlzIHRydWUKK1BBU1MgJ2dldFVzZXJN
ZWRpYScgaW4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyBpcyB0cnVlCitQQVNTIG5hdmlnYXRvci5o
YXNPd25Qcm9wZXJ0eSgnbWVkaWFEZXZpY2VzJykgaXMgZmFsc2UKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9lcnJvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZXJyb3IuaHRtbAkocmV2aXNpb24gMjExNzYxKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNSwxNCArMTUsMTYg
QEAgZWxzZQogCiB2YXIgZXJyb3I7CiB2YXIgb3B0aW9ucyA9IHthdWRpbzpmYWxzZSwgdmlkZW86
dHJ1ZX07Ci1uYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0
cmVhbSkgewotICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVj
dGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKGUpIHsKLSAgICBlcnJv
ciA9IGU7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvci5uYW1lJywgJ05vdEFsbG93
ZWRFcnJvcicpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7CituYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYShvcHRpb25zKQorICAgIC50aGVuKHN0cmVhbSA9PiB7CisgICAgICAg
IHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSkKKyAgICAuY2F0Y2goZXJyID0+IHsKKyAgICAg
ICAgZXJyb3IgPSBlcnI7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXJyb3IubmFt
ZScsICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7
CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
Z2V0dXNlcm1lZGlhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXR1c2VybWVkaWEuaHRtbAkocmV2aXNpb24gMjExNzYxKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDEw
NSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAg
ICAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLSAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMg
d2Via2l0R2V0VXNlck1lZGlhLiIpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzZXRVc2VyTWVk
aWFQZXJtaXNzaW9uKGlzR3JhbnRlZCkgewotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJt
aXNzaW9uKGlzR3JhbnRlZCk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICBkZWJ1ZygiVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5u
ZXIiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIHN0cmVhbTsKLSAgICAgICAg
ICAgIHZhciBlcnJvckFyZzsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZXJyb3IoKSB7Ci0gICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgY2FsbGVkLicpOwotICAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBm
dW5jdGlvbiBleHBlY3RlZEVycm9yKCkgewotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ0Vy
cm9yIGNhbGxiYWNrIGNhbGxlZC4nKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVu
Y3Rpb24gZ290U3RyZWFtSW5FcnJvcihzKSB7Ci0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgn
U3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtNShzKSB7Ci0gICAg
ICAgICAgICAgICAgc3RyZWFtID0gczsKLSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdHJl
YW0gZ2VuZXJhdGVkLicpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0QXVk
aW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJl
YW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAgICAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBlcnJvcjEo
ZSkgewotICAgICAgICAgICAgICAgIGVycm9yQXJnID0gZTsKLSAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCdFcnJvciBjYWxsYmFjayBjYWxsZWQuJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdlcnJvckFyZy5uYW1lJywgJ092ZXJjb25zdHJhaW5lZEVycm9yJyk7
Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvckFyZy5tZXNzYWdl
JywgJ0ludmFsaWQgY29uc3RyYWludCcpOwotCi0gICAgICAgICAgICAgICAgc2hvdWxkVGhyb3co
Im5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnt2b2x1bWU6e2V4YWN0OjF9fSwg
dmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTUsIDApOyIpOwotICAgICAgICAgICAgICAgIHNob3VsZE5v
dFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp7dm9sdW1lOntleGFj
dDoxfX0sIHZpZGVvOnRydWV9LCBnb3RTdHJlYW01LCBlcnJvcik7Iik7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTQocykgewotICAgICAgICAgICAgICAg
IHN0cmVhbSA9IHM7Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnU3RyZWFtIGdlbmVyYXRl
ZC4nKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCku
bGVuZ3RoJywgJzEnKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldFZpZGVv
VHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLQotICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCJu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp7d2lkdGg6e2V4
YWN0OjExfX19LCBnb3RTdHJlYW1JbkVycm9yLCBudWxsKTsiKTsKLSAgICAgICAgICAgICAgICBz
aG91bGROb3RUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwg
dmlkZW86e3dpZHRoOntleGFjdDoxMX19fSwgZ290U3RyZWFtSW5FcnJvciwgZXJyb3IxKTsiKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtMyhzKSB7Ci0g
ICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdT
dHJlYW0gZ2VuZXJhdGVkLicpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0
QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCdz
dHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotCi0gICAgICAgICAgICAgICAg
c2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnt9LCB2aWRl
bzp0cnVlfSwgZ290U3RyZWFtNCwgbnVsbCk7Iik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkTm90
VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnt9LCB2aWRlbzp0cnVl
fSwgZ290U3RyZWFtNCwgZXJyb3IpOyIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBm
dW5jdGlvbiBnb3RTdHJlYW0yKHMpIHsKLSAgICAgICAgICAgICAgICBzdHJlYW0gPSBzOwotICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7Ci0gICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcwJyk7Ci0g
ICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcs
ICcxJyk7Ci0KLSAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygibmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTMsIG51bGwpOyIp
OwotICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtMywgZXJyb3IpOyIpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBnb3RTdHJlYW0xKHMpIHsKLSAg
ICAgICAgICAgICAgICBzdHJlYW0gPSBzOwotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0
cmVhbSBnZW5lcmF0ZWQuJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRB
dWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0
cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcwJyk7Ci0KLSAgICAgICAgICAgICAgICBz
aG91bGRUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86dHJ1ZX0sIGdv
dFN0cmVhbTIsIG51bGwpOyIpCi0gICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOnRydWV9LCBnb3RTdHJlYW0yLCBlcnJvcik7
IikKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzpmYWxzZX0sIGVycm9yLCBl
eHBlY3RlZEVycm9yKTsiKQotICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJr
aXRHZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzpmYWxzZX0sIGVycm9yLCBudWxsKTsi
KQotCi0gICAgICAgICAgICBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOwotICAgICAgICAg
ICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRy
dWV9LCBnb3RTdHJlYW0xLCBlcnJvcik7Iik7Ci0KLSAgICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKLSAgICAgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwotICAgICAgICA8L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotICAgIDwvYm9keT4KLTwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCShyZXZpc2lvbiAy
MTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTQsMTIgKzE0LDE0IEBAIGVsc2UKICAgICBkZWJ1ZygnVGhpcyB0ZXN0
IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsKIAogdmFyIG9wdGlvbnMg
PSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsKLW5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19LCBm
dW5jdGlvbihlKSB7Ci0gICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4
cGVjdGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOworbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9ucykKKyAgICAudGhlbihzdHJlYW0gPT4geworICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KQorICAgIC5jYXRjaChlcnIgPT4geworICAgICAgICB0
ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS93ZWJraXRHZXRVc2VyTWVkaWEtc2hhZG93aW5nLXRo
ZW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3dlYmtp
dEdldFVzZXJNZWRpYS1zaGFkb3dpbmctdGhlbi5odG1sCShyZXZpc2lvbiAyMTE3NjEpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3dlYmtpdEdldFVzZXJNZWRpYS1zaGFkb3dpbmct
dGhlbi5odG1sCShub25leGlzdGVudCkKQEAgLTEsNDQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0g
ICAgPHRpdGxlPlNoYWRvd2luZyB0aGVuKCk8L3RpdGxlPgotPC9oZWFkPgotPGJvZHk+Ci08IS0t
Ci1UaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgaW1wbGVtZW50YXRpb24gb2YgbmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSBkb2VzIG5vdCB1c2UgcHVibGljIHByb21pc2UgQVBJcy4KLS0t
PgotPHAgaWQ9Im91dHB1dCI+PC9wPgotPHNjcmlwdD4KLSAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGVuZFRlc3QodGVzdFN0
YXR1cykgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikudGV4dENv
bnRlbnQgPSB0ZXN0U3RhdHVzOwotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAg
ICB9Ci0KLSAgICAvLyBTaGFkb3cgUHJvbWlzZS5wcm90b3R5cGUudGhlbgotICAgIFByb21pc2Uu
cHJvdG90eXBlLnRoZW4gPSAoZnVuY3Rpb24gKCkgewotICAgICAgICBjb25zdCByZWFsVGhlbiA9
IFByb21pc2UucHJvdG90eXBlLnRoZW47Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICBlbmRUZXN0KCJGQUlMOiBFeGVjdXRlZCBzaGFkb3dlZCwgcHVibGljIC50aGVu
KCkiKTsKLSAgICAgICAgfQotICAgIH0pKCk7Ci0KLSAgICBmdW5jdGlvbiBnb3RVc2VyTWVkaWEo
bWVkaWFTdHJlYW0pIHsKLSAgICAgICAgZW5kVGVzdCgiRkFJTDogR290IHVzZXIgbWVkaWEiKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiB1c2VyTWVkaWFFcnJvcihlcnJvcikgewotICAgICAgICBl
bmRUZXN0KCJQQVNTIik7Ci0gICAgfQotCi0gICAgdmFyIG9wdGlvbnMgPSB7IGF1ZGlvOiBmYWxz
ZSwgdmlkZW86IGZhbHNlIH07Ci0gICAgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRp
b25zLCBnb3RVc2VyTWVkaWEsIHVzZXJNZWRpYUVycm9yKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0
cy9hcmd1bWVudC10eXBlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3NjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcwkocmV2aXNpb24gMjExNzYxKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1lbnQtdHlw
ZXMuanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw3MCArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdHMg
dGhlIGFjY2VwdGFibGUgdHlwZXMgZm9yIGFyZ3VtZW50cyB0byBuYXZpZ2F0b3IuZ2V0VXNlck1l
ZGlhIG1ldGhvZHMuIik7Ci0KLWZ1bmN0aW9uIHRlc3QoZXhwcmVzc2lvbiwgZXhwcmVzc2lvblNo
b3VsZFRocm93LCBleHBlY3RlZEV4Y2VwdGlvbikgewotICAgIGlmIChleHByZXNzaW9uU2hvdWxk
VGhyb3cpIHsKLSAgICAgICAgaWYgKGV4cGVjdGVkRXhjZXB0aW9uKQotICAgICAgICAgICAgc2hv
dWxkVGhyb3coZXhwcmVzc2lvbiwgJyInICsgZXhwZWN0ZWRFeGNlcHRpb24gKyAnIicpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBzaG91bGRUaHJvdyhleHByZXNzaW9uLCAnIlR5cGVFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHMiJyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc2hvdWxk
Tm90VGhyb3coZXhwcmVzc2lvbik7Ci0gICAgfQotfQotCi12YXIgZXJyb3JDYWxsYmFja0Vycm9y
ID0gbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgMyAoJ2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbiIpCi12YXIgaW52YWxpZERp
Y3Rpb25hcnlFcnJvciA9IG5ldyBUeXBlRXJyb3IoJ0ZpcnN0IGFyZ3VtZW50IG9mIHdlYmtpdEdl
dFVzZXJNZWRpYSBtdXN0IGJlIGEgdmFsaWQgRGljdGlvbmFyeScpCi12YXIgbm90U3VwcG9ydGVk
RXJyb3IgPSBuZXcgRXJyb3IoJ05vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDknKTsK
LXZhciBzdWNjZXNzQ2FsbGJhY2tFcnJvciA9IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IDIgKCdz
dWNjZXNzQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUg
YSBmdW5jdGlvbiIpCi12YXIgdHlwZUVycm9yID0gbmV3IFR5cGVFcnJvcignVHlwZSBlcnJvcicp
OwotdmFyIHR5cGVOb3RBbk9iamVjdEVycm9yID0gbmV3IFR5cGVFcnJvcignTm90IGFuIG9iamVj
dC4nKTsKLQotdmFyIGVtcHR5RnVuY3Rpb24gPSBmdW5jdGlvbigpIHt9OwotCi0vLyBObyBhcmd1
bWVudHMKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoKScsIHRydWUpOwotCi0v
LyAxIEFyZ3VtZW50IChOYXZpZ3Rvci53ZWJraXRHZXRVc2VyTWVkaWEgcmVxdWlyZXMgYXQgbGVh
c3QgMyBhcmd1bWVudHMpLgotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh1bmRl
ZmluZWQpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG51bGwp
JywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHsgfSknLCB0cnVl
KTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSknLCB0
cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodHJ1ZSknLCB0cnVlKTsK
LXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoNDIpJywgdHJ1ZSk7Ci10ZXN0KCdu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKEluZmluaXR5KScsIHRydWUpOwotdGVzdCgnbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgtSW5maW5pdHkpJywgdHJ1ZSk7Ci10ZXN0KCduYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci0KLS8vIDIg
QXJndW1lbnRzLgotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSh1bmRlZmluZWQsIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKG51bGwsIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0
KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHsgfSwgZW1wdHlGdW5jdGlvbiknLCB0cnVl
KTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodHJ1ZSwgZW1wdHlGdW5jdGlv
biknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoNDIsIGVtcHR5
RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKElu
ZmluaXR5LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSgtSW5maW5pdHksIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGVtcHR5RnVuY3Rpb24sIGVtcHR5RnVuY3Rpb24pJywg
dHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0s
ICJmb29iYXIiKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7
dmlkZW86IHRydWV9LCB1bmRlZmluZWQpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIG51bGwpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIHt9KScsIHRydWUpOwotdGVzdCgn
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCB0cnVlKScsIHRydWUp
OwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCA0Mikn
LCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVl
fSwgSW5maW5pdHkpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KHt2aWRlbzogdHJ1ZX0sIC1JbmZpbml0eSknLCB0cnVlKTsKLQotLy8gMyBBcmd1bWVudHMuCi10
ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHsgfSwgZW1wdHlGdW5jdGlvbiwgZW1w
dHlGdW5jdGlvbiknLCBmYWxzZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwot
dGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1
bmN0aW9uLCB1bmRlZmluZWQpJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9yKTsKLXRlc3QoJ25h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBlbXB0
eUZ1bmN0aW9uLCB1bmRlZmluZWQpJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9yKTsKLXRlc3Qo
J25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9LCBlbXB0eUZ1bmN0aW9u
LCB1bmRlZmluZWQpJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9yKTsKLXRlc3QoJ25hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwgInZpZGVv
IiknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCBudWxsKScsIHRydWUsIGVy
cm9yQ2FsbGJhY2tFcnJvciApOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7
dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB7fSknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJy
b3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBl
bXB0eUZ1bmN0aW9uLCB0cnVlKScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0KCdu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24s
IDQyKScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIEluZmluaXR5KScsIHRy
dWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIC1JbmZpbml0eSknLCB0cnVlLCBlcnJv
ckNhbGxiYWNrRXJyb3IpOwotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IGZhbHNlOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvZW5hYmxlZC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9lbmFi
bGVkLmpzCShyZXZpc2lvbiAyMTE3NjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3NjcmlwdC10ZXN0cy9lbmFibGVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zLDE1ICszLDIyIEBA
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IG5hdmlnYXRvci53ZWJraXQKIGZ1bmN0aW9uIGhhc0dl
dFVzZXJNZWRpYVByb3BlcnR5KCkKIHsKICAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBuYXZpZ2F0
b3IpIHsKLSAgICAgICAgaWYgKHByb3BlcnR5ID09ICJ3ZWJraXRHZXRVc2VyTWVkaWEiKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChwcm9wZXJ0eSA9PSAibWVkaWFEZXZp
Y2VzIikgeworICAgICAgICAgICAgdmFyIGRldmljZXMgPSBuYXZpZ2F0b3JbcHJvcGVydHldOwor
ICAgICAgICAgICAgZm9yIChwcm9wZXJ0eSBpbiBkZXZpY2VzKSB7CisgICAgICAgICAgICAgICAg
aWYgKHByb3BlcnR5ID09ICJnZXRVc2VyTWVkaWEiKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXNob3VsZEJlVHJ1ZSgidHlwZW9mIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEgPT0gJ2Z1bmN0aW9uJyIpOworc2hvdWxkQmVUcnVlKCJ0eXBlb2YgbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcyA9PSAnb2JqZWN0JyIpOworc2hvdWxkQmVUcnVlKCJ0eXBlb2YgbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEgPT0gJ2Z1bmN0aW9uJyIpOwogc2hvdWxkQmVUcnVlKCJo
YXNHZXRVc2VyTWVkaWFQcm9wZXJ0eSgpIik7Ci1zaG91bGRCZVRydWUoIid3ZWJraXRHZXRVc2Vy
TWVkaWEnIGluIG5hdmlnYXRvciIpOwotc2hvdWxkQmVGYWxzZSgibmF2aWdhdG9yLmhhc093blBy
b3BlcnR5KCd3ZWJraXRHZXRVc2VyTWVkaWEnKSIpOworc2hvdWxkQmVUcnVlKCInbWVkaWFEZXZp
Y2VzJyBpbiBuYXZpZ2F0b3IiKTsKK3Nob3VsZEJlVHJ1ZSgiJ2dldFVzZXJNZWRpYScgaW4gbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcyIpOworc2hvdWxkQmVGYWxzZSgibmF2aWdhdG9yLmhhc093blBy
b3BlcnR5KCdtZWRpYURldmljZXMnKSIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IGZhbHNl
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300984</attachid>
            <date>2017-02-08 16:54:11 -0800</date>
            <delta_ts>2017-02-09 07:47:40 -0800</delta_ts>
            <desc>Another patch.</desc>
            <filename>remove_navigator_getusermedia_patch_6.txt</filename>
            <type>text/plain</type>
            <size>37839</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTkwOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE3LTAyLTA4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
UmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgZXhpc3Rpbmcg
dGVzdHMgdXBkYXRlZC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogTmF2aWdhdG9yVXNlck1lZGlhLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
IERpdHRvLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBEaXR0by4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5pZGw6IFJlbW92ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuanM6IFJlbW92ZWQuCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBh
Z2UvTmF2aWdhdG9yLmlkbDogQWRkIHNvbWUgd2hpdGVzcGFjZSB0byBmb3JjZSBkZXJpdmVkIHNv
dXJjZXMgdG8gYmUgcmVidWlsZCBjb3JyZWN0bHkuCisKIDIwMTctMDItMDggIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjExOTA3LgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIxMTkwOSkKKysrIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMjIsNyArMjIy
LDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvck1lZGlhRGV2aWNlcy5pZGwKLSAgICBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmln
YXRvclVzZXJNZWRpYS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5l
ZEVycm9yLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vT3ZlcmNvbnN0cmFpbmVkRXJyb3JF
dmVudC5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaWRsCkBA
IC0zNjcyLDcgKzM2NzEsNiBAQCBzZXQoV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VTCiAgICAgJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuanMKICAgICAke1dFQkNPUkVf
RElSfS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuanMKICAgICAke1dFQkNPUkVfRElSfS9N
b2R1bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNjb3BlRmV0Y2guanMKLSAgICAke1dFQkNPUkVfRElS
fS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwogICAgICR7V0VCQ09S
RV9ESVJ9L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uanMKICAgICAke1dF
QkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSW50ZXJuYWxz
LmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1aW5n
U3RyYXRlZ3kuanMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHJldmlzaW9uIDIx
MTkwOSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzUwLDcgKzM1MCw2IEBACiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3JDb250ZW50VXRpbHMu
Y3BwIgogI2luY2x1ZGUgIkpTTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwIgogI2luY2x1ZGUgIkpT
TmF2aWdhdG9yTWVkaWFEZXZpY2VzLmNwcCIKLSNpbmNsdWRlICJKU05hdmlnYXRvclVzZXJNZWRp
YS5jcHAiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3JWaWJyYXRpb24uY3BwIgogI2luY2x1ZGUgIkpT
Tm9kZS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlRmlsdGVyLmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjExOTA5KQorKysgU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTYzLDcgKzE2Myw2IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFU
cmFja0NvbnN0cmFpbnRzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaWRsIFwKLSAgICAkKFdlYkNv
cmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yRXZl
bnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJh
dGlvbi5pZGwgXApAQCAtMTM0NCw3ICsxMzQzLDYgQEAgV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VT
ID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuanMgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmpzIFwKICAgICAke1dlYkNv
cmV9L01vZHVsZXMvZmV0Y2gvV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5qcyBcCi0gICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcyBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmpzIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25JbnRlcm5hbHMu
anMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1aW5nU3Ry
YXRlZ3kuanMgXApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZp
Z2F0b3JVc2VyTWVkaWEuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbAkocmV2aXNpb24gMjExOTA5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRs
CShub25leGlzdGVudCkKQEAgLTEsMjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi1bCi0gICAgQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNLAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9TWVkaWFTdHJlYW0sCi1dIHBhcnRpYWwg
aW50ZXJmYWNlIE5hdmlnYXRvciB7Ci0gICAgW0pTQnVpbHRpbl0gdm9pZCB3ZWJraXRHZXRVc2Vy
TWVkaWEoTWVkaWFTdHJlYW1Db25zdHJhaW50cyBjb25zdHJhaW50cywgTmF2aWdhdG9yVXNlck1l
ZGlhU3VjY2Vzc0NhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKLX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwkocmV2
aXNpb24gMjExOTA5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZp
Z2F0b3JVc2VyTWVkaWEuanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotLy8gQGNvbmRpdGlvbmFsPUVOQUJMRShNRURJQV9TVFJFQU0pCi0K
LWZ1bmN0aW9uIHdlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBzdWNjZXNzQ2FsbGJhY2ssIGVy
cm9yQ2FsbGJhY2spCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgLy8gRklYTUU6IFdlIHNo
b3VsZCByYWlzZSBhIERPTSB1bnN1cHBvcnRlZCBleGNlcHRpb24gaWYgdGhlcmUgaXMgbm8gbmF2
aWdhdG9yIGFuZCBwcm9wZXJseSBkZXRlY3Qgd2hldGhlciBtZXRob2QgaXMgbm90IGNhbGxlZCBv
biBhIE5hdmlnYXRvciBvYmplY3QuCi0gICAgaWYgKCEodGhpcy5tZWRpYURldmljZXMgJiYgdGhp
cy5tZWRpYURldmljZXMuQGdldFVzZXJNZWRpYSkpCi0gICAgICAgIHRocm93IEBtYWtlVGhpc1R5
cGVFcnJvcigiTmF2aWdhdG9yIiwgIndlYmtpdEdldFVzZXJNZWRpYSIpOwotCi0gICAgaWYgKGFy
Z3VtZW50cy5sZW5ndGggPCAzKQotICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIk5vdCBlbm91Z2gg
YXJndW1lbnRzIik7Ci0KLSAgICBpZiAob3B0aW9ucyAhPT0gQE9iamVjdChvcHRpb25zKSkKLSAg
ICAgICAgQHRocm93VHlwZUVycm9yKCJBcmd1bWVudCAxIChvcHRpb25zKSB0byBOYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYW4gb2JqZWN0Iik7Ci0KLSAgICBpZiAodHlwZW9m
IHN1Y2Nlc3NDYWxsYmFjayAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgQHRocm93VHlwZUVycm9y
KCJBcmd1bWVudCAyICgnc3VjY2Vzc0NhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKLSAgICBpZiAodHlwZW9mIGVycm9yQ2FsbGJh
Y2sgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIEB0aHJvd1R5cGVFcnJvcigiQXJndW1lbnQgMyAo
J2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUg
YSBmdW5jdGlvbiIpOwotCi0gICAgdGhpcy5tZWRpYURldmljZXMuQGdldFVzZXJNZWRpYShvcHRp
b25zKS5AdGhlbihzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOwotfQpJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjExOTA5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsOCArMTQ2LDYgQEAKIAkJMDczQjg3Njcx
RTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVD
IC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oICovOyB9OwogCQkwNzNCODc2ODFFNDM4NUFDMDA3
MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRp
b1NhbXBsZURhdGFTb3VyY2UuY3BwICovOyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMg
LyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVE
YXRhU291cmNlLmggKi87IH07Ci0JCTA3M0JFMzQwMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmln
YXRvclVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzNCRTMzRTE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEu
Y3BwICovOyB9OwotCQkwNzNCRTM0MTE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2Vy
TWVkaWEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
M0JFMzNGMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3M0JFMzRFMTdEMTgw
QjIwMDJCRDQzMSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQkFCMTdDRjBBRDQw
MDg0OEU1MSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCAqLzsgfTsKIAkJ
MDczQkUzNEYxN0QxODE4MzAwMkJENDMxIC8qIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCQTYx
N0NGMEFENDAwODQ4RTUxIC8qIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwICovOyB9Owog
CQkwNzQ0RUNFRDFFMEM0RTMwMDAwRDA5NDQgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQ0RUNF
QzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gKi87IH07
CkBAIC03MTg1LDcgKzcxODMsNiBAQAogCQkwNzIyMUI1NzE3Q0VDMzI3MDA4NDhFNTEgLyogTWVk
aWFTdHJlYW1UcmFja0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3MjIxQjU4MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1UcmFja0V2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjU5MTdDRUMzMjcwMDg0OEU1MSAv
KiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlh
U3RyZWFtVHJhY2tFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MjIx
QjVDMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWEuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IE5hdmlnYXRvclVzZXJNZWRpYS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3MjIxQjYzMTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENEYXRhQ2hhbm5lbC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjY0MTdDRUMzMjcwMDg0OEU1MSAv
KiBSVENEYXRhQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENE
YXRhQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIyMUI2NTE3Q0VD
MzI3MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJUQ0RhdGFDaGFubmVsLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyNzgs
OCArNzI3NSw2IEBACiAJCTA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1
ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVC
dWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY0MUU0Mzg1
OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Nh
bXBsZURhdGFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDczQkUzM0Ux
N0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDczQkUzM0YxN0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2
aWdhdG9yVXNlck1lZGlhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTmF2
aWdhdG9yVXNlck1lZGlhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDRFQ0VC
MUUwQzRBRTUwMDBEMDk0NCAvKiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ0RUNFQzFFMEM0QUU1MDAwRDA5NDQgLyog
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGlt
ZVJhbmdlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9y
bVRpbWVSYW5nZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODg2Miw3ICs4
ODU3LDYgQEAKIAkJNDE5QkMyREMxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaXRlZExpbmtTdGF0
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUJDMkREMTY4NTMyOTkwMEQ2
NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpc2l0ZWRMaW5rU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5
QkU3NTIxQkM3RjNEQjAwRTFDODVCIC8qIFdlYkNvcmVCdWlsdGluTmFtZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk0MTlCRTc1QTFCQ0JEM0VEMDBFMUM4NUIgLyogTmF2aWdhdG9y
VXNlck1lZGlhLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gTmF2
aWdhdG9yVXNlck1lZGlhLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlGQUZB
RDFBQkFCQ0Q1MDA1QjgyOEIgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUEwMjNFRDFBMzlEQjc5MDBGNzIyQ0YgLyogUmVh
ZGFibGVTdHJlYW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkRG
IC8qIFdyaXRhYmxlU3RyZWFtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXcml0YWJsZVN0
cmVhbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTM0OSw4ICsxNTM0Myw2
IEBACiAJCQkJNUVBNzI1Q0ExQUNBQkNCNTAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2aWNl
cy5jcHAgKi8sCiAJCQkJNUVBNzI1Q0IxQUNBQkNCNTAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlh
RGV2aWNlcy5oICovLAogCQkJCTVFQTcyNUNDMUFDQUJDQjUwMEVBRDE3QiAvKiBOYXZpZ2F0b3JN
ZWRpYURldmljZXMuaWRsICovLAotCQkJCTA3MjIxQjVDMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZp
Z2F0b3JVc2VyTWVkaWEuaWRsICovLAotCQkJCTQxOUJFNzVBMUJDQkQzRUQwMEUxQzg1QiAvKiBO
YXZpZ2F0b3JVc2VyTWVkaWEuanMgKi8sCiAJCQkJMDcwNEE0MDUxRDZERTlGMTAwODZEQ0RCIC8q
IE92ZXJjb25zdHJhaW5lZEVycm9yLmggKi8sCiAJCQkJMDcwNEE0MDMxRDZERTlGMTAwODZEQ0RC
IC8qIE92ZXJjb25zdHJhaW5lZEVycm9yLmlkbCAqLywKIAkJCQkwNzJBNzAzRTFENkU4RjYyMDBE
RjBBRkMgLyogT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oICovLApAQCAtMTU1NzgsOCArMTU1
NzAsNiBAQAogCQkJCTkzMkNDMEQxMURGRkQ2NjcwMDRDMEY5RiAvKiBKU01lZGlhVHJhY2tDb25z
dHJhaW50cy5oICovLAogCQkJCTA3ODdDNDY3MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHAgKi8sCiAJCQkJMDc4N0M0NjgxQkZCREY2RjAwNkRD
RDdGIC8qIEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggKi8sCi0JCQkJMDczQkUz
M0UxN0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcCAqLywKLQkJCQkw
NzNCRTMzRjE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEuaCAqLywKIAkJ
CQkwNzA0QTQwOTFENkRGQzY5MDA4NkRDREIgLyogSlNPdmVyY29uc3RyYWluZWRFcnJvci5jcHAg
Ki8sCiAJCQkJMDcwNEE0MEExRDZERkM2OTAwODZEQ0RCIC8qIEpTT3ZlcmNvbnN0cmFpbmVkRXJy
b3IuaCAqLywKIAkJCQkwNzA0QTQxMzFENkYzOUZCMDA4NkRDREIgLyogSlNPdmVyY29uc3RyYWlu
ZWRFcnJvckV2ZW50LmNwcCAqLywKQEAgLTI2ODA2LDcgKzI2Nzk2LDYgQEAKIAkJCQlDNkYwOEZD
QTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNEOUMyQzEwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOUQyNDdGODBENzU3RTM0MDBGREY5NTkgLyogSlNOYXZpZ2F0b3IuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTA3M0JFMzQxMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVz
ZXJNZWRpYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDM5QzMxMTZDRjQ5NDAwNDhDNzUwIC8q
IEpTTm9kZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxMTVCNzMwOUY4NENENjAwQ0E0
RkMxIC8qIEpTTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NTBEOEUwQTkwRTUy
MTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMwNjQ4LDcg
KzMwNjM3LDYgQEAKIAkJCQlDNkYwOEZDOTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJl
Y29yZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzJDMDBDMTdCNjlFMDA1QzkwQTIgLyog
SlNOYW1lZE5vZGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlEMjQ3RjcwRDc1N0UzNDAw
RkRGOTU5IC8qIEpTTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTA3M0JFMzQwMTdE
MTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNERDMEQzNzA5RkVEMDczMDA3QjAyMzUgLyogSlNOb2RlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDRDlDMjY0MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTMxNTBFQTYxREE3MjE5MDAwMTk0MDEyIC8qIEpTTm9kZURPTUpJVC5j
cHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHJldmlz
aW9uIDIxMTkwOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01NaW1l
VHlwZUFycmF5IG1pbWVUeXBlczsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb29r
aWVFbmFibGVkOwogICAgIGJvb2xlYW4gamF2YUVuYWJsZWQoKTsKLQorICAgIAogICAgIC8vIEZJ
WE1FOiBDb252ZXJ0IHRoaXMgI2lmJ2RlZiB0byBhbiBJREwgY29uZGl0aW9uYWwgYXR0cmlidXRl
LgogI2lmIGRlZmluZWQoV1RGX1BMQVRGT1JNX0lPUykgJiYgV1RGX1BMQVRGT1JNX0lPUwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHN0YW5kYWxvbmU7CkluZGV4OiBTb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTkwOSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wMi0wOCAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJl
YW1dIFJlbW92ZSBsZWdhY3kgTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MDE2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9k
ZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qczoKKwogMjAxNy0wMi0wOCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMTE5MDcuCkluZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMu
anMJKHJldmlzaW9uIDIxMTkwOSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTExNjEsMjEgKzExNjEsNiBAQCBXZWJJbnNwZWN0b3IuTmF0aXZlUHJvdG90eXBlRnVuY3Rpb25Q
YXJhCiAgICAgICAgIF9fcHJvdG9fXzogbnVsbCwKICAgICB9LAogCi0gICAgTmF2aWdhdG9yOiB7
Ci0gICAgICAgIHdlYmtpdEdldFVzZXJNZWRpYTogIm9wdGlvbnMsIHN1Y2Nlc3NDYWxsYmFjaywg
ZXJyb3JDYWxsYmFjayIsCi0gICAgICAgIF9fcHJvdG9fXzogbnVsbCwKLSAgICB9LAotCi0gICAg
TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjazogewotICAgICAgICBoYW5kbGVFdmVudDog
ImVycm9yIiwKLSAgICAgICAgX19wcm90b19fOiBudWxsLAotICAgIH0sCi0KLSAgICBOYXZpZ2F0
b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s6IHsKLSAgICAgICAgaGFuZGxlRXZlbnQ6ICJzdHJl
YW0iLAotICAgICAgICBfX3Byb3RvX186IG51bGwsCi0gICAgfSwKLQogICAgIE5vZGVGaWx0ZXI6
IHsKICAgICAgICAgYWNjZXB0Tm9kZTogIltuXSIsCiAgICAgICAgIF9fcHJvdG9fXzogbnVsbCwK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMTkwOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE3LTAyLTA4ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUmVtb3ZlIGxl
Z2FjeSBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKworICAgICAgICBSZXZpZXdlZCBieSBZ
b3Vlbm4gRmFibGV0LgorCisgICAgICAgIFVwZGF0ZSB2YWxpZCB0ZXN0cyB0byB1c2UgbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEuIFJlbW92ZSB0ZXN0cworICAgICAgICBzcGVj
aWZpYyB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhLgorCisgICAgICAgICogZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1BZGRSZW1vdmVTdHJlYW0uaHRtbDoKKyAgICAg
ICAgKiBmYXN0L21lZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sOgor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1s
OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZW5hYmxlZC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFz
dHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0
cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanM6IFJlbW92ZWQuLgorICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2VuYWJsZWQuanM6CisgICAgICAgIChoYXNH
ZXRVc2VyTWVkaWFQcm9wZXJ0eSk6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNz
Lmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS93ZWJraXRHZXRVc2VyTWVkaWEtc2hh
ZG93aW5nLXRoZW4uaHRtbDogUmVtb3ZlZC4KKwogMjAxNy0wMi0wOCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTE5
MDcuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LUFkZFJlbW92ZVN0cmVhbS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tQWRkUmVtb3ZlU3RyZWFtLmh0bWwJKHJldmlzaW9u
IDIxMTkwOSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24tQWRkUmVtb3ZlU3RyZWFtLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiA8
aHRtbD4KICAgICA8aGVhZD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNl
cy9nZXRVc2VyTWVkaWEtaGVscGVyLmpzIj48L3NjcmlwdD4KICAgICA8L2hlYWQ+CiAgICAgPGJv
ZHk+CiAgICAgICAgIDxzY3JpcHQ+CkBAIC0yMCw3ICsyMSw5IEBACiAgICAgICAgICAgICBmdW5j
dGlvbiBnZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2spCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaywgZXJyb3IpOworICAgICAgICAgICAg
ICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShkaWN0aW9uYXJ5KQor
ICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oY2FsbGJhY2spCisgICAgICAgICAgICAgICAg
ICAgICAgICAuY2F0Y2goZXJyb3IpOwogICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnd2Via2l0R2V0VXNlck1lZGlhIHRocmV3IGV4
Y2VwdGlvbiA6JyArIGUpOwogICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLmh0
bWwJKHJldmlzaW9uIDIxMTkwOSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJn
dW1lbnQtdHlwZXMuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotICAgIDxoZWFk
PgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9i
b2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVk
LXBlcm1pc3Npb24tYWxsb3dlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRtbAkocmV2aXNpb24gMjEx
OTA5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24t
YWxsb3dlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNSwxNyArMTUsMTkgQEAgZnVuY3Rpb24g
YWxsb3dQZXJtaXNzaW9uKCkgewogfQogCiB2YXIgb3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlk
ZW86IHRydWV9OwotbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlv
bihzdHJlYW0pIHsKLSAgIGlmIChwZXJtaXNzaW9uU2V0KSB7Ci0gICAgICAgIHRlc3RQYXNzZWQo
J1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCcpOworbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEob3B0aW9ucykKKyAgICAudGhlbihzdHJlYW0gPT4geworICAgICAgIGlmIChwZXJt
aXNzaW9uU2V0KSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdWNjZXNzIGNhbGxiYWNrIGlu
dm9rZWQnKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tl
ZCB1bmV4cGVjdGVkbHknKTsKKyAgICB9KQorICAgIC5jYXRjaChlcnIgPT4geworICAgICAgICB0
ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwogICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICB0ZXN0RmFpbGVk
KCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci19LCBmdW5jdGlvbihl
KSB7Ci0gICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHkn
KTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOworICAgIH0pOwogCiB3aW5kb3cuc2V0VGltZW91
dChhbGxvd1Blcm1pc3Npb24sIDEwMCk7CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmll
ZC5odG1sCShyZXZpc2lvbiAyMTE5MDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTYsMTkg
KzE2LDE5IEBAIGZ1bmN0aW9uIGRlbnlQZXJtaXNzaW9uKCkgewogCiB2YXIgZXJyb3I7CiB2YXIg
b3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OwotbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKLSAgICB0ZXN0RmFpbGVkKCdT
dWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci0gICAgZmluaXNoSlNUZXN0
KCk7Ci19LCBmdW5jdGlvbihlKSB7Ci0gICAgaWYgKHBlcm1pc3Npb25TZXQpIHsKLSAgICAgICAg
ZXJyb3IgPSBlOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Vycm9yLm5hbWUnLCAn
Tm90QWxsb3dlZEVycm9yJyk7CituYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShv
cHRpb25zKQorICAgIC50aGVuKHN0cmVhbSA9PiB7CisgICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nl
c3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKICAgICAgICAgZmluaXNoSlNUZXN0
KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJh
Y2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOworICAg
IH0pCisgICAgLmNhdGNoKGVyciA9PiB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uU2V0KSB7Cisg
ICAgICAgICAgICBlcnJvciA9IGVycjsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygnZXJyb3IubmFtZScsICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScp
OworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKIAogd2luZG93LnNldFRpbWVvdXQo
ZGVueVBlcm1pc3Npb24sIDEwMCk7CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZW5hYmxlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9lbmFibGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjExOTA5
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbmFibGVkLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMywxMCArMywxMiBAQCBUZXN0cyB0aGF0IG5hdmlnYXRvci53ZWJr
aXRHZXRVc2VyTWVkaWEgCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyB0eXBl
b2YgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSA9PSAnZnVuY3Rpb24nIGlzIHRydWUKK1BB
U1MgdHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMgPT0gJ29iamVjdCcgaXMgdHJ1ZQorUEFT
UyB0eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEgPT0gJ2Z1bmN0aW9u
JyBpcyB0cnVlCiBQQVNTIGhhc0dldFVzZXJNZWRpYVByb3BlcnR5KCkgaXMgdHJ1ZQotUEFTUyAn
d2Via2l0R2V0VXNlck1lZGlhJyBpbiBuYXZpZ2F0b3IgaXMgdHJ1ZQotUEFTUyBuYXZpZ2F0b3Iu
aGFzT3duUHJvcGVydHkoJ3dlYmtpdEdldFVzZXJNZWRpYScpIGlzIGZhbHNlCitQQVNTICdtZWRp
YURldmljZXMnIGluIG5hdmlnYXRvciBpcyB0cnVlCitQQVNTICdnZXRVc2VyTWVkaWEnIGluIG5h
dmlnYXRvci5tZWRpYURldmljZXMgaXMgdHJ1ZQorUEFTUyBuYXZpZ2F0b3IuaGFzT3duUHJvcGVy
dHkoJ21lZGlhRGV2aWNlcycpIGlzIGZhbHNlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
ZXJyb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vy
cm9yLmh0bWwJKHJldmlzaW9uIDIxMTkwOSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vZXJyb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTUsMTQgKzE1LDE2IEBAIGVsc2UKIAog
dmFyIGVycm9yOwogdmFyIG9wdGlvbnMgPSB7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9OwotbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKLSAg
ICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci0g
ICAgZmluaXNoSlNUZXN0KCk7Ci19LCBmdW5jdGlvbihlKSB7Ci0gICAgZXJyb3IgPSBlOwotICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXJyb3IubmFtZScsICdOb3RBbGxvd2VkRXJyb3InKTsK
LSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOworbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEob3B0aW9ucykKKyAgICAudGhlbihzdHJlYW0gPT4geworICAgICAgICB0ZXN0RmFpbGVk
KCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgIH0pCisgICAgLmNhdGNoKGVyciA9PiB7CisgICAgICAgIGVycm9yID0g
ZXJyOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Vycm9yLm5hbWUnLCAnTm90QWxs
b3dlZEVycm9yJyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOwogPC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRp
YS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0dXNl
cm1lZGlhLmh0bWwJKHJldmlzaW9uIDIxMTkwOSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMDUgKzAsMCBAQAot
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci0g
ICAgPGhlYWQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotICAg
ICAgICA8c2NyaXB0PgotICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHdlYmtpdEdldFVz
ZXJNZWRpYS4iKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc2V0VXNlck1lZGlhUGVybWlzc2lv
bihpc0dyYW50ZWQpIHsKLSAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbihpc0dy
YW50ZWQpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZGVidWco
IlRoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyIik7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBzdHJlYW07Ci0gICAgICAgICAgICB2YXIgZXJy
b3JBcmc7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGVycm9yKCkgewotICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGNhbGxlZC4nKTsKLSAgICAgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZXhw
ZWN0ZWRFcnJvcigpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdFcnJvciBjYWxsYmFj
ayBjYWxsZWQuJyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0
cmVhbUluRXJyb3IocykgewotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ1N0cmVhbSBnZW5l
cmF0ZWQuJyk7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTUocykgewotICAgICAgICAgICAgICAg
IHN0cmVhbSA9IHM7Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnU3RyZWFtIGdlbmVyYXRl
ZC4nKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCku
bGVuZ3RoJywgJzEnKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldFZpZGVv
VHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLSAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZXJyb3IxKGUpIHsKLSAgICAg
ICAgICAgICAgICBlcnJvckFyZyA9IGU7Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnRXJy
b3IgY2FsbGJhY2sgY2FsbGVkLicpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnZXJyb3JBcmcubmFtZScsICdPdmVyY29uc3RyYWluZWRFcnJvcicpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXJyb3JBcmcubWVzc2FnZScsICdJbnZhbGlk
IGNvbnN0cmFpbnQnKTsKLQotICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCJuYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp7dm9sdW1lOntleGFjdDoxfX0sIHZpZGVvOnRydWV9
LCBnb3RTdHJlYW01LCAwKTsiKTsKLSAgICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86e3ZvbHVtZTp7ZXhhY3Q6MX19LCB2aWRl
bzp0cnVlfSwgZ290U3RyZWFtNSwgZXJyb3IpOyIpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBnb3RTdHJlYW00KHMpIHsKLSAgICAgICAgICAgICAgICBzdHJlYW0gPSBz
OwotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcx
Jyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxl
bmd0aCcsICcxJyk7Ci0KLSAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygibmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86e3dpZHRoOntleGFjdDoxMX19fSwg
Z290U3RyZWFtSW5FcnJvciwgbnVsbCk7Iik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkTm90VGhy
b3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnt3aWR0
aDp7ZXhhY3Q6MTF9fX0sIGdvdFN0cmVhbUluRXJyb3IsIGVycm9yMSk7Iik7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTMocykgewotICAgICAgICAgICAg
ICAgIHN0cmVhbSA9IHM7Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnU3RyZWFtIGdlbmVy
YXRlZC4nKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tz
KCkubGVuZ3RoJywgJzEnKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldFZp
ZGVvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLQotICAgICAgICAgICAgICAgIHNob3VsZFRocm93
KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp7fSwgdmlkZW86dHJ1ZX0sIGdv
dFN0cmVhbTQsIG51bGwpOyIpOwotICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp7fSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVh
bTQsIGVycm9yKTsiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZ290
U3RyZWFtMihzKSB7Ci0gICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMCcpOwotICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotCi0g
ICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
e2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBnb3RTdHJlYW0zLCBudWxsKTsiKTsKLSAgICAgICAg
ICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVk
aW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTMsIGVycm9yKTsiKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtMShzKSB7Ci0gICAgICAgICAgICAg
ICAgc3RyZWFtID0gczsKLSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJh
dGVkLicpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3Mo
KS5sZW5ndGgnLCAnMScpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0Vmlk
ZW9UcmFja3MoKS5sZW5ndGgnLCAnMCcpOwotCi0gICAgICAgICAgICAgICAgc2hvdWxkVGhyb3co
Im5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOnRydWV9LCBnb3RTdHJlYW0yLCBu
dWxsKTsiKQotICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHt2aWRlbzp0cnVlfSwgZ290U3RyZWFtMiwgZXJyb3IpOyIpCi0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhKHthdWRpbzpmYWxzZSwgdmlkZW86ZmFsc2V9LCBlcnJvciwgZXhwZWN0ZWRFcnJv
cik7IikKLSAgICAgICAgICAgIHNob3VsZFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHthdWRpbzpmYWxzZSwgdmlkZW86ZmFsc2V9LCBlcnJvciwgbnVsbCk7IikKLQotICAgICAg
ICAgICAgc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKLSAgICAgICAgICAgIHNob3VsZE5v
dFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSwgZ290U3Ry
ZWFtMSwgZXJyb3IpOyIpOwotCi0gICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci0gICAgICAgICAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLSAgICAg
ICAgPC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbAkocmV2aXNpb24gMjExOTA5KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTE0LDEyICsxNCwxNCBAQCBlbHNlCiAgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJl
IHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CiAKIHZhciBvcHRpb25zID0ge2F1ZGlvOiB0
cnVlLCB2aWRlbzogdHJ1ZX07Ci1uYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMs
IGZ1bmN0aW9uKHN0cmVhbSkgewotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgZnVuY3Rpb24oZSkg
ewotICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7
Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKK25hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKG9wdGlvbnMpCisgICAgLnRoZW4oc3RyZWFtID0+IHsKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgfSkKKyAgICAuY2F0Y2goZXJyID0+IHsKKyAgICAgICAgdGVzdEZhaWxlZCgn
RXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgfSk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vd2Via2l0R2V0VXNlck1lZGlhLXNoYWRvd2luZy10aGVuLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS93ZWJraXRHZXRVc2VyTWVk
aWEtc2hhZG93aW5nLXRoZW4uaHRtbAkocmV2aXNpb24gMjExOTA5KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS93ZWJraXRHZXRVc2VyTWVkaWEtc2hhZG93aW5nLXRoZW4uaHRtbAko
bm9uZXhpc3RlbnQpCkBAIC0xLDQ0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWwgbGFu
Zz0iZW4iPgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDx0aXRsZT5T
aGFkb3dpbmcgdGhlbigpPC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotPCEtLQotVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgdGhlIGltcGxlbWVudGF0aW9uIG9mIG5hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEgZG9lcyBub3QgdXNlIHB1YmxpYyBwcm9taXNlIEFQSXMuCi0tLT4KLTxwIGlkPSJv
dXRwdXQiPjwvcD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBlbmRUZXN0KHRlc3RTdGF0dXMpIHsKLSAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLnRleHRDb250ZW50ID0gdGVz
dFN0YXR1czsKLSAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfQotCi0gICAg
Ly8gU2hhZG93IFByb21pc2UucHJvdG90eXBlLnRoZW4KLSAgICBQcm9taXNlLnByb3RvdHlwZS50
aGVuID0gKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgY29uc3QgcmVhbFRoZW4gPSBQcm9taXNlLnBy
b3RvdHlwZS50aGVuOwotICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
ZW5kVGVzdCgiRkFJTDogRXhlY3V0ZWQgc2hhZG93ZWQsIHB1YmxpYyAudGhlbigpIik7Ci0gICAg
ICAgIH0KLSAgICB9KSgpOwotCi0gICAgZnVuY3Rpb24gZ290VXNlck1lZGlhKG1lZGlhU3RyZWFt
KSB7Ci0gICAgICAgIGVuZFRlc3QoIkZBSUw6IEdvdCB1c2VyIG1lZGlhIik7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gdXNlck1lZGlhRXJyb3IoZXJyb3IpIHsKLSAgICAgICAgZW5kVGVzdCgiUEFT
UyIpOwotICAgIH0KLQotICAgIHZhciBvcHRpb25zID0geyBhdWRpbzogZmFsc2UsIHZpZGVvOiBm
YWxzZSB9OwotICAgIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZ290VXNl
ck1lZGlhLCB1c2VyTWVkaWFFcnJvcik7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1lbnQt
dHlwZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3Jp
cHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMJKHJldmlzaW9uIDIxMTkwOSkKKysrIExheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2FyZ3VtZW50LXR5cGVzLmpzCShub25l
eGlzdGVudCkKQEAgLTEsNzAgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBhY2NlcHRh
YmxlIHR5cGVzIGZvciBhcmd1bWVudHMgdG8gbmF2aWdhdG9yLmdldFVzZXJNZWRpYSBtZXRob2Rz
LiIpOwotCi1mdW5jdGlvbiB0ZXN0KGV4cHJlc3Npb24sIGV4cHJlc3Npb25TaG91bGRUaHJvdywg
ZXhwZWN0ZWRFeGNlcHRpb24pIHsKLSAgICBpZiAoZXhwcmVzc2lvblNob3VsZFRocm93KSB7Ci0g
ICAgICAgIGlmIChleHBlY3RlZEV4Y2VwdGlvbikKLSAgICAgICAgICAgIHNob3VsZFRocm93KGV4
cHJlc3Npb24sICciJyArIGV4cGVjdGVkRXhjZXB0aW9uICsgJyInKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgc2hvdWxkVGhyb3coZXhwcmVzc2lvbiwgJyJUeXBlRXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzIicpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNob3VsZE5vdFRocm93KGV4
cHJlc3Npb24pOwotICAgIH0KLX0KLQotdmFyIGVycm9yQ2FsbGJhY2tFcnJvciA9IG5ldyBUeXBl
RXJyb3IoIkFyZ3VtZW50IDMgKCdlcnJvckNhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rpb24iKQotdmFyIGludmFsaWREaWN0aW9uYXJ5RXJy
b3IgPSBuZXcgVHlwZUVycm9yKCdGaXJzdCBhcmd1bWVudCBvZiB3ZWJraXRHZXRVc2VyTWVkaWEg
bXVzdCBiZSBhIHZhbGlkIERpY3Rpb25hcnknKQotdmFyIG5vdFN1cHBvcnRlZEVycm9yID0gbmV3
IEVycm9yKCdOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5Jyk7Ci12YXIgc3VjY2Vz
c0NhbGxiYWNrRXJyb3IgPSBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCAyICgnc3VjY2Vzc0NhbGxi
YWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rpb24i
KQotdmFyIHR5cGVFcnJvciA9IG5ldyBUeXBlRXJyb3IoJ1R5cGUgZXJyb3InKTsKLXZhciB0eXBl
Tm90QW5PYmplY3RFcnJvciA9IG5ldyBUeXBlRXJyb3IoJ05vdCBhbiBvYmplY3QuJyk7Ci0KLXZh
ciBlbXB0eUZ1bmN0aW9uID0gZnVuY3Rpb24oKSB7fTsKLQotLy8gTm8gYXJndW1lbnRzCi10ZXN0
KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCknLCB0cnVlKTsKLQotLy8gMSBBcmd1bWVu
dCAoTmF2aWd0b3Iud2Via2l0R2V0VXNlck1lZGlhIHJlcXVpcmVzIGF0IGxlYXN0IDMgYXJndW1l
bnRzKS4KLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodW5kZWZpbmVkKScsIHRy
dWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShudWxsKScsIHRydWUpOwot
dGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7IH0pJywgdHJ1ZSk7Ci10ZXN0KCdu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0pJywgdHJ1ZSk7Ci10ZXN0
KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHRydWUpJywgdHJ1ZSk7Ci10ZXN0KCduYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKDQyKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYShJbmZpbml0eSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJr
aXRHZXRVc2VyTWVkaWEoLUluZmluaXR5KScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYShlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotCi0vLyAyIEFyZ3VtZW50cy4K
LXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlG
dW5jdGlvbiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodW5k
ZWZpbmVkLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYShudWxsLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSh7IH0sIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCdu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHRydWUsIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7
Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKDQyLCBlbXB0eUZ1bmN0aW9uKScs
IHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShJbmZpbml0eSwgZW1w
dHlGdW5jdGlvbiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
LUluZmluaXR5LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYShlbXB0eUZ1bmN0aW9uLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVz
dCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCAiZm9vYmFyIikn
LCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVl
fSwgdW5kZWZpbmVkKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YSh7dmlkZW86IHRydWV9LCBudWxsKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCB7fSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgdHJ1ZSknLCB0cnVlKTsKLXRlc3QoJ25h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgNDIpJywgdHJ1ZSk7Ci10
ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIEluZmluaXR5
KScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9LCAtSW5maW5pdHkpJywgdHJ1ZSk7Ci0KLS8vIDMgQXJndW1lbnRzLgotdGVzdCgnbmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYSh7IH0sIGVtcHR5RnVuY3Rpb24sIGVtcHR5RnVuY3Rpb24p
JywgZmFsc2UpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9LCBlbXB0eUZ1bmN0aW9uLCBlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKLXRlc3QoJ25hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdW5k
ZWZpbmVkKScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZW1wdHlGdW5jdGlvbiwg
dW5kZWZpbmVkKScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdW5kZWZpbmVk
KScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sICJ2aWRlbyIpJywgdHJ1ZSwg
ZXJyb3JDYWxsYmFja0Vycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
e3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwgbnVsbCknLCB0cnVlLCBlcnJvckNhbGxiYWNr
RXJyb3IgKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVl
fSwgZW1wdHlGdW5jdGlvbiwge30pJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9yKTsKLXRlc3Qo
J25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlv
biwgdHJ1ZSknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCA0MiknLCB0cnVl
LCBlcnJvckNhbGxiYWNrRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCBJbmZpbml0eSknLCB0cnVlLCBlcnJvckNh
bGxiYWNrRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86
IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCAtSW5maW5pdHkpJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vy
cm9yKTsKLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSBmYWxzZTsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2VuYWJsZWQuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvZW5hYmxlZC5qcwkocmV2
aXNpb24gMjExOTA5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVz
dHMvZW5hYmxlZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMywxNSArMywyMiBAQCBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCBuYXZpZ2F0b3Iud2Via2l0CiBmdW5jdGlvbiBoYXNHZXRVc2VyTWVkaWFQ
cm9wZXJ0eSgpCiB7CiAgICAgZm9yICh2YXIgcHJvcGVydHkgaW4gbmF2aWdhdG9yKSB7Ci0gICAg
ICAgIGlmIChwcm9wZXJ0eSA9PSAid2Via2l0R2V0VXNlck1lZGlhIikKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICBpZiAocHJvcGVydHkgPT0gIm1lZGlhRGV2aWNlcyIpIHsKKyAg
ICAgICAgICAgIHZhciBkZXZpY2VzID0gbmF2aWdhdG9yW3Byb3BlcnR5XTsKKyAgICAgICAgICAg
IGZvciAocHJvcGVydHkgaW4gZGV2aWNlcykgeworICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0
eSA9PSAiZ2V0VXNlck1lZGlhIikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1z
aG91bGRCZVRydWUoInR5cGVvZiBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhID09ICdmdW5j
dGlvbiciKTsKK3Nob3VsZEJlVHJ1ZSgidHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMgPT0g
J29iamVjdCciKTsKK3Nob3VsZEJlVHJ1ZSgidHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhID09ICdmdW5jdGlvbiciKTsKIHNob3VsZEJlVHJ1ZSgiaGFzR2V0VXNlck1l
ZGlhUHJvcGVydHkoKSIpOwotc2hvdWxkQmVUcnVlKCInd2Via2l0R2V0VXNlck1lZGlhJyBpbiBu
YXZpZ2F0b3IiKTsKLXNob3VsZEJlRmFsc2UoIm5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0eSgnd2Vi
a2l0R2V0VXNlck1lZGlhJykiKTsKK3Nob3VsZEJlVHJ1ZSgiJ21lZGlhRGV2aWNlcycgaW4gbmF2
aWdhdG9yIik7CitzaG91bGRCZVRydWUoIidnZXRVc2VyTWVkaWEnIGluIG5hdmlnYXRvci5tZWRp
YURldmljZXMiKTsKK3Nob3VsZEJlRmFsc2UoIm5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0eSgnbWVk
aWFEZXZpY2VzJykiKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301036</attachid>
            <date>2017-02-09 07:47:40 -0800</date>
            <delta_ts>2017-02-09 08:53:50 -0800</delta_ts>
            <desc>One more time</desc>
            <filename>remove_navigator_getusermedia_patch_7.txt</filename>
            <type>text/plain</type>
            <size>43734</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTkwOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE3LTAyLTA5ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
UmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgZXhpc3Rpbmcg
dGVzdHMgdXBkYXRlZC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogTmF2aWdhdG9yVXNlck1lZGlhLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
IERpdHRvLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBEaXR0by4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5pZGw6IFJlbW92ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuanM6IFJlbW92ZWQuCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBh
Z2UvTmF2aWdhdG9yLmlkbDogQWRkIHNvbWUgd2hpdGVzcGFjZSB0byBmb3JjZSBkZXJpdmVkIHNv
dXJjZXMgdG8gYmUgcmVidWlsZCBjb3JyZWN0bHkuCisKIDIwMTctMDItMDggIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjExOTA3LgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIxMTkwOSkKKysrIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMjIsNyArMjIy
LDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvck1lZGlhRGV2aWNlcy5pZGwKLSAgICBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmln
YXRvclVzZXJNZWRpYS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5l
ZEVycm9yLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vT3ZlcmNvbnN0cmFpbmVkRXJyb3JF
dmVudC5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaWRsCkBA
IC0zNjcyLDcgKzM2NzEsNiBAQCBzZXQoV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VTCiAgICAgJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuanMKICAgICAke1dFQkNPUkVf
RElSfS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuanMKICAgICAke1dFQkNPUkVfRElSfS9N
b2R1bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNjb3BlRmV0Y2guanMKLSAgICAke1dFQkNPUkVfRElS
fS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwogICAgICR7V0VCQ09S
RV9ESVJ9L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uanMKICAgICAke1dF
QkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSW50ZXJuYWxz
LmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1aW5n
U3RyYXRlZ3kuanMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHJldmlzaW9uIDIx
MTkwOSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzUwLDcgKzM1MCw2IEBACiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3JDb250ZW50VXRpbHMu
Y3BwIgogI2luY2x1ZGUgIkpTTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwIgogI2luY2x1ZGUgIkpT
TmF2aWdhdG9yTWVkaWFEZXZpY2VzLmNwcCIKLSNpbmNsdWRlICJKU05hdmlnYXRvclVzZXJNZWRp
YS5jcHAiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3JWaWJyYXRpb24uY3BwIgogI2luY2x1ZGUgIkpT
Tm9kZS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlRmlsdGVyLmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjExOTA5KQorKysgU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTYzLDcgKzE2Myw2IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFU
cmFja0NvbnN0cmFpbnRzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaWRsIFwKLSAgICAkKFdlYkNv
cmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yRXZl
bnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJh
dGlvbi5pZGwgXApAQCAtMTM0NCw3ICsxMzQzLDYgQEAgV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VT
ID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuanMgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmpzIFwKICAgICAke1dlYkNv
cmV9L01vZHVsZXMvZmV0Y2gvV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5qcyBcCi0gICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcyBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmpzIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25JbnRlcm5hbHMu
anMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1aW5nU3Ry
YXRlZ3kuanMgXApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZp
Z2F0b3JVc2VyTWVkaWEuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbAkocmV2aXNpb24gMjExOTA5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRs
CShub25leGlzdGVudCkKQEAgLTEsMjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi1bCi0gICAgQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNLAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9TWVkaWFTdHJlYW0sCi1dIHBhcnRpYWwg
aW50ZXJmYWNlIE5hdmlnYXRvciB7Ci0gICAgW0pTQnVpbHRpbl0gdm9pZCB3ZWJraXRHZXRVc2Vy
TWVkaWEoTWVkaWFTdHJlYW1Db25zdHJhaW50cyBjb25zdHJhaW50cywgTmF2aWdhdG9yVXNlck1l
ZGlhU3VjY2Vzc0NhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKLX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwkocmV2
aXNpb24gMjExOTA5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZp
Z2F0b3JVc2VyTWVkaWEuanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotLy8gQGNvbmRpdGlvbmFsPUVOQUJMRShNRURJQV9TVFJFQU0pCi0K
LWZ1bmN0aW9uIHdlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBzdWNjZXNzQ2FsbGJhY2ssIGVy
cm9yQ2FsbGJhY2spCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgLy8gRklYTUU6IFdlIHNo
b3VsZCByYWlzZSBhIERPTSB1bnN1cHBvcnRlZCBleGNlcHRpb24gaWYgdGhlcmUgaXMgbm8gbmF2
aWdhdG9yIGFuZCBwcm9wZXJseSBkZXRlY3Qgd2hldGhlciBtZXRob2QgaXMgbm90IGNhbGxlZCBv
biBhIE5hdmlnYXRvciBvYmplY3QuCi0gICAgaWYgKCEodGhpcy5tZWRpYURldmljZXMgJiYgdGhp
cy5tZWRpYURldmljZXMuQGdldFVzZXJNZWRpYSkpCi0gICAgICAgIHRocm93IEBtYWtlVGhpc1R5
cGVFcnJvcigiTmF2aWdhdG9yIiwgIndlYmtpdEdldFVzZXJNZWRpYSIpOwotCi0gICAgaWYgKGFy
Z3VtZW50cy5sZW5ndGggPCAzKQotICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIk5vdCBlbm91Z2gg
YXJndW1lbnRzIik7Ci0KLSAgICBpZiAob3B0aW9ucyAhPT0gQE9iamVjdChvcHRpb25zKSkKLSAg
ICAgICAgQHRocm93VHlwZUVycm9yKCJBcmd1bWVudCAxIChvcHRpb25zKSB0byBOYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYW4gb2JqZWN0Iik7Ci0KLSAgICBpZiAodHlwZW9m
IHN1Y2Nlc3NDYWxsYmFjayAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgQHRocm93VHlwZUVycm9y
KCJBcmd1bWVudCAyICgnc3VjY2Vzc0NhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKLSAgICBpZiAodHlwZW9mIGVycm9yQ2FsbGJh
Y2sgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIEB0aHJvd1R5cGVFcnJvcigiQXJndW1lbnQgMyAo
J2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUg
YSBmdW5jdGlvbiIpOwotCi0gICAgdGhpcy5tZWRpYURldmljZXMuQGdldFVzZXJNZWRpYShvcHRp
b25zKS5AdGhlbihzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOwotfQpJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjExOTA5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsOCArMTQ2LDYgQEAKIAkJMDczQjg3Njcx
RTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVD
IC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oICovOyB9OwogCQkwNzNCODc2ODFFNDM4NUFDMDA3
MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRp
b1NhbXBsZURhdGFTb3VyY2UuY3BwICovOyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMg
LyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVE
YXRhU291cmNlLmggKi87IH07Ci0JCTA3M0JFMzQwMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmln
YXRvclVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzNCRTMzRTE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEu
Y3BwICovOyB9OwotCQkwNzNCRTM0MTE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2Vy
TWVkaWEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
M0JFMzNGMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3M0JFMzRFMTdEMTgw
QjIwMDJCRDQzMSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQkFCMTdDRjBBRDQw
MDg0OEU1MSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCAqLzsgfTsKIAkJ
MDczQkUzNEYxN0QxODE4MzAwMkJENDMxIC8qIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCQTYx
N0NGMEFENDAwODQ4RTUxIC8qIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwICovOyB9Owog
CQkwNzQ0RUNFRDFFMEM0RTMwMDAwRDA5NDQgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQ0RUNF
QzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gKi87IH07
CkBAIC03MTg1LDcgKzcxODMsNiBAQAogCQkwNzIyMUI1NzE3Q0VDMzI3MDA4NDhFNTEgLyogTWVk
aWFTdHJlYW1UcmFja0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3MjIxQjU4MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1UcmFja0V2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjU5MTdDRUMzMjcwMDg0OEU1MSAv
KiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlh
U3RyZWFtVHJhY2tFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MjIx
QjVDMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWEuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IE5hdmlnYXRvclVzZXJNZWRpYS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3MjIxQjYzMTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENEYXRhQ2hhbm5lbC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjY0MTdDRUMzMjcwMDg0OEU1MSAv
KiBSVENEYXRhQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENE
YXRhQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIyMUI2NTE3Q0VD
MzI3MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJUQ0RhdGFDaGFubmVsLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyNzgs
OCArNzI3NSw2IEBACiAJCTA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1
ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVC
dWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY0MUU0Mzg1
OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Nh
bXBsZURhdGFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDczQkUzM0Ux
N0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDczQkUzM0YxN0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2
aWdhdG9yVXNlck1lZGlhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTmF2
aWdhdG9yVXNlck1lZGlhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDRFQ0VC
MUUwQzRBRTUwMDBEMDk0NCAvKiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ0RUNFQzFFMEM0QUU1MDAwRDA5NDQgLyog
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGlt
ZVJhbmdlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9y
bVRpbWVSYW5nZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODg2Miw3ICs4
ODU3LDYgQEAKIAkJNDE5QkMyREMxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaXRlZExpbmtTdGF0
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUJDMkREMTY4NTMyOTkwMEQ2
NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpc2l0ZWRMaW5rU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5
QkU3NTIxQkM3RjNEQjAwRTFDODVCIC8qIFdlYkNvcmVCdWlsdGluTmFtZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk0MTlCRTc1QTFCQ0JEM0VEMDBFMUM4NUIgLyogTmF2aWdhdG9y
VXNlck1lZGlhLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gTmF2
aWdhdG9yVXNlck1lZGlhLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlGQUZB
RDFBQkFCQ0Q1MDA1QjgyOEIgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUEwMjNFRDFBMzlEQjc5MDBGNzIyQ0YgLyogUmVh
ZGFibGVTdHJlYW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkRG
IC8qIFdyaXRhYmxlU3RyZWFtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXcml0YWJsZVN0
cmVhbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTM0OSw4ICsxNTM0Myw2
IEBACiAJCQkJNUVBNzI1Q0ExQUNBQkNCNTAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2aWNl
cy5jcHAgKi8sCiAJCQkJNUVBNzI1Q0IxQUNBQkNCNTAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlh
RGV2aWNlcy5oICovLAogCQkJCTVFQTcyNUNDMUFDQUJDQjUwMEVBRDE3QiAvKiBOYXZpZ2F0b3JN
ZWRpYURldmljZXMuaWRsICovLAotCQkJCTA3MjIxQjVDMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZp
Z2F0b3JVc2VyTWVkaWEuaWRsICovLAotCQkJCTQxOUJFNzVBMUJDQkQzRUQwMEUxQzg1QiAvKiBO
YXZpZ2F0b3JVc2VyTWVkaWEuanMgKi8sCiAJCQkJMDcwNEE0MDUxRDZERTlGMTAwODZEQ0RCIC8q
IE92ZXJjb25zdHJhaW5lZEVycm9yLmggKi8sCiAJCQkJMDcwNEE0MDMxRDZERTlGMTAwODZEQ0RC
IC8qIE92ZXJjb25zdHJhaW5lZEVycm9yLmlkbCAqLywKIAkJCQkwNzJBNzAzRTFENkU4RjYyMDBE
RjBBRkMgLyogT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oICovLApAQCAtMTU1NzgsOCArMTU1
NzAsNiBAQAogCQkJCTkzMkNDMEQxMURGRkQ2NjcwMDRDMEY5RiAvKiBKU01lZGlhVHJhY2tDb25z
dHJhaW50cy5oICovLAogCQkJCTA3ODdDNDY3MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHAgKi8sCiAJCQkJMDc4N0M0NjgxQkZCREY2RjAwNkRD
RDdGIC8qIEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggKi8sCi0JCQkJMDczQkUz
M0UxN0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcCAqLywKLQkJCQkw
NzNCRTMzRjE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEuaCAqLywKIAkJ
CQkwNzA0QTQwOTFENkRGQzY5MDA4NkRDREIgLyogSlNPdmVyY29uc3RyYWluZWRFcnJvci5jcHAg
Ki8sCiAJCQkJMDcwNEE0MEExRDZERkM2OTAwODZEQ0RCIC8qIEpTT3ZlcmNvbnN0cmFpbmVkRXJy
b3IuaCAqLywKIAkJCQkwNzA0QTQxMzFENkYzOUZCMDA4NkRDREIgLyogSlNPdmVyY29uc3RyYWlu
ZWRFcnJvckV2ZW50LmNwcCAqLywKQEAgLTI2ODA2LDcgKzI2Nzk2LDYgQEAKIAkJCQlDNkYwOEZD
QTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNEOUMyQzEwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOUQyNDdGODBENzU3RTM0MDBGREY5NTkgLyogSlNOYXZpZ2F0b3IuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTA3M0JFMzQxMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVz
ZXJNZWRpYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDM5QzMxMTZDRjQ5NDAwNDhDNzUwIC8q
IEpTTm9kZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxMTVCNzMwOUY4NENENjAwQ0E0
RkMxIC8qIEpTTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NTBEOEUwQTkwRTUy
MTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMwNjQ4LDcg
KzMwNjM3LDYgQEAKIAkJCQlDNkYwOEZDOTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJl
Y29yZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzJDMDBDMTdCNjlFMDA1QzkwQTIgLyog
SlNOYW1lZE5vZGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlEMjQ3RjcwRDc1N0UzNDAw
RkRGOTU5IC8qIEpTTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTA3M0JFMzQwMTdE
MTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNERDMEQzNzA5RkVEMDczMDA3QjAyMzUgLyogSlNOb2RlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDRDlDMjY0MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTMxNTBFQTYxREE3MjE5MDAwMTk0MDEyIC8qIEpTTm9kZURPTUpJVC5j
cHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHJldmlz
aW9uIDIxMTkwOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01NaW1l
VHlwZUFycmF5IG1pbWVUeXBlczsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb29r
aWVFbmFibGVkOwogICAgIGJvb2xlYW4gamF2YUVuYWJsZWQoKTsKLQorICAgIAogICAgIC8vIEZJ
WE1FOiBDb252ZXJ0IHRoaXMgI2lmJ2RlZiB0byBhbiBJREwgY29uZGl0aW9uYWwgYXR0cmlidXRl
LgogI2lmIGRlZmluZWQoV1RGX1BMQVRGT1JNX0lPUykgJiYgV1RGX1BMQVRGT1JNX0lPUwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHN0YW5kYWxvbmU7CkluZGV4OiBTb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTkwOSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wMi0wOSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJl
YW1dIFJlbW92ZSBsZWdhY3kgTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MDE2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9k
ZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qczoKKwogMjAxNy0wMi0wOCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMTE5MDcuCkluZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMu
anMJKHJldmlzaW9uIDIxMTkwOSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTExNjEsMjEgKzExNjEsNiBAQCBXZWJJbnNwZWN0b3IuTmF0aXZlUHJvdG90eXBlRnVuY3Rpb25Q
YXJhCiAgICAgICAgIF9fcHJvdG9fXzogbnVsbCwKICAgICB9LAogCi0gICAgTmF2aWdhdG9yOiB7
Ci0gICAgICAgIHdlYmtpdEdldFVzZXJNZWRpYTogIm9wdGlvbnMsIHN1Y2Nlc3NDYWxsYmFjaywg
ZXJyb3JDYWxsYmFjayIsCi0gICAgICAgIF9fcHJvdG9fXzogbnVsbCwKLSAgICB9LAotCi0gICAg
TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjazogewotICAgICAgICBoYW5kbGVFdmVudDog
ImVycm9yIiwKLSAgICAgICAgX19wcm90b19fOiBudWxsLAotICAgIH0sCi0KLSAgICBOYXZpZ2F0
b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s6IHsKLSAgICAgICAgaGFuZGxlRXZlbnQ6ICJzdHJl
YW0iLAotICAgICAgICBfX3Byb3RvX186IG51bGwsCi0gICAgfSwKLQogICAgIE5vZGVGaWx0ZXI6
IHsKICAgICAgICAgYWNjZXB0Tm9kZTogIltuXSIsCiAgICAgICAgIF9fcHJvdG9fXzogbnVsbCwK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMTk1MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE3LTAyLTA5ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUmVtb3ZlIGxl
Z2FjeSBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzMwNDMxNTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZSB2YWxpZCB0ZXN0cyB0byB1c2UgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEuIFJlbW92ZSB0ZXN0cworICAgICAgICBzcGVjaWZpYyB0byBOYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1BZGRSZW1vdmVTdHJlYW0uaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L2FyZ3VtZW50LXR5cGVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFz
dHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sOgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vZW5hYmxlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9lcnJvci5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJn
dW1lbnQtdHlwZXMuanM6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9zY3Jp
cHQtdGVzdHMvZW5hYmxlZC5qczoKKyAgICAgICAgKGhhc0dldFVzZXJNZWRpYVByb3BlcnR5KToK
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3N1Y2Nlc3MuaHRtbDoKKyAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL3dlYmtpdEdldFVzZXJNZWRpYS1zaGFkb3dpbmctdGhlbi5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3Rl
ZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlh
L21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNz
aW9uLWRlbmllZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sOgorCiAyMDE3LTAyLTA5ICBBbnRvaW5lIFF1aW50ICA8
Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gQ29u
dHJvbHMgZmFpbCB0byBpbnN0YW50aWF0ZSBpbiBhbiBYSFRNTCBkb2N1bWVudApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1BZGRSZW1vdmVTdHJl
YW0uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLUFkZFJlbW92ZVN0cmVhbS5odG1sCShyZXZpc2lvbiAyMTE5MDkpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLUFkZFJlbW92ZVN0
cmVhbS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogPGh0bWw+CiAgICAgPGhl
YWQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvZ2V0VXNlck1lZGlh
LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiAgICAgPC9oZWFkPgogICAgIDxib2R5PgogICAgICAgICA8
c2NyaXB0PgpAQCAtMjAsNyArMjEsOSBAQAogICAgICAgICAgICAgZnVuY3Rpb24gZ2V0VXNlck1l
ZGlhKGRpY3Rpb25hcnksIGNhbGxiYWNrKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
IHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
ZGljdGlvbmFyeSwgY2FsbGJhY2ssIGVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoZGljdGlvbmFyeSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC50aGVuKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNo
KGVycm9yKTsKICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoJ3dlYmtpdEdldFVzZXJNZWRpYSB0aHJldyBleGNlcHRpb24gOicgKyBl
KTsKICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcmd1bWVudC10eXBlcy5odG1sCShyZXZpc2lvbiAy
MTE5MDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLmh0
bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAg
PC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Fy
Z3VtZW50LXR5cGVzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotICAgIDwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFs
bG93ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Rl
bGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWwJKHJldmlzaW9uIDIxMTkwOSkKKysrIExheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTUsMTcgKzE1LDE5IEBAIGZ1bmN0aW9uIGFsbG93UGVybWlzc2lv
bigpIHsKIH0KIAogdmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsKLW5h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7Ci0g
ICBpZiAocGVybWlzc2lvblNldCkgewotICAgICAgICB0ZXN0UGFzc2VkKCdTdWNjZXNzIGNhbGxi
YWNrIGludm9rZWQnKTsKK25hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKG9wdGlv
bnMpCisgICAgLnRoZW4oc3RyZWFtID0+IHsKKyAgICAgICBpZiAocGVybWlzc2lvblNldCkgewor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkJyk7CisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5
Jyk7CisgICAgfSkKKyAgICAuY2F0Y2goZXJyID0+IHsKKyAgICAgICAgdGVzdEZhaWxlZCgnRXJy
b3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKICAgICAgICAgZmluaXNoSlNUZXN0
KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxs
YmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwotfSwgZnVuY3Rpb24oZSkgewotICAgIHRlc3RG
YWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci0gICAgZmluaXNo
SlNUZXN0KCk7Ci19KTsKKyAgICB9KTsKIAogd2luZG93LnNldFRpbWVvdXQoYWxsb3dQZXJtaXNz
aW9uLCAxMDApOwogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAkocmV2aXNp
b24gMjExOTA5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1p
c3Npb24tZGVuaWVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE2LDE5ICsxNiwxOSBAQCBmdW5j
dGlvbiBkZW55UGVybWlzc2lvbigpIHsKIAogdmFyIGVycm9yOwogdmFyIG9wdGlvbnMgPSB7YXVk
aW86IHRydWUsIHZpZGVvOiB0cnVlfTsKLW5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0
aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFj
ayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgZnVuY3Rp
b24oZSkgewotICAgIGlmIChwZXJtaXNzaW9uU2V0KSB7Ci0gICAgICAgIGVycm9yID0gZTsKLSAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvci5uYW1lJywgJ05vdEFsbG93ZWRFcnJv
cicpOworbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9ucykKKyAgICAu
dGhlbihzdHJlYW0gPT4geworICAgICAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGlu
dm9rZWQgdW5leHBlY3RlZGx5Jyk7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5l
eHBlY3RlZGx5Jyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKKyAgICB9KQorICAgIC5jYXRj
aChlcnIgPT4geworICAgICAgICBpZiAocGVybWlzc2lvblNldCkgeworICAgICAgICAgICAgZXJy
b3IgPSBlcnI7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Vycm9yLm5hbWUn
LCAnTm90QWxsb3dlZEVycm9yJyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgfSk7CiAKIHdpbmRvdy5zZXRUaW1lb3V0KGRlbnlQZXJtaXNzaW9u
LCAxMDApOwogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vu
YWJsZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZW5hYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxMTkwOSkKKysrIExheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vZW5hYmxlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTMsMTAgKzMsMTIgQEAgVGVzdHMgdGhhdCBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgdHlwZW9mIG5hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEgPT0gJ2Z1bmN0aW9uJyBpcyB0cnVlCitQQVNTIHR5cGVvZiBuYXZp
Z2F0b3IubWVkaWFEZXZpY2VzID09ICdvYmplY3QnIGlzIHRydWUKK1BBU1MgdHlwZW9mIG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhID09ICdmdW5jdGlvbicgaXMgdHJ1ZQogUEFT
UyBoYXNHZXRVc2VyTWVkaWFQcm9wZXJ0eSgpIGlzIHRydWUKLVBBU1MgJ3dlYmtpdEdldFVzZXJN
ZWRpYScgaW4gbmF2aWdhdG9yIGlzIHRydWUKLVBBU1MgbmF2aWdhdG9yLmhhc093blByb3BlcnR5
KCd3ZWJraXRHZXRVc2VyTWVkaWEnKSBpcyBmYWxzZQorUEFTUyAnbWVkaWFEZXZpY2VzJyBpbiBu
YXZpZ2F0b3IgaXMgdHJ1ZQorUEFTUyAnZ2V0VXNlck1lZGlhJyBpbiBuYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzIGlzIHRydWUKK1BBU1MgbmF2aWdhdG9yLmhhc093blByb3BlcnR5KCdtZWRpYURldmlj
ZXMnKSBpcyBmYWxzZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lcnJvci5odG1sCShyZXZp
c2lvbiAyMTE5MDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE1LDE0ICsxNSwxNiBAQCBlbHNlCiAKIHZhciBlcnJvcjsKIHZh
ciBvcHRpb25zID0ge2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVlfTsKLW5hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgdGVzdEZhaWxlZCgn
U3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwotICAgIGZpbmlzaEpTVGVz
dCgpOwotfSwgZnVuY3Rpb24oZSkgewotICAgIGVycm9yID0gZTsKLSAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ2Vycm9yLm5hbWUnLCAnTm90QWxsb3dlZEVycm9yJyk7Ci0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19KTsKK25hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKG9wdGlvbnMp
CisgICAgLnRoZW4oc3RyZWFtID0+IHsKKyAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxs
YmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9KQorICAgIC5jYXRjaChlcnIgPT4geworICAgICAgICBlcnJvciA9IGVycjsKKyAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvci5uYW1lJywgJ05vdEFsbG93ZWRFcnJvcicpOwor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS5odG1sCShy
ZXZpc2lvbiAyMTE5MDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldHVzZXJt
ZWRpYS5odG1sCShub25leGlzdGVudCkKQEAgLTEsMTA1ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotICAgIDxoZWFkPgotICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgotICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLSAgICAgICAgPHNjcmlwdD4K
LSAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB3ZWJraXRHZXRVc2VyTWVkaWEuIik7Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHNldFVzZXJNZWRpYVBlcm1pc3Npb24oaXNHcmFudGVkKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oaXNHcmFudGVkKTsKLSAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGRlYnVnKCJUaGlzIHRlc3QgY2Fu
IG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lciIpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICB2YXIgc3RyZWFtOwotICAgICAgICAgICAgdmFyIGVycm9yQXJnOwotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBlcnJvcigpIHsKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdF
cnJvciBjYWxsYmFjayBjYWxsZWQuJyk7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGV4cGVjdGVkRXJyb3IoKSB7
Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnRXJyb3IgY2FsbGJhY2sgY2FsbGVkLicpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBnb3RTdHJlYW1JbkVycm9yKHMp
IHsKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwotICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBmdW5jdGlvbiBnb3RTdHJlYW01KHMpIHsKLSAgICAgICAgICAgICAgICBzdHJlYW0gPSBzOwot
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7
Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0
aCcsICcxJyk7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGVycm9yMShlKSB7Ci0gICAgICAgICAgICAgICAgZXJy
b3JBcmcgPSBlOwotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ0Vycm9yIGNhbGxiYWNrIGNh
bGxlZC4nKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Vycm9yQXJn
Lm5hbWUnLCAnT3ZlcmNvbnN0cmFpbmVkRXJyb3InKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2Vycm9yQXJnLm1lc3NhZ2UnLCAnSW52YWxpZCBjb25zdHJhaW50Jyk7
Ci0KLSAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYSh7YXVkaW86e3ZvbHVtZTp7ZXhhY3Q6MX19LCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtNSwg
MCk7Iik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEoe2F1ZGlvOnt2b2x1bWU6e2V4YWN0OjF9fSwgdmlkZW86dHJ1ZX0sIGdvdFN0
cmVhbTUsIGVycm9yKTsiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24g
Z290U3RyZWFtNChzKSB7Ci0gICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwotICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwot
Ci0gICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEoe2F1ZGlvOnRydWUsIHZpZGVvOnt3aWR0aDp7ZXhhY3Q6MTF9fX0sIGdvdFN0cmVhbUluRXJy
b3IsIG51bGwpOyIpOwotICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp7d2lkdGg6e2V4YWN0OjExfX19
LCBnb3RTdHJlYW1JbkVycm9yLCBlcnJvcjEpOyIpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBnb3RTdHJlYW0zKHMpIHsKLSAgICAgICAgICAgICAgICBzdHJlYW0gPSBz
OwotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcx
Jyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxl
bmd0aCcsICcxJyk7Ci0KLSAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygibmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7YXVkaW86e30sIHZpZGVvOnRydWV9LCBnb3RTdHJlYW00LCBudWxs
KTsiKTsKLSAgICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSh7YXVkaW86e30sIHZpZGVvOnRydWV9LCBnb3RTdHJlYW00LCBlcnJvcik7Iik7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTIocykgewot
ICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgn
U3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdl
dEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzAnKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgn
c3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLQotICAgICAgICAgICAgICAg
IHNob3VsZFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2
aWRlbzp0cnVlfSwgZ290U3RyZWFtMywgbnVsbCk7Iik7Ci0gICAgICAgICAgICAgICAgc2hvdWxk
Tm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVv
OnRydWV9LCBnb3RTdHJlYW0zLCBlcnJvcik7Iik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTEocykgewotICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7
Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnU3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICAg
ICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEn
KTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVu
Z3RoJywgJzAnKTsKLQotICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCJuYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKHt2aWRlbzp0cnVlfSwgZ290U3RyZWFtMiwgbnVsbCk7IikKLSAgICAg
ICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7
dmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTIsIGVycm9yKTsiKQotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVk
aW86ZmFsc2UsIHZpZGVvOmZhbHNlfSwgZXJyb3IsIGV4cGVjdGVkRXJyb3IpOyIpCi0gICAgICAg
ICAgICBzaG91bGRUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86ZmFs
c2UsIHZpZGVvOmZhbHNlfSwgZXJyb3IsIG51bGwpOyIpCi0KLSAgICAgICAgICAgIHNldFVzZXJN
ZWRpYVBlcm1pc3Npb24odHJ1ZSk7Ci0gICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZX0sIGdvdFN0cmVhbTEsIGVycm9yKTsi
KTsKLQotICAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotICAgICAgICAg
ICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0gICAgICAgIDwvc2NyaXB0Pgot
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9zdWNjZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9zdWNjZXNzLmh0bWwJKHJldmlzaW9uIDIxMTkwOSkKKysrIExheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCwxMiArMTQs
MTQgQEAgZWxzZQogICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0
aGUgdGVzdFJ1bm5lcicpOwogCiB2YXIgb3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRy
dWV9OwotbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJl
YW0pIHsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKGUpIHsKLSAgICB0ZXN0RmFp
bGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwotICAgIGZpbmlzaEpT
VGVzdCgpOwotfSk7CituYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShvcHRpb25z
KQorICAgIC50aGVuKHN0cmVhbSA9PiB7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0p
CisgICAgLmNhdGNoKGVyciA9PiB7CisgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNr
IGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0p
OwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3dlYmtpdEdldFVzZXJNZWRpYS1zaGFkb3dpbmctdGhlbi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vd2Via2l0R2V0VXNlck1lZGlhLXNoYWRvd2luZy10
aGVuLmh0bWwJKHJldmlzaW9uIDIxMTkwOSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vd2Via2l0R2V0VXNlck1lZGlhLXNoYWRvd2luZy10aGVuLmh0bWwJKG5vbmV4aXN0ZW50KQpA
QCAtMSw0NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFk
PgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8dGl0bGU+U2hhZG93aW5nIHRoZW4o
KTwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTwhLS0KLVRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIGRvZXMg
bm90IHVzZSBwdWJsaWMgcHJvbWlzZSBBUElzLgotLS0+Ci08cCBpZD0ib3V0cHV0Ij48L3A+Ci08
c2NyaXB0PgotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gZW5kVGVzdCh0ZXN0U3RhdHVzKSB7Ci0gICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS50ZXh0Q29udGVudCA9IHRlc3RTdGF0dXM7Ci0gICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0KLQotICAgIC8vIFNoYWRvdyBQcm9t
aXNlLnByb3RvdHlwZS50aGVuCi0gICAgUHJvbWlzZS5wcm90b3R5cGUudGhlbiA9IChmdW5jdGlv
biAoKSB7Ci0gICAgICAgIGNvbnN0IHJlYWxUaGVuID0gUHJvbWlzZS5wcm90b3R5cGUudGhlbjsK
LSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGVuZFRlc3QoIkZBSUw6
IEV4ZWN1dGVkIHNoYWRvd2VkLCBwdWJsaWMgLnRoZW4oKSIpOwotICAgICAgICB9Ci0gICAgfSko
KTsKLQotICAgIGZ1bmN0aW9uIGdvdFVzZXJNZWRpYShtZWRpYVN0cmVhbSkgewotICAgICAgICBl
bmRUZXN0KCJGQUlMOiBHb3QgdXNlciBtZWRpYSIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHVz
ZXJNZWRpYUVycm9yKGVycm9yKSB7Ci0gICAgICAgIGVuZFRlc3QoIlBBU1MiKTsKLSAgICB9Ci0K
LSAgICB2YXIgb3B0aW9ucyA9IHsgYXVkaW86IGZhbHNlLCB2aWRlbzogZmFsc2UgfTsKLSAgICBu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGdvdFVzZXJNZWRpYSwgdXNlck1l
ZGlhRXJyb3IpOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2FyZ3VtZW50LXR5cGVzLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2FyZ3Vt
ZW50LXR5cGVzLmpzCShyZXZpc2lvbiAyMTE5MDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3NjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcwkobm9uZXhpc3RlbnQpCkBAIC0x
LDcwICswLDAgQEAKLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYWNjZXB0YWJsZSB0eXBlcyBmb3Ig
YXJndW1lbnRzIHRvIG5hdmlnYXRvci5nZXRVc2VyTWVkaWEgbWV0aG9kcy4iKTsKLQotZnVuY3Rp
b24gdGVzdChleHByZXNzaW9uLCBleHByZXNzaW9uU2hvdWxkVGhyb3csIGV4cGVjdGVkRXhjZXB0
aW9uKSB7Ci0gICAgaWYgKGV4cHJlc3Npb25TaG91bGRUaHJvdykgewotICAgICAgICBpZiAoZXhw
ZWN0ZWRFeGNlcHRpb24pCi0gICAgICAgICAgICBzaG91bGRUaHJvdyhleHByZXNzaW9uLCAnIicg
KyBleHBlY3RlZEV4Y2VwdGlvbiArICciJyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNo
b3VsZFRocm93KGV4cHJlc3Npb24sICciVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIn
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBzaG91bGROb3RUaHJvdyhleHByZXNzaW9uKTsKLSAg
ICB9Ci19Ci0KLXZhciBlcnJvckNhbGxiYWNrRXJyb3IgPSBuZXcgVHlwZUVycm9yKCJBcmd1bWVu
dCAzICgnZXJyb3JDYWxsYmFjaycpIHRvIE5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEgbXVz
dCBiZSBhIGZ1bmN0aW9uIikKLXZhciBpbnZhbGlkRGljdGlvbmFyeUVycm9yID0gbmV3IFR5cGVF
cnJvcignRmlyc3QgYXJndW1lbnQgb2Ygd2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSB2YWxp
ZCBEaWN0aW9uYXJ5JykKLXZhciBub3RTdXBwb3J0ZWRFcnJvciA9IG5ldyBFcnJvcignTm90U3Vw
cG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOScpOwotdmFyIHN1Y2Nlc3NDYWxsYmFja0Vycm9y
ID0gbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgMiAoJ3N1Y2Nlc3NDYWxsYmFjaycpIHRvIE5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIGZ1bmN0aW9uIikKLXZhciB0eXBlRXJy
b3IgPSBuZXcgVHlwZUVycm9yKCdUeXBlIGVycm9yJyk7Ci12YXIgdHlwZU5vdEFuT2JqZWN0RXJy
b3IgPSBuZXcgVHlwZUVycm9yKCdOb3QgYW4gb2JqZWN0LicpOwotCi12YXIgZW1wdHlGdW5jdGlv
biA9IGZ1bmN0aW9uKCkge307Ci0KLS8vIE5vIGFyZ3VtZW50cwotdGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSgpJywgdHJ1ZSk7Ci0KLS8vIDEgQXJndW1lbnQgKE5hdmlndG9yLndl
YmtpdEdldFVzZXJNZWRpYSByZXF1aXJlcyBhdCBsZWFzdCAzIGFyZ3VtZW50cykuCi10ZXN0KCdu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHVuZGVmaW5lZCknLCB0cnVlKTsKLXRlc3QoJ25h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEobnVsbCknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEoeyB9KScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9KScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh0cnVlKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSg0MiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEoSW5maW5pdHkpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KC1JbmZpbml0eSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
ZW1wdHlGdW5jdGlvbiknLCB0cnVlKTsKLQotLy8gMiBBcmd1bWVudHMuCi10ZXN0KCduYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24pJywgdHJ1
ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHVuZGVmaW5lZCwgZW1wdHlG
dW5jdGlvbiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEobnVs
bCwgZW1wdHlGdW5jdGlvbiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2Vy
TWVkaWEoeyB9LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYSh0cnVlLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYSg0MiwgZW1wdHlGdW5jdGlvbiknLCB0cnVlKTsKLXRlc3Qo
J25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoSW5maW5pdHksIGVtcHR5RnVuY3Rpb24pJywg
dHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKC1JbmZpbml0eSwgZW1w
dHlGdW5jdGlvbiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
ZW1wdHlGdW5jdGlvbiwgZW1wdHlGdW5jdGlvbiknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgImZvb2JhciIpJywgdHJ1ZSk7Ci10ZXN0
KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIHVuZGVmaW5lZCkn
LCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVl
fSwgbnVsbCknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3Zp
ZGVvOiB0cnVlfSwge30pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHt2aWRlbzogdHJ1ZX0sIHRydWUpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIDQyKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBJbmZpbml0eSknLCB0cnVlKTsKLXRl
c3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgLUluZmluaXR5
KScsIHRydWUpOwotCi0vLyAzIEFyZ3VtZW50cy4KLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEoeyB9LCBlbXB0eUZ1bmN0aW9uLCBlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKLXRl
c3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5j
dGlvbiwgZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIHVuZGVmaW5lZCknLCB0cnVl
LCBlcnJvckNhbGxiYWNrRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIHVuZGVmaW5lZCknLCB0
cnVlLCBlcnJvckNhbGxiYWNrRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYSh7YXVkaW86dHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIHVuZGVmaW5lZCknLCB0cnVlLCBlcnJv
ckNhbGxiYWNrRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlk
ZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCAidmlkZW8iKScsIHRydWUsIGVycm9yQ2FsbGJhY2tF
cnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0s
IGVtcHR5RnVuY3Rpb24sIG51bGwpJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9yICk7Ci10ZXN0
KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rp
b24sIHt9KScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIHRydWUpJywgdHJ1
ZSwgZXJyb3JDYWxsYmFja0Vycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwgNDIpJywgdHJ1ZSwgZXJyb3JDYWxsYmFj
a0Vycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVl
fSwgZW1wdHlGdW5jdGlvbiwgSW5maW5pdHkpJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9yKTsK
LXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlG
dW5jdGlvbiwgLUluZmluaXR5KScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci0KLXdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gZmFsc2U7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL3NjcmlwdC10ZXN0cy9lbmFibGVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2VuYWJsZWQuanMJKHJldmlzaW9uIDIxMTkwOSkK
KysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2VuYWJsZWQuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTMsMTUgKzMsMjIgQEAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
bmF2aWdhdG9yLndlYmtpdAogZnVuY3Rpb24gaGFzR2V0VXNlck1lZGlhUHJvcGVydHkoKQogewog
ICAgIGZvciAodmFyIHByb3BlcnR5IGluIG5hdmlnYXRvcikgewotICAgICAgICBpZiAocHJvcGVy
dHkgPT0gIndlYmtpdEdldFVzZXJNZWRpYSIpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgaWYgKHByb3BlcnR5ID09ICJtZWRpYURldmljZXMiKSB7CisgICAgICAgICAgICB2YXIg
ZGV2aWNlcyA9IG5hdmlnYXRvcltwcm9wZXJ0eV07CisgICAgICAgICAgICBmb3IgKHByb3BlcnR5
IGluIGRldmljZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkgPT0gImdldFVzZXJN
ZWRpYSIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc2hvdWxkQmVUcnVlKCJ0
eXBlb2YgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSA9PSAnZnVuY3Rpb24nIik7CitzaG91
bGRCZVRydWUoInR5cGVvZiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzID09ICdvYmplY3QnIik7Citz
aG91bGRCZVRydWUoInR5cGVvZiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSA9
PSAnZnVuY3Rpb24nIik7CiBzaG91bGRCZVRydWUoImhhc0dldFVzZXJNZWRpYVByb3BlcnR5KCki
KTsKLXNob3VsZEJlVHJ1ZSgiJ3dlYmtpdEdldFVzZXJNZWRpYScgaW4gbmF2aWdhdG9yIik7Ci1z
aG91bGRCZUZhbHNlKCJuYXZpZ2F0b3IuaGFzT3duUHJvcGVydHkoJ3dlYmtpdEdldFVzZXJNZWRp
YScpIik7CitzaG91bGRCZVRydWUoIidtZWRpYURldmljZXMnIGluIG5hdmlnYXRvciIpOworc2hv
dWxkQmVUcnVlKCInZ2V0VXNlck1lZGlhJyBpbiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzIik7Citz
aG91bGRCZUZhbHNlKCJuYXZpZ2F0b3IuaGFzT3duUHJvcGVydHkoJ21lZGlhRGV2aWNlcycpIik7
CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gZmFsc2U7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAyMTE5MDkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9k
aXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTAgKzEsMTAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNDogVHlwZUVycm9yOiBDYW4g
b25seSBjYWxsIE5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEgb24gaW5zdGFuY2VzIG9mIE5h
dmlnYXRvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI0OiBUeXBlRXJyb3I6IG51bGwgaXMgbm90
IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnaWZyYW1lTmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEnKQogVGVzdHMgdGhhdCB3aGVuIGEgZ2V0VXNlck1lZGlhIHJlcXVlc3QgaXMgbWFk
ZSBhZnRlciBpdHMgZnJhbWUgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBubyBjYWxsYmFja3MgYXJl
IG1hZGUgYW5kIG5vIGNyYXNoIG9jY3Vycy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgog
CiAKLXdlYmtpdEdldFVzZXJNZWRpYSBjYWxsZWQgb24gb2JqZWN0IHdpdGggZGlzY29ubmVjdGVk
IEZyYW1lLgorZ2V0VXNlck1lZGlhIGNhbGxlZCBvbiBvYmplY3Qgd2l0aCBkaXNjb25uZWN0ZWQg
RnJhbWUuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbAko
cmV2aXNpb24gMjExOTA5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MjEsMTcgKzIxLDE5IEBAIHZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0K
IGZ1bmN0aW9uIG9uU2Vjb25kSWZyYW1lTG9hZGVkKCkgewogICAgIHNldFRpbWVvdXQoZmluaXNo
VGVzdCwgMTAwKTsKIAotICAgIGlmcmFtZU5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0
aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2Fs
bGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0g
ICAgfSwgZnVuY3Rpb24oZSkgewotICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBp
bnZva2VkIHVuZXhwZWN0ZWRseScpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9KTsK
KyAgICBpZnJhbWVOYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShvcHRpb25zKQor
ICAgICAgICAudGhlbihzdHJlYW0gPT4geworICAgICAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2Vz
cyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgIH0pCisgICAgICAgIC5jYXRjaChlcnIgPT4geworICAgICAgICAgICAg
dGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKIH0KIAogZnVuY3Rpb24gZmluaXNo
VGVzdCgpIHsKLSAgICBkZWJ1Zygnd2Via2l0R2V0VXNlck1lZGlhIGNhbGxlZCBvbiBvYmplY3Qg
d2l0aCBkaXNjb25uZWN0ZWQgRnJhbWUuJyk7CisgICAgZGVidWcoJ2dldFVzZXJNZWRpYSBjYWxs
ZWQgb24gb2JqZWN0IHdpdGggZGlzY29ubmVjdGVkIEZyYW1lLicpOwogICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bS9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQt
ZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAkocmV2aXNpb24gMjExOTA5KQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBl
cm1pc3Npb24tZGVuaWVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDI2ICsxNywzMCBAQCB2
YXIgZXJyb3I7CiB2YXIgb3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OwogZnVu
Y3Rpb24gb25JZnJhbWVMb2FkZWQoKSB7CiAgICAgaWZyYW1lTmF2aWdhdG9yID0gaWZyYW1lLmNv
bnRlbnRXaW5kb3cubmF2aWdhdG9yOwotICAgIGlmcmFtZU5hdmlnYXRvci53ZWJraXRHZXRVc2Vy
TWVkaWEob3B0aW9ucywgZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoJ1N1
Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICAgICAgZmluaXNoSlNU
ZXN0KCk7Ci0gICAgfSwgZnVuY3Rpb24oZSkgewotICAgICAgICBlcnJvciA9IGU7Ci0gICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXJyb3IubmFtZScsICdOb3RBbGxvd2VkRXJyb3InKTsK
LSAgICAgICAgZGVidWcoJycpOwotICAgICAgICBpZnJhbWUuc3JjID0gJ2RhdGE6dGV4dC9odG1s
LFRoaXMgZnJhbWUgc2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUgdGVzdCBjb21wbGV0ZXMnOwot
ICAgIH0pOworICAgIGlmcmFtZU5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKG9w
dGlvbnMpCisgICAgICAgIC50aGVuKHN0cmVhbSA9PiB7CisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSkKKyAgICAgICAgLmNhdGNoKGVyciA9PiB7CisgICAg
ICAgICAgICBlcnJvciA9IGVycjsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
ZXJyb3IubmFtZScsICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICAgICAgICAgIGRlYnVnKCcnKTsK
KyAgICAgICAgICAgIGlmcmFtZS5zcmMgPSAnZGF0YTp0ZXh0L2h0bWwsVGhpcyBmcmFtZSBzaG91
bGQgYmUgdmlzaWJsZSB3aGVuIHRoZSB0ZXN0IGNvbXBsZXRlcyc7CisgICAgICAgIH0pOwogfQog
CiBmdW5jdGlvbiBvbklmcmFtZVVubG9hZGVkKCkgewogICAgIC8vIE1ha2UgYW5vdGhlciByZXF1
ZXN0LCB3aXRoIHBlcm1pc3Npb24gYWxyZWFkeSBkZW5pZWQuCi0gICAgaWZyYW1lTmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKLSAgICAgICAg
dGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwotICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9LCBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHRlc3RG
YWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci0gICAgICAgIGZp
bmlzaEpTVGVzdCgpOwotICAgIH0pOworICAgIGlmcmFtZU5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKG9wdGlvbnMpCisgICAgICAgIC50aGVuKHN0cmVhbSA9PiB7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7
CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSkKKyAgICAgICAgLmNhdGNo
KGVyciA9PiB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2Vk
IHVuZXhwZWN0ZWRseScpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0p
OwogICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgIHRlc3RQYXNzZWQoJ05vIGNh
bGxiYWNrcyBpbnZva2VkJyk7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJl
YW0vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxMTkwOSkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xOCwxMyArMTgsMTUgQEAgZnVuY3Rpb24gb25JZnJhbWVMb2Fk
ZWQoKSB7CiAKIGZ1bmN0aW9uIG9uSWZyYW1lVW5sb2FkZWQoKSB7CiAgICAgdmFyIG9wdGlvbnMg
PSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfTsKLSAgICBpZnJhbWVOYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uIChzdHJlYW0pIHsKLSAgICAgICAgdGVzdEZh
aWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwotICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKLSAgICB9LCBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQo
J0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci0gICAgICAgIGZpbmlzaEpT
VGVzdCgpOwotICAgIH0pOworICAgIGlmcmFtZU5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKG9wdGlvbnMpCisgICAgICAgIC50aGVuKHN0cmVhbSA9PiB7CisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSkKKyAgICAgICAgLmNhdGNoKGVyciA9
PiB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhw
ZWN0ZWRseScpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOwogCiAg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgdGVzdFBhc3NlZCgnTm8gY2FsbGJh
Y2tzIGludm9rZWQnKTsK
</data>
<flag name="commit-queue"
          id="322896"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301044</attachid>
            <date>2017-02-09 08:53:50 -0800</date>
            <delta_ts>2017-02-09 09:31:32 -0800</delta_ts>
            <desc>Another patch.</desc>
            <filename>remove_navigator_getusermedia_patch_7.txt</filename>
            <type>text/plain</type>
            <size>43733</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTkwOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE3LTAyLTA5ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
UmVtb3ZlIGxlZ2FjeSBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgZXhpc3Rpbmcg
dGVzdHMgdXBkYXRlZC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogTmF2aWdhdG9yVXNlck1lZGlhLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
IERpdHRvLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBEaXR0by4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5pZGw6IFJlbW92ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuanM6IFJlbW92ZWQuCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBh
Z2UvTmF2aWdhdG9yLmlkbDogQWRkIHNvbWUgd2hpdGVzcGFjZSB0byBmb3JjZSBkZXJpdmVkIHNv
dXJjZXMgdG8gYmUgcmVidWlsZCBjb3JyZWN0bHkuCisKIDIwMTctMDItMDggIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjExOTA3LgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIxMTkwOSkKKysrIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMjIsNyArMjIy
LDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvck1lZGlhRGV2aWNlcy5pZGwKLSAgICBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmln
YXRvclVzZXJNZWRpYS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5l
ZEVycm9yLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vT3ZlcmNvbnN0cmFpbmVkRXJyb3JF
dmVudC5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaWRsCkBA
IC0zNjcyLDcgKzM2NzEsNiBAQCBzZXQoV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VTCiAgICAgJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuanMKICAgICAke1dFQkNPUkVf
RElSfS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuanMKICAgICAke1dFQkNPUkVfRElSfS9N
b2R1bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNjb3BlRmV0Y2guanMKLSAgICAke1dFQkNPUkVfRElS
fS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwogICAgICR7V0VCQ09S
RV9ESVJ9L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uanMKICAgICAke1dF
QkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSW50ZXJuYWxz
LmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1aW5n
U3RyYXRlZ3kuanMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHJldmlzaW9uIDIx
MTkwOSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzUwLDcgKzM1MCw2IEBACiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3JDb250ZW50VXRpbHMu
Y3BwIgogI2luY2x1ZGUgIkpTTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwIgogI2luY2x1ZGUgIkpT
TmF2aWdhdG9yTWVkaWFEZXZpY2VzLmNwcCIKLSNpbmNsdWRlICJKU05hdmlnYXRvclVzZXJNZWRp
YS5jcHAiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3JWaWJyYXRpb24uY3BwIgogI2luY2x1ZGUgIkpT
Tm9kZS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlRmlsdGVyLmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjExOTA5KQorKysgU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTYzLDcgKzE2Myw2IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFU
cmFja0NvbnN0cmFpbnRzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaWRsIFwKLSAgICAkKFdlYkNv
cmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yRXZl
bnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJh
dGlvbi5pZGwgXApAQCAtMTM0NCw3ICsxMzQzLDYgQEAgV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VT
ID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuanMgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmpzIFwKICAgICAke1dlYkNv
cmV9L01vZHVsZXMvZmV0Y2gvV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5qcyBcCi0gICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcyBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmpzIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25JbnRlcm5hbHMu
anMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1aW5nU3Ry
YXRlZ3kuanMgXApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZp
Z2F0b3JVc2VyTWVkaWEuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbAkocmV2aXNpb24gMjExOTA5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRs
CShub25leGlzdGVudCkKQEAgLTEsMjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi1bCi0gICAgQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNLAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9TWVkaWFTdHJlYW0sCi1dIHBhcnRpYWwg
aW50ZXJmYWNlIE5hdmlnYXRvciB7Ci0gICAgW0pTQnVpbHRpbl0gdm9pZCB3ZWJraXRHZXRVc2Vy
TWVkaWEoTWVkaWFTdHJlYW1Db25zdHJhaW50cyBjb25zdHJhaW50cywgTmF2aWdhdG9yVXNlck1l
ZGlhU3VjY2Vzc0NhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKLX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYS5qcwkocmV2
aXNpb24gMjExOTA5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZp
Z2F0b3JVc2VyTWVkaWEuanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotLy8gQGNvbmRpdGlvbmFsPUVOQUJMRShNRURJQV9TVFJFQU0pCi0K
LWZ1bmN0aW9uIHdlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBzdWNjZXNzQ2FsbGJhY2ssIGVy
cm9yQ2FsbGJhY2spCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgLy8gRklYTUU6IFdlIHNo
b3VsZCByYWlzZSBhIERPTSB1bnN1cHBvcnRlZCBleGNlcHRpb24gaWYgdGhlcmUgaXMgbm8gbmF2
aWdhdG9yIGFuZCBwcm9wZXJseSBkZXRlY3Qgd2hldGhlciBtZXRob2QgaXMgbm90IGNhbGxlZCBv
biBhIE5hdmlnYXRvciBvYmplY3QuCi0gICAgaWYgKCEodGhpcy5tZWRpYURldmljZXMgJiYgdGhp
cy5tZWRpYURldmljZXMuQGdldFVzZXJNZWRpYSkpCi0gICAgICAgIHRocm93IEBtYWtlVGhpc1R5
cGVFcnJvcigiTmF2aWdhdG9yIiwgIndlYmtpdEdldFVzZXJNZWRpYSIpOwotCi0gICAgaWYgKGFy
Z3VtZW50cy5sZW5ndGggPCAzKQotICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIk5vdCBlbm91Z2gg
YXJndW1lbnRzIik7Ci0KLSAgICBpZiAob3B0aW9ucyAhPT0gQE9iamVjdChvcHRpb25zKSkKLSAg
ICAgICAgQHRocm93VHlwZUVycm9yKCJBcmd1bWVudCAxIChvcHRpb25zKSB0byBOYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYW4gb2JqZWN0Iik7Ci0KLSAgICBpZiAodHlwZW9m
IHN1Y2Nlc3NDYWxsYmFjayAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgQHRocm93VHlwZUVycm9y
KCJBcmd1bWVudCAyICgnc3VjY2Vzc0NhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKLSAgICBpZiAodHlwZW9mIGVycm9yQ2FsbGJh
Y2sgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIEB0aHJvd1R5cGVFcnJvcigiQXJndW1lbnQgMyAo
J2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUg
YSBmdW5jdGlvbiIpOwotCi0gICAgdGhpcy5tZWRpYURldmljZXMuQGdldFVzZXJNZWRpYShvcHRp
b25zKS5AdGhlbihzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOwotfQpJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjExOTA5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsOCArMTQ2LDYgQEAKIAkJMDczQjg3Njcx
RTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVD
IC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oICovOyB9OwogCQkwNzNCODc2ODFFNDM4NUFDMDA3
MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRp
b1NhbXBsZURhdGFTb3VyY2UuY3BwICovOyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMg
LyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVE
YXRhU291cmNlLmggKi87IH07Ci0JCTA3M0JFMzQwMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmln
YXRvclVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzNCRTMzRTE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEu
Y3BwICovOyB9OwotCQkwNzNCRTM0MTE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2Vy
TWVkaWEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
M0JFMzNGMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3M0JFMzRFMTdEMTgw
QjIwMDJCRDQzMSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQkFCMTdDRjBBRDQw
MDg0OEU1MSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCAqLzsgfTsKIAkJ
MDczQkUzNEYxN0QxODE4MzAwMkJENDMxIC8qIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCQTYx
N0NGMEFENDAwODQ4RTUxIC8qIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwICovOyB9Owog
CQkwNzQ0RUNFRDFFMEM0RTMwMDAwRDA5NDQgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQ0RUNF
QzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gKi87IH07
CkBAIC03MTg1LDcgKzcxODMsNiBAQAogCQkwNzIyMUI1NzE3Q0VDMzI3MDA4NDhFNTEgLyogTWVk
aWFTdHJlYW1UcmFja0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3MjIxQjU4MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1UcmFja0V2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjU5MTdDRUMzMjcwMDg0OEU1MSAv
KiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlh
U3RyZWFtVHJhY2tFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MjIx
QjVDMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWEuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IE5hdmlnYXRvclVzZXJNZWRpYS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3MjIxQjYzMTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENEYXRhQ2hhbm5lbC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQjY0MTdDRUMzMjcwMDg0OEU1MSAv
KiBSVENEYXRhQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENE
YXRhQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzIyMUI2NTE3Q0VD
MzI3MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJUQ0RhdGFDaGFubmVsLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyNzgs
OCArNzI3NSw2IEBACiAJCTA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1
ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVC
dWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY0MUU0Mzg1
OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Nh
bXBsZURhdGFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDczQkUzM0Ux
N0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDczQkUzM0YxN0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2
aWdhdG9yVXNlck1lZGlhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTmF2
aWdhdG9yVXNlck1lZGlhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDRFQ0VC
MUUwQzRBRTUwMDBEMDk0NCAvKiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ0RUNFQzFFMEM0QUU1MDAwRDA5NDQgLyog
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGlt
ZVJhbmdlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9y
bVRpbWVSYW5nZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODg2Miw3ICs4
ODU3LDYgQEAKIAkJNDE5QkMyREMxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaXRlZExpbmtTdGF0
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUJDMkREMTY4NTMyOTkwMEQ2
NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpc2l0ZWRMaW5rU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5
QkU3NTIxQkM3RjNEQjAwRTFDODVCIC8qIFdlYkNvcmVCdWlsdGluTmFtZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk0MTlCRTc1QTFCQ0JEM0VEMDBFMUM4NUIgLyogTmF2aWdhdG9y
VXNlck1lZGlhLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gTmF2
aWdhdG9yVXNlck1lZGlhLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlGQUZB
RDFBQkFCQ0Q1MDA1QjgyOEIgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUEwMjNFRDFBMzlEQjc5MDBGNzIyQ0YgLyogUmVh
ZGFibGVTdHJlYW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkRG
IC8qIFdyaXRhYmxlU3RyZWFtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXcml0YWJsZVN0
cmVhbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTM0OSw4ICsxNTM0Myw2
IEBACiAJCQkJNUVBNzI1Q0ExQUNBQkNCNTAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2aWNl
cy5jcHAgKi8sCiAJCQkJNUVBNzI1Q0IxQUNBQkNCNTAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlh
RGV2aWNlcy5oICovLAogCQkJCTVFQTcyNUNDMUFDQUJDQjUwMEVBRDE3QiAvKiBOYXZpZ2F0b3JN
ZWRpYURldmljZXMuaWRsICovLAotCQkJCTA3MjIxQjVDMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZp
Z2F0b3JVc2VyTWVkaWEuaWRsICovLAotCQkJCTQxOUJFNzVBMUJDQkQzRUQwMEUxQzg1QiAvKiBO
YXZpZ2F0b3JVc2VyTWVkaWEuanMgKi8sCiAJCQkJMDcwNEE0MDUxRDZERTlGMTAwODZEQ0RCIC8q
IE92ZXJjb25zdHJhaW5lZEVycm9yLmggKi8sCiAJCQkJMDcwNEE0MDMxRDZERTlGMTAwODZEQ0RC
IC8qIE92ZXJjb25zdHJhaW5lZEVycm9yLmlkbCAqLywKIAkJCQkwNzJBNzAzRTFENkU4RjYyMDBE
RjBBRkMgLyogT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oICovLApAQCAtMTU1NzgsOCArMTU1
NzAsNiBAQAogCQkJCTkzMkNDMEQxMURGRkQ2NjcwMDRDMEY5RiAvKiBKU01lZGlhVHJhY2tDb25z
dHJhaW50cy5oICovLAogCQkJCTA3ODdDNDY3MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHAgKi8sCiAJCQkJMDc4N0M0NjgxQkZCREY2RjAwNkRD
RDdGIC8qIEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggKi8sCi0JCQkJMDczQkUz
M0UxN0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcCAqLywKLQkJCQkw
NzNCRTMzRjE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEuaCAqLywKIAkJ
CQkwNzA0QTQwOTFENkRGQzY5MDA4NkRDREIgLyogSlNPdmVyY29uc3RyYWluZWRFcnJvci5jcHAg
Ki8sCiAJCQkJMDcwNEE0MEExRDZERkM2OTAwODZEQ0RCIC8qIEpTT3ZlcmNvbnN0cmFpbmVkRXJy
b3IuaCAqLywKIAkJCQkwNzA0QTQxMzFENkYzOUZCMDA4NkRDREIgLyogSlNPdmVyY29uc3RyYWlu
ZWRFcnJvckV2ZW50LmNwcCAqLywKQEAgLTI2ODA2LDcgKzI2Nzk2LDYgQEAKIAkJCQlDNkYwOEZD
QTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNEOUMyQzEwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOUQyNDdGODBENzU3RTM0MDBGREY5NTkgLyogSlNOYXZpZ2F0b3IuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTA3M0JFMzQxMTdEMTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVz
ZXJNZWRpYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDM5QzMxMTZDRjQ5NDAwNDhDNzUwIC8q
IEpTTm9kZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxMTVCNzMwOUY4NENENjAwQ0E0
RkMxIC8qIEpTTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NTBEOEUwQTkwRTUy
MTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMwNjQ4LDcg
KzMwNjM3LDYgQEAKIAkJCQlDNkYwOEZDOTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJl
Y29yZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzJDMDBDMTdCNjlFMDA1QzkwQTIgLyog
SlNOYW1lZE5vZGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlEMjQ3RjcwRDc1N0UzNDAw
RkRGOTU5IC8qIEpTTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTA3M0JFMzQwMTdE
MTdFMDEwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNERDMEQzNzA5RkVEMDczMDA3QjAyMzUgLyogSlNOb2RlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDRDlDMjY0MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTMxNTBFQTYxREE3MjE5MDAwMTk0MDEyIC8qIEpTTm9kZURPTUpJVC5j
cHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHJldmlz
aW9uIDIxMTkwOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01NaW1l
VHlwZUFycmF5IG1pbWVUeXBlczsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb29r
aWVFbmFibGVkOwogICAgIGJvb2xlYW4gamF2YUVuYWJsZWQoKTsKLQorICAgIAogICAgIC8vIEZJ
WE1FOiBDb252ZXJ0IHRoaXMgI2lmJ2RlZiB0byBhbiBJREwgY29uZGl0aW9uYWwgYXR0cmlidXRl
LgogI2lmIGRlZmluZWQoV1RGX1BMQVRGT1JNX0lPUykgJiYgV1RGX1BMQVRGT1JNX0lPUwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHN0YW5kYWxvbmU7CkluZGV4OiBTb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTkwOSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wMi0wOSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJl
YW1dIFJlbW92ZSBsZWdhY3kgTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MDE2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9k
ZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qczoKKwogMjAxNy0wMi0wOCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMTE5MDcuCkluZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMu
anMJKHJldmlzaW9uIDIxMTkwOSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTExNjEsMjEgKzExNjEsNiBAQCBXZWJJbnNwZWN0b3IuTmF0aXZlUHJvdG90eXBlRnVuY3Rpb25Q
YXJhCiAgICAgICAgIF9fcHJvdG9fXzogbnVsbCwKICAgICB9LAogCi0gICAgTmF2aWdhdG9yOiB7
Ci0gICAgICAgIHdlYmtpdEdldFVzZXJNZWRpYTogIm9wdGlvbnMsIHN1Y2Nlc3NDYWxsYmFjaywg
ZXJyb3JDYWxsYmFjayIsCi0gICAgICAgIF9fcHJvdG9fXzogbnVsbCwKLSAgICB9LAotCi0gICAg
TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjazogewotICAgICAgICBoYW5kbGVFdmVudDog
ImVycm9yIiwKLSAgICAgICAgX19wcm90b19fOiBudWxsLAotICAgIH0sCi0KLSAgICBOYXZpZ2F0
b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s6IHsKLSAgICAgICAgaGFuZGxlRXZlbnQ6ICJzdHJl
YW0iLAotICAgICAgICBfX3Byb3RvX186IG51bGwsCi0gICAgfSwKLQogICAgIE5vZGVGaWx0ZXI6
IHsKICAgICAgICAgYWNjZXB0Tm9kZTogIltuXSIsCiAgICAgICAgIF9fcHJvdG9fXzogbnVsbCwK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMTk1MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE3LTAyLTA5ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUmVtb3ZlIGxl
Z2FjeSBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgwMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzMwNDMxNTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAg
ICAgVXBkYXRlIHZhbGlkIHRlc3RzIHRvIHVzZSBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYS4gUmVtb3ZlIHRlc3RzCisgICAgICAgIHNwZWNpZmljIHRvIE5hdmlnYXRvci53ZWJr
aXRHZXRVc2VyTWVkaWEuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLUFkZFJlbW92ZVN0cmVhbS5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
YXJndW1lbnQtdHlwZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0
cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9lbmFibGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L2Vycm9yLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9hcmd1
bWVudC10eXBlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3Njcmlw
dC10ZXN0cy9lbmFibGVkLmpzOgorICAgICAgICAoaGFzR2V0VXNlck1lZGlhUHJvcGVydHkpOgor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc3VjY2Vzcy5odG1sOgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vd2Via2l0R2V0VXNlck1lZGlhLXNoYWRvd2luZy10aGVuLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVk
LWZyYW1lLWFscmVhZHktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Np
b24tZGVuaWVkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0v
ZGlzY29ubmVjdGVkLWZyYW1lLmh0bWw6CisKIDIwMTctMDItMDkgIEFudG9pbmUgUXVpbnQgIDxn
cmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBDb250
cm9scyBmYWlsIHRvIGluc3RhbnRpYXRlIGluIGFuIFhIVE1MIGRvY3VtZW50CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLUFkZFJlbW92ZVN0cmVh
bS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24tQWRkUmVtb3ZlU3RyZWFtLmh0bWwJKHJldmlzaW9uIDIxMTkwOSkKKysrIExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tQWRkUmVtb3ZlU3Ry
ZWFtLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiA8aHRtbD4KICAgICA8aGVh
ZD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9nZXRVc2VyTWVkaWEt
aGVscGVyLmpzIj48L3NjcmlwdD4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHk+CiAgICAgICAgIDxz
Y3JpcHQ+CkBAIC0yMCw3ICsyMSw5IEBACiAgICAgICAgICAgICBmdW5jdGlvbiBnZXRVc2VyTWVk
aWEoZGljdGlvbmFyeSwgY2FsbGJhY2spCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
dHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShk
aWN0aW9uYXJ5LCBjYWxsYmFjaywgZXJyb3IpOworICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShkaWN0aW9uYXJ5KQorICAgICAgICAgICAgICAg
ICAgICAgICAgLnRoZW4oY2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2go
ZXJyb3IpOwogICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgnd2Via2l0R2V0VXNlck1lZGlhIHRocmV3IGV4Y2VwdGlvbiA6JyArIGUp
OwogICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLmh0bWwJKHJldmlzaW9uIDIx
MTkwOSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMuaHRt
bAkobm9uZXhpc3RlbnQpCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8
L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJn
dW1lbnQtdHlwZXMuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxs
b3dlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGVs
YXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRtbAkocmV2aXNpb24gMjExOTA5KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xNSwxNyArMTUsMTkgQEAgZnVuY3Rpb24gYWxsb3dQZXJtaXNzaW9u
KCkgewogfQogCiB2YXIgb3B0aW9ucyA9IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OwotbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKLSAg
IGlmIChwZXJtaXNzaW9uU2V0KSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoJ1N1Y2Nlc3MgY2FsbGJh
Y2sgaW52b2tlZCcpOworbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9u
cykKKyAgICAudGhlbihzdHJlYW0gPT4geworICAgICAgIGlmIChwZXJtaXNzaW9uU2V0KSB7Cisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQnKTsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHkn
KTsKKyAgICB9KQorICAgIC5jYXRjaChlcnIgPT4geworICAgICAgICB0ZXN0RmFpbGVkKCdFcnJv
ciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwogICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxi
YWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci19LCBmdW5jdGlvbihlKSB7Ci0gICAgdGVzdEZh
aWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICBmaW5pc2hK
U1Rlc3QoKTsKLX0pOworICAgIH0pOwogCiB3aW5kb3cuc2V0VGltZW91dChhbGxvd1Blcm1pc3Np
b24sIDEwMCk7CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
ZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZGVsYXllZC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCShyZXZpc2lv
biAyMTE5MDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RlbGF5ZWQtcGVybWlz
c2lvbi1kZW5pZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTYsMTkgKzE2LDE5IEBAIGZ1bmN0
aW9uIGRlbnlQZXJtaXNzaW9uKCkgewogCiB2YXIgZXJyb3I7CiB2YXIgb3B0aW9ucyA9IHthdWRp
bzogdHJ1ZSwgdmlkZW86IHRydWV9OwotbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRp
b25zLCBmdW5jdGlvbihzdHJlYW0pIHsKLSAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNr
IGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19LCBmdW5jdGlv
bihlKSB7Ci0gICAgaWYgKHBlcm1pc3Npb25TZXQpIHsKLSAgICAgICAgZXJyb3IgPSBlOwotICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Vycm9yLm5hbWUnLCAnTm90QWxsb3dlZEVycm9y
Jyk7CituYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShvcHRpb25zKQorICAgIC50
aGVuKHN0cmVhbSA9PiB7CisgICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52
b2tlZCB1bmV4cGVjdGVkbHknKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4
cGVjdGVkbHknKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOworICAgIH0pCisgICAgLmNhdGNo
KGVyciA9PiB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uU2V0KSB7CisgICAgICAgICAgICBlcnJv
ciA9IGVycjsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXJyb3IubmFtZScs
ICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICB9KTsKIAogd2luZG93LnNldFRpbWVvdXQoZGVueVBlcm1pc3Npb24s
IDEwMCk7CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZW5h
YmxlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9lbmFibGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjExOTA5KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9lbmFibGVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMywxMCArMywxMiBAQCBUZXN0cyB0aGF0IG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEg
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyB0eXBlb2YgbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSA9PSAnZnVuY3Rpb24nIGlzIHRydWUKK1BBU1MgdHlwZW9mIG5hdmln
YXRvci5tZWRpYURldmljZXMgPT0gJ29iamVjdCcgaXMgdHJ1ZQorUEFTUyB0eXBlb2YgbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEgPT0gJ2Z1bmN0aW9uJyBpcyB0cnVlCiBQQVNT
IGhhc0dldFVzZXJNZWRpYVByb3BlcnR5KCkgaXMgdHJ1ZQotUEFTUyAnd2Via2l0R2V0VXNlck1l
ZGlhJyBpbiBuYXZpZ2F0b3IgaXMgdHJ1ZQotUEFTUyBuYXZpZ2F0b3IuaGFzT3duUHJvcGVydHko
J3dlYmtpdEdldFVzZXJNZWRpYScpIGlzIGZhbHNlCitQQVNTICdtZWRpYURldmljZXMnIGluIG5h
dmlnYXRvciBpcyB0cnVlCitQQVNTICdnZXRVc2VyTWVkaWEnIGluIG5hdmlnYXRvci5tZWRpYURl
dmljZXMgaXMgdHJ1ZQorUEFTUyBuYXZpZ2F0b3IuaGFzT3duUHJvcGVydHkoJ21lZGlhRGV2aWNl
cycpIGlzIGZhbHNlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Vycm9yLmh0bWwJKHJldmlz
aW9uIDIxMTkwOSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZXJyb3IuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTUsMTQgKzE1LDE2IEBAIGVsc2UKIAogdmFyIGVycm9yOwogdmFy
IG9wdGlvbnMgPSB7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9OwotbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKLSAgICB0ZXN0RmFpbGVkKCdT
dWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci0gICAgZmluaXNoSlNUZXN0
KCk7Ci19LCBmdW5jdGlvbihlKSB7Ci0gICAgZXJyb3IgPSBlOwotICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnZXJyb3IubmFtZScsICdOb3RBbGxvd2VkRXJyb3InKTsKLSAgICBmaW5pc2hKU1Rl
c3QoKTsKLX0pOworbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9ucykK
KyAgICAudGhlbihzdHJlYW0gPT4geworICAgICAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxi
YWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
IH0pCisgICAgLmNhdGNoKGVyciA9PiB7CisgICAgICAgIGVycm9yID0gZXJyOworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Vycm9yLm5hbWUnLCAnTm90QWxsb3dlZEVycm9yJyk7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWwJKHJl
dmlzaW9uIDIxMTkwOSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1l
ZGlhLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMDUgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAg
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotICAgICAgICA8c2NyaXB0Pgot
ICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHdlYmtpdEdldFVzZXJNZWRpYS4iKTsKLQot
ICAgICAgICAgICAgZnVuY3Rpb24gc2V0VXNlck1lZGlhUGVybWlzc2lvbihpc0dyYW50ZWQpIHsK
LSAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbihpc0dyYW50ZWQpOwotICAgICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZGVidWcoIlRoaXMgdGVzdCBjYW4g
bm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyIik7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIHZhciBzdHJlYW07Ci0gICAgICAgICAgICB2YXIgZXJyb3JBcmc7Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGVycm9yKCkgewotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0Vy
cm9yIGNhbGxiYWNrIGNhbGxlZC4nKTsKLSAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZXhwZWN0ZWRFcnJvcigpIHsK
LSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdFcnJvciBjYWxsYmFjayBjYWxsZWQuJyk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbUluRXJyb3Iocykg
ewotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7Ci0gICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIGdvdFN0cmVhbTUocykgewotICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7Ci0g
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnU3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICAgICAg
ICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsK
LSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3Ro
JywgJzEnKTsKLSAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZnVuY3Rpb24gZXJyb3IxKGUpIHsKLSAgICAgICAgICAgICAgICBlcnJv
ckFyZyA9IGU7Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnRXJyb3IgY2FsbGJhY2sgY2Fs
bGVkLicpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXJyb3JBcmcu
bmFtZScsICdPdmVyY29uc3RyYWluZWRFcnJvcicpOwotICAgICAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnZXJyb3JBcmcubWVzc2FnZScsICdJbnZhbGlkIGNvbnN0cmFpbnQnKTsK
LQotICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHthdWRpbzp7dm9sdW1lOntleGFjdDoxfX0sIHZpZGVvOnRydWV9LCBnb3RTdHJlYW01LCAw
KTsiKTsKLSAgICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSh7YXVkaW86e3ZvbHVtZTp7ZXhhY3Q6MX19LCB2aWRlbzp0cnVlfSwgZ290U3Ry
ZWFtNSwgZXJyb3IpOyIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBn
b3RTdHJlYW00KHMpIHsKLSAgICAgICAgICAgICAgICBzdHJlYW0gPSBzOwotICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Ci0gICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Ci0K
LSAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YSh7YXVkaW86dHJ1ZSwgdmlkZW86e3dpZHRoOntleGFjdDoxMX19fSwgZ290U3RyZWFtSW5FcnJv
ciwgbnVsbCk7Iik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnt3aWR0aDp7ZXhhY3Q6MTF9fX0s
IGdvdFN0cmVhbUluRXJyb3IsIGVycm9yMSk7Iik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTMocykgewotICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7
Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnU3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICAg
ICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEn
KTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVu
Z3RoJywgJzEnKTsKLQotICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCJuYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKHthdWRpbzp7fSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTQsIG51bGwp
OyIpOwotICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhKHthdWRpbzp7fSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTQsIGVycm9yKTsiKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtMihzKSB7Ci0g
ICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdT
dHJlYW0gZ2VuZXJhdGVkLicpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0
QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMCcpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCdz
dHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotCi0gICAgICAgICAgICAgICAg
c2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZp
ZGVvOnRydWV9LCBnb3RTdHJlYW0zLCBudWxsKTsiKTsKLSAgICAgICAgICAgICAgICBzaG91bGRO
b3RUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86
dHJ1ZX0sIGdvdFN0cmVhbTMsIGVycm9yKTsiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgZnVuY3Rpb24gZ290U3RyZWFtMShzKSB7Ci0gICAgICAgICAgICAgICAgc3RyZWFtID0gczsK
LSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwotICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScp
OwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5n
dGgnLCAnMCcpOwotCi0gICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5hdmlnYXRvci53ZWJr
aXRHZXRVc2VyTWVkaWEoe3ZpZGVvOnRydWV9LCBnb3RTdHJlYW0yLCBudWxsKTsiKQotICAgICAg
ICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2
aWRlbzp0cnVlfSwgZ290U3RyZWFtMiwgZXJyb3IpOyIpCi0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRp
bzpmYWxzZSwgdmlkZW86ZmFsc2V9LCBlcnJvciwgZXhwZWN0ZWRFcnJvcik7IikKLSAgICAgICAg
ICAgIHNob3VsZFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzpmYWxz
ZSwgdmlkZW86ZmFsc2V9LCBlcnJvciwgbnVsbCk7IikKLQotICAgICAgICAgICAgc2V0VXNlck1l
ZGlhUGVybWlzc2lvbih0cnVlKTsKLSAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSwgZ290U3RyZWFtMSwgZXJyb3IpOyIp
OwotCi0gICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0gICAgICAgICAg
ICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0g
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3N1Y2Nlc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3N1Y2Nlc3MuaHRtbAkocmV2aXNpb24gMjExOTA5KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9zdWNjZXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE0LDEyICsxNCwx
NCBAQCBlbHNlCiAgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRo
ZSB0ZXN0UnVubmVyJyk7CiAKIHZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1
ZX07Ci1uYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVh
bSkgewotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgZnVuY3Rpb24oZSkgewotICAgIHRlc3RGYWls
ZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19KTsKK25hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKG9wdGlvbnMp
CisgICAgLnRoZW4oc3RyZWFtID0+IHsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSkK
KyAgICAuY2F0Y2goZXJyID0+IHsKKyAgICAgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sg
aW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7
CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
d2Via2l0R2V0VXNlck1lZGlhLXNoYWRvd2luZy10aGVuLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS93ZWJraXRHZXRVc2VyTWVkaWEtc2hhZG93aW5nLXRo
ZW4uaHRtbAkocmV2aXNpb24gMjExOTA5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS93ZWJraXRHZXRVc2VyTWVkaWEtc2hhZG93aW5nLXRoZW4uaHRtbAkobm9uZXhpc3RlbnQpCkBA
IC0xLDQ0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+
Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDx0aXRsZT5TaGFkb3dpbmcgdGhlbigp
PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotPCEtLQotVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQg
dGhlIGltcGxlbWVudGF0aW9uIG9mIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEgZG9lcyBu
b3QgdXNlIHB1YmxpYyBwcm9taXNlIEFQSXMuCi0tLT4KLTxwIGlkPSJvdXRwdXQiPjwvcD4KLTxz
Y3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBlbmRUZXN0KHRlc3RTdGF0dXMpIHsKLSAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLnRleHRDb250ZW50ID0gdGVzdFN0YXR1czsKLSAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfQotCi0gICAgLy8gU2hhZG93IFByb21p
c2UucHJvdG90eXBlLnRoZW4KLSAgICBQcm9taXNlLnByb3RvdHlwZS50aGVuID0gKGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgY29uc3QgcmVhbFRoZW4gPSBQcm9taXNlLnByb3RvdHlwZS50aGVuOwot
ICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgZW5kVGVzdCgiRkFJTDog
RXhlY3V0ZWQgc2hhZG93ZWQsIHB1YmxpYyAudGhlbigpIik7Ci0gICAgICAgIH0KLSAgICB9KSgp
OwotCi0gICAgZnVuY3Rpb24gZ290VXNlck1lZGlhKG1lZGlhU3RyZWFtKSB7Ci0gICAgICAgIGVu
ZFRlc3QoIkZBSUw6IEdvdCB1c2VyIG1lZGlhIik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdXNl
ck1lZGlhRXJyb3IoZXJyb3IpIHsKLSAgICAgICAgZW5kVGVzdCgiUEFTUyIpOwotICAgIH0KLQot
ICAgIHZhciBvcHRpb25zID0geyBhdWRpbzogZmFsc2UsIHZpZGVvOiBmYWxzZSB9OwotICAgIG5h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEob3B0aW9ucywgZ290VXNlck1lZGlhLCB1c2VyTWVk
aWFFcnJvcik7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1l
bnQtdHlwZXMuanMJKHJldmlzaW9uIDIxMTkwOSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vc2NyaXB0LXRlc3RzL2FyZ3VtZW50LXR5cGVzLmpzCShub25leGlzdGVudCkKQEAgLTEs
NzAgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBhY2NlcHRhYmxlIHR5cGVzIGZvciBh
cmd1bWVudHMgdG8gbmF2aWdhdG9yLmdldFVzZXJNZWRpYSBtZXRob2RzLiIpOwotCi1mdW5jdGlv
biB0ZXN0KGV4cHJlc3Npb24sIGV4cHJlc3Npb25TaG91bGRUaHJvdywgZXhwZWN0ZWRFeGNlcHRp
b24pIHsKLSAgICBpZiAoZXhwcmVzc2lvblNob3VsZFRocm93KSB7Ci0gICAgICAgIGlmIChleHBl
Y3RlZEV4Y2VwdGlvbikKLSAgICAgICAgICAgIHNob3VsZFRocm93KGV4cHJlc3Npb24sICciJyAr
IGV4cGVjdGVkRXhjZXB0aW9uICsgJyInKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgc2hv
dWxkVGhyb3coZXhwcmVzc2lvbiwgJyJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIicp
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNob3VsZE5vdFRocm93KGV4cHJlc3Npb24pOwotICAg
IH0KLX0KLQotdmFyIGVycm9yQ2FsbGJhY2tFcnJvciA9IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50
IDMgKCdlcnJvckNhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBtdXN0
IGJlIGEgZnVuY3Rpb24iKQotdmFyIGludmFsaWREaWN0aW9uYXJ5RXJyb3IgPSBuZXcgVHlwZUVy
cm9yKCdGaXJzdCBhcmd1bWVudCBvZiB3ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIHZhbGlk
IERpY3Rpb25hcnknKQotdmFyIG5vdFN1cHBvcnRlZEVycm9yID0gbmV3IEVycm9yKCdOb3RTdXBw
b3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5Jyk7Ci12YXIgc3VjY2Vzc0NhbGxiYWNrRXJyb3Ig
PSBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCAyICgnc3VjY2Vzc0NhbGxiYWNrJykgdG8gTmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rpb24iKQotdmFyIHR5cGVFcnJv
ciA9IG5ldyBUeXBlRXJyb3IoJ1R5cGUgZXJyb3InKTsKLXZhciB0eXBlTm90QW5PYmplY3RFcnJv
ciA9IG5ldyBUeXBlRXJyb3IoJ05vdCBhbiBvYmplY3QuJyk7Ci0KLXZhciBlbXB0eUZ1bmN0aW9u
ID0gZnVuY3Rpb24oKSB7fTsKLQotLy8gTm8gYXJndW1lbnRzCi10ZXN0KCduYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKCknLCB0cnVlKTsKLQotLy8gMSBBcmd1bWVudCAoTmF2aWd0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhIHJlcXVpcmVzIGF0IGxlYXN0IDMgYXJndW1lbnRzKS4KLXRlc3QoJ25h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodW5kZWZpbmVkKScsIHRydWUpOwotdGVzdCgnbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShudWxsKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSh7IH0pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKHRydWUpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhKDQyKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YShJbmZpbml0eSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
LUluZmluaXR5KScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShl
bXB0eUZ1bmN0aW9uKScsIHRydWUpOwotCi0vLyAyIEFyZ3VtZW50cy4KLXRlc3QoJ25hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiknLCB0cnVl
KTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodW5kZWZpbmVkLCBlbXB0eUZ1
bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShudWxs
LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYSh7IH0sIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHRydWUsIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKDQyLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgn
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShJbmZpbml0eSwgZW1wdHlGdW5jdGlvbiknLCB0
cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoLUluZmluaXR5LCBlbXB0
eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShl
bXB0eUZ1bmN0aW9uLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCAiZm9vYmFyIiknLCB0cnVlKTsKLXRlc3Qo
J25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgdW5kZWZpbmVkKScs
IHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9
LCBudWxsKScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlk
ZW86IHRydWV9LCB7fSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEoe3ZpZGVvOiB0cnVlfSwgdHJ1ZSknLCB0cnVlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgNDIpJywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIEluZmluaXR5KScsIHRydWUpOwotdGVz
dCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCAtSW5maW5pdHkp
JywgdHJ1ZSk7Ci0KLS8vIDMgQXJndW1lbnRzLgotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSh7IH0sIGVtcHR5RnVuY3Rpb24sIGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwotdGVz
dCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0
aW9uLCBlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdW5kZWZpbmVkKScsIHRydWUs
IGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdW5kZWZpbmVkKScsIHRy
dWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHthdWRpbzp0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdW5kZWZpbmVkKScsIHRydWUsIGVycm9y
Q2FsbGJhY2tFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRl
bzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sICJ2aWRlbyIpJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vy
cm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwg
ZW1wdHlGdW5jdGlvbiwgbnVsbCknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJyb3IgKTsKLXRlc3Qo
J25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlv
biwge30pJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJr
aXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdHJ1ZSknLCB0cnVl
LCBlcnJvckNhbGxiYWNrRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCA0MiknLCB0cnVlLCBlcnJvckNhbGxiYWNr
RXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9
LCBlbXB0eUZ1bmN0aW9uLCBJbmZpbml0eSknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJyb3IpOwot
dGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1
bmN0aW9uLCAtSW5maW5pdHkpJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9yKTsKLQotd2luZG93
LmpzVGVzdElzQXN5bmMgPSBmYWxzZTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vc2NyaXB0LXRlc3RzL2VuYWJsZWQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvZW5hYmxlZC5qcwkocmV2aXNpb24gMjExOTA5KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvZW5hYmxlZC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMywxNSArMywyMiBAQCBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBu
YXZpZ2F0b3Iud2Via2l0CiBmdW5jdGlvbiBoYXNHZXRVc2VyTWVkaWFQcm9wZXJ0eSgpCiB7CiAg
ICAgZm9yICh2YXIgcHJvcGVydHkgaW4gbmF2aWdhdG9yKSB7Ci0gICAgICAgIGlmIChwcm9wZXJ0
eSA9PSAid2Via2l0R2V0VXNlck1lZGlhIikKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBpZiAocHJvcGVydHkgPT0gIm1lZGlhRGV2aWNlcyIpIHsKKyAgICAgICAgICAgIHZhciBk
ZXZpY2VzID0gbmF2aWdhdG9yW3Byb3BlcnR5XTsKKyAgICAgICAgICAgIGZvciAocHJvcGVydHkg
aW4gZGV2aWNlcykgeworICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eSA9PSAiZ2V0VXNlck1l
ZGlhIikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zaG91bGRCZVRydWUoInR5
cGVvZiBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhID09ICdmdW5jdGlvbiciKTsKK3Nob3Vs
ZEJlVHJ1ZSgidHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMgPT0gJ29iamVjdCciKTsKK3No
b3VsZEJlVHJ1ZSgidHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhID09
ICdmdW5jdGlvbiciKTsKIHNob3VsZEJlVHJ1ZSgiaGFzR2V0VXNlck1lZGlhUHJvcGVydHkoKSIp
Owotc2hvdWxkQmVUcnVlKCInd2Via2l0R2V0VXNlck1lZGlhJyBpbiBuYXZpZ2F0b3IiKTsKLXNo
b3VsZEJlRmFsc2UoIm5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0eSgnd2Via2l0R2V0VXNlck1lZGlh
JykiKTsKK3Nob3VsZEJlVHJ1ZSgiJ21lZGlhRGV2aWNlcycgaW4gbmF2aWdhdG9yIik7CitzaG91
bGRCZVRydWUoIidnZXRVc2VyTWVkaWEnIGluIG5hdmlnYXRvci5tZWRpYURldmljZXMiKTsKK3No
b3VsZEJlRmFsc2UoIm5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0eSgnbWVkaWFEZXZpY2VzJykiKTsK
IAogd2luZG93LmpzVGVzdElzQXN5bmMgPSBmYWxzZTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDIxMTkwOSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rp
c2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSwxMCArMSwxMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI0OiBUeXBlRXJyb3I6IENhbiBv
bmx5IGNhbGwgTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBvbiBpbnN0YW5jZXMgb2YgTmF2
aWdhdG9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjQ6IFR5cGVFcnJvcjogbnVsbCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdpZnJhbWVOYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYScpCiBUZXN0cyB0aGF0IHdoZW4gYSBnZXRVc2VyTWVkaWEgcmVxdWVzdCBpcyBtYWRl
IGFmdGVyIGl0cyBmcmFtZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIG5vIGNhbGxiYWNrcyBhcmUg
bWFkZSBhbmQgbm8gY3Jhc2ggb2NjdXJzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAK
IAotd2Via2l0R2V0VXNlck1lZGlhIGNhbGxlZCBvbiBvYmplY3Qgd2l0aCBkaXNjb25uZWN0ZWQg
RnJhbWUuCitnZXRVc2VyTWVkaWEgY2FsbGVkIG9uIG9iamVjdCB3aXRoIGRpc2Nvbm5lY3RlZCBG
cmFtZS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVj
dGVkLWZyYW1lLWFscmVhZHkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1sCShy
ZXZpc2lvbiAyMTE5MDkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0
cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
MSwxNyArMjEsMTkgQEAgdmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfQog
ZnVuY3Rpb24gb25TZWNvbmRJZnJhbWVMb2FkZWQoKSB7CiAgICAgc2V0VGltZW91dChmaW5pc2hU
ZXN0LCAxMDApOwogCi0gICAgaWZyYW1lTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvcHRp
b25zLCBmdW5jdGlvbihzdHJlYW0pIHsKLSAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxs
YmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAg
ICB9LCBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGlu
dm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0pOwor
ICAgIGlmcmFtZU5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKG9wdGlvbnMpCisg
ICAgICAgIC50aGVuKHN0cmVhbSA9PiB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCdTdWNjZXNz
IGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgfSkKKyAgICAgICAgLmNhdGNoKGVyciA9PiB7CisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOwogfQogCiBmdW5jdGlvbiBmaW5pc2hU
ZXN0KCkgewotICAgIGRlYnVnKCd3ZWJraXRHZXRVc2VyTWVkaWEgY2FsbGVkIG9uIG9iamVjdCB3
aXRoIGRpc2Nvbm5lY3RlZCBGcmFtZS4nKTsKKyAgICBkZWJ1ZygnZ2V0VXNlck1lZGlhIGNhbGxl
ZCBvbiBvYmplY3Qgd2l0aCBkaXNjb25uZWN0ZWQgRnJhbWUuJyk7CiAgICAgZmluaXNoSlNUZXN0
KCk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1m
cmFtZS1wZXJtaXNzaW9uLWRlbmllZC5odG1sCShyZXZpc2lvbiAyMTE5MDkpCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUtcGVy
bWlzc2lvbi1kZW5pZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsMjYgKzE3LDMwIEBAIHZh
ciBlcnJvcjsKIHZhciBvcHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07CiBmdW5j
dGlvbiBvbklmcmFtZUxvYWRlZCgpIHsKICAgICBpZnJhbWVOYXZpZ2F0b3IgPSBpZnJhbWUuY29u
dGVudFdpbmRvdy5uYXZpZ2F0b3I7Ci0gICAgaWZyYW1lTmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYShvcHRpb25zLCBmdW5jdGlvbihzdHJlYW0pIHsKLSAgICAgICAgdGVzdEZhaWxlZCgnU3Vj
Y2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwotICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKLSAgICB9LCBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGVycm9yID0gZTsKLSAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvci5uYW1lJywgJ05vdEFsbG93ZWRFcnJvcicpOwot
ICAgICAgICBkZWJ1ZygnJyk7Ci0gICAgICAgIGlmcmFtZS5zcmMgPSAnZGF0YTp0ZXh0L2h0bWws
VGhpcyBmcmFtZSBzaG91bGQgYmUgdmlzaWJsZSB3aGVuIHRoZSB0ZXN0IGNvbXBsZXRlcyc7Ci0g
ICAgfSk7CisgICAgaWZyYW1lTmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0
aW9ucykKKyAgICAgICAgLnRoZW4oc3RyZWFtID0+IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
J1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICB9KQorICAgICAgICAuY2F0Y2goZXJyID0+IHsKKyAgICAg
ICAgICAgIGVycm9yID0gZXJyOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdl
cnJvci5uYW1lJywgJ05vdEFsbG93ZWRFcnJvcicpOworICAgICAgICAgICAgZGVidWcoJycpOwor
ICAgICAgICAgICAgaWZyYW1lLnNyYyA9ICdkYXRhOnRleHQvaHRtbCxUaGlzIGZyYW1lIHNob3Vs
ZCBiZSB2aXNpYmxlIHdoZW4gdGhlIHRlc3QgY29tcGxldGVzJzsKKyAgICAgICAgfSk7CiB9CiAK
IGZ1bmN0aW9uIG9uSWZyYW1lVW5sb2FkZWQoKSB7CiAgICAgLy8gTWFrZSBhbm90aGVyIHJlcXVl
c3QsIHdpdGggcGVybWlzc2lvbiBhbHJlYWR5IGRlbmllZC4KLSAgICBpZnJhbWVOYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKG9wdGlvbnMsIGZ1bmN0aW9uKHN0cmVhbSkgewotICAgICAgICB0
ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci0gICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0sIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdGVzdEZh
aWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICAgICAgZmlu
aXNoSlNUZXN0KCk7Ci0gICAgfSk7CisgICAgaWZyYW1lTmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5n
ZXRVc2VyTWVkaWEob3B0aW9ucykKKyAgICAgICAgLnRoZW4oc3RyZWFtID0+IHsKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsK
KyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KQorICAgICAgICAuY2F0Y2go
ZXJyID0+IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQg
dW5leHBlY3RlZGx5Jyk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7
CiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgdGVzdFBhc3NlZCgnTm8gY2Fs
bGJhY2tzIGludm9rZWQnKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbAkocmV2aXNpb24gMjExOTA5KQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE4LDEzICsxOCwxNSBAQCBmdW5jdGlvbiBvbklmcmFtZUxvYWRl
ZCgpIHsKIAogZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgpIHsKICAgICB2YXIgb3B0aW9ucyA9
IHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OwotICAgIGlmcmFtZU5hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEob3B0aW9ucywgZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAgICB0ZXN0RmFp
bGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Ci0gICAgICAgIGZp
bmlzaEpTVGVzdCgpOwotICAgIH0sIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgn
RXJyb3IgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKLSAgICAgICAgZmluaXNoSlNU
ZXN0KCk7Ci0gICAgfSk7CisgICAgaWZyYW1lTmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEob3B0aW9ucykKKyAgICAgICAgLnRoZW4oc3RyZWFtID0+IHsKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KQorICAgICAgICAuY2F0Y2goZXJyID0+
IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBl
Y3RlZGx5Jyk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CiAKICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICB0ZXN0UGFzc2VkKCdObyBjYWxsYmFj
a3MgaW52b2tlZCcpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>