<?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>53012</bug_id>
          
          <creation_ts>2011-01-24 08:07:43 -0800</creation_ts>
          <short_desc>IndexedDatabase methods should not take arguments of type OptionsObject</short_desc>
          <delta_ts>2011-01-24 11:02:05 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Andrei Popescu">andreip</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>hans</cc>
    
    <cc>japhet</cc>
    
    <cc>jorlow</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>339017</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2011-01-24 08:07:43 -0800</bug_when>
    <thetext>IndexedDatabase methods should not take arguments of type OptionsObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339032</commentid>
    <comment_count>1</comment_count>
      <attachid>79925</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2011-01-24 08:32:39 -0800</bug_when>
    <thetext>Created attachment 79925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339043</commentid>
    <comment_count>2</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-01-24 08:49:34 -0800</bug_when>
    <thetext>Looks good as far as I can tell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339046</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-24 08:53:06 -0800</bug_when>
    <thetext>Attachment 79925 did not build on chromium:
Build output: http://queues.webkit.org/results/7531301</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339055</commentid>
    <comment_count>4</comment_count>
      <attachid>79934</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2011-01-24 09:05:34 -0800</bug_when>
    <thetext>Created attachment 79934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339065</commentid>
    <comment_count>5</comment_count>
      <attachid>79934</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-01-24 09:40:02 -0800</bug_when>
    <thetext>Comment on attachment 79934
Patch

My only complaint is that we&apos;re adding yet another converter to V8Binding.cpp, but I don&apos;t think that&apos;s avoidable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339068</commentid>
    <comment_count>6</comment_count>
      <attachid>79934</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-01-24 09:45:50 -0800</bug_when>
    <thetext>Comment on attachment 79934
Patch

&gt; Source/WebCore/storage/IDBDatabase.cpp:113
&gt; +    if (timeout &gt; std::numeric_limits&lt;unsigned long&gt;::max())

It still feels fishy. It seems to me this condition can never be true?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339075</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-24 09:59:57 -0800</bug_when>
    <thetext>Attachment 79925 did not build on chromium:
Build output: http://queues.webkit.org/results/7546312</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339091</commentid>
    <comment_count>8</comment_count>
      <attachid>79934</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-01-24 10:50:02 -0800</bug_when>
    <thetext>Comment on attachment 79934
Patch

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

LGTM

&gt; Source/WebCore/bindings/v8/V8Binding.h:35
&gt; +#include &quot;DOMStringList.h&quot;

Just forward declare here.

&gt;&gt; Source/WebCore/storage/IDBDatabase.cpp:113
&gt;&gt; +    if (timeout &gt; std::numeric_limits&lt;unsigned long&gt;::max())
&gt; 
&gt; It still feels fishy. It seems to me this condition can never be true?

It really doesn&apos;t matter either way...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339095</commentid>
    <comment_count>9</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2011-01-24 10:55:07 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 79934 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=79934&amp;action=review
&gt; 
&gt; LGTM
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8Binding.h:35
&gt; &gt; +#include &quot;DOMStringList.h&quot;
&gt; 
&gt; Just forward declare here.
&gt; 

Done.

&gt; &gt;&gt; Source/WebCore/storage/IDBDatabase.cpp:113
&gt; &gt;&gt; +    if (timeout &gt; std::numeric_limits&lt;unsigned long&gt;::max())
&gt; &gt; 
&gt; &gt; It still feels fishy. It seems to me this condition can never be true?
&gt; 
&gt; It really doesn&apos;t matter either way...

I will remove that check then and land.

Thanks all for the reviews!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339099</commentid>
    <comment_count>10</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2011-01-24 11:02:05 -0800</bug_when>
    <thetext>Committed r76531: &lt;http://trac.webkit.org/changeset/76531&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79925</attachid>
            <date>2011-01-24 08:32:39 -0800</date>
            <delta_ts>2011-01-24 09:05:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53012-20110124163236.patch</filename>
            <type>text/plain</type>
            <size>54349</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZWMwNDA3MDBhNzRmZmY5ZGE3YzdmYzY0ZGFhN2ZkMDlhNDE4MTFiLi5jOGU4ZTAx
MmRjOGE0YTRkZTliZTFhMDkwOTI5NWJkNzhjMzA3N2I4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMTEtMDEtMjQgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGV4ZWREYXRhYmFz
ZSBtZXRob2RzIHNob3VsZCBub3QgdGFrZSBhcmd1bWVudHMgb2YgdHlwZSBPcHRpb25zT2JqZWN0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzAxMgor
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25z
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2JqZWN0
LXN0b3JlLW9wdGlvbnMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
ZGVsZXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
ZGVsZXRlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRl
bGV0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWlu
ZGV4LWRlbGV0ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29ycnVw
dGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3Jy
dXB0aW9uLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVvdGEt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLXF1b3Rh
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtY3Vyc29yLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRtbDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jdXJzb3IuaHRtbDoKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3IuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3Rz
dG9yZS1jYWxscy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0
bWw6CisKIDIwMTEtMDEtMjQgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy1leHBl
Y3RlZC50eHQKaW5kZXggOWU3MjdhNTVmYjc5ZGU2MTZiNDA4NTUxODJmOTZiYWJmMzM4YzU1OC4u
NTUxOTUwODcyY2Y1NDE5YjIxODQ3YThjYTJkNjg4MmQxZjU2NmE1NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2Jq
ZWN0LXN0b3JlLW9wdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0xNyw3ICsxNyw3IEBAIERlbGV0ZWQg
YWxsIG9iamVjdCBzdG9yZXMuCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYScsIHtrZXlQYXRoOiAn
YSd9KQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2InKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Mn
LCB7YXV0b0luY3JlbWVudDogdHJ1ZX0pOwotdHJhbnMgPSBkYi50cmFuc2FjdGlvbih7bW9kZTog
d2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURX0pCit0cmFucyA9IGRiLnRyYW5zYWN0aW9u
KFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQogUEFTUyB0cmFucy5tb2RlIGlz
IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUKIHRyYW5zLm9iamVjdFN0b3JlKCdhJyku
cHV0KHsnYSc6IDB9KQogdHJhbnMub2JqZWN0U3RvcmUoJ2InKS5wdXQoeydhJzogMH0sIDApCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2JqZWN0LXN0
b3JlLW9wdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1v
YmplY3Qtc3RvcmUtb3B0aW9ucy5odG1sCmluZGV4IGVhY2IwOWQxYjQ4ZmU3NDQ1OTc3NWU5OWU2
NGU4N2FjMGE4OWI4NDIuLjY3MDllNTg1YjUzNzk4ZTBhNmU4YjAyN2QzZWUyMzY4YTVhNTRjMzEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qt
c3RvcmUtb3B0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Ny
ZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5odG1sCkBAIC00Nyw3ICs0Nyw3IEBAIGZ1bmN0aW9u
IGNsZWFuZWQoKQogICAgIGRlYnVnKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnYycsIHthdXRvSW5j
cmVtZW50OiB0cnVlfSk7Iik7CiAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2MnLCB7YXV0b0lu
Y3JlbWVudDogdHJ1ZX0pOwogCi0gICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRy
YW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFfSkiKTsKKyAg
ICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CiAgICAgc2hvdWxkQmUoInRyYW5zLm1vZGUiLCAi
d2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOwogCiAgICAgcmVxID0gZXZhbEFuZExv
ZygidHJhbnMub2JqZWN0U3RvcmUoJ2EnKS5wdXQoeydhJzogMH0pIik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1kZWxldGUtZXhwZWN0ZWQudHh0
CmluZGV4IGJlZDFkMGRjZDU1ZjNiY2FmODU5MWM0NDMxOTkzYTVjMTg1ZjE4MGEuLjUyNWNlZDdl
NjI5YTdhMjhhZTg4OWEzZjBlM2JmNGY4ODAxNGE3NTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1kZWxldGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1kZWxldGUtZXhwZWN0ZWQudHh0CkBAIC00
OCw3ICs0OCw3IEBAIG9iamVjdFN0b3JlLmFkZCgnbXlWYWx1ZTInLCAnbXlLZXkyJykKIG9iamVj
dFN0b3JlLmFkZCgnbXlWYWx1ZTMnLCAnbXlLZXkzJykKIG9iamVjdFN0b3JlLmFkZCgnbXlWYWx1
ZTQnLCAnbXlLZXk0JykKIG9wZW5DdXJzb3IxCi10cmFucyA9IGRiLnRyYW5zYWN0aW9uKHtvYmpl
Y3RTdG9yZU5hbWVzOiAndGVzdCcsIG1vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEV9KQordHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ3Rlc3QnXSwgd2Via2l0SURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKIHRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0Jykub3BlbkN1cnNvcih7cmFu
Z2U6IGtleVJhbmdlfSkKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKIFBBU1Mg
J29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCkBAIC02OCw3ICs2OCw3IEBAIGV2ZW50LnJlc3Vs
dC5kZWxldGUoKQogUEFTUyBldmVudC5yZXN1bHQudmFsdWUgaXMgIm15VmFsdWU0IgogZXZlbnQu
cmVzdWx0LmNvbnRpbnVlKCkKIFBBU1MgY291bnRlciBpcyA1Ci10cmFucy5vYmplY3RTdG9yZSgn
dGVzdCcpLm9wZW5DdXJzb3Ioe3JhbmdlOiBrZXlSYW5nZX0pCit0cmFucy5vYmplY3RTdG9yZSgn
dGVzdCcpLm9wZW5DdXJzb3Ioa2V5UmFuZ2UpCiBQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBp
cyB0cnVlCiBQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAncmVhZHlTdGF0
ZScgaW4gcmVzdWx0IGlzIHRydWUKQEAgLTg2LDcgKzg2LDcgQEAgUEFTUyAncmVhZHlTdGF0ZScg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKIFBBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMg
ZXZlbnQudGFyZ2V0LkRPTkUKIAogUEFTUyBldmVudC5yZXN1bHQgaXMgbnVsbAotdHJhbnMgPSBk
Yi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogJ3Rlc3QnLCBtb2RlOiB3ZWJraXRJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFfSkKK3RyYW5zID0gZGIudHJhbnNhY3Rpb24oWyd0ZXN0J10s
IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCiBvYmplY3RTdG9yZSA9IHRyYW5zLm9i
amVjdFN0b3JlKCd0ZXN0JykKIG9iamVjdFN0b3JlLmFkZCgnbXlWYWx1ZTEnLCAnbXlLZXkxJykK
IFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKQEAgLTk1LDcgKzk1LDcgQEAgUEFT
UyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKIEFuIGV2ZW50IHNob3VsZCBmaXJlIHNo
b3J0bHkuLi4KIAogb3BlbkN1cnNvcjIKLW9iamVjdFN0b3JlLm9wZW5DdXJzb3Ioe3JhbmdlOiBr
ZXlSYW5nZX0pCitvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKGtleVJhbmdlKQogUEFTUyAnb25zdWNj
ZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUK
IFBBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLmh0bWwKaW5kZXggYTMyOTBiOWM3ZjI1ODM2
NWI5Nzc0OTRjYmM3ZGMyYTBlNGJjMmZkNC4uYmIwMTAyZjA0ZjE2OTg3NzJmZDQ4MjY0YzUzNmY1
MDhiYWVhYWUxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vy
c29yLWRlbGV0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1kZWxldGUuaHRtbApAQCAtNTksNyArNTksNyBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0
ZU9iamVjdFN0b3JlKCkKIGZ1bmN0aW9uIG9wZW5DdXJzb3IoKQogewogICAgIGRlYnVnKCJvcGVu
Q3Vyc29yMSIpOwotICAgIGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVj
dFN0b3JlTmFtZXM6ICd0ZXN0JywgbW9kZTogd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RX0pIik7CisgICAgZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ3Rlc3QnXSwg
d2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKICAgICBrZXlSYW5nZSA9IHdlYmtp
dElEQktleVJhbmdlLmxvd2VyQm91bmQoIm15S2V5MSIpOwogICAgIHJlc3VsdCA9IGV2YWxBbmRM
b2coInRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0Jykub3BlbkN1cnNvcih7cmFuZ2U6IGtleVJhbmdl
fSkiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKQEAgLTcyLDcgKzcyLDcgQEAgZnVuY3Rp
b24gY3Vyc29yU3VjY2VzcygpCiB7CiAgICAgaWYgKGV2ZW50LnJlc3VsdCA9PSBudWxsKSB7CiAg
ICAgICAgIHNob3VsZEJlKCJjb3VudGVyIiwgIjUiKTsKLSAgICAgICAgcmVzdWx0ID0gZXZhbEFu
ZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5vcGVuQ3Vyc29yKHtyYW5nZToga2V5UmFu
Z2V9KSIpOworICAgICAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJ0cmFucy5vYmplY3RTdG9yZSgn
dGVzdCcpLm9wZW5DdXJzb3Ioa2V5UmFuZ2UpIik7CiAgICAgICAgIHZlcmlmeVJlc3VsdChyZXN1
bHQpOwogICAgICAgICByZXN1bHQub25zdWNjZXNzID0gY3Vyc29yRW1wdHk7CiAgICAgICAgIHJl
c3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CkBAIC05Miw3ICs5Miw3IEBA
IGZ1bmN0aW9uIGN1cnNvckVtcHR5KCkKIAogZnVuY3Rpb24gYWRkT2JqZWN0KCkKIHsKLSAgICBl
dmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKHtvYmplY3RTdG9yZU5hbWVzOiAndGVz
dCcsIG1vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEV9KSIpOworICAgIGV2YWxB
bmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oWyd0ZXN0J10sIHdlYmtpdElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpIik7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RT
dG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0JykiKTsKICAgICByZXN1bHQgPSBldmFsQW5k
TG9nKCJvYmplY3RTdG9yZS5hZGQoJ215VmFsdWUxJywgJ215S2V5MScpIik7CiAgICAgdmVyaWZ5
UmVzdWx0KHJlc3VsdCk7CkBAIC0xMDMsNyArMTAzLDcgQEAgZnVuY3Rpb24gYWRkT2JqZWN0KCkK
IGZ1bmN0aW9uIG9wZW5DdXJzb3IyKCkKIHsKICAgICBkZWJ1Zygib3BlbkN1cnNvcjIiKTsKLSAg
ICByZXN1bHQgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKHtyYW5nZToga2V5
UmFuZ2V9KSIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLm9wZW5DdXJz
b3Ioa2V5UmFuZ2UpIik7CiAgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CiAgICAgcmVzdWx0Lm9u
c3VjY2VzcyA9IGRlbGV0ZU9iamVjdDsKICAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y3Vyc29yLWluZGV4LWRlbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRlLWV4cGVjdGVkLnR4dAppbmRleCAyN2YzMTE3ZmMz
OGI3MjM3MTQ2MTQ2YTg3MTk3N2QwNmE0OTdhNTQxLi44ODA1YzBlYWEwYjczMmNiOWU4ODYxMGVl
YzJjNzM0MTljZWNkZGJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3ItaW5kZXgtZGVsZXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRlLWV4cGVjdGVkLnR4dApAQCAtNDksOCAr
NDksOCBAQCBvYmplY3RTdG9yZS5hZGQoe3g6IDJ9LCAnbXlLZXkyJykKIG9iamVjdFN0b3JlLmFk
ZCh7eDogM30sICdteUtleTMnKQogb2JqZWN0U3RvcmUuYWRkKHt4OiA0fSwgJ215S2V5NCcpCiBv
cGVuQ3Vyc29yMQotdHJhbnMgPSBkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogJ3Rl
c3QnLCBtb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFfSkKLXRyYW5zLm9iamVj
dFN0b3JlKCd0ZXN0JykuaW5kZXgoJ3Rlc3RJbmRleCcpLm9wZW5DdXJzb3Ioe3JhbmdlOiBrZXlS
YW5nZX0pCit0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFsndGVzdCddLCB3ZWJraXRJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQordHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5pbmRleCgndGVzdElu
ZGV4Jykub3BlbkN1cnNvcihrZXlSYW5nZSkKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlz
IHRydWUKIFBBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdyZWFkeVN0YXRl
JyBpbiByZXN1bHQgaXMgdHJ1ZQpAQCAtNjksNyArNjksNyBAQCBldmVudC5yZXN1bHQuZGVsZXRl
KCkKIFBBU1MgZXZlbnQucmVzdWx0LmtleSBpcyBjb3VudGVyKysKIGV2ZW50LnJlc3VsdC5jb250
aW51ZSgpCiBQQVNTIGNvdW50ZXIgaXMgNQotdHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5pbmRl
eCgndGVzdEluZGV4Jykub3BlbkN1cnNvcih7cmFuZ2U6IGtleVJhbmdlfSkKK3RyYW5zLm9iamVj
dFN0b3JlKCd0ZXN0JykuaW5kZXgoJ3Rlc3RJbmRleCcpLm9wZW5DdXJzb3Ioa2V5UmFuZ2UpCiBQ
QVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdvbmVycm9yJyBpbiByZXN1
bHQgaXMgdHJ1ZQogUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKQEAgLTg3LDcg
Kzg3LDcgQEAgUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKIFBBU1Mg
ZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKIAogUEFTUyBldmVu
dC5yZXN1bHQgaXMgbnVsbAotdHJhbnMgPSBkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1l
czogJ3Rlc3QnLCBtb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFfSkKK3RyYW5z
ID0gZGIudHJhbnNhY3Rpb24oWyd0ZXN0J10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCiBvYmplY3RTdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0JykKIG9iamVjdFN0b3Jl
LmFkZCh7eDogMX0sICdteUtleTEnKQogUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1
ZQpAQCAtOTcsNyArOTcsNyBAQCBBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCiAKIG9w
ZW5DdXJzb3IyCiBpbmRleCA9IGV2ZW50LnNvdXJjZS5pbmRleCgndGVzdEluZGV4JykKLWluZGV4
Lm9wZW5DdXJzb3Ioe3JhbmdlOiBrZXlSYW5nZX0pCitpbmRleC5vcGVuQ3Vyc29yKGtleVJhbmdl
KQogUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAnb25lcnJvcicgaW4g
cmVzdWx0IGlzIHRydWUKIFBBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRl
Lmh0bWwKaW5kZXggMWJkZGY2M2JiZDAxYjg0OTJiYjUzMTg3ZmZkZDE4OWZiYjNhY2Y0Yi4uYzNk
ZTQzNGRjMWFlZDY5MDljODBiYjIwNDhjMWJhZmMxODgxMzJiYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmRleC1kZWxldGUuaHRtbApAQCAt
NjEsOSArNjEsOSBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlQW5kSW5k
ZXgoKQogZnVuY3Rpb24gb3BlbkN1cnNvcigpCiB7CiAgICAgZGVidWcoIm9wZW5DdXJzb3IxIik7
Ci0gICAgZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1l
czogJ3Rlc3QnLCBtb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFfSkiKTsKKyAg
ICBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFsndGVzdCddLCB3ZWJraXRJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOwogICAgIGtleVJhbmdlID0gd2Via2l0SURCS2V5UmFu
Z2UubG93ZXJCb3VuZCgxKTsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJ0cmFucy5vYmplY3RT
dG9yZSgndGVzdCcpLmluZGV4KCd0ZXN0SW5kZXgnKS5vcGVuQ3Vyc29yKHtyYW5nZToga2V5UmFu
Z2V9KSIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0
JykuaW5kZXgoJ3Rlc3RJbmRleCcpLm9wZW5DdXJzb3Ioa2V5UmFuZ2UpIik7CiAgICAgdmVyaWZ5
UmVzdWx0KHJlc3VsdCk7CiAgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGN1cnNvclN1Y2Nlc3M7CiAg
ICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKQEAgLTc0LDcgKzc0
LDcgQEAgZnVuY3Rpb24gY3Vyc29yU3VjY2VzcygpCiB7CiAgICAgaWYgKGV2ZW50LnJlc3VsdCA9
PSBudWxsKSB7CiAgICAgICAgIHNob3VsZEJlKCJjb3VudGVyIiwgIjUiKTsKLSAgICAgICAgcmVz
dWx0ID0gZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5pbmRleCgndGVzdElu
ZGV4Jykub3BlbkN1cnNvcih7cmFuZ2U6IGtleVJhbmdlfSkiKTsKKyAgICAgICAgcmVzdWx0ID0g
ZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5pbmRleCgndGVzdEluZGV4Jyku
b3BlbkN1cnNvcihrZXlSYW5nZSkiKTsKICAgICAgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CiAg
ICAgICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBjdXJzb3JFbXB0eTsKICAgICAgICAgcmVzdWx0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKQEAgLTk1LDcgKzk1LDcgQEAgZnVuY3Rp
b24gY3Vyc29yRW1wdHkoKQogCiBmdW5jdGlvbiBhZGRPYmplY3QoKQogewotICAgIGV2YWxBbmRM
b2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3JlTmFtZXM6ICd0ZXN0JywgbW9k
ZTogd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURX0pIik7CisgICAgZXZhbEFuZExvZygi
dHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ3Rlc3QnXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkiKTsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0g
dHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKSIpOwogICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coIm9i
amVjdFN0b3JlLmFkZCh7eDogMX0sICdteUtleTEnKSIpOwogICAgIHZlcmlmeVJlc3VsdChyZXN1
bHQpOwpAQCAtMTA3LDcgKzEwNyw3IEBAIGZ1bmN0aW9uIG9wZW5DdXJzb3IyKCkKIHsKICAgICBk
ZWJ1Zygib3BlbkN1cnNvcjIiKTsKICAgICBldmFsQW5kTG9nKCJpbmRleCA9IGV2ZW50LnNvdXJj
ZS5pbmRleCgndGVzdEluZGV4JykiKTsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJpbmRleC5v
cGVuQ3Vyc29yKHtyYW5nZToga2V5UmFuZ2V9KSIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2co
ImluZGV4Lm9wZW5DdXJzb3Ioa2V5UmFuZ2UpIik7CiAgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7
CiAgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGRlbGV0ZU9iamVjdDsKICAgICByZXN1bHQub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29ycnVwdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYmNl
MzkwMTUzYjJhYjM5OTQwM2Q0Y2M4MTQwNjU1ODhhZWY1YjdkYi4uYWM3MTE2YTY1ZTEyZjQ4ZmJk
N2FkZjFiZTFlOGI3Y2M5MjE3YjFmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGF0YS1jb3JydXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24tZXhwZWN0ZWQudHh0CkBAIC00NiwxMCAr
NDYsMTAgQEAgRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIGNyZWF0ZU9iamVjdFN0b3JlKCk6
CiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKIGFkZERhdGEoKToKLXRyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEV9KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKIHJlc3VsdCA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKS5hZGQoe3g6IHRlc3REYXRlfSwgJ2tleScpCiBhZGREYXRhKCk6Ci10cmFuc2FjdGlvbiA9
IGRiLnRyYW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX09OTFl9KQor
dHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVB
RF9PTkxZKQogcmVzdWx0ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpLmdl
dCgna2V5JykKIFN1Y2Nlc3MgZXZlbnQgZmlyZWQ6CiBQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlz
IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29y
cnVwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0
aW9uLmh0bWwKaW5kZXggZmI0OWZjNzFkYTVhZmMyNTdlZWMxYzJlYzI5NTgwZDQ3YzQ4NzA3Ny4u
NjY0ZmY2ZGMyNTY5ODNkMTAxZmM4Y2EwNDUwN2NlMDM4MzBmMmQwYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0aW9uLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0aW9uLmh0bWwKQEAgLTU3LDcg
KzU3LDcgQEAgdmFyIHRlc3REYXRlID0gbmV3IERhdGUoJ0ZlYnJ1YXJ5IDI0LCAxOTU1IDEyOjAw
OjA4Jyk7CiBmdW5jdGlvbiBhZGREYXRhKCkKIHsKICAgICBkZWJ1ZygiYWRkRGF0YSgpOiIpOwot
ICAgIHZhciB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNh
Y3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEV9KSIpOworICAgIHZh
ciB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
W10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CiAgICAgdmFyIHJlc3VsdCA9
IGV2YWxBbmRMb2coInJlc3VsdCA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KS5hZGQoe3g6IHRlc3REYXRlfSwgJ2tleScpIik7CiAgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZ2V0RGF0
YTsKQEAgLTY2LDcgKzY2LDcgQEAgZnVuY3Rpb24gYWRkRGF0YSgpCiBmdW5jdGlvbiBnZXREYXRh
KCkKIHsKICAgICBkZWJ1ZygiYWRkRGF0YSgpOiIpOwotICAgIHZhciB0cmFuc2FjdGlvbiA9IGV2
YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRy
YW5zYWN0aW9uLlJFQURfT05MWX0pIik7CisgICAgdmFyIHRyYW5zYWN0aW9uID0gZXZhbEFuZExv
ZygidHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24u
UkVBRF9PTkxZKSIpOwogICAgIHZhciByZXN1bHQgPSBldmFsQW5kTG9nKCJyZXN1bHQgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykuZ2V0KCdrZXknKSIpOwogICAgIHJlc3Vs
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAgICAgcmVzdWx0Lm9uc3VjY2Vz
cyA9IGRvQ2hlY2s7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9k
YXRhYmFzZS1xdW90YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9kYXRhYmFzZS1xdW90YS1leHBlY3RlZC50eHQKaW5kZXggMGYwNjE0NTdiYjAwNTc3ZGY5YzI1
NGM0MTIzNWFiODhkMTBhOTJhNC4uZTAyYWQ2NGY5NWRjZDNmZDk1YjY1MjViNWExNTBiZWVjZWFj
ZGRmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2Ut
cXVvdGEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Rh
dGFiYXNlLXF1b3RhLWV4cGVjdGVkLnR4dApAQCAtNjQsNyArNjQsNyBAQCBQQVNTIGRiLm9iamVj
dFN0b3JlTmFtZXMubGVuZ3RoIGlzIDEKIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlu
cygnJykgaXMgZmFsc2UKIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygndGVzdDQ1
NicpIGlzIGZhbHNlCiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ3Rlc3QxMjMn
KSBpcyB0cnVlCi10cmFucyA9IGRiLnRyYW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFfSkKK3RyYW5zID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpCiBDcmVhdGluZyAnZGF0YScgd2hpY2ggY29udGFpbnMgNjRL
IG9mIGRhdGEKIFBBU1MgZGF0YS5sZW5ndGggaXMgNjU1MzYKIHN0b3JlID0gdHJhbnMub2JqZWN0
U3RvcmUoJ3Rlc3QxMjMnKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvZGF0YWJhc2UtcXVvdGEuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Rh
dGFiYXNlLXF1b3RhLmh0bWwKaW5kZXggZDIxYjA1MTRhMThlZTEyNTJhM2Y5MDlhZDI4NDQ0ZjZh
Y2M1NTAyNi4uNjhkZmJkZWQ3YzQ0Yzk4ZmMyNzVlNDVkNDVkNGZiZWQwOTNmMTg1YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVvdGEuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1xdW90YS5odG1sCkBA
IC03NCw3ICs3NCw3IEBAIGZ1bmN0aW9uIGNvbW1pdEFuZENvbnRpbnVlKCkKIAogZnVuY3Rpb24g
Y2hlY2tRdW90YUVuZm9yY2luZygpCiB7Ci0gICAgdmFyIHRyYW5zID0gZXZhbEFuZExvZygidHJh
bnMgPSBkYi50cmFuc2FjdGlvbih7bW9kZTogd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RX0pIik7CisgICAgdmFyIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlv
bihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKICAgICB0cmFucy5vbmFi
b3J0ID0gdGVzdENvbXBsZXRlOwogICAgIHRyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29t
cGxldGVDYWxsYmFjazsKICAgICBkZWJ1ZygiQ3JlYXRpbmcgJ2RhdGEnIHdoaWNoIGNvbnRhaW5z
IDY0SyBvZiBkYXRhIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbmRleC1jdXJzb3IuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4
LWN1cnNvci5odG1sCmluZGV4IDFhMDRkNTcyMDNlNzMxM2ZiODA2Y2E2YzZhNjhlN2E4NGMyZTFi
MDEuLjk3OTg1YTQxMjIwMWQ1N2M1OTcyMzc1ZDlmYzYwMjkyYWE4ZTU3YzIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCkBAIC0xODcsNyAr
MTg3LDcgQEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQogICAgIGVsc2UKICAgICAgICAga2V5UmFu
Z2UgPSB3ZWJraXRJREJLZXlSYW5nZS51cHBlckJvdW5kKHRlc3REYXRhW3VwcGVyXSwgdXBwZXJJ
c09wZW4pOwogIAotICAgIHZhciByZXF1ZXN0ID0gaW5kZXhPYmplY3Qub3BlbktleUN1cnNvcih7
cmFuZ2U6IGtleVJhbmdlLCBkaXJlY3Rpb246IGFzY2VuZGluZyA/IHdlYmtpdElEQkN1cnNvci5O
RVhUIDogd2Via2l0SURCQ3Vyc29yLlBSRVZ9KTsKKyAgICB2YXIgcmVxdWVzdCA9IGluZGV4T2Jq
ZWN0Lm9wZW5LZXlDdXJzb3Ioa2V5UmFuZ2UsIGFzY2VuZGluZyA/IHdlYmtpdElEQkN1cnNvci5O
RVhUIDogd2Via2l0SURCQ3Vyc29yLlBSRVYpOwogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3Vy
c29ySXRlcmF0aW9uOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwogfQpAQCAtMjU0LDcgKzI1NCw3IEBAIGZ1bmN0aW9uIHRlc3ROdWxsS2V5UmFuZ2UoKQog
ICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZyhzdHIpOwogIAotICAgIHZhciByZXF1ZXN0ID0gaW5k
ZXhPYmplY3Qub3BlbktleUN1cnNvcih7ZGlyZWN0aW9uOiBhc2NlbmRpbmcgPyB3ZWJraXRJREJD
dXJzb3IuTkVYVCA6IHdlYmtpdElEQkN1cnNvci5QUkVWfSk7CisgICAgdmFyIHJlcXVlc3QgPSBp
bmRleE9iamVjdC5vcGVuS2V5Q3Vyc29yKG51bGwsIGFzY2VuZGluZyA/IHdlYmtpdElEQkN1cnNv
ci5ORVhUIDogd2Via2l0SURCQ3Vyc29yLlBSRVYpOwogICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
Y3Vyc29ySXRlcmF0aW9uOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2Jq
ZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKaW5kZXggYjg0MmRjY2E5ZjIwYTYy
YmYwOWQxYjM3MmNkYzU5ZmVlNDgzMTUyYS4uNWVlZjk0MmZmZmNmMWY4MDU3OWJiY2E0OWJiMTVm
MWI3MDg5MjBiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2Jq
ZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CkBAIC05NSw3ICs5NSw3IEBA
IFBBU1Mgc3RvcmUuaW5kZXhOYW1lc1sxXSBpcyBudWxsCiBQQVNTIHN0b3JlLmluZGV4TmFtZXNb
MTAwXSBpcyBudWxsCiBQQVNTIHN0b3JlLmluZGV4TmFtZXMuaXRlbSgxKSBpcyBudWxsCiBQQVNT
IHN0b3JlLmluZGV4TmFtZXMuaXRlbSgxMDApIGlzIG51bGwKLXRyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEV9KQordHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RSkKIHN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCiBUcnkgdG8g
aW5zZXJ0IGRhdGEgd2l0aCBhIERhdGUga2V5Ogogc3RvcmUuYWRkKHt4OiAnZm9vJ30sIHRlc3RE
YXRlKQpAQCAtMTM3LDcgKzEzNyw3IEBAIFBBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCiBQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5E
T05FCiAKIFBBU1MgZXZlbnQuY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5VTktO
T1dOX0VSUgotZGIudHJhbnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEV9KQorZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCiBzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQogc3RvcmUu
YWRkKHt4OiAnb3RoZXJ2YWx1ZSd9LCBudWxsKQogUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQg
aXMgdHJ1ZQpAQCAtMTU4LDcgKzE1OCw3IEBAIFBBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCiBQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdl
dC5ET05FCiAKIFBBU1MgZXZlbnQuY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5E
QVRBX0VSUgotZGIudHJhbnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEV9KQorZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCiBzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQogc3RvcmUu
YWRkKHt4OiBudWxsfSwgJ3ZhbGlka2V5JykKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlz
IHRydWUKQEAgLTE3OSw3ICsxNzksNyBAQCBQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQogUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQu
RE9ORQogCiBQQVNTIGV2ZW50LmNvZGUgaXMgd2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uREFU
QV9FUlIKLWRiLnRyYW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFfSkKK2RiLnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KQogc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKIHN0b3JlLmdl
dCgna2V5JykKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKaW5k
ZXggZDM4OGFhMDMwYWY2YjNmYzcyNGY1ZDFiZWMxMGJlY2M1OTkzZjc0ZC4uODI4NTRmY2U1MTkw
YWFkZjYxNDNhNWUwOTVhNWVlOWZkY2FlN2NhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKQEAgLTE0MSw3ICsxNDEs
NyBAQCB2YXIgdGVzdERhdGVCID0gbmV3IERhdGUoIldlZCBKYW4gMDUgMjAxMSAxNTo1NDo0OSIp
OwogCiBmdW5jdGlvbiBhZGREYXRhKCkKIHsKLSAgICB2YXIgdHJhbnNhY3Rpb24gPSBldmFsQW5k
TG9nKCJ0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFfSkiKTsKKyAgICB2YXIgdHJhbnNhY3Rpb24gPSBldmFsQW5kTG9nKCJ0
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKSIpOwogICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxs
YmFjazsKICAgICB3aW5kb3cuc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9u
Lm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwogCkBAIC0xODksNyArMTg5LDcgQEAgZnVuY3Rp
b24gYWRkQWdhaW5GYWlsdXJlKCkKICAgICAvLyBGSVhNRTogVGhpcyBlcnJvciBjb2RlIG5lZWRz
IHRvIGJlIHNwZWNjZWQuCiAgICAgc2hvdWxkQmUoImV2ZW50LmNvZGUiLCAid2Via2l0SURCRGF0
YWJhc2VFeGNlcHRpb24uVU5LTk9XTl9FUlIiKTsKIAotICAgIHRyYW5zYWN0aW9uID0gZXZhbEFu
ZExvZygiZGIudHJhbnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEV9KSIpOworICAgIHRyYW5zYWN0aW9uID0gZXZhbEFuZExvZygiZGIudHJhbnNhY3Rpb24oW10s
IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CiAgICAgdHJhbnNhY3Rpb24ub25h
Ym9ydCA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIHZhciBzdG9yZSA9IGV2YWxBbmRM
b2coInN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CiAKQEAg
LTIwNSw3ICsyMDUsNyBAQCBmdW5jdGlvbiBhZGRXaXRoTnVsbEtleUZhaWx1cmUoKQogICAgIHZl
cmlmeUVycm9yRXZlbnQoZXZlbnQpOwogICAgIHNob3VsZEJlKCJldmVudC5jb2RlIiwgIndlYmtp
dElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIik7CiAKLSAgICB0cmFuc2FjdGlvbiA9IGV2
YWxBbmRMb2coImRiLnRyYW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFfSkiKTsKKyAgICB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coImRiLnRyYW5zYWN0aW9u
KFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOwogICAgIHRyYW5zYWN0aW9u
Lm9uYWJvcnQgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICB2YXIgc3RvcmUgPSBldmFs
QW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwog
CkBAIC0yMjEsNyArMjIxLDcgQEAgZnVuY3Rpb24gYWRkV2l0aE51bGxJbmRleEZhaWx1cmUoKQog
ICAgIHZlcmlmeUVycm9yRXZlbnQoZXZlbnQpOwogICAgIHNob3VsZEJlKCJldmVudC5jb2RlIiwg
IndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIik7CiAKLSAgICB0cmFuc2FjdGlv
biA9IGV2YWxBbmRMb2coImRiLnRyYW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFfSkiKTsKKyAgICB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coImRiLnRyYW5z
YWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOwogICAgIHRyYW5z
YWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICB2YXIgc3RvcmUg
PSBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KSIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3Rz
dG9yZS1jdXJzb3IuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLWN1cnNvci5odG1sCmluZGV4IGUwZGIwOGY2MmUzZjMzNjdmNWUzNzFlNjJjYTQ3Yjg4ZTIx
OTIxYzguLmJiN2I2NWJhNGI5NDQyNGFjMmIzOGUyZjhmYjc1ZmFkZGJjODdlM2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWN1cnNvci5odG1s
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWN1cnNvci5o
dG1sCkBAIC0xNjUsNyArMTY1LDcgQEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQogICAgIGVsc2UK
ICAgICAgICAga2V5UmFuZ2UgPSB3ZWJraXRJREJLZXlSYW5nZS51cHBlckJvdW5kKHRlc3REYXRh
W3VwcGVyXSwgdXBwZXJJc09wZW4pOwogIAotICAgIHZhciByZXF1ZXN0ID0gb2JqZWN0U3RvcmUu
b3BlbkN1cnNvcih7cmFuZ2U6IGtleVJhbmdlLCBkaXJlY3Rpb246IGFzY2VuZGluZyA/IHdlYmtp
dElEQkN1cnNvci5ORVhUIDogd2Via2l0SURCQ3Vyc29yLlBSRVZ9KTsKKyAgICB2YXIgcmVxdWVz
dCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3Ioa2V5UmFuZ2UsIGFzY2VuZGluZyA/IHdlYmtpdElE
QkN1cnNvci5ORVhUIDogd2Via2l0SURCQ3Vyc29yLlBSRVYpOwogICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gY3Vyc29ySXRlcmF0aW9uOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOwogfQpAQCAtMjMxLDcgKzIzMSw3IEBAIGZ1bmN0aW9uIHRlc3ROdWxsS2V5
UmFuZ2UoKQogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZyhzdHIpOwogIAotICAgIHZhciByZXF1
ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcih7ZGlyZWN0aW9uOiBhc2NlbmRpbmcgPyB3ZWJr
aXRJREJDdXJzb3IuTkVYVCA6IHdlYmtpdElEQkN1cnNvci5QUkVWfSk7CisgICAgdmFyIHJlcXVl
c3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKG51bGwsIGFzY2VuZGluZyA/IHdlYmtpdElEQkN1
cnNvci5ORVhUIDogd2Via2l0SURCQ3Vyc29yLlBSRVYpOwogICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gY3Vyc29ySXRlcmF0aW9uOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
b3Blbi1jdXJzb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
b3Blbi1jdXJzb3ItZXhwZWN0ZWQudHh0CmluZGV4IGQ0MDQzNmNiZWJhZWU5ZDg0OGQ5ZWE1Njgz
Mjc4MzBjNjYxNGQzYmIuLmRkYWE1MWE5NjA0YWQ4ZTQwM2RiYmFkMTE2YjE3NTU2NzU1YzFiNzQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNv
ci1leHBlY3RlZC50eHQKQEAgLTUwLDcgKzUwLDcgQEAgUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVz
dWx0IGlzIHRydWUKIEFuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KIAogT3BlbmluZyBj
dXJzb3IKLWV2ZW50LnNvdXJjZS5vcGVuQ3Vyc29yKHtyYW5nZToga2V5UmFuZ2V9KQorZXZlbnQu
c291cmNlLm9wZW5DdXJzb3Ioa2V5UmFuZ2UpCiBQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBp
cyB0cnVlCiBQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAncmVhZHlTdGF0
ZScgaW4gcmVzdWx0IGlzIHRydWUKQEAgLTc2LDcgKzc2LDcgQEAgUGFzc2luZyBhbiBpbnZhbGlk
IGtleSBpbnRvIC5jb250aW51ZSgpLgogUEFTUyBDYXVnaHQgZXhjZXB0aW9uOiBFcnJvcjogVFlQ
RV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcKIAogT3BlbmluZyBhbiBlbXB0eSBjdXJz
b3IuCi1vYmplY3RTdG9yZS5vcGVuQ3Vyc29yKHtyYW5nZToga2V5UmFuZ2V9KQorb2JqZWN0U3Rv
cmUub3BlbkN1cnNvcihrZXlSYW5nZSkKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRy
dWUKIFBBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdyZWFkeVN0YXRlJyBp
biByZXN1bHQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvb3Blbi1jdXJzb3IuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4t
Y3Vyc29yLmh0bWwKaW5kZXggZTRkYzhmMDI2NWI2ZjQzYWI4MTQ5ZjlkMzc1ODE3YTgzYzY5ZTk0
Ni4uMTdlZDlhYjYwY2YzNzY1MjJiYmIyNzhmYWM4YjcyMTJjNGZjOTNkYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3IuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci5odG1sCkBAIC0yNiw3ICsyNiw3
IEBAIGZ1bmN0aW9uIG9wZW5FbXB0eUN1cnNvcigpCiB7CiAgICAgZGVidWcoIk9wZW5pbmcgYW4g
ZW1wdHkgY3Vyc29yLiIpOwogICAgIGtleVJhbmdlID0gd2Via2l0SURCS2V5UmFuZ2UubG93ZXJC
b3VuZCgiSW5leGlzdGVudEtleSIpOwotICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0
b3JlLm9wZW5DdXJzb3Ioe3JhbmdlOiBrZXlSYW5nZX0pIik7CisgICAgcmVzdWx0ID0gZXZhbEFu
ZExvZygib2JqZWN0U3RvcmUub3BlbkN1cnNvcihrZXlSYW5nZSkiKTsKICAgICB2ZXJpZnlSZXN1
bHQocmVzdWx0KTsKICAgICByZXN1bHQub25zdWNjZXNzID0gZW1wdHlDdXJzb3JTdWNjZXNzOwog
ICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CkBAIC01Niw3ICs1
Niw3IEBAIGZ1bmN0aW9uIG9wZW5DdXJzb3IoKQogewogICAgIGRlYnVnKCJPcGVuaW5nIGN1cnNv
ciIpOwogICAgIGtleVJhbmdlID0gd2Via2l0SURCS2V5UmFuZ2UubG93ZXJCb3VuZCgibXlLZXki
KTsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJldmVudC5zb3VyY2Uub3BlbkN1cnNvcih7cmFu
Z2U6IGtleVJhbmdlfSkiKTsKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJldmVudC5zb3VyY2Uu
b3BlbkN1cnNvcihrZXlSYW5nZSkiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKICAgICBy
ZXN1bHQub25zdWNjZXNzID0gY3Vyc29yU3VjY2VzczsKICAgICByZXN1bHQub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9y
ZS1jYWxscy1leHBlY3RlZC50eHQKaW5kZXggZGYzNzNkNmNjMGEwZTY3NmIyZmYwYzE3ZWUwYzMy
ZGI2NjUxMDU2Mi4uMDI4ZmY3MmYyYjhjZDY2YmYwZjJkNGViM2VhODE0NDI4MDg1YWNjZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9i
amVjdHN0b3JlLWNhbGxzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMtZXhwZWN0ZWQudHh0CkBA
IC0xOSw0MCArMTksNDAgQEAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2EnKQogZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ2InKQogdHJhbnMub25jb21wbGV0ZSA9IGNyZWF0ZWQKIAotdHJhbnMgPSBkYi50
cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogJ2EnfSkKK3RyYW5zID0gZGIudHJhbnNhY3Rp
b24oWydhJ10pCiB0cmFucy5vYmplY3RTdG9yZSgnYScpCiBFeHBlY3RpbmcgZXhjZXB0aW9uIGZy
b20gdHJhbnMub2JqZWN0U3RvcmUoJ2InKQogUEFTUyBjb2RlIGlzIHdlYmtpdElEQkRhdGFiYXNl
RXhjZXB0aW9uLk5PVF9GT1VORF9FUlIKIEV4cGVjdGluZyBleGNlcHRpb24gZnJvbSB0cmFucy5v
YmplY3RTdG9yZSgneCcpCiBQQVNTIGNvZGUgaXMgd2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24u
Tk9UX0ZPVU5EX0VSUgogCi10cmFucyA9IGRiLnRyYW5zYWN0aW9uKHtvYmplY3RTdG9yZU5hbWVz
OiBbJ2EnXX0pCit0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFsnYSddKQogdHJhbnMub2JqZWN0U3Rv
cmUoJ2EnKQogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRyYW5zLm9iamVjdFN0b3JlKCdiJykK
IFBBU1MgY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSCiBF
eHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gdHJhbnMub2JqZWN0U3RvcmUoJ3gnKQogUEFTUyBjb2Rl
IGlzIHdlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIKIAotdHJhbnMgPSBk
Yi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogWydiJ119KQordHJhbnMgPSBkYi50cmFu
c2FjdGlvbihbJ2InXSkKIHRyYW5zLm9iamVjdFN0b3JlKCdiJykKIEV4cGVjdGluZyBleGNlcHRp
b24gZnJvbSB0cmFucy5vYmplY3RTdG9yZSgnYScpCiBQQVNTIGNvZGUgaXMgd2Via2l0SURCRGF0
YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRy
YW5zLm9iamVjdFN0b3JlKCd4JykKIFBBU1MgY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5OT1RfRk9VTkRfRVJSCiAKLXRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3Jl
TmFtZXM6IFsnYScsICdiJ119KQordHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ2EnLCAnYiddKQog
dHJhbnMub2JqZWN0U3RvcmUoJ2EnKQogdHJhbnMub2JqZWN0U3RvcmUoJ2InKQogRXhwZWN0aW5n
IGV4Y2VwdGlvbiBmcm9tIHRyYW5zLm9iamVjdFN0b3JlKCd4JykKIFBBU1MgY29kZSBpcyB3ZWJr
aXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSCiAKLXRyYW5zID0gZGIudHJhbnNh
Y3Rpb24oe29iamVjdFN0b3JlTmFtZXM6IFsnYicsICdhJ119KQordHJhbnMgPSBkYi50cmFuc2Fj
dGlvbihbJ2InLCAnYSddKQogdHJhbnMub2JqZWN0U3RvcmUoJ2EnKQogdHJhbnMub2JqZWN0U3Rv
cmUoJ2InKQogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRyYW5zLm9iamVjdFN0b3JlKCd4JykK
IFBBU1MgY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSCiAK
LXRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3JlTmFtZXM6IFtdfSkKK3RyYW5zID0g
ZGIudHJhbnNhY3Rpb24oW10pCiB0cmFucy5vYmplY3RTdG9yZSgnYScpCiB0cmFucy5vYmplY3RT
dG9yZSgnYicpCiBFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gdHJhbnMub2JqZWN0U3RvcmUoJ3gn
KQpAQCAtNjQsMTUgKzY0LDE1IEBAIHRyYW5zLm9iamVjdFN0b3JlKCdiJykKIEV4cGVjdGluZyBl
eGNlcHRpb24gZnJvbSB0cmFucy5vYmplY3RTdG9yZSgneCcpCiBQQVNTIGNvZGUgaXMgd2Via2l0
SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgogCi1FeHBlY3RpbmcgZXhjZXB0aW9u
IGZyb20gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3JlTmFtZXM6ICd4J30pCitFeHBlY3Rpbmcg
ZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24oWyd4J10pCiBQQVNTIGNvZGUgaXMgd2Via2l0
SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgotRXhwZWN0aW5nIGV4Y2VwdGlvbiBm
cm9tIGRiLnRyYW5zYWN0aW9uKHtvYmplY3RTdG9yZU5hbWVzOiBbJ3gnXX0pCitFeHBlY3Rpbmcg
ZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24oWyd4J10pCiBQQVNTIGNvZGUgaXMgd2Via2l0
SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgotRXhwZWN0aW5nIGV4Y2VwdGlvbiBm
cm9tIGRiLnRyYW5zYWN0aW9uKHtvYmplY3RTdG9yZU5hbWVzOiBbJ2EnLCAneCddfSkKK0V4cGVj
dGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihbJ2EnLCAneCddKQogUEFTUyBjb2Rl
IGlzIHdlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIKLUV4cGVjdGluZyBl
eGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogWyd4JywgJ3gn
XX0pCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24oWyd4JywgJ3gnXSkK
IFBBU1MgY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSCi1F
eHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3JlTmFtZXM6
IFsnYScsICd4JywgJ2InXX0pCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rp
b24oWydhJywgJ3gnLCAnYiddKQogUEFTUyBjb2RlIGlzIHdlYmtpdElEQkRhdGFiYXNlRXhjZXB0
aW9uLk5PVF9GT1VORF9FUlIKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9i
amVjdHN0b3JlLWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbAppbmRleCA1ODBjYTVkZDZlMmI1ZTdl
YjJlMWNhMjc3NWQwOTc5ZmJmNDAwMTZmLi45NGI5OTNlMzczN2MxMzY1NjQ5YjI1ZDY1MTk5YjJi
MGY3ZDc2Yzg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbApAQCAt
NDksMzcgKzQ5LDM3IEBAIGZ1bmN0aW9uIGNsZWFuZWQoKQogCiBmdW5jdGlvbiBjcmVhdGVkKCkK
IHsKLSAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVj
dFN0b3JlTmFtZXM6ICdhJ30pIik7CisgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRi
LnRyYW5zYWN0aW9uKFsnYSddKSIpOwogICAgIGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3Jl
KCdhJykiKTsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5vYmplY3RTdG9yZSgn
YicpIiwgIndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5vYmplY3RTdG9yZSgneCcpIiwgIndlYmtpdElE
QkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKICAgICBkZWJ1ZygiIik7CiAKLSAg
ICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3Jl
TmFtZXM6IFsnYSddfSkiKTsKKyAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJh
bnNhY3Rpb24oWydhJ10pIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ2En
KSIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInRyYW5zLm9iamVjdFN0b3JlKCdiJyki
LCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwogICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oInRyYW5zLm9iamVjdFN0b3JlKCd4JykiLCAid2Via2l0SURCRGF0
YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwogICAgIGRlYnVnKCIiKTsKIAotICAgIHRy
YW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1l
czogWydiJ119KSIpOworICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2Fj
dGlvbihbJ2InXSkiKTsKICAgICBldmFsQW5kTG9nKCJ0cmFucy5vYmplY3RTdG9yZSgnYicpIik7
CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigidHJhbnMub2JqZWN0U3RvcmUoJ2EnKSIsICJ3
ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIik7CiAgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigidHJhbnMub2JqZWN0U3RvcmUoJ3gnKSIsICJ3ZWJraXRJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIik7CiAgICAgZGVidWcoIiIpOwogCi0gICAgdHJhbnMg
PSBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKHtvYmplY3RTdG9yZU5hbWVzOiBb
J2EnLCAnYiddfSkiKTsKKyAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNh
Y3Rpb24oWydhJywgJ2InXSkiKTsKICAgICBldmFsQW5kTG9nKCJ0cmFucy5vYmplY3RTdG9yZSgn
YScpIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ2InKSIpOwogICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oInRyYW5zLm9iamVjdFN0b3JlKCd4JykiLCAid2Via2l0SURC
RGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwogICAgIGRlYnVnKCIiKTsKIAotICAg
IHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVO
YW1lczogWydiJywgJ2EnXX0pIik7CisgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRi
LnRyYW5zYWN0aW9uKFsnYicsICdhJ10pIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMub2JqZWN0
U3RvcmUoJ2EnKSIpOwogICAgIGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCdiJykiKTsK
ICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5vYmplY3RTdG9yZSgneCcpIiwgIndl
YmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKICAgICBkZWJ1ZygiIik7
CiAKLSAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVj
dFN0b3JlTmFtZXM6IFtdfSkiKTsKKyAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIu
dHJhbnNhY3Rpb24oW10pIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ2En
KSIpOwogICAgIGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCdiJykiKTsKICAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5vYmplY3RTdG9yZSgneCcpIiwgIndlYmtpdElEQkRh
dGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKQEAgLTkxLDExICs5MSwxMSBAQCBmdW5j
dGlvbiBjcmVhdGVkKCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5vYmplY3RT
dG9yZSgneCcpIiwgIndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsK
ICAgICBkZWJ1ZygiIik7CiAKLSAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2Fj
dGlvbih7b2JqZWN0U3RvcmVOYW1lczogJ3gnfSkiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRp
b24uTk9UX0ZPVU5EX0VSUiIpOwotICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5z
YWN0aW9uKHtvYmplY3RTdG9yZU5hbWVzOiBbJ3gnXX0pIiwgIndlYmtpdElEQkRhdGFiYXNlRXhj
ZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKLSAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50
cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogWydhJywgJ3gnXX0pIiwgIndlYmtpdElEQkRh
dGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKLSAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uKCJkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogWyd4JywgJ3gnXX0pIiwgIndl
YmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKLSAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogWydhJywgJ3gn
LCAnYiddfSkiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwor
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFsneCddKSIsICJ3ZWJr
aXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIik7CisgICAgZXZhbEFuZEV4cGVj
dEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24oWyd4J10pIiwgIndlYmtpdElEQkRhdGFiYXNlRXhj
ZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50
cmFuc2FjdGlvbihbJ2EnLCAneCddKSIsICJ3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1Rf
Rk9VTkRfRVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24o
Wyd4JywgJ3gnXSkiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIp
OworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFsnYScsICd4Jywg
J2InXSkiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwogICAg
IGRlYnVnKCIiKTsKIAogICAgIGRvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi90dXRvcmlhbC5odG1sCmluZGV4IDQ0NTIxM2M1ZTUwYmQ1OTJkMGU2M2Q1ZWMwYTk1OGUwMTlk
MjNkMDcuLjc1ZmQ4MTY2Y2Q2YWUxMGJhZWYxZDUzODE3OGQ0OWRmODU3YTIzMGMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHV0b3JpYWwuaHRtbApAQCAtMjA3LDcgKzIwNyw3
IEBAIGZ1bmN0aW9uIG9uU2V0VmVyc2lvbkNvbXBsZXRlKCkKIHsKICAgICAvLyBMZXRzIGNyZWF0
ZSBhIG5ldyB0cmFuc2FjdGlvbiBhbmQgdGhlbiBub3Qgc2NoZWR1bGUgYW55IHdvcmsgb24gaXQg
dG8gd2F0Y2ggaXQgYWJvcnQgaXRzZWxmLgogICAgIC8vIFRyYW5zYWN0aW9ucyAoYmVzaWRlcyB0
aG9zZSBjcmVhdGVkIHdpdGggc2V0VmVyc2lvbikgYXJlIGNyZWF0ZWQgc3luY2hyb25vdXNseS4g
TGlrZQotICAgIC8vIGNyZWF0ZU9iamVjdFN0b3JlLCB0cmFuc2FjdGlvbiBvcHRpb25hbGx5IHRh
a2VzIGluIGFuIG9iamVjdCB3aXRoIHZhcmlvdXMgb3B0aW9uYWwgcGFyYW1ldGVycy4KKyAgICAv
LyBjcmVhdGVPYmplY3RTdG9yZSwgdHJhbnNhY3Rpb24gb3B0aW9uYWxseSB0YWtlcyBpbiB2YXJp
b3VzIG9wdGlvbmFsIHBhcmFtZXRlcnMuCiAgICAgLy8KICAgICAvLyBGaXJzdCBvZiBhbGwgaXMg
dGhlIHBhcmFtZXRlciAib2JqZWN0U3RvcmVOYW1lcyIuIElmIHlvdSBwYXNzIGluIGEgc3RyaW5n
LCB3ZSBsb2NrIGp1c3QgdGhhdAogICAgIC8vIG9iamVjdFN0b3JlLiAgSWYgeW91IHBhc3MgaW4g
YW4gYXJyYXksIHdlIGxvY2sgdGhvc2UuIE90aGVyd2lzZSAoZm9yIGV4YW1wbGUsIGlmIHlvdSBv
bWl0IGl0CkBAIC0yMjIsNyArMjIyLDcgQEAgZnVuY3Rpb24gb25TZXRWZXJzaW9uQ29tcGxldGUo
KQogICAgIC8vIExhc3QgaXMgInRpbWVvdXQiIHdoaWNoIGlzIG1lYXN1cmVkIGluIHNlY29uZHMu
IEF0IHRoZSBtb21lbnQsIENocm9taXVtL1dlYktpdCBkZWZhdWx0cyB0byAwIHdoaWNoCiAgICAg
Ly8gbWVhbnMgbmV2ZXIsIGJ1dCBpdCdzIHBvc3NpYmxlIHdlJ2xsIGNoYW5nZSB0aGlzIGluIHRo
ZSBmdXR1cmUgYW5kIG90aGVyIGltcGxlbWVudGF0aW9ucyBtYXkKICAgICAvLyB1c2Ugc29tZXRo
aW5nIGRpZmZlcmVudCwgc28gc2V0IGl0IGlmIHlvdSByZWFsbHkgY2FyZS4KLSAgICB3aW5kb3cu
Y3VycmVudFRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oe21vZGU6IElEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUsIHRpbWVvdXQ6IDB9KTsKKyAgICB3aW5kb3cuY3VycmVudFRyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oW10sIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUsIDApOwogICAg
IGN1cnJlbnRUcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBsZXRlOwogICAg
IGN1cnJlbnRUcmFuc2FjdGlvbi5vbmFib3J0ID0gb25UcmFuc2FjdGlvbkFib3J0ZWQ7CiAKQEAg
LTI3Miw3ICsyNzIsNyBAQCBmdW5jdGlvbiBvblRyYW5zYWN0aW9uQWJvcnRlZCgpCiAgICAgLy8g
Tm93IGxldCdzIG1ha2UgYSByZWFsIHRyYW5zYWN0aW9uIGFuZCBhIHBlcnNvbiB0byBvdXIgb2Jq
ZWN0U3RvcmUuIEp1c3QgdG8gc2hvdyBpdCdzIHBvc3NpYmxlLAogICAgIC8vIHdlJ2xsIG9taXQg
dGhlIG9iamVjdFN0b3JlTmFtZXMgcGFyYW1ldGVyIHdoaWNoIG1lYW5zIHdlJ2xsIGxvY2sgZXZl
cnl0aGluZyBldmVuIHRob3VnaCB3ZSBvbmx5CiAgICAgLy8gZXZlciBhY2Nlc3MgInBlb3BsZSIu
Ci0gICAgd2luZG93LmN1cnJlbnRUcmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKHttb2RlOiBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFfSk7CisgICAgd2luZG93LmN1cnJlbnRUcmFuc2FjdGlv
biA9IGRiLnRyYW5zYWN0aW9uKFtdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKTsKICAgICBj
dXJyZW50VHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydDsKIAogICAgIHZhciBw
ZW9wbGUgPSBjdXJyZW50VHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoInBlb3BsZSIpOwpAQCAtMzEw
LDcgKzMxMCw3IEBAIGZ1bmN0aW9uIG9uUHV0VHJhbnNhY3Rpb25Db21wbGV0ZSgpCiAgICAgLy8g
T0ssIG5vdyBsZXQncyBxdWVyeSB0aGUgcGVvcGxlIG9iamVjdFN0b3JlIGluIGEgY291cGxlIGRp
ZmZlcmVudCB3YXlzLiBGaXJzdCB1cCwgbGV0J3MgdHJ5IGdldC4KICAgICAvLyBJdCBzaW1wbHkg
dGFrZXMgaW4gYSBrZXkgYW5kIHJldHVybnMgYSByZXF1ZXN0IHdob3NlIHJlc3VsdCB3aWxsIGJl
IHRoZSB2YWx1ZS4gTm90ZSB0aGF0IGhlcmUKICAgICAvLyB3ZSdyZSBwYXNzaW5nIGluIGFuIGFy
cmF5IGZvciBvYmplY3RTdG9yZU5hbWVzIHJhdGhlciB0aGFuIGEgc2ltcGxlIHN0cmluZy4KLSAg
ICB3aW5kb3cuY3VycmVudFRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3Jl
TmFtZXM6IFsicGVvcGxlIl0sIG1vZGU6IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUsIHRpbWVv
dXQ6IDB9KTsKKyAgICB3aW5kb3cuY3VycmVudFRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
WyJwZW9wbGUiXSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSwgMCk7CiAgICAgY3VycmVudFRy
YW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnQ7CiAKICAgICB2YXIgcGVvcGxlID0g
Y3VycmVudFRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJwZW9wbGUiKTsKQEAgLTM0MSw3ICszNDEs
NyBAQCBmdW5jdGlvbiBvbkdldFN1Y2Nlc3MoKQogICAgIC8vIHJldHVybiB1bmlxdWUgZW50aXJl
cyAob25seSBhcHBsaWVzIHRvIGluZGV4ZXMgd2l0aCB1bmlxdWUgc2V0IHRvIGZhbHNlKSwgUFJF
ViB0byBtb3ZlIGJhY2t3YXJkcywKICAgICAvLyBhbmQgUFJFVl9OT19EVVBMSUNBVEUuCiAgICAg
dmFyIGtleVJhbmdlID0gSURCS2V5UmFuZ2UuYm91bmQoMSwgMywgdHJ1ZSwgZmFsc2UpOwotICAg
IHZhciByZXF1ZXN0ID0gcGVvcGxlLm9wZW5DdXJzb3Ioe3JhbmdlOiBrZXlSYW5nZSwgZGlyZWN0
aW9uOiBJREJDdXJzb3IuTkVYVH0pOworICAgIHZhciByZXF1ZXN0ID0gcGVvcGxlLm9wZW5DdXJz
b3Ioa2V5UmFuZ2UsIElEQkN1cnNvci5ORVhUKTsKICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9u
T2JqZWN0U3RvcmVDdXJzb3I7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
OwogfQpAQCAtMzk0LDEwICszOTQsMTAgQEAgZnVuY3Rpb24gb25JbmRleEdldFN1Y2Nlc3MoKQog
ICAgIC8vIGRpZmZlcmVudCBJREJLZXlSYW5nZXMganVzdCB0byBkZW1vbnN0cmF0ZSBob3cgdG8g
dXNlIHRoZW0sIGJ1dCB3ZSB3b24ndCBib3RoZXIgdG8gaGFuZGxlCiAgICAgLy8gdGhlIG9uc3Vj
Y2VzcyBjb25kaXRpb25zLgogICAgIHZhciBsbmFtZSA9IGV2ZW50LnNvdXJjZTsKLSAgICBsbmFt
ZS5vcGVuQ3Vyc29yKHtyYW5nZTogSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgiRG9lIiwgZmFsc2Up
LCBkaXJlY3Rpb246IElEQkN1cnNvci5ORVhUX05PX0RVUExJQ0FURX0pOwotICAgIGxuYW1lLm9w
ZW5DdXJzb3Ioe2RpcmVjdGlvbjogSURCQ3Vyc29yLlBSRVZfTk9fRFVQTElDQVRFfSk7Ci0gICAg
bG5hbWUub3BlbkN1cnNvcih7cmFuZ2U6IElEQktleVJhbmdlLnVwcGVyQm91bmQoIlpaWloiKX0p
OwotICAgIGxuYW1lLm9wZW5DdXJzb3Ioe3JhbmdlOiBJREJLZXlSYW5nZS5vbmx5KCJEb2UiKSwg
ZGlyZWN0aW9uOiBJREJDdXJzb3IuUFJFVn0pOworICAgIGxuYW1lLm9wZW5DdXJzb3IoSURCS2V5
UmFuZ2UubG93ZXJCb3VuZCgiRG9lIiwgZmFsc2UpLCBJREJDdXJzb3IuTkVYVF9OT19EVVBMSUNB
VEUpOworICAgIGxuYW1lLm9wZW5DdXJzb3IobnVsbCwgSURCQ3Vyc29yLlBSRVZfTk9fRFVQTElD
QVRFKTsKKyAgICBsbmFtZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLnVwcGVyQm91bmQoIlpaWloi
KSk7CisgICAgbG5hbWUub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KCJEb2UiKSwgSURCQ3Vy
c29yLlBSRVYpOwogICAgIGxuYW1lLm9wZW5DdXJzb3IoKTsKICAgICBsbmFtZS5vcGVuS2V5Q3Vy
c29yKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NjFlMzIyNjY4YjI1NWE4YjFmMzY5Y2E1OGIwMDI1NzVi
YmJlNmQwLi44NzY1ZGY2OGNjMjYxNTg1YmNiZDA5OTA5ODBlMzBlMTEzNzQ5ZmJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMDEtMjQgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVp
cEBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEluZGV4ZWREYXRhYmFzZSBtZXRob2RzIHNob3VsZCBub3QgdGFrZSBhcmd1bWVudHMg
b2YgdHlwZSBPcHRpb25zT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MzAxMgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmV2ZXJ0cyBhbGwgSURC
IG1ldGhvZHMsIGV4Y2VwdCBJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUgYW5kCisgICAg
ICAgIElEQk9iamVjdFN0b3JlOjpjcmVhdGVJbmRleCwgdG8gdXNpbmcgYSBwbGFpbiBsaXN0IG9m
IGFyZ3VtZW50cyBpbnN0ZWFkIG9mCisgICAgICAgIGdyb3VwaW5nIHRoZSB2YXJpb3VzIHBhcmFt
ZXRlcnMgaW5zaWRlIGEgc2luZ2xlIE9wdGlvbnNPYmplY3QgYXJndW1lbnQuCisgICAgICAgIFRo
aXMgZGVjaXNpb24gd2FzIG1hZGUgb24gcHVibGljLXdlYmFwcHNAdzMub3JnIG1haWxpbmcgbGlz
dC4KKworICAgICAgICBXZSBhbHNvIGFkZCBzdXBwb3J0ICh2OCBvbmx5IGZvciBub3cpIGZvciBw
YXNzaW5nIERPTVN0cmluZ0xpc3Qgb2JqZWN0cyBhcyBhcmd1bWVudHMgdG8gbmF0aXZlCisgICAg
ICAgIG1ldGhvZHMuIFRoZSBjb2RlIGZvciBvYnRhaW5pbmcgYSBET01TdHJpbmdMaXN0IG9iamVj
dCBmcm9tIGEgSlMgYXJyYXkgb2Ygc3RyaW5ncyBleGlzdGVkIGFscmVhZHkKKyAgICAgICAgaW4g
T3B0aW9uc09iamVjdC5jcHAsIEkganVzdCBjb3BpZWQgaXQgdG8gVjhCaW5kaW5ncy5jcHAgYW5k
IHRhdWdodCB0aGUgdjggY29kZSBnZW5lcmF0b3IgaG93IHRvCisgICAgICAgIHVzZSBpdC4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2OFZhbHVlVG9X
ZWJDb3JlRE9NU3RyaW5nTGlzdCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6
CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZTo6dHJhbnNhY3Rpb24pOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJhc2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbik6CisgICAgICAg
ICogc3RvcmFnZS9JREJEYXRhYmFzZS5pZGw6CisgICAgICAgICogc3RvcmFnZS9JREJJbmRleC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6b3BlbkN1cnNvcik6CisgICAgICAgIChX
ZWJDb3JlOjpJREJJbmRleDo6b3BlbktleUN1cnNvcik6CisgICAgICAgICogc3RvcmFnZS9JREJJ
bmRleC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXg6Om9wZW5DdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCSW5kZXg6Om9wZW5LZXlDdXJzb3IpOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCSW5kZXguaWRsOgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHN0
b3JhZ2UvSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3Jl
OjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmlkbDoKKyAg
ICAgICAgKiBzdG9yYWdlL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpvYmpl
Y3RTdG9yZSk6CisKIDIwMTEtMDEtMjQgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXgg
N2QzNmRiMTI0ZWQ5NDhiNWNjNGNhZjViMDM3NjA2ZGI3OGI5ODc0Yy4uZjQxOGViNTIwYzA3NDdl
YzE1YWM2NmRkZjU5MjU1OTg4MjY4Mjg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTI4MzIsNiArMjgzMiw4IEBAIHN1
YiBHZXROYXRpdmVUeXBlCiAKICAgICByZXR1cm4gIlJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyPiIgaWYgJHR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiOwogCisgICAgcmV0dXJu
ICJSZWZQdHI8RE9NU3RyaW5nTGlzdD4iIGlmICR0eXBlIGVxICJET01TdHJpbmdMaXN0IjsKKwog
ICAgICMgRGVmYXVsdCwgYXNzdW1lIG5hdGl2ZSB0eXBlIGlzIGEgcG9pbnRlciB3aXRoIHNhbWUg
dHlwZSBuYW1lIGFzIGlkbCB0eXBlCiAgICAgcmV0dXJuICIke3R5cGV9KiI7CiB9CkBAIC0yODg1
LDYgKzI4ODcsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgcmV0dXJuICJzdGF0aWNfY2Fz
dDxSYW5nZTo6Q29tcGFyZUhvdz4oJHZhbHVlLT5JbnQzMlZhbHVlKCkpIiBpZiAkdHlwZSBlcSAi
Q29tcGFyZUhvdyI7CiAgICAgcmV0dXJuICJzdGF0aWNfY2FzdDxTVkdQYWludDo6U1ZHUGFpbnRU
eXBlPigkdmFsdWUtPlRvSW50MzIoKS0+SW50MzJWYWx1ZSgpKSIgaWYgJHR5cGUgZXEgIlNWR1Bh
aW50VHlwZSI7CiAgICAgcmV0dXJuICJ0b1dlYkNvcmVEYXRlKCR2YWx1ZSkiIGlmICR0eXBlIGVx
ICJEYXRlIjsKKyAgICByZXR1cm4gInY4VmFsdWVUb1dlYkNvcmVET01TdHJpbmdMaXN0KCR2YWx1
ZSkiIGlmICR0eXBlIGVxICJET01TdHJpbmdMaXN0IjsKIAogICAgIGlmICgkdHlwZSBlcSAiRE9N
U3RyaW5nIiBvciAkdHlwZSBlcSAiRE9NVXNlckRhdGEiKSB7CiAgICAgICAgIHJldHVybiAkdmFs
dWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAppbmRleCA1MmIyM2Jk
NGE3NWRiZWUwN2QwOWZmNTE1MzQ2NDM4ZDNjMDY3ZThiLi5kMGY4ZDAzYTRjYzQ0NjlhZjliYjMw
NzRlODBiYmY0OTNmN2JkZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGlu
Zy5jcHAKQEAgLTU3OCw0ICs1NzgsMTkgQEAgdm9pZCBzZXRFbGVtZW50U3RyaW5nQXR0cihjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvLAogICAgIGltcC0+c2V0QXR0cmlidXRlKG5hbWUsIHYp
OwogfQogCitQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHY4VmFsdWVUb1dlYkNvcmVET01TdHJp
bmdMaXN0KHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKK3sKKyAgICB2ODo6TG9jYWw8djg6
OlZhbHVlPiB2OFZhbHVlKHY4OjpMb2NhbDx2ODo6VmFsdWU+OjpOZXcodmFsdWUpKTsKKyAgICBp
ZiAoIXY4VmFsdWUtPklzQXJyYXkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8
RE9NU3RyaW5nTGlzdD4gcmV0ID0gRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCk7CisgICAgdjg6Okxv
Y2FsPHY4OjpBcnJheT4gdjhBcnJheSA9IHY4OjpMb2NhbDx2ODo6QXJyYXk+OjpDYXN0KHY4VmFs
dWUpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdjhBcnJheS0+TGVuZ3RoKCk7ICsraSkg
eworICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBpbmRleGVkVmFsdWUgPSB2OEFycmF5LT5H
ZXQodjg6OkludGVnZXI6Ok5ldyhpKSk7CisgICAgICAgIHJldC0+YXBwZW5kKHY4VmFsdWVUb1dl
YkNvcmVTdHJpbmcoaW5kZXhlZFZhbHVlKSk7CisgICAgfQorICAgIHJldHVybiByZXQucmVsZWFz
ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4QmluZGluZy5oCmluZGV4IGIyZDVkYWEzOGY5NGVkOTBlOTZhYzU5NmM4MzRkOGU3MDgwOTgy
YzcuLjRiOGI4MDY4NGM0ZTc5NzAyNTQ0NTViNThjNGI1MzY2ZWFkZTg2NDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFY4
QmluZGluZ19oCiAKICNpbmNsdWRlICJCaW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNsdWRlICJET01T
dHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCiAjaW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCkBAIC0yMDYsNiArMjA3LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgU3RyaW5nIGludDMyVG9XZWJDb3JlU3RyaW5nKGlu
dCB2YWx1ZSk7CiAKKyAgICBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHY4VmFsdWVUb1dlYkNv
cmVET01TdHJpbmdMaXN0KHY4OjpIYW5kbGU8djg6OlZhbHVlPik7CisKICAgICBjbGFzcyBWOFBh
cmFtZXRlckJhc2UgewogICAgIHB1YmxpYzoKICAgICAgICAgb3BlcmF0b3IgU3RyaW5nKCkgeyBy
ZXR1cm4gdG9TdHJpbmc8U3RyaW5nPigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJh
c2UuY3BwCmluZGV4IDMzZjAwNGI2NGNkZTZmY2E0ZDQzNDRiNTg0NjlhMGMyMWJlNWJjYTcuLjAx
NzhmMjE4ZDczMmE4Mjc1ZDY3Yjc0MjA3NTRiZDJhZTEwNzFhNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvSURCRGF0YWJhc2UuY3BwCkBAIC05OCwyOSArOTgsMTggQEAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBJREJEYXRhYmFzZTo6c2V0VmVyc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LAogICAgIHJldHVybiByZXF1ZXN0OwogfQogCi1QYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uPiBJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgY29uc3QgT3B0aW9uc09iamVjdCYgb3B0aW9ucywgRXhjZXB0aW9uQ29kZSYgZWMpCitQ
YXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBwcnBT
dG9yZU5hbWVzLCB1bnNpZ25lZCBzaG9ydCBtb2RlLCB1bnNpZ25lZCBsb25nIHRpbWVvdXQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFJlZlB0cjxET01TdHJpbmdMaXN0PiBzdG9yZU5hbWVz
ID0gb3B0aW9ucy5nZXRLZXlET01TdHJpbmdMaXN0KCJvYmplY3RTdG9yZU5hbWVzIik7Ci0gICAg
aWYgKCFzdG9yZU5hbWVzKSB7CisgICAgUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHN0b3JlTmFtZXMg
PSBwcnBTdG9yZU5hbWVzOworICAgIGlmICghc3RvcmVOYW1lcykKICAgICAgICAgc3RvcmVOYW1l
cyA9IERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpOwotICAgICAgICBTdHJpbmcgc3RvcmVOYW1lOwot
ICAgICAgICBpZiAob3B0aW9ucy5nZXRLZXlTdHJpbmcoIm9iamVjdFN0b3JlTmFtZXMiLCBzdG9y
ZU5hbWUpKQotICAgICAgICAgICAgc3RvcmVOYW1lcy0+YXBwZW5kKHN0b3JlTmFtZSk7Ci0gICAg
fQogCi0gICAgLy8gR2V0cyBjYXN0IHRvIGFuIHVuc2lnbmVkIHNob3J0LgotICAgIGludDMyX3Qg
bW9kZSA9IElEQlRyYW5zYWN0aW9uOjpSRUFEX09OTFk7Ci0gICAgb3B0aW9ucy5nZXRLZXlJbnQz
MigibW9kZSIsIG1vZGUpOwogICAgIGlmIChtb2RlICE9IElEQlRyYW5zYWN0aW9uOjpSRUFEX1dS
SVRFICYmIG1vZGUgIT0gSURCVHJhbnNhY3Rpb246OlJFQURfT05MWSkgewogICAgICAgICAvLyBG
SVhNRTogTWF5IG5lZWQgdG8gY2hhbmdlIHdoZW4gc3BlY2NlZDogaHR0cDovL3d3dy53My5vcmcv
QnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTExNDA2CiAgICAgICAgIGVjID0gSURCRGF0YWJh
c2VFeGNlcHRpb246OkNPTlNUUkFJTlRfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK
LSAgICAvLyBHZXRzIGNhc3QgdG8gYW4gdW5zaWduZWQgbG9uZy4KLSAgICAvLyBGSVhNRTogVGhl
IHNwZWMgbmVlZHMgdG8gYmUgdXBkYXRlZCBvbiB0aGlzLiBJdCBzaG91bGQgcHJvYmFibHkgdGFr
ZSBhIGRvdWJsZS4KLSAgICBpbnQzMl90IHRpbWVvdXQgPSBkZWZhdWx0VGltZW91dDsgCi0gICAg
b3B0aW9ucy5nZXRLZXlJbnQzMigidGltZW91dCIsIHRpbWVvdXQpOwogICAgIGludDY0X3QgdW5z
aWduZWRMb25nTWF4ID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6bWF4KCk7
CiAgICAgaWYgKHRpbWVvdXQgPCAwIHx8IHRpbWVvdXQgPiB1bnNpZ25lZExvbmdNYXgpCiAgICAg
ICAgIHRpbWVvdXQgPSBkZWZhdWx0VGltZW91dDsgLy8gSWdub3JlIGlsbGVnYWwgdmFsdWVzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5oCmluZGV4IDllYmJmMDBlNTA1ZjNhOGVlZGQw
ZjQ0ZTUzZmQ3MTM1MWM3YWU4ZjMuLjg3MjAwMzY4YWJiM2RlNTZkZjA1MDY3MGQzMzQ2ZmZhZThh
Y2I4YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmgKQEAgLTYxLDEyICs2MSwx
NCBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogVHJ5IHRvIG1vZGlmeSB0aGUgY29kZSBnZW5l
cmF0b3Igc28gdGhpcyBpcyB1bm5lZWRlZC4KICAgICBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3Jl
PiBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVj
KSB7IHJldHVybiBjcmVhdGVPYmplY3RTdG9yZShuYW1lLCBPcHRpb25zT2JqZWN0KCksIGVjKTsg
fQotICAgIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiB0cmFuc2Fj
dGlvbihjb250ZXh0LCBPcHRpb25zT2JqZWN0KCksIGVjKTsgfQorICAgIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiB0cmFuc2FjdGlvbihjb250ZXh0LCAwLCBlYyk7
IH0KKyAgICBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHN0b3JlTmFt
ZXMsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiB0cmFuc2FjdGlvbihjb250ZXh0LCBzdG9y
ZU5hbWVzLCBJREJUcmFuc2FjdGlvbjo6UkVBRF9PTkxZLCBlYyk7IH0gCisgICAgUGFzc1JlZlB0
cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBzdG9yZU5hbWVzLCB1bnNpZ25lZCBzaG9y
dCBtb2RlLCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gdHJhbnNhY3Rpb24oY29udGV4dCwg
c3RvcmVOYW1lcywgbW9kZSwgMCwgZWMpOyB9CisgICAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bj4gdHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8RE9NU3Ry
aW5nTGlzdD4sIHVuc2lnbmVkIHNob3J0IG1vZGUsIHVuc2lnbmVkIGxvbmcgdGltZW91dCwgRXhj
ZXB0aW9uQ29kZSYpOwogCiAgICAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gY3JlYXRlT2Jq
ZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zT2JqZWN0JiwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1l
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBzZXRWZXJzaW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIHZlcnNpb24sIEV4Y2VwdGlv
bkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgT3B0aW9uc09iamVjdCYsIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICB2b2lkIGNsb3NlKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
RGF0YWJhc2UuaWRsCmluZGV4IDdlYjQzZTlmYzQ1ZWI0NzBkYmMwODUxYjZkNzZkMmM1YjhmYzY1
OWUuLmUzYjc1MDg3ZTJkOTYzOTAzNDJjMTg4ZTRiOWI4MjE0MzMxMzk3NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaWRsCkBAIC0zOCw3ICszOCw3IEBAIG1vZHVsZSBzdG9y
YWdlIHsKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAg
ICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBzZXRWZXJzaW9u
KGluIERPTVN0cmluZyB2ZXJzaW9uKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4
Y2VwdGlvbik7Ci0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJU
cmFuc2FjdGlvbiB0cmFuc2FjdGlvbihpbiBbT3B0aW9uYWxdIE9wdGlvbnNPYmplY3Qgb3B0aW9u
c09iamVjdCkKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRy
YW5zYWN0aW9uIHRyYW5zYWN0aW9uKGluIFtPcHRpb25hbF0gRE9NU3RyaW5nTGlzdCBzdG9yZU5h
bWVzLCBpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIHNob3J0IG1vZGUsIGluIFtPcHRpb25hbF0gdW5z
aWduZWQgbG9uZyB0aW1lb3V0KQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2Vw
dGlvbik7CiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiAgICAgICAgIC8vdm9pZCBjbG9z
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmNwcAppbmRleCA4YTM4YTI3ZDFlNWUwMDUw
Y2M0ZmM4NTVjMTc5M2IyMzQ2OWM3ZmM1Li4wY2M0NzI2OTExOTY1YmIxZTI2NDk2ZWEyZTJiZjMz
ZGVhZjU4ZjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmNwcApAQCAtNTIsMTMgKzUy
LDggQEAgSURCSW5kZXg6On5JREJJbmRleCgpCiB7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
Y29uc3QgT3B0aW9uc09iamVjdCYgb3B0aW9ucywgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25lZCBz
aG9ydCBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFJlZlB0cjxJREJLZXlS
YW5nZT4ga2V5UmFuZ2UgPSBvcHRpb25zLmdldEtleUtleVJhbmdlKCJyYW5nZSIpOwotCi0gICAg
Ly8gQ29udmVydGVkIHRvIGFuIHVuc2lnbmVkIHNob3J0LgotICAgIGludDMyX3QgZGlyZWN0aW9u
ID0gZGVmYXVsdERpcmVjdGlvbjsKLSAgICBvcHRpb25zLmdldEtleUludDMyKCJkaXJlY3Rpb24i
LCBkaXJlY3Rpb24pOwogICAgIGlmIChkaXJlY3Rpb24gIT0gSURCQ3Vyc29yOjpORVhUICYmIGRp
cmVjdGlvbiAhPSBJREJDdXJzb3I6Ok5FWFRfTk9fRFVQTElDQVRFICYmIGRpcmVjdGlvbiAhPSBJ
REJDdXJzb3I6OlBSRVYgJiYgZGlyZWN0aW9uICE9IElEQkN1cnNvcjo6UFJFVl9OT19EVVBMSUNB
VEUpIHsKICAgICAgICAgLy8gRklYTUU6IE1heSBuZWVkIHRvIGNoYW5nZSB3aGVuIHNwZWNjZWQ6
IGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0xMTQwNgogICAg
ICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpDT05TVFJBSU5UX0VSUjsKQEAgLTcyLDEz
ICs2Nyw4IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9
CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5LZXlDdXJzb3IoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgT3B0aW9uc09iamVjdCYgb3B0aW9ucywg
RXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVu
S2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURC
S2V5UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewotICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBvcHRpb25zLmdl
dEtleUtleVJhbmdlKCJyYW5nZSIpOwotCi0gICAgLy8gQ29udmVydGVkIHRvIGFuIHVuc2lnbmVk
IHNob3J0LgotICAgIGludDMyX3QgZGlyZWN0aW9uID0gZGVmYXVsdERpcmVjdGlvbjsKLSAgICBv
cHRpb25zLmdldEtleUludDMyKCJkaXJlY3Rpb24iLCBkaXJlY3Rpb24pOwogICAgIGlmIChkaXJl
Y3Rpb24gIT0gSURCQ3Vyc29yOjpORVhUICYmIGRpcmVjdGlvbiAhPSBJREJDdXJzb3I6Ok5FWFRf
Tk9fRFVQTElDQVRFICYmIGRpcmVjdGlvbiAhPSBJREJDdXJzb3I6OlBSRVYgJiYgZGlyZWN0aW9u
ICE9IElEQkN1cnNvcjo6UFJFVl9OT19EVVBMSUNBVEUpIHsKICAgICAgICAgLy8gRklYTUU6IE1h
eSBuZWVkIHRvIGNoYW5nZSB3aGVuIHNwZWNjZWQ6IGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVi
bGljL3Nob3dfYnVnLmNnaT9pZD0xMTQwNgogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpDT05TVFJBSU5UX0VSUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCSW5kZXguaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaAppbmRleCA3ZjFh
YWUzMDBkNGM0YTBiY2Y4YTg1YmFjNTFkOThhOTlkYmFhOWJkLi5hYWViMzQ4NjE4YWI1Mzk5ZmFk
NzQxNWIxNDBmNjI0YzM4MGU1MzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0lEQkluZGV4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleC5oCkBAIC0z
MCw3ICszMCw2IEBACiAjaW5jbHVkZSAiSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5j
bHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCi0jaW5jbHVkZSAi
T3B0aW9uc09iamVjdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KIApAQCAtNTMsMTEgKzUyLDE0IEBAIHB1YmxpYzoKICAgICBib29sIHVu
aXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2VuZC0+dW5pcXVlKCk7IH0KIAogICAgIC8vIEZJ
WE1FOiBUcnkgdG8gbW9kaWZ5IHRoZSBjb2RlIGdlbmVyYXRvciBzbyB0aGlzIGlzIHVubmVlZGVk
LgotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gb3BlbkN1cnNvcihj
b250ZXh0LCBPcHRpb25zT2JqZWN0KCksIGVjKTsgfQotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRp
b25Db2RlJiBlYykgeyByZXR1cm4gb3BlbktleUN1cnNvcihjb250ZXh0LCBPcHRpb25zT2JqZWN0
KCksIGVjKTsgfQorICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gb3Bl
bkN1cnNvcihjb250ZXh0LCAwLCBlYyk7IH0KKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9w
ZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJL
ZXlSYW5nZT4ga2V5UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuQ3Vyc29y
KGNvbnRleHQsIGtleVJhbmdlLCBJREJDdXJzb3I6Ok5FWFQsIGVjKTsgfQorICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1Jl
ZlB0cjxJREJLZXlSYW5nZT4sIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29k
ZSYpOworCisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVu
S2V5Q3Vyc29yKGNvbnRleHQsIDAsIGVjKTsgfSAKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IG9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVu
S2V5Q3Vyc29yKGNvbnRleHQsIGtleVJhbmdlLCBJREJDdXJzb3I6Ok5FWFQsIGVjKTsgfQorICAg
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwg
RXhjZXB0aW9uQ29kZSYpOwogCi0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29y
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBPcHRpb25zT2JqZWN0JiwgRXhjZXB0aW9u
Q29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgT3B0aW9uc09iamVjdCYsIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBnZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5
PiwgRXhjZXB0aW9uQ29kZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0lEQkluZGV4LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaWRsCmluZGV4
IGU2YmExZTZkZTNhMDk4Mzk5ZjM1OTE3NGI0ZjI0MDFiNmFmOGRjNmYuLjEzMDg5Y2M2ODNjZTM3
ZTNkNGE5NmM0ZmEyNDU3OWYyZDRhYTAxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvSURCSW5kZXguaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXgu
aWRsCkBAIC0zMyw5ICszMyw5IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBrZXlQYXRoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiB1bmlxdWU7CiAKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRdIElEQlJlcXVlc3Qgb3BlbkN1cnNvcihpbiBbT3B0aW9uYWxdIE9wdGlvbnNPYmplY3Qgb3B0
aW9ucykKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVl
c3Qgb3BlbkN1cnNvcihpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlIHJhbmdlLCBpbiBbT3B0aW9u
YWxdIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0
YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKGluIFtPcHRpb25hbF0gT3B0aW9uc09iamVjdCBv
cHRpb25zKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVx
dWVzdCBvcGVuS2V5Q3Vyc29yKGluIFtPcHRpb25hbF0gSURCS2V5UmFuZ2UgcmFuZ2UsIGluIFtP
cHRpb25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKSkKICAgICAgICAgICAgIHJhaXNlcyAo
SURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gSURCUmVxdWVzdCBnZXQoaW4gSURCS2V5IGtleSkKICAgICAgICAgICAgIHJhaXNl
cyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlLmNwcAppbmRleCBlZDVjOTZhYWQ3NmI0ZWFkY2ZlMzUyYWUxMmM2ZjM3NmEzNDIxODA0
Li5kYjMzYTRlOTRiZjk3YmFmMzVkOWFjOWNiMDNhMTNhOGUzYjQxNjM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcApAQCAtMTI5LDEzICsxMjksOCBAQCB2b2lk
IElEQk9iamVjdFN0b3JlOjpkZWxldGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogICAgIG1fb2JqZWN0U3RvcmUtPmRlbGV0ZUluZGV4KG5hbWUsIG1fdHJhbnNh
Y3Rpb24uZ2V0KCksIGVjKTsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RT
dG9yZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBP
cHRpb25zT2JqZWN0JiBvcHRpb25zLCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8SURC
UmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2lnbmVkIHNob3J0
IGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgUmVmUHRyPElEQktleVJhbmdl
PiByYW5nZSA9IG9wdGlvbnMuZ2V0S2V5S2V5UmFuZ2UoInJhbmdlIik7Ci0KLSAgICAvLyBDb252
ZXJ0ZWQgdG8gYW4gdW5zaWduZWQgc2hvcnQuCi0gICAgaW50MzJfdCBkaXJlY3Rpb24gPSBkZWZh
dWx0RGlyZWN0aW9uOwotICAgIG9wdGlvbnMuZ2V0S2V5SW50MzIoImRpcmVjdGlvbiIsIGRpcmVj
dGlvbik7CiAgICAgaWYgKGRpcmVjdGlvbiAhPSBJREJDdXJzb3I6Ok5FWFQgJiYgZGlyZWN0aW9u
ICE9IElEQkN1cnNvcjo6TkVYVF9OT19EVVBMSUNBVEUgJiYgZGlyZWN0aW9uICE9IElEQkN1cnNv
cjo6UFJFViAmJiBkaXJlY3Rpb24gIT0gSURCQ3Vyc29yOjpQUkVWX05PX0RVUExJQ0FURSkgewog
ICAgICAgICAvLyBGSVhNRTogTWF5IG5lZWQgdG8gY2hhbmdlIHdoZW4gc3BlY2NlZDogaHR0cDov
L3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTExNDA2CiAgICAgICAgIGVj
ID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkNPTlNUUkFJTlRfRVJSOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJPYmplY3RTdG9yZS5oCmluZGV4IDBlOWE0YTk1MmRkNzAyNWFjM2ViZTcxZGY3MTJj
MGM1OWZkNGJiZDEuLjhjMDc2YzdiMTMxYzk5ODM1YzgxZThlNzZjMmEwMGRlNDYwZDQ2ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKQEAgLTYzLDcgKzYzLDggQEAg
cHVibGljOgogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gYWRkKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwg
RXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGFkZChjb250ZXh0LCB2YWx1ZSwgMCwgZWMpOyAg
fQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gcHV0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgRXhjZXB0
aW9uQ29kZSYgZWMpIHsgcmV0dXJuIHB1dChjb250ZXh0LCB2YWx1ZSwgMCwgZWMpOyAgfQogICAg
IFBhc3NSZWZQdHI8SURCSW5kZXg+IGNyZWF0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiBrZXlQYXRoLCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gY3JlYXRlSW5k
ZXgobmFtZSwga2V5UGF0aCwgT3B0aW9uc09iamVjdCgpLCBlYyk7IH0KLSAgICBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
RXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwgT3B0aW9uc09i
amVjdCgpLCBlYyk7IH0KKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJu
IG9wZW5DdXJzb3IoY29udGV4dCwgMCwgZWMpOyB9IAorICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiBrZXlSYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5D
dXJzb3IoY29udGV4dCwga2V5UmFuZ2UsIElEQkN1cnNvcjo6TkVYVCwgZWMpOyB9IAogCiAgICAg
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NS
ZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gYWRkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNzQsNyAr
NzUsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJJbmRleD4gaW5kZXgoY29uc3QgU3Ry
aW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBkZWxldGVJbmRleChjb25zdCBT
dHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgT3B0aW9uc09iamVj
dCYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJz
b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNp
Z25lZCBzaG9ydCBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmKTsgCiAKIHByaXZhdGU6CiAgICAg
SURCT2JqZWN0U3RvcmUoUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+
LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaWRsIGIvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGwKaW5kZXggZjAyM2RiZThjNmFkODQ0MGRh
MTIzMzBiODY1MTMyZjExNWU4NjNkYi4uNzI5MTc3YjM1NmJkMjc5ZjU1NTA0YzQwMmUxYTA5YjBh
MGM4MWVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9y
ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGwKQEAg
LTQwLDcgKzQwLDcgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICAgICAgcmFpc2VzIChJREJE
YXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0XSBJREJSZXF1ZXN0IGdldChpbiBJREJLZXkga2V5KQogICAgICAgICAgICAgcmFpc2VzIChJ
REJEYXRhYmFzZUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gW09wdGlvbmFsXSBPcHRpb25zT2JqZWN0
IG9wdGlvbnMpCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJS
ZXF1ZXN0IG9wZW5DdXJzb3IoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZSByYW5nZSwgaW4gW09w
dGlvbmFsXSB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pCiAgICAgICAgICAgICByYWlzZXMgKElE
QkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgSURCSW5kZXggY3JlYXRlSW5kZXgoaW4gRE9N
U3RyaW5nIG5hbWUsIGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGtleVBh
dGgsIGluIFtPcHRpb25hbF0gT3B0aW9uc09iamVjdCBvcHRpb25zKQogICAgICAgICAgICAgcmFp
c2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79934</attachid>
            <date>2011-01-24 09:05:34 -0800</date>
            <delta_ts>2011-01-24 10:50:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53012-20110124170531.patch</filename>
            <type>text/plain</type>
            <size>54334</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZWMwNDA3MDBhNzRmZmY5ZGE3YzdmYzY0ZGFhN2ZkMDlhNDE4MTFiLi5jOGU4ZTAx
MmRjOGE0YTRkZTliZTFhMDkwOTI5NWJkNzhjMzA3N2I4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMTEtMDEtMjQgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGV4ZWREYXRhYmFz
ZSBtZXRob2RzIHNob3VsZCBub3QgdGFrZSBhcmd1bWVudHMgb2YgdHlwZSBPcHRpb25zT2JqZWN0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzAxMgor
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25z
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2JqZWN0
LXN0b3JlLW9wdGlvbnMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
ZGVsZXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
ZGVsZXRlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRl
bGV0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWlu
ZGV4LWRlbGV0ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29ycnVw
dGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3Jy
dXB0aW9uLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVvdGEt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLXF1b3Rh
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtY3Vyc29yLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRtbDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jdXJzb3IuaHRtbDoKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3IuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3Rz
dG9yZS1jYWxscy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0
bWw6CisKIDIwMTEtMDEtMjQgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy1leHBl
Y3RlZC50eHQKaW5kZXggOWU3MjdhNTVmYjc5ZGU2MTZiNDA4NTUxODJmOTZiYWJmMzM4YzU1OC4u
NTUxOTUwODcyY2Y1NDE5YjIxODQ3YThjYTJkNjg4MmQxZjU2NmE1NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2Jq
ZWN0LXN0b3JlLW9wdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0xNyw3ICsxNyw3IEBAIERlbGV0ZWQg
YWxsIG9iamVjdCBzdG9yZXMuCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYScsIHtrZXlQYXRoOiAn
YSd9KQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2InKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Mn
LCB7YXV0b0luY3JlbWVudDogdHJ1ZX0pOwotdHJhbnMgPSBkYi50cmFuc2FjdGlvbih7bW9kZTog
d2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURX0pCit0cmFucyA9IGRiLnRyYW5zYWN0aW9u
KFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQogUEFTUyB0cmFucy5tb2RlIGlz
IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUKIHRyYW5zLm9iamVjdFN0b3JlKCdhJyku
cHV0KHsnYSc6IDB9KQogdHJhbnMub2JqZWN0U3RvcmUoJ2InKS5wdXQoeydhJzogMH0sIDApCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2JqZWN0LXN0
b3JlLW9wdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1v
YmplY3Qtc3RvcmUtb3B0aW9ucy5odG1sCmluZGV4IGVhY2IwOWQxYjQ4ZmU3NDQ1OTc3NWU5OWU2
NGU4N2FjMGE4OWI4NDIuLjY3MDllNTg1YjUzNzk4ZTBhNmU4YjAyN2QzZWUyMzY4YTVhNTRjMzEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qt
c3RvcmUtb3B0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Ny
ZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5odG1sCkBAIC00Nyw3ICs0Nyw3IEBAIGZ1bmN0aW9u
IGNsZWFuZWQoKQogICAgIGRlYnVnKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnYycsIHthdXRvSW5j
cmVtZW50OiB0cnVlfSk7Iik7CiAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2MnLCB7YXV0b0lu
Y3JlbWVudDogdHJ1ZX0pOwogCi0gICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRy
YW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFfSkiKTsKKyAg
ICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CiAgICAgc2hvdWxkQmUoInRyYW5zLm1vZGUiLCAi
d2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOwogCiAgICAgcmVxID0gZXZhbEFuZExv
ZygidHJhbnMub2JqZWN0U3RvcmUoJ2EnKS5wdXQoeydhJzogMH0pIik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1kZWxldGUtZXhwZWN0ZWQudHh0
CmluZGV4IGJlZDFkMGRjZDU1ZjNiY2FmODU5MWM0NDMxOTkzYTVjMTg1ZjE4MGEuLjUyNWNlZDdl
NjI5YTdhMjhhZTg4OWEzZjBlM2JmNGY4ODAxNGE3NTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1kZWxldGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1kZWxldGUtZXhwZWN0ZWQudHh0CkBAIC00
OCw3ICs0OCw3IEBAIG9iamVjdFN0b3JlLmFkZCgnbXlWYWx1ZTInLCAnbXlLZXkyJykKIG9iamVj
dFN0b3JlLmFkZCgnbXlWYWx1ZTMnLCAnbXlLZXkzJykKIG9iamVjdFN0b3JlLmFkZCgnbXlWYWx1
ZTQnLCAnbXlLZXk0JykKIG9wZW5DdXJzb3IxCi10cmFucyA9IGRiLnRyYW5zYWN0aW9uKHtvYmpl
Y3RTdG9yZU5hbWVzOiAndGVzdCcsIG1vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEV9KQordHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ3Rlc3QnXSwgd2Via2l0SURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKIHRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0Jykub3BlbkN1cnNvcih7cmFu
Z2U6IGtleVJhbmdlfSkKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKIFBBU1Mg
J29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCkBAIC02OCw3ICs2OCw3IEBAIGV2ZW50LnJlc3Vs
dC5kZWxldGUoKQogUEFTUyBldmVudC5yZXN1bHQudmFsdWUgaXMgIm15VmFsdWU0IgogZXZlbnQu
cmVzdWx0LmNvbnRpbnVlKCkKIFBBU1MgY291bnRlciBpcyA1Ci10cmFucy5vYmplY3RTdG9yZSgn
dGVzdCcpLm9wZW5DdXJzb3Ioe3JhbmdlOiBrZXlSYW5nZX0pCit0cmFucy5vYmplY3RTdG9yZSgn
dGVzdCcpLm9wZW5DdXJzb3Ioa2V5UmFuZ2UpCiBQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBp
cyB0cnVlCiBQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAncmVhZHlTdGF0
ZScgaW4gcmVzdWx0IGlzIHRydWUKQEAgLTg2LDcgKzg2LDcgQEAgUEFTUyAncmVhZHlTdGF0ZScg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKIFBBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMg
ZXZlbnQudGFyZ2V0LkRPTkUKIAogUEFTUyBldmVudC5yZXN1bHQgaXMgbnVsbAotdHJhbnMgPSBk
Yi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogJ3Rlc3QnLCBtb2RlOiB3ZWJraXRJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFfSkKK3RyYW5zID0gZGIudHJhbnNhY3Rpb24oWyd0ZXN0J10s
IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCiBvYmplY3RTdG9yZSA9IHRyYW5zLm9i
amVjdFN0b3JlKCd0ZXN0JykKIG9iamVjdFN0b3JlLmFkZCgnbXlWYWx1ZTEnLCAnbXlLZXkxJykK
IFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKQEAgLTk1LDcgKzk1LDcgQEAgUEFT
UyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKIEFuIGV2ZW50IHNob3VsZCBmaXJlIHNo
b3J0bHkuLi4KIAogb3BlbkN1cnNvcjIKLW9iamVjdFN0b3JlLm9wZW5DdXJzb3Ioe3JhbmdlOiBr
ZXlSYW5nZX0pCitvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKGtleVJhbmdlKQogUEFTUyAnb25zdWNj
ZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUK
IFBBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLmh0bWwKaW5kZXggYTMyOTBiOWM3ZjI1ODM2
NWI5Nzc0OTRjYmM3ZGMyYTBlNGJjMmZkNC4uYmIwMTAyZjA0ZjE2OTg3NzJmZDQ4MjY0YzUzNmY1
MDhiYWVhYWUxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vy
c29yLWRlbGV0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1kZWxldGUuaHRtbApAQCAtNTksNyArNTksNyBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0
ZU9iamVjdFN0b3JlKCkKIGZ1bmN0aW9uIG9wZW5DdXJzb3IoKQogewogICAgIGRlYnVnKCJvcGVu
Q3Vyc29yMSIpOwotICAgIGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVj
dFN0b3JlTmFtZXM6ICd0ZXN0JywgbW9kZTogd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RX0pIik7CisgICAgZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ3Rlc3QnXSwg
d2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKICAgICBrZXlSYW5nZSA9IHdlYmtp
dElEQktleVJhbmdlLmxvd2VyQm91bmQoIm15S2V5MSIpOwogICAgIHJlc3VsdCA9IGV2YWxBbmRM
b2coInRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0Jykub3BlbkN1cnNvcih7cmFuZ2U6IGtleVJhbmdl
fSkiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKQEAgLTcyLDcgKzcyLDcgQEAgZnVuY3Rp
b24gY3Vyc29yU3VjY2VzcygpCiB7CiAgICAgaWYgKGV2ZW50LnJlc3VsdCA9PSBudWxsKSB7CiAg
ICAgICAgIHNob3VsZEJlKCJjb3VudGVyIiwgIjUiKTsKLSAgICAgICAgcmVzdWx0ID0gZXZhbEFu
ZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5vcGVuQ3Vyc29yKHtyYW5nZToga2V5UmFu
Z2V9KSIpOworICAgICAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJ0cmFucy5vYmplY3RTdG9yZSgn
dGVzdCcpLm9wZW5DdXJzb3Ioa2V5UmFuZ2UpIik7CiAgICAgICAgIHZlcmlmeVJlc3VsdChyZXN1
bHQpOwogICAgICAgICByZXN1bHQub25zdWNjZXNzID0gY3Vyc29yRW1wdHk7CiAgICAgICAgIHJl
c3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CkBAIC05Miw3ICs5Miw3IEBA
IGZ1bmN0aW9uIGN1cnNvckVtcHR5KCkKIAogZnVuY3Rpb24gYWRkT2JqZWN0KCkKIHsKLSAgICBl
dmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKHtvYmplY3RTdG9yZU5hbWVzOiAndGVz
dCcsIG1vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEV9KSIpOworICAgIGV2YWxB
bmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oWyd0ZXN0J10sIHdlYmtpdElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpIik7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RT
dG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0JykiKTsKICAgICByZXN1bHQgPSBldmFsQW5k
TG9nKCJvYmplY3RTdG9yZS5hZGQoJ215VmFsdWUxJywgJ215S2V5MScpIik7CiAgICAgdmVyaWZ5
UmVzdWx0KHJlc3VsdCk7CkBAIC0xMDMsNyArMTAzLDcgQEAgZnVuY3Rpb24gYWRkT2JqZWN0KCkK
IGZ1bmN0aW9uIG9wZW5DdXJzb3IyKCkKIHsKICAgICBkZWJ1Zygib3BlbkN1cnNvcjIiKTsKLSAg
ICByZXN1bHQgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKHtyYW5nZToga2V5
UmFuZ2V9KSIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLm9wZW5DdXJz
b3Ioa2V5UmFuZ2UpIik7CiAgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CiAgICAgcmVzdWx0Lm9u
c3VjY2VzcyA9IGRlbGV0ZU9iamVjdDsKICAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y3Vyc29yLWluZGV4LWRlbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRlLWV4cGVjdGVkLnR4dAppbmRleCAyN2YzMTE3ZmMz
OGI3MjM3MTQ2MTQ2YTg3MTk3N2QwNmE0OTdhNTQxLi44ODA1YzBlYWEwYjczMmNiOWU4ODYxMGVl
YzJjNzM0MTljZWNkZGJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3ItaW5kZXgtZGVsZXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRlLWV4cGVjdGVkLnR4dApAQCAtNDksOCAr
NDksOCBAQCBvYmplY3RTdG9yZS5hZGQoe3g6IDJ9LCAnbXlLZXkyJykKIG9iamVjdFN0b3JlLmFk
ZCh7eDogM30sICdteUtleTMnKQogb2JqZWN0U3RvcmUuYWRkKHt4OiA0fSwgJ215S2V5NCcpCiBv
cGVuQ3Vyc29yMQotdHJhbnMgPSBkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogJ3Rl
c3QnLCBtb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFfSkKLXRyYW5zLm9iamVj
dFN0b3JlKCd0ZXN0JykuaW5kZXgoJ3Rlc3RJbmRleCcpLm9wZW5DdXJzb3Ioe3JhbmdlOiBrZXlS
YW5nZX0pCit0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFsndGVzdCddLCB3ZWJraXRJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQordHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5pbmRleCgndGVzdElu
ZGV4Jykub3BlbkN1cnNvcihrZXlSYW5nZSkKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlz
IHRydWUKIFBBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdyZWFkeVN0YXRl
JyBpbiByZXN1bHQgaXMgdHJ1ZQpAQCAtNjksNyArNjksNyBAQCBldmVudC5yZXN1bHQuZGVsZXRl
KCkKIFBBU1MgZXZlbnQucmVzdWx0LmtleSBpcyBjb3VudGVyKysKIGV2ZW50LnJlc3VsdC5jb250
aW51ZSgpCiBQQVNTIGNvdW50ZXIgaXMgNQotdHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5pbmRl
eCgndGVzdEluZGV4Jykub3BlbkN1cnNvcih7cmFuZ2U6IGtleVJhbmdlfSkKK3RyYW5zLm9iamVj
dFN0b3JlKCd0ZXN0JykuaW5kZXgoJ3Rlc3RJbmRleCcpLm9wZW5DdXJzb3Ioa2V5UmFuZ2UpCiBQ
QVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdvbmVycm9yJyBpbiByZXN1
bHQgaXMgdHJ1ZQogUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKQEAgLTg3LDcg
Kzg3LDcgQEAgUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKIFBBU1Mg
ZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKIAogUEFTUyBldmVu
dC5yZXN1bHQgaXMgbnVsbAotdHJhbnMgPSBkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1l
czogJ3Rlc3QnLCBtb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFfSkKK3RyYW5z
ID0gZGIudHJhbnNhY3Rpb24oWyd0ZXN0J10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCiBvYmplY3RTdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0JykKIG9iamVjdFN0b3Jl
LmFkZCh7eDogMX0sICdteUtleTEnKQogUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1
ZQpAQCAtOTcsNyArOTcsNyBAQCBBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCiAKIG9w
ZW5DdXJzb3IyCiBpbmRleCA9IGV2ZW50LnNvdXJjZS5pbmRleCgndGVzdEluZGV4JykKLWluZGV4
Lm9wZW5DdXJzb3Ioe3JhbmdlOiBrZXlSYW5nZX0pCitpbmRleC5vcGVuQ3Vyc29yKGtleVJhbmdl
KQogUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAnb25lcnJvcicgaW4g
cmVzdWx0IGlzIHRydWUKIFBBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRl
Lmh0bWwKaW5kZXggMWJkZGY2M2JiZDAxYjg0OTJiYjUzMTg3ZmZkZDE4OWZiYjNhY2Y0Yi4uYzNk
ZTQzNGRjMWFlZDY5MDljODBiYjIwNDhjMWJhZmMxODgxMzJiYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmRleC1kZWxldGUuaHRtbApAQCAt
NjEsOSArNjEsOSBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlQW5kSW5k
ZXgoKQogZnVuY3Rpb24gb3BlbkN1cnNvcigpCiB7CiAgICAgZGVidWcoIm9wZW5DdXJzb3IxIik7
Ci0gICAgZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1l
czogJ3Rlc3QnLCBtb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFfSkiKTsKKyAg
ICBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFsndGVzdCddLCB3ZWJraXRJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOwogICAgIGtleVJhbmdlID0gd2Via2l0SURCS2V5UmFu
Z2UubG93ZXJCb3VuZCgxKTsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJ0cmFucy5vYmplY3RT
dG9yZSgndGVzdCcpLmluZGV4KCd0ZXN0SW5kZXgnKS5vcGVuQ3Vyc29yKHtyYW5nZToga2V5UmFu
Z2V9KSIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0
JykuaW5kZXgoJ3Rlc3RJbmRleCcpLm9wZW5DdXJzb3Ioa2V5UmFuZ2UpIik7CiAgICAgdmVyaWZ5
UmVzdWx0KHJlc3VsdCk7CiAgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGN1cnNvclN1Y2Nlc3M7CiAg
ICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKQEAgLTc0LDcgKzc0
LDcgQEAgZnVuY3Rpb24gY3Vyc29yU3VjY2VzcygpCiB7CiAgICAgaWYgKGV2ZW50LnJlc3VsdCA9
PSBudWxsKSB7CiAgICAgICAgIHNob3VsZEJlKCJjb3VudGVyIiwgIjUiKTsKLSAgICAgICAgcmVz
dWx0ID0gZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5pbmRleCgndGVzdElu
ZGV4Jykub3BlbkN1cnNvcih7cmFuZ2U6IGtleVJhbmdlfSkiKTsKKyAgICAgICAgcmVzdWx0ID0g
ZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5pbmRleCgndGVzdEluZGV4Jyku
b3BlbkN1cnNvcihrZXlSYW5nZSkiKTsKICAgICAgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CiAg
ICAgICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBjdXJzb3JFbXB0eTsKICAgICAgICAgcmVzdWx0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKQEAgLTk1LDcgKzk1LDcgQEAgZnVuY3Rp
b24gY3Vyc29yRW1wdHkoKQogCiBmdW5jdGlvbiBhZGRPYmplY3QoKQogewotICAgIGV2YWxBbmRM
b2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3JlTmFtZXM6ICd0ZXN0JywgbW9k
ZTogd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURX0pIik7CisgICAgZXZhbEFuZExvZygi
dHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ3Rlc3QnXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkiKTsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0g
dHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKSIpOwogICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coIm9i
amVjdFN0b3JlLmFkZCh7eDogMX0sICdteUtleTEnKSIpOwogICAgIHZlcmlmeVJlc3VsdChyZXN1
bHQpOwpAQCAtMTA3LDcgKzEwNyw3IEBAIGZ1bmN0aW9uIG9wZW5DdXJzb3IyKCkKIHsKICAgICBk
ZWJ1Zygib3BlbkN1cnNvcjIiKTsKICAgICBldmFsQW5kTG9nKCJpbmRleCA9IGV2ZW50LnNvdXJj
ZS5pbmRleCgndGVzdEluZGV4JykiKTsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJpbmRleC5v
cGVuQ3Vyc29yKHtyYW5nZToga2V5UmFuZ2V9KSIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2co
ImluZGV4Lm9wZW5DdXJzb3Ioa2V5UmFuZ2UpIik7CiAgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7
CiAgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGRlbGV0ZU9iamVjdDsKICAgICByZXN1bHQub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29ycnVwdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYmNl
MzkwMTUzYjJhYjM5OTQwM2Q0Y2M4MTQwNjU1ODhhZWY1YjdkYi4uYWM3MTE2YTY1ZTEyZjQ4ZmJk
N2FkZjFiZTFlOGI3Y2M5MjE3YjFmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGF0YS1jb3JydXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24tZXhwZWN0ZWQudHh0CkBAIC00NiwxMCAr
NDYsMTAgQEAgRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIGNyZWF0ZU9iamVjdFN0b3JlKCk6
CiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKIGFkZERhdGEoKToKLXRyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEV9KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKIHJlc3VsdCA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKS5hZGQoe3g6IHRlc3REYXRlfSwgJ2tleScpCiBhZGREYXRhKCk6Ci10cmFuc2FjdGlvbiA9
IGRiLnRyYW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX09OTFl9KQor
dHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVB
RF9PTkxZKQogcmVzdWx0ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpLmdl
dCgna2V5JykKIFN1Y2Nlc3MgZXZlbnQgZmlyZWQ6CiBQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlz
IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29y
cnVwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0
aW9uLmh0bWwKaW5kZXggZmI0OWZjNzFkYTVhZmMyNTdlZWMxYzJlYzI5NTgwZDQ3YzQ4NzA3Ny4u
NjY0ZmY2ZGMyNTY5ODNkMTAxZmM4Y2EwNDUwN2NlMDM4MzBmMmQwYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0aW9uLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0aW9uLmh0bWwKQEAgLTU3LDcg
KzU3LDcgQEAgdmFyIHRlc3REYXRlID0gbmV3IERhdGUoJ0ZlYnJ1YXJ5IDI0LCAxOTU1IDEyOjAw
OjA4Jyk7CiBmdW5jdGlvbiBhZGREYXRhKCkKIHsKICAgICBkZWJ1ZygiYWRkRGF0YSgpOiIpOwot
ICAgIHZhciB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNh
Y3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEV9KSIpOworICAgIHZh
ciB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
W10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CiAgICAgdmFyIHJlc3VsdCA9
IGV2YWxBbmRMb2coInJlc3VsdCA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KS5hZGQoe3g6IHRlc3REYXRlfSwgJ2tleScpIik7CiAgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZ2V0RGF0
YTsKQEAgLTY2LDcgKzY2LDcgQEAgZnVuY3Rpb24gYWRkRGF0YSgpCiBmdW5jdGlvbiBnZXREYXRh
KCkKIHsKICAgICBkZWJ1ZygiYWRkRGF0YSgpOiIpOwotICAgIHZhciB0cmFuc2FjdGlvbiA9IGV2
YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRy
YW5zYWN0aW9uLlJFQURfT05MWX0pIik7CisgICAgdmFyIHRyYW5zYWN0aW9uID0gZXZhbEFuZExv
ZygidHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24u
UkVBRF9PTkxZKSIpOwogICAgIHZhciByZXN1bHQgPSBldmFsQW5kTG9nKCJyZXN1bHQgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykuZ2V0KCdrZXknKSIpOwogICAgIHJlc3Vs
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAgICAgcmVzdWx0Lm9uc3VjY2Vz
cyA9IGRvQ2hlY2s7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9k
YXRhYmFzZS1xdW90YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9kYXRhYmFzZS1xdW90YS1leHBlY3RlZC50eHQKaW5kZXggMGYwNjE0NTdiYjAwNTc3ZGY5YzI1
NGM0MTIzNWFiODhkMTBhOTJhNC4uZTAyYWQ2NGY5NWRjZDNmZDk1YjY1MjViNWExNTBiZWVjZWFj
ZGRmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2Ut
cXVvdGEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Rh
dGFiYXNlLXF1b3RhLWV4cGVjdGVkLnR4dApAQCAtNjQsNyArNjQsNyBAQCBQQVNTIGRiLm9iamVj
dFN0b3JlTmFtZXMubGVuZ3RoIGlzIDEKIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlu
cygnJykgaXMgZmFsc2UKIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygndGVzdDQ1
NicpIGlzIGZhbHNlCiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ3Rlc3QxMjMn
KSBpcyB0cnVlCi10cmFucyA9IGRiLnRyYW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFfSkKK3RyYW5zID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpCiBDcmVhdGluZyAnZGF0YScgd2hpY2ggY29udGFpbnMgNjRL
IG9mIGRhdGEKIFBBU1MgZGF0YS5sZW5ndGggaXMgNjU1MzYKIHN0b3JlID0gdHJhbnMub2JqZWN0
U3RvcmUoJ3Rlc3QxMjMnKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvZGF0YWJhc2UtcXVvdGEuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Rh
dGFiYXNlLXF1b3RhLmh0bWwKaW5kZXggZDIxYjA1MTRhMThlZTEyNTJhM2Y5MDlhZDI4NDQ0ZjZh
Y2M1NTAyNi4uNjhkZmJkZWQ3YzQ0Yzk4ZmMyNzVlNDVkNDVkNGZiZWQwOTNmMTg1YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVvdGEuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1xdW90YS5odG1sCkBA
IC03NCw3ICs3NCw3IEBAIGZ1bmN0aW9uIGNvbW1pdEFuZENvbnRpbnVlKCkKIAogZnVuY3Rpb24g
Y2hlY2tRdW90YUVuZm9yY2luZygpCiB7Ci0gICAgdmFyIHRyYW5zID0gZXZhbEFuZExvZygidHJh
bnMgPSBkYi50cmFuc2FjdGlvbih7bW9kZTogd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RX0pIik7CisgICAgdmFyIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlv
bihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKICAgICB0cmFucy5vbmFi
b3J0ID0gdGVzdENvbXBsZXRlOwogICAgIHRyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29t
cGxldGVDYWxsYmFjazsKICAgICBkZWJ1ZygiQ3JlYXRpbmcgJ2RhdGEnIHdoaWNoIGNvbnRhaW5z
IDY0SyBvZiBkYXRhIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbmRleC1jdXJzb3IuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4
LWN1cnNvci5odG1sCmluZGV4IDFhMDRkNTcyMDNlNzMxM2ZiODA2Y2E2YzZhNjhlN2E4NGMyZTFi
MDEuLjk3OTg1YTQxMjIwMWQ1N2M1OTcyMzc1ZDlmYzYwMjkyYWE4ZTU3YzIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCkBAIC0xODcsNyAr
MTg3LDcgQEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQogICAgIGVsc2UKICAgICAgICAga2V5UmFu
Z2UgPSB3ZWJraXRJREJLZXlSYW5nZS51cHBlckJvdW5kKHRlc3REYXRhW3VwcGVyXSwgdXBwZXJJ
c09wZW4pOwogIAotICAgIHZhciByZXF1ZXN0ID0gaW5kZXhPYmplY3Qub3BlbktleUN1cnNvcih7
cmFuZ2U6IGtleVJhbmdlLCBkaXJlY3Rpb246IGFzY2VuZGluZyA/IHdlYmtpdElEQkN1cnNvci5O
RVhUIDogd2Via2l0SURCQ3Vyc29yLlBSRVZ9KTsKKyAgICB2YXIgcmVxdWVzdCA9IGluZGV4T2Jq
ZWN0Lm9wZW5LZXlDdXJzb3Ioa2V5UmFuZ2UsIGFzY2VuZGluZyA/IHdlYmtpdElEQkN1cnNvci5O
RVhUIDogd2Via2l0SURCQ3Vyc29yLlBSRVYpOwogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3Vy
c29ySXRlcmF0aW9uOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwogfQpAQCAtMjU0LDcgKzI1NCw3IEBAIGZ1bmN0aW9uIHRlc3ROdWxsS2V5UmFuZ2UoKQog
ICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZyhzdHIpOwogIAotICAgIHZhciByZXF1ZXN0ID0gaW5k
ZXhPYmplY3Qub3BlbktleUN1cnNvcih7ZGlyZWN0aW9uOiBhc2NlbmRpbmcgPyB3ZWJraXRJREJD
dXJzb3IuTkVYVCA6IHdlYmtpdElEQkN1cnNvci5QUkVWfSk7CisgICAgdmFyIHJlcXVlc3QgPSBp
bmRleE9iamVjdC5vcGVuS2V5Q3Vyc29yKG51bGwsIGFzY2VuZGluZyA/IHdlYmtpdElEQkN1cnNv
ci5ORVhUIDogd2Via2l0SURCQ3Vyc29yLlBSRVYpOwogICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
Y3Vyc29ySXRlcmF0aW9uOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2Jq
ZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKaW5kZXggYjg0MmRjY2E5ZjIwYTYy
YmYwOWQxYjM3MmNkYzU5ZmVlNDgzMTUyYS4uNWVlZjk0MmZmZmNmMWY4MDU3OWJiY2E0OWJiMTVm
MWI3MDg5MjBiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2Jq
ZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CkBAIC05NSw3ICs5NSw3IEBA
IFBBU1Mgc3RvcmUuaW5kZXhOYW1lc1sxXSBpcyBudWxsCiBQQVNTIHN0b3JlLmluZGV4TmFtZXNb
MTAwXSBpcyBudWxsCiBQQVNTIHN0b3JlLmluZGV4TmFtZXMuaXRlbSgxKSBpcyBudWxsCiBQQVNT
IHN0b3JlLmluZGV4TmFtZXMuaXRlbSgxMDApIGlzIG51bGwKLXRyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEV9KQordHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RSkKIHN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCiBUcnkgdG8g
aW5zZXJ0IGRhdGEgd2l0aCBhIERhdGUga2V5Ogogc3RvcmUuYWRkKHt4OiAnZm9vJ30sIHRlc3RE
YXRlKQpAQCAtMTM3LDcgKzEzNyw3IEBAIFBBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCiBQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5E
T05FCiAKIFBBU1MgZXZlbnQuY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5VTktO
T1dOX0VSUgotZGIudHJhbnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEV9KQorZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCiBzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQogc3RvcmUu
YWRkKHt4OiAnb3RoZXJ2YWx1ZSd9LCBudWxsKQogUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQg
aXMgdHJ1ZQpAQCAtMTU4LDcgKzE1OCw3IEBAIFBBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCiBQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdl
dC5ET05FCiAKIFBBU1MgZXZlbnQuY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5E
QVRBX0VSUgotZGIudHJhbnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEV9KQorZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCiBzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQogc3RvcmUu
YWRkKHt4OiBudWxsfSwgJ3ZhbGlka2V5JykKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlz
IHRydWUKQEAgLTE3OSw3ICsxNzksNyBAQCBQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQogUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQu
RE9ORQogCiBQQVNTIGV2ZW50LmNvZGUgaXMgd2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uREFU
QV9FUlIKLWRiLnRyYW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFfSkKK2RiLnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KQogc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKIHN0b3JlLmdl
dCgna2V5JykKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKaW5k
ZXggZDM4OGFhMDMwYWY2YjNmYzcyNGY1ZDFiZWMxMGJlY2M1OTkzZjc0ZC4uODI4NTRmY2U1MTkw
YWFkZjYxNDNhNWUwOTVhNWVlOWZkY2FlN2NhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKQEAgLTE0MSw3ICsxNDEs
NyBAQCB2YXIgdGVzdERhdGVCID0gbmV3IERhdGUoIldlZCBKYW4gMDUgMjAxMSAxNTo1NDo0OSIp
OwogCiBmdW5jdGlvbiBhZGREYXRhKCkKIHsKLSAgICB2YXIgdHJhbnNhY3Rpb24gPSBldmFsQW5k
TG9nKCJ0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFfSkiKTsKKyAgICB2YXIgdHJhbnNhY3Rpb24gPSBldmFsQW5kTG9nKCJ0
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKSIpOwogICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxs
YmFjazsKICAgICB3aW5kb3cuc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9u
Lm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwogCkBAIC0xODksNyArMTg5LDcgQEAgZnVuY3Rp
b24gYWRkQWdhaW5GYWlsdXJlKCkKICAgICAvLyBGSVhNRTogVGhpcyBlcnJvciBjb2RlIG5lZWRz
IHRvIGJlIHNwZWNjZWQuCiAgICAgc2hvdWxkQmUoImV2ZW50LmNvZGUiLCAid2Via2l0SURCRGF0
YWJhc2VFeGNlcHRpb24uVU5LTk9XTl9FUlIiKTsKIAotICAgIHRyYW5zYWN0aW9uID0gZXZhbEFu
ZExvZygiZGIudHJhbnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEV9KSIpOworICAgIHRyYW5zYWN0aW9uID0gZXZhbEFuZExvZygiZGIudHJhbnNhY3Rpb24oW10s
IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CiAgICAgdHJhbnNhY3Rpb24ub25h
Ym9ydCA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIHZhciBzdG9yZSA9IGV2YWxBbmRM
b2coInN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CiAKQEAg
LTIwNSw3ICsyMDUsNyBAQCBmdW5jdGlvbiBhZGRXaXRoTnVsbEtleUZhaWx1cmUoKQogICAgIHZl
cmlmeUVycm9yRXZlbnQoZXZlbnQpOwogICAgIHNob3VsZEJlKCJldmVudC5jb2RlIiwgIndlYmtp
dElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIik7CiAKLSAgICB0cmFuc2FjdGlvbiA9IGV2
YWxBbmRMb2coImRiLnRyYW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFfSkiKTsKKyAgICB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coImRiLnRyYW5zYWN0aW9u
KFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOwogICAgIHRyYW5zYWN0aW9u
Lm9uYWJvcnQgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICB2YXIgc3RvcmUgPSBldmFs
QW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwog
CkBAIC0yMjEsNyArMjIxLDcgQEAgZnVuY3Rpb24gYWRkV2l0aE51bGxJbmRleEZhaWx1cmUoKQog
ICAgIHZlcmlmeUVycm9yRXZlbnQoZXZlbnQpOwogICAgIHNob3VsZEJlKCJldmVudC5jb2RlIiwg
IndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIik7CiAKLSAgICB0cmFuc2FjdGlv
biA9IGV2YWxBbmRMb2coImRiLnRyYW5zYWN0aW9uKHttb2RlOiB3ZWJraXRJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFfSkiKTsKKyAgICB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coImRiLnRyYW5z
YWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOwogICAgIHRyYW5z
YWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICB2YXIgc3RvcmUg
PSBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KSIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3Rz
dG9yZS1jdXJzb3IuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLWN1cnNvci5odG1sCmluZGV4IGUwZGIwOGY2MmUzZjMzNjdmNWUzNzFlNjJjYTQ3Yjg4ZTIx
OTIxYzguLmJiN2I2NWJhNGI5NDQyNGFjMmIzOGUyZjhmYjc1ZmFkZGJjODdlM2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWN1cnNvci5odG1s
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWN1cnNvci5o
dG1sCkBAIC0xNjUsNyArMTY1LDcgQEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQogICAgIGVsc2UK
ICAgICAgICAga2V5UmFuZ2UgPSB3ZWJraXRJREJLZXlSYW5nZS51cHBlckJvdW5kKHRlc3REYXRh
W3VwcGVyXSwgdXBwZXJJc09wZW4pOwogIAotICAgIHZhciByZXF1ZXN0ID0gb2JqZWN0U3RvcmUu
b3BlbkN1cnNvcih7cmFuZ2U6IGtleVJhbmdlLCBkaXJlY3Rpb246IGFzY2VuZGluZyA/IHdlYmtp
dElEQkN1cnNvci5ORVhUIDogd2Via2l0SURCQ3Vyc29yLlBSRVZ9KTsKKyAgICB2YXIgcmVxdWVz
dCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3Ioa2V5UmFuZ2UsIGFzY2VuZGluZyA/IHdlYmtpdElE
QkN1cnNvci5ORVhUIDogd2Via2l0SURCQ3Vyc29yLlBSRVYpOwogICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gY3Vyc29ySXRlcmF0aW9uOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOwogfQpAQCAtMjMxLDcgKzIzMSw3IEBAIGZ1bmN0aW9uIHRlc3ROdWxsS2V5
UmFuZ2UoKQogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZyhzdHIpOwogIAotICAgIHZhciByZXF1
ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcih7ZGlyZWN0aW9uOiBhc2NlbmRpbmcgPyB3ZWJr
aXRJREJDdXJzb3IuTkVYVCA6IHdlYmtpdElEQkN1cnNvci5QUkVWfSk7CisgICAgdmFyIHJlcXVl
c3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKG51bGwsIGFzY2VuZGluZyA/IHdlYmtpdElEQkN1
cnNvci5ORVhUIDogd2Via2l0SURCQ3Vyc29yLlBSRVYpOwogICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gY3Vyc29ySXRlcmF0aW9uOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
b3Blbi1jdXJzb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
b3Blbi1jdXJzb3ItZXhwZWN0ZWQudHh0CmluZGV4IGQ0MDQzNmNiZWJhZWU5ZDg0OGQ5ZWE1Njgz
Mjc4MzBjNjYxNGQzYmIuLmRkYWE1MWE5NjA0YWQ4ZTQwM2RiYmFkMTE2YjE3NTU2NzU1YzFiNzQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNv
ci1leHBlY3RlZC50eHQKQEAgLTUwLDcgKzUwLDcgQEAgUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVz
dWx0IGlzIHRydWUKIEFuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KIAogT3BlbmluZyBj
dXJzb3IKLWV2ZW50LnNvdXJjZS5vcGVuQ3Vyc29yKHtyYW5nZToga2V5UmFuZ2V9KQorZXZlbnQu
c291cmNlLm9wZW5DdXJzb3Ioa2V5UmFuZ2UpCiBQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBp
cyB0cnVlCiBQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAncmVhZHlTdGF0
ZScgaW4gcmVzdWx0IGlzIHRydWUKQEAgLTc2LDcgKzc2LDcgQEAgUGFzc2luZyBhbiBpbnZhbGlk
IGtleSBpbnRvIC5jb250aW51ZSgpLgogUEFTUyBDYXVnaHQgZXhjZXB0aW9uOiBFcnJvcjogVFlQ
RV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcKIAogT3BlbmluZyBhbiBlbXB0eSBjdXJz
b3IuCi1vYmplY3RTdG9yZS5vcGVuQ3Vyc29yKHtyYW5nZToga2V5UmFuZ2V9KQorb2JqZWN0U3Rv
cmUub3BlbkN1cnNvcihrZXlSYW5nZSkKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRy
dWUKIFBBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdyZWFkeVN0YXRlJyBp
biByZXN1bHQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvb3Blbi1jdXJzb3IuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4t
Y3Vyc29yLmh0bWwKaW5kZXggZTRkYzhmMDI2NWI2ZjQzYWI4MTQ5ZjlkMzc1ODE3YTgzYzY5ZTk0
Ni4uMTdlZDlhYjYwY2YzNzY1MjJiYmIyNzhmYWM4YjcyMTJjNGZjOTNkYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3IuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci5odG1sCkBAIC0yNiw3ICsyNiw3
IEBAIGZ1bmN0aW9uIG9wZW5FbXB0eUN1cnNvcigpCiB7CiAgICAgZGVidWcoIk9wZW5pbmcgYW4g
ZW1wdHkgY3Vyc29yLiIpOwogICAgIGtleVJhbmdlID0gd2Via2l0SURCS2V5UmFuZ2UubG93ZXJC
b3VuZCgiSW5leGlzdGVudEtleSIpOwotICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0
b3JlLm9wZW5DdXJzb3Ioe3JhbmdlOiBrZXlSYW5nZX0pIik7CisgICAgcmVzdWx0ID0gZXZhbEFu
ZExvZygib2JqZWN0U3RvcmUub3BlbkN1cnNvcihrZXlSYW5nZSkiKTsKICAgICB2ZXJpZnlSZXN1
bHQocmVzdWx0KTsKICAgICByZXN1bHQub25zdWNjZXNzID0gZW1wdHlDdXJzb3JTdWNjZXNzOwog
ICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CkBAIC01Niw3ICs1
Niw3IEBAIGZ1bmN0aW9uIG9wZW5DdXJzb3IoKQogewogICAgIGRlYnVnKCJPcGVuaW5nIGN1cnNv
ciIpOwogICAgIGtleVJhbmdlID0gd2Via2l0SURCS2V5UmFuZ2UubG93ZXJCb3VuZCgibXlLZXki
KTsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJldmVudC5zb3VyY2Uub3BlbkN1cnNvcih7cmFu
Z2U6IGtleVJhbmdlfSkiKTsKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJldmVudC5zb3VyY2Uu
b3BlbkN1cnNvcihrZXlSYW5nZSkiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKICAgICBy
ZXN1bHQub25zdWNjZXNzID0gY3Vyc29yU3VjY2VzczsKICAgICByZXN1bHQub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9y
ZS1jYWxscy1leHBlY3RlZC50eHQKaW5kZXggZGYzNzNkNmNjMGEwZTY3NmIyZmYwYzE3ZWUwYzMy
ZGI2NjUxMDU2Mi4uMDI4ZmY3MmYyYjhjZDY2YmYwZjJkNGViM2VhODE0NDI4MDg1YWNjZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9i
amVjdHN0b3JlLWNhbGxzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMtZXhwZWN0ZWQudHh0CkBA
IC0xOSw0MCArMTksNDAgQEAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2EnKQogZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ2InKQogdHJhbnMub25jb21wbGV0ZSA9IGNyZWF0ZWQKIAotdHJhbnMgPSBkYi50
cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogJ2EnfSkKK3RyYW5zID0gZGIudHJhbnNhY3Rp
b24oWydhJ10pCiB0cmFucy5vYmplY3RTdG9yZSgnYScpCiBFeHBlY3RpbmcgZXhjZXB0aW9uIGZy
b20gdHJhbnMub2JqZWN0U3RvcmUoJ2InKQogUEFTUyBjb2RlIGlzIHdlYmtpdElEQkRhdGFiYXNl
RXhjZXB0aW9uLk5PVF9GT1VORF9FUlIKIEV4cGVjdGluZyBleGNlcHRpb24gZnJvbSB0cmFucy5v
YmplY3RTdG9yZSgneCcpCiBQQVNTIGNvZGUgaXMgd2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24u
Tk9UX0ZPVU5EX0VSUgogCi10cmFucyA9IGRiLnRyYW5zYWN0aW9uKHtvYmplY3RTdG9yZU5hbWVz
OiBbJ2EnXX0pCit0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFsnYSddKQogdHJhbnMub2JqZWN0U3Rv
cmUoJ2EnKQogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRyYW5zLm9iamVjdFN0b3JlKCdiJykK
IFBBU1MgY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSCiBF
eHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gdHJhbnMub2JqZWN0U3RvcmUoJ3gnKQogUEFTUyBjb2Rl
IGlzIHdlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIKIAotdHJhbnMgPSBk
Yi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogWydiJ119KQordHJhbnMgPSBkYi50cmFu
c2FjdGlvbihbJ2InXSkKIHRyYW5zLm9iamVjdFN0b3JlKCdiJykKIEV4cGVjdGluZyBleGNlcHRp
b24gZnJvbSB0cmFucy5vYmplY3RTdG9yZSgnYScpCiBQQVNTIGNvZGUgaXMgd2Via2l0SURCRGF0
YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRy
YW5zLm9iamVjdFN0b3JlKCd4JykKIFBBU1MgY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5OT1RfRk9VTkRfRVJSCiAKLXRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3Jl
TmFtZXM6IFsnYScsICdiJ119KQordHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ2EnLCAnYiddKQog
dHJhbnMub2JqZWN0U3RvcmUoJ2EnKQogdHJhbnMub2JqZWN0U3RvcmUoJ2InKQogRXhwZWN0aW5n
IGV4Y2VwdGlvbiBmcm9tIHRyYW5zLm9iamVjdFN0b3JlKCd4JykKIFBBU1MgY29kZSBpcyB3ZWJr
aXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSCiAKLXRyYW5zID0gZGIudHJhbnNh
Y3Rpb24oe29iamVjdFN0b3JlTmFtZXM6IFsnYicsICdhJ119KQordHJhbnMgPSBkYi50cmFuc2Fj
dGlvbihbJ2InLCAnYSddKQogdHJhbnMub2JqZWN0U3RvcmUoJ2EnKQogdHJhbnMub2JqZWN0U3Rv
cmUoJ2InKQogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRyYW5zLm9iamVjdFN0b3JlKCd4JykK
IFBBU1MgY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSCiAK
LXRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3JlTmFtZXM6IFtdfSkKK3RyYW5zID0g
ZGIudHJhbnNhY3Rpb24oW10pCiB0cmFucy5vYmplY3RTdG9yZSgnYScpCiB0cmFucy5vYmplY3RT
dG9yZSgnYicpCiBFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gdHJhbnMub2JqZWN0U3RvcmUoJ3gn
KQpAQCAtNjQsMTUgKzY0LDE1IEBAIHRyYW5zLm9iamVjdFN0b3JlKCdiJykKIEV4cGVjdGluZyBl
eGNlcHRpb24gZnJvbSB0cmFucy5vYmplY3RTdG9yZSgneCcpCiBQQVNTIGNvZGUgaXMgd2Via2l0
SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgogCi1FeHBlY3RpbmcgZXhjZXB0aW9u
IGZyb20gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3JlTmFtZXM6ICd4J30pCitFeHBlY3Rpbmcg
ZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24oWyd4J10pCiBQQVNTIGNvZGUgaXMgd2Via2l0
SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgotRXhwZWN0aW5nIGV4Y2VwdGlvbiBm
cm9tIGRiLnRyYW5zYWN0aW9uKHtvYmplY3RTdG9yZU5hbWVzOiBbJ3gnXX0pCitFeHBlY3Rpbmcg
ZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24oWyd4J10pCiBQQVNTIGNvZGUgaXMgd2Via2l0
SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgotRXhwZWN0aW5nIGV4Y2VwdGlvbiBm
cm9tIGRiLnRyYW5zYWN0aW9uKHtvYmplY3RTdG9yZU5hbWVzOiBbJ2EnLCAneCddfSkKK0V4cGVj
dGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihbJ2EnLCAneCddKQogUEFTUyBjb2Rl
IGlzIHdlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIKLUV4cGVjdGluZyBl
eGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogWyd4JywgJ3gn
XX0pCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24oWyd4JywgJ3gnXSkK
IFBBU1MgY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSCi1F
eHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3JlTmFtZXM6
IFsnYScsICd4JywgJ2InXX0pCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rp
b24oWydhJywgJ3gnLCAnYiddKQogUEFTUyBjb2RlIGlzIHdlYmtpdElEQkRhdGFiYXNlRXhjZXB0
aW9uLk5PVF9GT1VORF9FUlIKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9i
amVjdHN0b3JlLWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbAppbmRleCA1ODBjYTVkZDZlMmI1ZTdl
YjJlMWNhMjc3NWQwOTc5ZmJmNDAwMTZmLi45NGI5OTNlMzczN2MxMzY1NjQ5YjI1ZDY1MTk5YjJi
MGY3ZDc2Yzg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbApAQCAt
NDksMzcgKzQ5LDM3IEBAIGZ1bmN0aW9uIGNsZWFuZWQoKQogCiBmdW5jdGlvbiBjcmVhdGVkKCkK
IHsKLSAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVj
dFN0b3JlTmFtZXM6ICdhJ30pIik7CisgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRi
LnRyYW5zYWN0aW9uKFsnYSddKSIpOwogICAgIGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3Jl
KCdhJykiKTsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5vYmplY3RTdG9yZSgn
YicpIiwgIndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5vYmplY3RTdG9yZSgneCcpIiwgIndlYmtpdElE
QkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKICAgICBkZWJ1ZygiIik7CiAKLSAg
ICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3Jl
TmFtZXM6IFsnYSddfSkiKTsKKyAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJh
bnNhY3Rpb24oWydhJ10pIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ2En
KSIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInRyYW5zLm9iamVjdFN0b3JlKCdiJyki
LCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwogICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oInRyYW5zLm9iamVjdFN0b3JlKCd4JykiLCAid2Via2l0SURCRGF0
YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwogICAgIGRlYnVnKCIiKTsKIAotICAgIHRy
YW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1l
czogWydiJ119KSIpOworICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2Fj
dGlvbihbJ2InXSkiKTsKICAgICBldmFsQW5kTG9nKCJ0cmFucy5vYmplY3RTdG9yZSgnYicpIik7
CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigidHJhbnMub2JqZWN0U3RvcmUoJ2EnKSIsICJ3
ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIik7CiAgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigidHJhbnMub2JqZWN0U3RvcmUoJ3gnKSIsICJ3ZWJraXRJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIik7CiAgICAgZGVidWcoIiIpOwogCi0gICAgdHJhbnMg
PSBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKHtvYmplY3RTdG9yZU5hbWVzOiBb
J2EnLCAnYiddfSkiKTsKKyAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNh
Y3Rpb24oWydhJywgJ2InXSkiKTsKICAgICBldmFsQW5kTG9nKCJ0cmFucy5vYmplY3RTdG9yZSgn
YScpIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ2InKSIpOwogICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oInRyYW5zLm9iamVjdFN0b3JlKCd4JykiLCAid2Via2l0SURC
RGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwogICAgIGRlYnVnKCIiKTsKIAotICAg
IHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVO
YW1lczogWydiJywgJ2EnXX0pIik7CisgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRi
LnRyYW5zYWN0aW9uKFsnYicsICdhJ10pIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMub2JqZWN0
U3RvcmUoJ2EnKSIpOwogICAgIGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCdiJykiKTsK
ICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5vYmplY3RTdG9yZSgneCcpIiwgIndl
YmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKICAgICBkZWJ1ZygiIik7
CiAKLSAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oe29iamVj
dFN0b3JlTmFtZXM6IFtdfSkiKTsKKyAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIu
dHJhbnNhY3Rpb24oW10pIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ2En
KSIpOwogICAgIGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCdiJykiKTsKICAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5vYmplY3RTdG9yZSgneCcpIiwgIndlYmtpdElEQkRh
dGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKQEAgLTkxLDExICs5MSwxMSBAQCBmdW5j
dGlvbiBjcmVhdGVkKCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5vYmplY3RT
dG9yZSgneCcpIiwgIndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsK
ICAgICBkZWJ1ZygiIik7CiAKLSAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2Fj
dGlvbih7b2JqZWN0U3RvcmVOYW1lczogJ3gnfSkiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRp
b24uTk9UX0ZPVU5EX0VSUiIpOwotICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5z
YWN0aW9uKHtvYmplY3RTdG9yZU5hbWVzOiBbJ3gnXX0pIiwgIndlYmtpdElEQkRhdGFiYXNlRXhj
ZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKLSAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50
cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogWydhJywgJ3gnXX0pIiwgIndlYmtpdElEQkRh
dGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKLSAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uKCJkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogWyd4JywgJ3gnXX0pIiwgIndl
YmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKLSAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbih7b2JqZWN0U3RvcmVOYW1lczogWydhJywgJ3gn
LCAnYiddfSkiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwor
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFsneCddKSIsICJ3ZWJr
aXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIik7CisgICAgZXZhbEFuZEV4cGVj
dEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24oWyd4J10pIiwgIndlYmtpdElEQkRhdGFiYXNlRXhj
ZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50
cmFuc2FjdGlvbihbJ2EnLCAneCddKSIsICJ3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1Rf
Rk9VTkRfRVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24o
Wyd4JywgJ3gnXSkiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIp
OworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFsnYScsICd4Jywg
J2InXSkiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwogICAg
IGRlYnVnKCIiKTsKIAogICAgIGRvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi90dXRvcmlhbC5odG1sCmluZGV4IDQ0NTIxM2M1ZTUwYmQ1OTJkMGU2M2Q1ZWMwYTk1OGUwMTlk
MjNkMDcuLjc1ZmQ4MTY2Y2Q2YWUxMGJhZWYxZDUzODE3OGQ0OWRmODU3YTIzMGMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHV0b3JpYWwuaHRtbApAQCAtMjA3LDcgKzIwNyw3
IEBAIGZ1bmN0aW9uIG9uU2V0VmVyc2lvbkNvbXBsZXRlKCkKIHsKICAgICAvLyBMZXRzIGNyZWF0
ZSBhIG5ldyB0cmFuc2FjdGlvbiBhbmQgdGhlbiBub3Qgc2NoZWR1bGUgYW55IHdvcmsgb24gaXQg
dG8gd2F0Y2ggaXQgYWJvcnQgaXRzZWxmLgogICAgIC8vIFRyYW5zYWN0aW9ucyAoYmVzaWRlcyB0
aG9zZSBjcmVhdGVkIHdpdGggc2V0VmVyc2lvbikgYXJlIGNyZWF0ZWQgc3luY2hyb25vdXNseS4g
TGlrZQotICAgIC8vIGNyZWF0ZU9iamVjdFN0b3JlLCB0cmFuc2FjdGlvbiBvcHRpb25hbGx5IHRh
a2VzIGluIGFuIG9iamVjdCB3aXRoIHZhcmlvdXMgb3B0aW9uYWwgcGFyYW1ldGVycy4KKyAgICAv
LyBjcmVhdGVPYmplY3RTdG9yZSwgdHJhbnNhY3Rpb24gb3B0aW9uYWxseSB0YWtlcyBpbiB2YXJp
b3VzIG9wdGlvbmFsIHBhcmFtZXRlcnMuCiAgICAgLy8KICAgICAvLyBGaXJzdCBvZiBhbGwgaXMg
dGhlIHBhcmFtZXRlciAib2JqZWN0U3RvcmVOYW1lcyIuIElmIHlvdSBwYXNzIGluIGEgc3RyaW5n
LCB3ZSBsb2NrIGp1c3QgdGhhdAogICAgIC8vIG9iamVjdFN0b3JlLiAgSWYgeW91IHBhc3MgaW4g
YW4gYXJyYXksIHdlIGxvY2sgdGhvc2UuIE90aGVyd2lzZSAoZm9yIGV4YW1wbGUsIGlmIHlvdSBv
bWl0IGl0CkBAIC0yMjIsNyArMjIyLDcgQEAgZnVuY3Rpb24gb25TZXRWZXJzaW9uQ29tcGxldGUo
KQogICAgIC8vIExhc3QgaXMgInRpbWVvdXQiIHdoaWNoIGlzIG1lYXN1cmVkIGluIHNlY29uZHMu
IEF0IHRoZSBtb21lbnQsIENocm9taXVtL1dlYktpdCBkZWZhdWx0cyB0byAwIHdoaWNoCiAgICAg
Ly8gbWVhbnMgbmV2ZXIsIGJ1dCBpdCdzIHBvc3NpYmxlIHdlJ2xsIGNoYW5nZSB0aGlzIGluIHRo
ZSBmdXR1cmUgYW5kIG90aGVyIGltcGxlbWVudGF0aW9ucyBtYXkKICAgICAvLyB1c2Ugc29tZXRo
aW5nIGRpZmZlcmVudCwgc28gc2V0IGl0IGlmIHlvdSByZWFsbHkgY2FyZS4KLSAgICB3aW5kb3cu
Y3VycmVudFRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oe21vZGU6IElEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUsIHRpbWVvdXQ6IDB9KTsKKyAgICB3aW5kb3cuY3VycmVudFRyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oW10sIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUsIDApOwogICAg
IGN1cnJlbnRUcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBsZXRlOwogICAg
IGN1cnJlbnRUcmFuc2FjdGlvbi5vbmFib3J0ID0gb25UcmFuc2FjdGlvbkFib3J0ZWQ7CiAKQEAg
LTI3Miw3ICsyNzIsNyBAQCBmdW5jdGlvbiBvblRyYW5zYWN0aW9uQWJvcnRlZCgpCiAgICAgLy8g
Tm93IGxldCdzIG1ha2UgYSByZWFsIHRyYW5zYWN0aW9uIGFuZCBhIHBlcnNvbiB0byBvdXIgb2Jq
ZWN0U3RvcmUuIEp1c3QgdG8gc2hvdyBpdCdzIHBvc3NpYmxlLAogICAgIC8vIHdlJ2xsIG9taXQg
dGhlIG9iamVjdFN0b3JlTmFtZXMgcGFyYW1ldGVyIHdoaWNoIG1lYW5zIHdlJ2xsIGxvY2sgZXZl
cnl0aGluZyBldmVuIHRob3VnaCB3ZSBvbmx5CiAgICAgLy8gZXZlciBhY2Nlc3MgInBlb3BsZSIu
Ci0gICAgd2luZG93LmN1cnJlbnRUcmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKHttb2RlOiBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFfSk7CisgICAgd2luZG93LmN1cnJlbnRUcmFuc2FjdGlv
biA9IGRiLnRyYW5zYWN0aW9uKFtdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKTsKICAgICBj
dXJyZW50VHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydDsKIAogICAgIHZhciBw
ZW9wbGUgPSBjdXJyZW50VHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoInBlb3BsZSIpOwpAQCAtMzEw
LDcgKzMxMCw3IEBAIGZ1bmN0aW9uIG9uUHV0VHJhbnNhY3Rpb25Db21wbGV0ZSgpCiAgICAgLy8g
T0ssIG5vdyBsZXQncyBxdWVyeSB0aGUgcGVvcGxlIG9iamVjdFN0b3JlIGluIGEgY291cGxlIGRp
ZmZlcmVudCB3YXlzLiBGaXJzdCB1cCwgbGV0J3MgdHJ5IGdldC4KICAgICAvLyBJdCBzaW1wbHkg
dGFrZXMgaW4gYSBrZXkgYW5kIHJldHVybnMgYSByZXF1ZXN0IHdob3NlIHJlc3VsdCB3aWxsIGJl
IHRoZSB2YWx1ZS4gTm90ZSB0aGF0IGhlcmUKICAgICAvLyB3ZSdyZSBwYXNzaW5nIGluIGFuIGFy
cmF5IGZvciBvYmplY3RTdG9yZU5hbWVzIHJhdGhlciB0aGFuIGEgc2ltcGxlIHN0cmluZy4KLSAg
ICB3aW5kb3cuY3VycmVudFRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oe29iamVjdFN0b3Jl
TmFtZXM6IFsicGVvcGxlIl0sIG1vZGU6IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUsIHRpbWVv
dXQ6IDB9KTsKKyAgICB3aW5kb3cuY3VycmVudFRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
WyJwZW9wbGUiXSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSwgMCk7CiAgICAgY3VycmVudFRy
YW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnQ7CiAKICAgICB2YXIgcGVvcGxlID0g
Y3VycmVudFRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJwZW9wbGUiKTsKQEAgLTM0MSw3ICszNDEs
NyBAQCBmdW5jdGlvbiBvbkdldFN1Y2Nlc3MoKQogICAgIC8vIHJldHVybiB1bmlxdWUgZW50aXJl
cyAob25seSBhcHBsaWVzIHRvIGluZGV4ZXMgd2l0aCB1bmlxdWUgc2V0IHRvIGZhbHNlKSwgUFJF
ViB0byBtb3ZlIGJhY2t3YXJkcywKICAgICAvLyBhbmQgUFJFVl9OT19EVVBMSUNBVEUuCiAgICAg
dmFyIGtleVJhbmdlID0gSURCS2V5UmFuZ2UuYm91bmQoMSwgMywgdHJ1ZSwgZmFsc2UpOwotICAg
IHZhciByZXF1ZXN0ID0gcGVvcGxlLm9wZW5DdXJzb3Ioe3JhbmdlOiBrZXlSYW5nZSwgZGlyZWN0
aW9uOiBJREJDdXJzb3IuTkVYVH0pOworICAgIHZhciByZXF1ZXN0ID0gcGVvcGxlLm9wZW5DdXJz
b3Ioa2V5UmFuZ2UsIElEQkN1cnNvci5ORVhUKTsKICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9u
T2JqZWN0U3RvcmVDdXJzb3I7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
OwogfQpAQCAtMzk0LDEwICszOTQsMTAgQEAgZnVuY3Rpb24gb25JbmRleEdldFN1Y2Nlc3MoKQog
ICAgIC8vIGRpZmZlcmVudCBJREJLZXlSYW5nZXMganVzdCB0byBkZW1vbnN0cmF0ZSBob3cgdG8g
dXNlIHRoZW0sIGJ1dCB3ZSB3b24ndCBib3RoZXIgdG8gaGFuZGxlCiAgICAgLy8gdGhlIG9uc3Vj
Y2VzcyBjb25kaXRpb25zLgogICAgIHZhciBsbmFtZSA9IGV2ZW50LnNvdXJjZTsKLSAgICBsbmFt
ZS5vcGVuQ3Vyc29yKHtyYW5nZTogSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgiRG9lIiwgZmFsc2Up
LCBkaXJlY3Rpb246IElEQkN1cnNvci5ORVhUX05PX0RVUExJQ0FURX0pOwotICAgIGxuYW1lLm9w
ZW5DdXJzb3Ioe2RpcmVjdGlvbjogSURCQ3Vyc29yLlBSRVZfTk9fRFVQTElDQVRFfSk7Ci0gICAg
bG5hbWUub3BlbkN1cnNvcih7cmFuZ2U6IElEQktleVJhbmdlLnVwcGVyQm91bmQoIlpaWloiKX0p
OwotICAgIGxuYW1lLm9wZW5DdXJzb3Ioe3JhbmdlOiBJREJLZXlSYW5nZS5vbmx5KCJEb2UiKSwg
ZGlyZWN0aW9uOiBJREJDdXJzb3IuUFJFVn0pOworICAgIGxuYW1lLm9wZW5DdXJzb3IoSURCS2V5
UmFuZ2UubG93ZXJCb3VuZCgiRG9lIiwgZmFsc2UpLCBJREJDdXJzb3IuTkVYVF9OT19EVVBMSUNB
VEUpOworICAgIGxuYW1lLm9wZW5DdXJzb3IobnVsbCwgSURCQ3Vyc29yLlBSRVZfTk9fRFVQTElD
QVRFKTsKKyAgICBsbmFtZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLnVwcGVyQm91bmQoIlpaWloi
KSk7CisgICAgbG5hbWUub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KCJEb2UiKSwgSURCQ3Vy
c29yLlBSRVYpOwogICAgIGxuYW1lLm9wZW5DdXJzb3IoKTsKICAgICBsbmFtZS5vcGVuS2V5Q3Vy
c29yKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NjFlMzIyNjY4YjI1NWE4YjFmMzY5Y2E1OGIwMDI1NzVi
YmJlNmQwLi4wZGUwZmI5NWQzMjAwMjQwMDQ0NWI5ODY4ZTM2ODljNGE5Y2VlN2M3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDEtMjQgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVp
cEBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEluZGV4ZWREYXRhYmFzZSBtZXRob2RzIHNob3VsZCBub3QgdGFrZSBhcmd1bWVudHMg
b2YgdHlwZSBPcHRpb25zT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MzAxMgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmV2ZXJ0cyBhbGwgSURC
IG1ldGhvZHMsIGV4Y2VwdCBJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUgYW5kCisgICAg
ICAgIElEQk9iamVjdFN0b3JlOjpjcmVhdGVJbmRleCwgdG8gdXNpbmcgYSBwbGFpbiBsaXN0IG9m
IGFyZ3VtZW50cyBpbnN0ZWFkIG9mCisgICAgICAgIGdyb3VwaW5nIHRoZSB2YXJpb3VzIHBhcmFt
ZXRlcnMgaW5zaWRlIGEgc2luZ2xlIE9wdGlvbnNPYmplY3QgYXJndW1lbnQuCisgICAgICAgIFRo
aXMgZGVjaXNpb24gd2FzIG1hZGUgb24gcHVibGljLXdlYmFwcHNAdzMub3JnIG1haWxpbmcgbGlz
dC4KKworICAgICAgICBXZSBhbHNvIGFkZCBzdXBwb3J0ICh2OCBvbmx5IGZvciBub3cpIGZvciBw
YXNzaW5nIERPTVN0cmluZ0xpc3Qgb2JqZWN0cyBhcyBhcmd1bWVudHMgdG8gbmF0aXZlCisgICAg
ICAgIG1ldGhvZHMuIFRoZSBjb2RlIGZvciBvYnRhaW5pbmcgYSBET01TdHJpbmdMaXN0IG9iamVj
dCBmcm9tIGEgSlMgYXJyYXkgb2Ygc3RyaW5ncyBleGlzdGVkIGFscmVhZHkKKyAgICAgICAgaW4g
T3B0aW9uc09iamVjdC5jcHAsIEkganVzdCBjb3BpZWQgaXQgdG8gVjhCaW5kaW5ncy5jcHAgYW5k
IHRhdWdodCB0aGUgdjggY29kZSBnZW5lcmF0b3IgaG93IHRvCisgICAgICAgIHVzZSBpdC4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2OFZhbHVlVG9X
ZWJDb3JlRE9NU3RyaW5nTGlzdCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6
CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZTo6dHJhbnNhY3Rpb24pOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJhc2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbik6CisgICAgICAg
ICogc3RvcmFnZS9JREJEYXRhYmFzZS5pZGw6CisgICAgICAgICogc3RvcmFnZS9JREJJbmRleC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6b3BlbkN1cnNvcik6CisgICAgICAgIChX
ZWJDb3JlOjpJREJJbmRleDo6b3BlbktleUN1cnNvcik6CisgICAgICAgICogc3RvcmFnZS9JREJJ
bmRleC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXg6Om9wZW5DdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCSW5kZXg6Om9wZW5LZXlDdXJzb3IpOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCSW5kZXguaWRsOgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHN0
b3JhZ2UvSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3Jl
OjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmlkbDoKKwog
MjAxMS0wMS0yNCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA3ZDM2ZGIxMjRlZDk0
OGI1Y2M0Y2FmNWIwMzc2MDZkYjc4Yjk4NzRjLi5mNDE4ZWI1MjBjMDc0N2VjMTVhYzY2ZGRmNTky
NTU5ODgyNjgyODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjgzMiw2ICsyODMyLDggQEAgc3ViIEdldE5hdGl2ZVR5
cGUKIAogICAgIHJldHVybiAiUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IiBpZiAkdHlw
ZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciI7CiAKKyAgICByZXR1cm4gIlJlZlB0cjxET01T
dHJpbmdMaXN0PiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZ0xpc3QiOworCiAgICAgIyBEZWZhdWx0
LCBhc3N1bWUgbmF0aXZlIHR5cGUgaXMgYSBwb2ludGVyIHdpdGggc2FtZSB0eXBlIG5hbWUgYXMg
aWRsIHR5cGUKICAgICByZXR1cm4gIiR7dHlwZX0qIjsKIH0KQEAgLTI4ODUsNiArMjg4Nyw3IEBA
IHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICByZXR1cm4gInN0YXRpY19jYXN0PFJhbmdlOjpDb21w
YXJlSG93PigkdmFsdWUtPkludDMyVmFsdWUoKSkiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsK
ICAgICByZXR1cm4gInN0YXRpY19jYXN0PFNWR1BhaW50OjpTVkdQYWludFR5cGU+KCR2YWx1ZS0+
VG9JbnQzMigpLT5JbnQzMlZhbHVlKCkpIiBpZiAkdHlwZSBlcSAiU1ZHUGFpbnRUeXBlIjsKICAg
ICByZXR1cm4gInRvV2ViQ29yZURhdGUoJHZhbHVlKSIgaWYgJHR5cGUgZXEgIkRhdGUiOworICAg
IHJldHVybiAidjhWYWx1ZVRvV2ViQ29yZURPTVN0cmluZ0xpc3QoJHZhbHVlKSIgaWYgJHR5cGUg
ZXEgIkRPTVN0cmluZ0xpc3QiOwogCiAgICAgaWYgKCR0eXBlIGVxICJET01TdHJpbmciIG9yICR0
eXBlIGVxICJET01Vc2VyRGF0YSIpIHsKICAgICAgICAgcmV0dXJuICR2YWx1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCmluZGV4IDUyYjIzYmQ0YTc1ZGJlZTA3ZDA5
ZmY1MTUzNDY0MzhkM2MwNjdlOGIuLmQwZjhkMDNhNGNjNDQ2OWFmOWJiMzA3NGU4MGJiZjQ5M2Y3
YmRlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcApAQCAtNTc4
LDQgKzU3OCwxOSBAQCB2b2lkIHNldEVsZW1lbnRTdHJpbmdBdHRyKGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8sCiAgICAgaW1wLT5zZXRBdHRyaWJ1dGUobmFtZSwgdik7CiB9CiAKK1Bhc3NS
ZWZQdHI8RE9NU3RyaW5nTGlzdD4gdjhWYWx1ZVRvV2ViQ29yZURPTVN0cmluZ0xpc3Qodjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHZhbHVlKQoreworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHY4VmFs
dWUodjg6OkxvY2FsPHY4OjpWYWx1ZT46Ok5ldyh2YWx1ZSkpOworICAgIGlmICghdjhWYWx1ZS0+
SXNBcnJheSgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0cjxET01TdHJpbmdMaXN0
PiByZXQgPSBET01TdHJpbmdMaXN0OjpjcmVhdGUoKTsKKyAgICB2ODo6TG9jYWw8djg6OkFycmF5
PiB2OEFycmF5ID0gdjg6OkxvY2FsPHY4OjpBcnJheT46OkNhc3QodjhWYWx1ZSk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCB2OEFycmF5LT5MZW5ndGgoKTsgKytpKSB7CisgICAgICAgIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IGluZGV4ZWRWYWx1ZSA9IHY4QXJyYXktPkdldCh2ODo6SW50ZWdl
cjo6TmV3KGkpKTsKKyAgICAgICAgcmV0LT5hcHBlbmQodjhWYWx1ZVRvV2ViQ29yZVN0cmluZyhp
bmRleGVkVmFsdWUpKTsKKyAgICB9CisgICAgcmV0dXJuIHJldC5yZWxlYXNlKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4QmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgK
aW5kZXggYjJkNWRhYTM4Zjk0ZWQ5MGU5NmFjNTk2YzgzNGQ4ZTcwODA5ODJjNy4uNGI4YjgwNjg0
YzRlNzk3MDI1NDQ1NWI1OGM0YjUzNjZlYWRlODY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhCaW5kaW5nLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgVjhCaW5kaW5nX2gKIAog
I2luY2x1ZGUgIkJpbmRpbmdTZWN1cml0eS5oIgorI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIK
ICNpbmNsdWRlICJNYXRoRXh0cmFzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNp
bmNsdWRlICJWOERPTVdyYXBwZXIuaCIKQEAgLTIwNiw2ICsyMDcsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBTdHJpbmcgaW50MzJUb1dlYkNvcmVTdHJpbmcoaW50IHZhbHVlKTsKIAor
ICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gdjhWYWx1ZVRvV2ViQ29yZURPTVN0cmluZ0xp
c3Qodjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKKwogICAgIGNsYXNzIFY4UGFyYW1ldGVyQmFzZSB7
CiAgICAgcHVibGljOgogICAgICAgICBvcGVyYXRvciBTdHJpbmcoKSB7IHJldHVybiB0b1N0cmlu
ZzxTdHJpbmc+KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0
YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5jcHAKaW5kZXgg
MzNmMDA0YjY0Y2RlNmZjYTRkNDM0NGI1ODQ2OWEwYzIxYmU1YmNhNy4uZjZiYWFiOTBjOWJkZDcz
ZDYxMGQxNzA0MTRlMGFmMTMyMWM5YTAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRh
YmFzZS5jcHAKQEAgLTk4LDMxICs5OCwxOSBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkRh
dGFiYXNlOjpzZXRWZXJzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCiAgICAg
cmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQkRhdGFi
YXNlOjp0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBP
cHRpb25zT2JqZWN0JiBvcHRpb25zLCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb24+IElEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHBycFN0b3JlTmFtZXMsIHVu
c2lnbmVkIHNob3J0IG1vZGUsIHVuc2lnbmVkIGxvbmcgdGltZW91dCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7Ci0gICAgUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHN0b3JlTmFtZXMgPSBvcHRpb25zLmdl
dEtleURPTVN0cmluZ0xpc3QoIm9iamVjdFN0b3JlTmFtZXMiKTsKLSAgICBpZiAoIXN0b3JlTmFt
ZXMpIHsKKyAgICBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gc3RvcmVOYW1lcyA9IHBycFN0b3JlTmFt
ZXM7CisgICAgaWYgKCFzdG9yZU5hbWVzKQogICAgICAgICBzdG9yZU5hbWVzID0gRE9NU3RyaW5n
TGlzdDo6Y3JlYXRlKCk7Ci0gICAgICAgIFN0cmluZyBzdG9yZU5hbWU7Ci0gICAgICAgIGlmIChv
cHRpb25zLmdldEtleVN0cmluZygib2JqZWN0U3RvcmVOYW1lcyIsIHN0b3JlTmFtZSkpCi0gICAg
ICAgICAgICBzdG9yZU5hbWVzLT5hcHBlbmQoc3RvcmVOYW1lKTsKLSAgICB9CiAKLSAgICAvLyBH
ZXRzIGNhc3QgdG8gYW4gdW5zaWduZWQgc2hvcnQuCi0gICAgaW50MzJfdCBtb2RlID0gSURCVHJh
bnNhY3Rpb246OlJFQURfT05MWTsKLSAgICBvcHRpb25zLmdldEtleUludDMyKCJtb2RlIiwgbW9k
ZSk7CiAgICAgaWYgKG1vZGUgIT0gSURCVHJhbnNhY3Rpb246OlJFQURfV1JJVEUgJiYgbW9kZSAh
PSBJREJUcmFuc2FjdGlvbjo6UkVBRF9PTkxZKSB7CiAgICAgICAgIC8vIEZJWE1FOiBNYXkgbmVl
ZCB0byBjaGFuZ2Ugd2hlbiBzcGVjY2VkOiBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9z
aG93X2J1Zy5jZ2k/aWQ9MTE0MDYKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
Q09OU1RSQUlOVF9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIC8vIEdldHMg
Y2FzdCB0byBhbiB1bnNpZ25lZCBsb25nLgotICAgIC8vIEZJWE1FOiBUaGUgc3BlYyBuZWVkcyB0
byBiZSB1cGRhdGVkIG9uIHRoaXMuIEl0IHNob3VsZCBwcm9iYWJseSB0YWtlIGEgZG91YmxlLgot
ICAgIGludDMyX3QgdGltZW91dCA9IGRlZmF1bHRUaW1lb3V0OyAKLSAgICBvcHRpb25zLmdldEtl
eUludDMyKCJ0aW1lb3V0IiwgdGltZW91dCk7Ci0gICAgaW50NjRfdCB1bnNpZ25lZExvbmdNYXgg
PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGxvbmc+OjptYXgoKTsKLSAgICBpZiAodGlt
ZW91dCA8IDAgfHwgdGltZW91dCA+IHVuc2lnbmVkTG9uZ01heCkKKyAgICBpZiAodGltZW91dCA+
IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgbG9uZz46Om1heCgpKQogICAgICAgICB0aW1l
b3V0ID0gZGVmYXVsdFRpbWVvdXQ7IC8vIElnbm9yZSBpbGxlZ2FsIHZhbHVlcy4KIAogICAgIC8v
IFdlIG5lZWQgdG8gY3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uIHN5bmNocm9ub3VzbHkuIExvY2tz
IGFyZSBhY3F1aXJlZCBhc3luY2hyb25vdXNseS4gT3BlcmF0aW9ucwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9JREJEYXRhYmFzZS5oCmluZGV4IDllYmJmMDBlNTA1ZjNhOGVlZGQwZjQ0ZTUzZmQ3MTM1MWM3
YWU4ZjMuLjg3MjAwMzY4YWJiM2RlNTZkZjA1MDY3MGQzMzQ2ZmZhZThhY2I4YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmgKQEAgLTYxLDEyICs2MSwxNCBAQCBwdWJsaWM6CiAK
ICAgICAvLyBGSVhNRTogVHJ5IHRvIG1vZGlmeSB0aGUgY29kZSBnZW5lcmF0b3Igc28gdGhpcyBp
cyB1bm5lZWRlZC4KICAgICBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBjcmVhdGVPYmplY3RT
dG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBjcmVh
dGVPYmplY3RTdG9yZShuYW1lLCBPcHRpb25zT2JqZWN0KCksIGVjKTsgfQotICAgIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiB0cmFuc2FjdGlvbihjb250ZXh0LCBP
cHRpb25zT2JqZWN0KCksIGVjKTsgfQorICAgIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRy
YW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUm
IGVjKSB7IHJldHVybiB0cmFuc2FjdGlvbihjb250ZXh0LCAwLCBlYyk7IH0KKyAgICBQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHN0b3JlTmFtZXMsIEV4Y2VwdGlvbkNv
ZGUmIGVjKSB7IHJldHVybiB0cmFuc2FjdGlvbihjb250ZXh0LCBzdG9yZU5hbWVzLCBJREJUcmFu
c2FjdGlvbjo6UkVBRF9PTkxZLCBlYyk7IH0gCisgICAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bj4gdHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0
cjxET01TdHJpbmdMaXN0PiBzdG9yZU5hbWVzLCB1bnNpZ25lZCBzaG9ydCBtb2RlLCBFeGNlcHRp
b25Db2RlJiBlYykgeyByZXR1cm4gdHJhbnNhY3Rpb24oY29udGV4dCwgc3RvcmVOYW1lcywgbW9k
ZSwgMCwgZWMpOyB9CisgICAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4sIHVuc2ln
bmVkIHNob3J0IG1vZGUsIHVuc2lnbmVkIGxvbmcgdGltZW91dCwgRXhjZXB0aW9uQ29kZSYpOwog
CiAgICAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gY3JlYXRlT2JqZWN0U3RvcmUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zT2JqZWN0JiwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBzZXRWZXJzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIHZlcnNpb24sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQ
YXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgT3B0aW9uc09iamVjdCYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGNs
b3NlKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
QkRhdGFiYXNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaWRsCmlu
ZGV4IDdlYjQzZTlmYzQ1ZWI0NzBkYmMwODUxYjZkNzZkMmM1YjhmYzY1OWUuLmUzYjc1MDg3ZTJk
OTYzOTAzNDJjMTg4ZTRiOWI4MjE0MzMxMzk3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
RGF0YWJhc2UuaWRsCkBAIC0zOCw3ICszOCw3IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAg
ICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBzZXRWZXJzaW9uKGluIERPTVN0cmluZyB2
ZXJzaW9uKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7Ci0gICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJUcmFuc2FjdGlvbiB0cmFu
c2FjdGlvbihpbiBbT3B0aW9uYWxdIE9wdGlvbnNPYmplY3Qgb3B0aW9uc09iamVjdCkKKyAgICAg
ICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRyYW5zYWN0aW9uIHRyYW5z
YWN0aW9uKGluIFtPcHRpb25hbF0gRE9NU3RyaW5nTGlzdCBzdG9yZU5hbWVzLCBpbiBbT3B0aW9u
YWxdIHVuc2lnbmVkIHNob3J0IG1vZGUsIGluIFtPcHRpb25hbF0gdW5zaWduZWQgbG9uZyB0aW1l
b3V0KQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQuCiAgICAgICAgIC8vdm9pZCBjbG9zZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQkluZGV4LmNwcAppbmRleCA4YTM4YTI3ZDFlNWUwMDUwY2M0ZmM4NTVjMTc5M2Iy
MzQ2OWM3ZmM1Li4wY2M0NzI2OTExOTY1YmIxZTI2NDk2ZWEyZTJiZjMzZGVhZjU4ZjZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmNwcApAQCAtNTIsMTMgKzUyLDggQEAgSURCSW5kZXg6
On5JREJJbmRleCgpCiB7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9w
ZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgT3B0aW9uc09i
amVjdCYgb3B0aW9ucywgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IElEQkluZGV4OjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24s
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2Ug
PSBvcHRpb25zLmdldEtleUtleVJhbmdlKCJyYW5nZSIpOwotCi0gICAgLy8gQ29udmVydGVkIHRv
IGFuIHVuc2lnbmVkIHNob3J0LgotICAgIGludDMyX3QgZGlyZWN0aW9uID0gZGVmYXVsdERpcmVj
dGlvbjsKLSAgICBvcHRpb25zLmdldEtleUludDMyKCJkaXJlY3Rpb24iLCBkaXJlY3Rpb24pOwog
ICAgIGlmIChkaXJlY3Rpb24gIT0gSURCQ3Vyc29yOjpORVhUICYmIGRpcmVjdGlvbiAhPSBJREJD
dXJzb3I6Ok5FWFRfTk9fRFVQTElDQVRFICYmIGRpcmVjdGlvbiAhPSBJREJDdXJzb3I6OlBSRVYg
JiYgZGlyZWN0aW9uICE9IElEQkN1cnNvcjo6UFJFVl9OT19EVVBMSUNBVEUpIHsKICAgICAgICAg
Ly8gRklYTUU6IE1heSBuZWVkIHRvIGNoYW5nZSB3aGVuIHNwZWNjZWQ6IGh0dHA6Ly93d3cudzMu
b3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0xMTQwNgogICAgICAgICBlYyA9IElEQkRh
dGFiYXNlRXhjZXB0aW9uOjpDT05TVFJBSU5UX0VSUjsKQEAgLTcyLDEzICs2Nyw4IEBAIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgY29uCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgY29uc3QgT3B0aW9uc09iamVjdCYgb3B0aW9ucywgRXhjZXB0aW9uQ29kZSYg
ZWMpCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuS2V5Q3Vyc29yKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJh
bmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBvcHRpb25zLmdldEtleUtleVJhbmdlKCJy
YW5nZSIpOwotCi0gICAgLy8gQ29udmVydGVkIHRvIGFuIHVuc2lnbmVkIHNob3J0LgotICAgIGlu
dDMyX3QgZGlyZWN0aW9uID0gZGVmYXVsdERpcmVjdGlvbjsKLSAgICBvcHRpb25zLmdldEtleUlu
dDMyKCJkaXJlY3Rpb24iLCBkaXJlY3Rpb24pOwogICAgIGlmIChkaXJlY3Rpb24gIT0gSURCQ3Vy
c29yOjpORVhUICYmIGRpcmVjdGlvbiAhPSBJREJDdXJzb3I6Ok5FWFRfTk9fRFVQTElDQVRFICYm
IGRpcmVjdGlvbiAhPSBJREJDdXJzb3I6OlBSRVYgJiYgZGlyZWN0aW9uICE9IElEQkN1cnNvcjo6
UFJFVl9OT19EVVBMSUNBVEUpIHsKICAgICAgICAgLy8gRklYTUU6IE1heSBuZWVkIHRvIGNoYW5n
ZSB3aGVuIHNwZWNjZWQ6IGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNn
aT9pZD0xMTQwNgogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpDT05TVFJBSU5U
X0VSUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaCBiL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaAppbmRleCA3ZjFhYWUzMDBkNGM0YTBiY2Y4
YTg1YmFjNTFkOThhOTlkYmFhOWJkLi5hYWViMzQ4NjE4YWI1Mzk5ZmFkNzQxNWIxNDBmNjI0YzM4
MGU1MzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleC5oCkBAIC0zMCw3ICszMCw2IEBACiAj
aW5jbHVkZSAiSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCS2V5UmFu
Z2UuaCIKICNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiT3B0aW9uc09iamVjdC5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
IApAQCAtNTMsMTEgKzUyLDE0IEBAIHB1YmxpYzoKICAgICBib29sIHVuaXF1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fYmFja2VuZC0+dW5pcXVlKCk7IH0KIAogICAgIC8vIEZJWE1FOiBUcnkgdG8gbW9k
aWZ5IHRoZSBjb2RlIGdlbmVyYXRvciBzbyB0aGlzIGlzIHVubmVlZGVkLgotICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBPcHRpb25z
T2JqZWN0KCksIGVjKTsgfQotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNv
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykgeyBy
ZXR1cm4gb3BlbktleUN1cnNvcihjb250ZXh0LCBPcHRpb25zT2JqZWN0KCksIGVjKTsgfQorICAg
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0
LCAwLCBlYyk7IH0KKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFu
Z2UsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIGtleVJh
bmdlLCBJREJDdXJzb3I6Ok5FWFQsIGVjKTsgfQorICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4sIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpOworCisgICAgUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuS2V5Q3Vyc29yKGNvbnRl
eHQsIDAsIGVjKTsgfSAKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5LZXlDdXJzb3Io
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4g
a2V5UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuS2V5Q3Vyc29yKGNvbnRl
eHQsIGtleVJhbmdlLCBJREJDdXJzb3I6Ok5FWFQsIGVjKTsgfQorICAgIFBhc3NSZWZQdHI8SURC
UmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4sIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYp
OwogCi0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBjb25zdCBPcHRpb25zT2JqZWN0JiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgT3B0aW9uc09iamVjdCYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IGdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJL
ZXk+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBnZXRLZXko
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29k
ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaWRsCmluZGV4IGU2YmExZTZkZTNhMDk4
Mzk5ZjM1OTE3NGI0ZjI0MDFiNmFmOGRjNmYuLjEzMDg5Y2M2ODNjZTM3ZTNkNGE5NmM0ZmEyNDU3
OWYyZDRhYTAxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXgu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaWRsCkBAIC0zMyw5ICsz
Myw5IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyBrZXlQYXRoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB1bmlxdWU7
CiAKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qg
b3BlbkN1cnNvcihpbiBbT3B0aW9uYWxdIE9wdGlvbnNPYmplY3Qgb3B0aW9ucykKKyAgICAgICAg
W0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3BlbkN1cnNvcihp
biBbT3B0aW9uYWxdIElEQktleVJhbmdlIHJhbmdlLCBpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIHNo
b3J0IGRpcmVjdGlvbikKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24p
OwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBv
cGVuS2V5Q3Vyc29yKGluIFtPcHRpb25hbF0gT3B0aW9uc09iamVjdCBvcHRpb25zKQorICAgICAg
ICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vy
c29yKGluIFtPcHRpb25hbF0gSURCS2V5UmFuZ2UgcmFuZ2UsIGluIFtPcHRpb25hbF0gdW5zaWdu
ZWQgc2hvcnQgZGlyZWN0aW9uKSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNl
cHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVx
dWVzdCBnZXQoaW4gSURCS2V5IGtleSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VF
eGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcAppbmRl
eCBlZDVjOTZhYWQ3NmI0ZWFkY2ZlMzUyYWUxMmM2ZjM3NmEzNDIxODA0Li5kYjMzYTRlOTRiZjk3
YmFmMzVkOWFjOWNiMDNhMTNhOGUzYjQxNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlLmNwcApAQCAtMTI5LDEzICsxMjksOCBAQCB2b2lkIElEQk9iamVjdFN0b3Jl
OjpkZWxldGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
IG1fb2JqZWN0U3RvcmUtPmRlbGV0ZUluZGV4KG5hbWUsIG1fdHJhbnNhY3Rpb24uZ2V0KCksIGVj
KTsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNv
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBPcHRpb25zT2JqZWN0JiBv
cHRpb25zLCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2Jq
ZWN0U3RvcmU6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSA9IG9wdGlv
bnMuZ2V0S2V5S2V5UmFuZ2UoInJhbmdlIik7Ci0KLSAgICAvLyBDb252ZXJ0ZWQgdG8gYW4gdW5z
aWduZWQgc2hvcnQuCi0gICAgaW50MzJfdCBkaXJlY3Rpb24gPSBkZWZhdWx0RGlyZWN0aW9uOwot
ICAgIG9wdGlvbnMuZ2V0S2V5SW50MzIoImRpcmVjdGlvbiIsIGRpcmVjdGlvbik7CiAgICAgaWYg
KGRpcmVjdGlvbiAhPSBJREJDdXJzb3I6Ok5FWFQgJiYgZGlyZWN0aW9uICE9IElEQkN1cnNvcjo6
TkVYVF9OT19EVVBMSUNBVEUgJiYgZGlyZWN0aW9uICE9IElEQkN1cnNvcjo6UFJFViAmJiBkaXJl
Y3Rpb24gIT0gSURCQ3Vyc29yOjpQUkVWX05PX0RVUExJQ0FURSkgewogICAgICAgICAvLyBGSVhN
RTogTWF5IG5lZWQgdG8gY2hhbmdlIHdoZW4gc3BlY2NlZDogaHR0cDovL3d3dy53My5vcmcvQnVn
cy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTExNDA2CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VF
eGNlcHRpb246OkNPTlNUUkFJTlRfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJPYmplY3RTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RT
dG9yZS5oCmluZGV4IDBlOWE0YTk1MmRkNzAyNWFjM2ViZTcxZGY3MTJjMGM1OWZkNGJiZDEuLjhj
MDc2YzdiMTMxYzk5ODM1YzgxZThlNzZjMmEwMGRlNDYwZDQ2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKQEAgLTYzLDcgKzYzLDggQEAgcHVibGljOgogICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gYWRkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpIHsgcmV0dXJuIGFkZChjb250ZXh0LCB2YWx1ZSwgMCwgZWMpOyAgfQogICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gcHV0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsg
cmV0dXJuIHB1dChjb250ZXh0LCB2YWx1ZSwgMCwgZWMpOyAgfQogICAgIFBhc3NSZWZQdHI8SURC
SW5kZXg+IGNyZWF0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQ
YXRoLCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gY3JlYXRlSW5kZXgobmFtZSwga2V5UGF0
aCwgT3B0aW9uc09iamVjdCgpLCBlYyk7IH0KLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9w
ZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYg
ZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwgT3B0aW9uc09iamVjdCgpLCBlYyk7IH0K
KyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29u
dGV4dCwgMCwgZWMpOyB9IAorICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBr
ZXlSYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwg
a2V5UmFuZ2UsIElEQkN1cnNvcjo6TkVYVCwgZWMpOyB9IAogCiAgICAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5Piwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gYWRkKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NS
ZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNzQsNyArNzUsNyBAQCBwdWJsaWM6
CiAgICAgUGFzc1JlZlB0cjxJREJJbmRleD4gaW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgdm9pZCBkZWxldGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIEV4
Y2VwdGlvbkNvZGUmKTsKIAotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgT3B0aW9uc09iamVjdCYsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24sIEV4Y2VwdGlvbkNvZGUmKTsgCiAKIHByaXZhdGU6CiAgICAgSURCT2JqZWN0U3RvcmUo
UGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+LCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaWRsIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9J
REJPYmplY3RTdG9yZS5pZGwKaW5kZXggZjAyM2RiZThjNmFkODQ0MGRhMTIzMzBiODY1MTMyZjEx
NWU4NjNkYi4uNzI5MTc3YjM1NmJkMjc5ZjU1NTA0YzQwMmUxYTA5YjBhMGM4MWVhNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGwKQEAgLTQwLDcgKzQwLDcgQEAg
bW9kdWxlIHN0b3JhZ2UgewogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlv
bik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0
IGdldChpbiBJREJLZXkga2V5KQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2Vw
dGlvbik7Ci0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1
ZXN0IG9wZW5DdXJzb3IoaW4gW09wdGlvbmFsXSBPcHRpb25zT2JqZWN0IG9wdGlvbnMpCisgICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJz
b3IoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZSByYW5nZSwgaW4gW09wdGlvbmFsXSB1bnNpZ25l
ZCBzaG9ydCBkaXJlY3Rpb24pCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0
aW9uKTsKICAgICAgICAgSURCSW5kZXggY3JlYXRlSW5kZXgoaW4gRE9NU3RyaW5nIG5hbWUsIGlu
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGtleVBhdGgsIGluIFtPcHRpb25h
bF0gT3B0aW9uc09iamVjdCBvcHRpb25zKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFz
ZUV4Y2VwdGlvbik7Cg==
</data>
<flag name="review"
          id="71394"
          type_id="1"
          status="+"
          setter="japhet"
    />
          </attachment>
      

    </bug>

</bugzilla>