<?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>156933</bug_id>
          
          <creation_ts>2016-04-22 15:24:42 -0700</creation_ts>
          <short_desc>super should be available in object literals</short_desc>
          <delta_ts>2016-04-22 16:04:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1186466</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-04-22 15:24:42 -0700</bug_when>
    <thetext>super should be available in object literals</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186469</commentid>
    <comment_count>1</comment_count>
      <attachid>277107</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-04-22 15:33:17 -0700</bug_when>
    <thetext>Created attachment 277107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186478</commentid>
    <comment_count>2</comment_count>
      <attachid>277107</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-04-22 15:46:18 -0700</bug_when>
    <thetext>Comment on attachment 277107
Patch

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

r=me with comments.

&gt; Source/JavaScriptCore/ChangeLog:48
&gt; +        about the list of places you can use super.

I agree. I wish our parser added the line/column to the &quot;super not allowed in this context&quot; error message.

&gt; LayoutTests/js/script-tests/object-literal-methods.js:91
&gt; +shouldThrow(&quot;{ f() { return super.f(); } }.f()&quot;);
&gt; +shouldThrow(&quot;new ({ f() { return super(); }.f)&quot;);
&gt; +shouldThrow(&quot;o = { f() { } }; new ({ __proto__: o, f() { return super(); } }).f&quot;);
&gt; +shouldBeTrue(&quot;o = { f() { return true; } }; ({ __proto__: o, f() { return super.f(); } }).f()&quot;);
&gt; +shouldBeTrue(&quot;o = { get p() { return true; } }; ({ __proto__: o, get p() { return super.p; } }).p&quot;);
&gt; +shouldBeTrue(&quot;o = { set p(p2) { } }; ({ __proto__: o, set p(p2) { super.p = p2; } }).p = true&quot;);

Can you also add some tests for arrow functions to make sure they close over &apos;super&apos; properly in object literal method syntax?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186481</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-04-22 16:04:31 -0700</bug_when>
    <thetext>Committed r199927: &lt;http://trac.webkit.org/changeset/199927&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277107</attachid>
            <date>2016-04-22 15:33:17 -0700</date>
            <delta_ts>2016-04-22 15:46:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156933-20160422153400.patch</filename>
            <type>text/plain</type>
            <size>63198</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5OTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBA
CisyMDE2LTA0LTIyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgc3VwZXIgc2hvdWxkIGJlIGF2YWlsYWJsZSBpbiBvYmplY3QgbGl0ZXJhbHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjkzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gd2Ugb3JpZ2luYWxs
eSBpbXBsZW1lbnRlZCBjbGFzc2VzLCBzdXBlciBzZWVtZWQgdG8gYmUgYSBjbGFzcy1vbmx5Cisg
ICAgICAgIGZlYXR1cmUuIEJ1dCB0aGUgZmluYWwgc3BlYyBzYXlzIGl0J3MgYXZhaWxhYmxlIGlu
IG9iamVjdCBsaXRlcmFscyB0b28uCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlMaXN0Tm9kZTo6ZW1pdEJ5dGVjb2RlKTog
SGF2aW5nICdzdXBlcicgYW5kIGJlaW5nIGEgY2xhc3MKKyAgICAgICAgcHJvcGVydHkgYXJlIG5v
IGxvbmdlciBzeW5vbnltb3VzLCBzbyB3ZSB0cmFjayB0d28gc2VwYXJhdGUgdmFyaWFibGVzLgor
CisgICAgICAgIChKU0M6OlByb3BlcnR5TGlzdE5vZGU6OmVtaXRQdXRDb25zdGFudFByb3BlcnR5
KTogQmVpbmcgaW5zaWRlIHRoZSBzdXBlcgorICAgICAgICBicmFuY2ggbm8gbG9uZ2VyIGd1YXJh
bnRlZXMgdGhhdCB5b3UncmUgYSBjbGFzcyBwcm9wZXJ0eSwgc28gd2UgZGVjaWRlCisgICAgICAg
IG91ciBhdHRyaWJ1dGVzIGFuZCBvdXIgZnVuY3Rpb24gbmFtZSBkeW5hbWljYWxseS4KKworICAg
ICAgICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNy
ZWF0ZUFycm93RnVuY3Rpb25FeHByKToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRl
R2V0dGVyT3JTZXR0ZXJQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0
ZUFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZUFyZ3VtZW50c0xp
c3QpOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVQcm9wZXJ0eSk6CisgICAgICAg
IChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVByb3BlcnR5TGlzdCk6IFBhc3MgdGhyb3VnaCBzdGF0
ZSB0byBpbmRpY2F0ZQorICAgICAgICB3aGV0aGVyIHdlJ3JlIGEgY2xhc3MgcHJvcGVydHksIHNp
bmNlIHdlIGNhbid0IGluZmVyIGl0IGZyb20gJ3N1cGVyJworICAgICAgICBhbnltb3JlLgorCisg
ICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVy
dHlOb2RlOjpQcm9wZXJ0eU5vZGUpOiBTZWUgQVNUQnVpbGRlci5oLgorCisgICAgICAgICogcGFy
c2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5Tm9kZTo6ZXhwcmVzc2lvbk5hbWUp
OgorICAgICAgICAoSlNDOjpQcm9wZXJ0eU5vZGU6Om5hbWUpOgorICAgICAgICAoSlNDOjpQcm9w
ZXJ0eU5vZGU6OnR5cGUpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eU5vZGU6Om5lZWRzU3VwZXJC
aW5kaW5nKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOb2RlOjppc0NsYXNzUHJvcGVydHkpOgor
ICAgICAgICAoSlNDOjpQcm9wZXJ0eU5vZGU6OnB1dFR5cGUpOiBTZWUgQVNUQnVpbGRlci5oLgor
CisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZUZ1bmN0aW9uSW5mbyk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5
cGU+OjpwYXJzZUNsYXNzKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNl
UHJvcGVydHkpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcm9wZXJ0
eU1ldGhvZCk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUdldHRlclNl
dHRlcik6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZU1lbWJlckV4cHJl
c3Npb24pOiBJIG1hZGUgdGhlc2UgZXJyb3IKKyAgICAgICAgbWVzc2FnZXMgZ2VuZXJpYyBiZWNh
dXNlIGl0IGlzIG5vIGxvbmdlciBwcmFjdGljYWwgdG8gc2F5IGNvbmNpc2UgdGhpbmdzCisgICAg
ICAgIGFib3V0IHRoZSBsaXN0IG9mIHBsYWNlcyB5b3UgY2FuIHVzZSBzdXBlci4KKworICAgICAg
ICAqIHBhcnNlci9QYXJzZXIuaDoKKworICAgICAgICAqIHBhcnNlci9TeW50YXhDaGVja2VyLmg6
CisgICAgICAgIChKU0M6OlN5bnRheENoZWNrZXI6OmNyZWF0ZUFyZ3VtZW50c0xpc3QpOgorICAg
ICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpjcmVhdGVQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6
OlN5bnRheENoZWNrZXI6OmFwcGVuZEV4cG9ydFNwZWNpZmllcik6CisgICAgICAgIChKU0M6OlN5
bnRheENoZWNrZXI6OmFwcGVuZENvbnN0RGVjbCk6CisgICAgICAgIChKU0M6OlN5bnRheENoZWNr
ZXI6OmNyZWF0ZUdldHRlck9yU2V0dGVyUHJvcGVydHkpOiBVcGRhdGVkIGZvcgorICAgICAgICBp
bnRlcmZhY2UgY2hhbmdlLgorCisgICAgICAgICogdGVzdHMvc3RyZXNzL2dlbmVyYXRvci13aXRo
LXN1cGVyLmpzOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL21vZHVs
ZXMtc3ludGF4LWVycm9yLmpzOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zdXBlci1pbi1sZXhp
Y2FsLXNjb3BlLmpzOgorICAgICAgICAodGVzdFN5bnRheEVycm9yKToKKyAgICAgICAgKHRlc3RT
eW50YXhFcnJvci50ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdGFnZ2VkLXRlbXBsYXRl
cy1zeW50YXguanM6IFVwZGF0ZWQgZm9yIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgY2hhbmdlcy4g
U2VlIFBhcnNlci5jcHAuCisKIDIwMTYtMDQtMjIgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1p
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEF0dGVtcHQgdG8gZml4IHRoZSBDTG9vcCBhZnRlciBy
MTk5ODY2CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwCShyZXZpc2lvbiAxOTk4MzcpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5
OCwxMCArNDk4LDExIEBAIFJlZ2lzdGVySUQqIFByb3BlcnR5TGlzdE5vZGU6OmVtaXRCeXRlY28K
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHZhbHVlID0g
Z2VuZXJhdG9yLmVtaXROb2RlKG5vZGUtPm1fYXNzaWduKTsKLSAgICAgICAgICAgIGJvb2wgaXND
bGFzc1Byb3BlcnR5ID0gbm9kZS0+bmVlZHNTdXBlckJpbmRpbmcoKTsKLSAgICAgICAgICAgIGlm
IChpc0NsYXNzUHJvcGVydHkpCisgICAgICAgICAgICBib29sIG5lZWRzU3VwZXJCaW5kaW5nID0g
bm9kZS0+bmVlZHNTdXBlckJpbmRpbmcoKTsKKyAgICAgICAgICAgIGlmIChuZWVkc1N1cGVyQmlu
ZGluZykKICAgICAgICAgICAgICAgICBlbWl0UHV0SG9tZU9iamVjdChnZW5lcmF0b3IsIHZhbHVl
LmdldCgpLCBkc3QpOwotICAgICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlID0gaXNDbGFzc1By
b3BlcnR5ID8gKEFjY2Vzc29yIHwgRG9udEVudW0pIDogQWNjZXNzb3I7CisKKyAgICAgICAgICAg
IHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSBub2RlLT5pc0NsYXNzUHJvcGVydHkoKSA/IChBY2Nlc3Nv
ciB8IERvbnRFbnVtKSA6IEFjY2Vzc29yOwogCiAgICAgICAgICAgICBBU1NFUlQobm9kZS0+bV90
eXBlICYgKFByb3BlcnR5Tm9kZTo6R2V0dGVyIHwgUHJvcGVydHlOb2RlOjpTZXR0ZXIpKTsKIApA
QCAtNTEyLDE2ICs1MTMsMTYgQEAgUmVnaXN0ZXJJRCogUHJvcGVydHlMaXN0Tm9kZTo6ZW1pdEJ5
dGVjbwogICAgICAgICAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVydHlOYW1l
ID0gZ2VuZXJhdG9yLmVtaXROb2RlKG5vZGUtPm1fZXhwcmVzc2lvbik7CiAgICAgICAgICAgICAg
ICAgICAgIGdlbmVyYXRvci5lbWl0U2V0RnVuY3Rpb25OYW1lSWZOZWVkZWQobm9kZS0+bV9hc3Np
Z24sIHZhbHVlLmdldCgpLCBwcm9wZXJ0eU5hbWUuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAg
ICBpZiAobm9kZS0+bV90eXBlICYgUHJvcGVydHlOb2RlOjpHZXR0ZXIpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEdldHRlckJ5VmFsKGRzdCwgcHJvcGVydHlOYW1l
LmdldCgpLCBhdHRyaWJ1dGUsIHZhbHVlLmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGdlbmVyYXRvci5lbWl0UHV0R2V0dGVyQnlWYWwoZHN0LCBwcm9wZXJ0eU5hbWUuZ2V0KCksIGF0
dHJpYnV0ZXMsIHZhbHVlLmdldCgpKTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRTZXR0ZXJCeVZhbChkc3QsIHByb3Bl
cnR5TmFtZS5nZXQoKSwgYXR0cmlidXRlLCB2YWx1ZS5nZXQoKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dFNldHRlckJ5VmFsKGRzdCwgcHJvcGVydHlOYW1lLmdl
dCgpLCBhdHRyaWJ1dGVzLCB2YWx1ZS5nZXQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmIChub2RlLT5tX3R5
cGUgJiBQcm9wZXJ0eU5vZGU6OkdldHRlcikKLSAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9y
LmVtaXRQdXRHZXR0ZXJCeUlkKGRzdCwgKm5vZGUtPm5hbWUoKSwgYXR0cmlidXRlLCB2YWx1ZS5n
ZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0R2V0dGVyQnlJZChk
c3QsICpub2RlLT5uYW1lKCksIGF0dHJpYnV0ZXMsIHZhbHVlLmdldCgpKTsKICAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0U2V0dGVyQnlJ
ZChkc3QsICpub2RlLT5uYW1lKCksIGF0dHJpYnV0ZSwgdmFsdWUuZ2V0KCkpOworICAgICAgICAg
ICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dFNldHRlckJ5SWQoZHN0LCAqbm9kZS0+bmFtZSgp
LCBhdHRyaWJ1dGVzLCB2YWx1ZS5nZXQoKSk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICB9CiAKQEAgLTU2MiwxMSArNTYzLDExIEBAIFJlZ2lzdGVySUQqIFByb3BlcnR5
TGlzdE5vZGU6OmVtaXRCeXRlY28KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgIEFTU0VSVCghcGFpci5zZWNvbmQgfHwgaXNDbGFzc1Byb3BlcnR5ID09IHBh
aXIuc2Vjb25kLT5uZWVkc1N1cGVyQmluZGluZygpKTsKLSAgICAgICAgICAgIGlmIChpc0NsYXNz
UHJvcGVydHkgJiYgcGFpci5zZWNvbmQpCisgICAgICAgICAgICBBU1NFUlQoIXBhaXIuc2Vjb25k
IHx8IG5lZWRzU3VwZXJCaW5kaW5nID09IHBhaXIuc2Vjb25kLT5uZWVkc1N1cGVyQmluZGluZygp
KTsKKyAgICAgICAgICAgIGlmIChuZWVkc1N1cGVyQmluZGluZyAmJiBwYWlyLnNlY29uZCkKICAg
ICAgICAgICAgICAgICBlbWl0UHV0SG9tZU9iamVjdChnZW5lcmF0b3IsIHNlY29uZFJlZywgZHN0
KTsKIAotICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRHZXR0ZXJTZXR0ZXIoZHN0LCAqbm9k
ZS0+bmFtZSgpLCBhdHRyaWJ1dGUsIGdldHRlclJlZy5nZXQoKSwgc2V0dGVyUmVnLmdldCgpKTsK
KyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0R2V0dGVyU2V0dGVyKGRzdCwgKm5vZGUtPm5h
bWUoKSwgYXR0cmlidXRlcywgZ2V0dGVyUmVnLmdldCgpLCBzZXR0ZXJSZWcuZ2V0KCkpOwogICAg
ICAgICB9CiAgICAgfQogCkBAIC01ODUsOCArNTg2LDEyIEBAIHZvaWQgUHJvcGVydHlMaXN0Tm9k
ZTo6ZW1pdFB1dENvbnN0YW50UHIKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcHJvcGVydHlO
YW1lUmVnaXN0ZXIgPSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZS5tX2V4cHJlc3Npb24pOwogCisg
ICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSBCeXRlY29kZUdlbmVyYXRvcjo6UHJvcGVydHlD
b25maWd1cmFibGUgfCBCeXRlY29kZUdlbmVyYXRvcjo6UHJvcGVydHlXcml0YWJsZTsKKyAgICAg
ICAgaWYgKCFub2RlLmlzQ2xhc3NQcm9wZXJ0eSgpKQorICAgICAgICAgICAgYXR0cmlidXRlcyB8
PSBCeXRlY29kZUdlbmVyYXRvcjo6UHJvcGVydHlFbnVtZXJhYmxlOworICAgICAgICBnZW5lcmF0
b3IuZW1pdFNldEZ1bmN0aW9uTmFtZUlmTmVlZGVkKG5vZGUubV9hc3NpZ24sIHZhbHVlLmdldCgp
LCBwcm9wZXJ0eU5hbWVSZWdpc3Rlci5nZXQoKSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0Q2Fs
bERlZmluZVByb3BlcnR5KG5ld09iaiwgcHJvcGVydHlOYW1lUmVnaXN0ZXIuZ2V0KCksCi0gICAg
ICAgICAgICB2YWx1ZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgQnl0ZWNvZGVHZW5lcmF0b3I6
OlByb3BlcnR5Q29uZmlndXJhYmxlIHwgQnl0ZWNvZGVHZW5lcmF0b3I6OlByb3BlcnR5V3JpdGFi
bGUsIG1fcG9zaXRpb24pOworICAgICAgICAgICAgdmFsdWUuZ2V0KCksIG51bGxwdHIsIG51bGxw
dHIsIGF0dHJpYnV0ZXMsIG1fcG9zaXRpb24pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGlmIChjb25zdCBhdXRvKiBpZGVudGlmaWVyID0gbm9kZS5uYW1lKCkpIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCShyZXZpc2lvbiAxOTk4MzcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtNDEwLDcgKzQxMCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBORVZFUl9JTkxJTkUg
UHJvcGVydHlOb2RlKiBjcmVhdGVHZXR0ZXJPclNldHRlclByb3BlcnR5KGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYgbG9jYXRpb24sIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBib29sLAotICAgICAg
ICBjb25zdCBJZGVudGlmaWVyKiBuYW1lLCBjb25zdCBQYXJzZXJGdW5jdGlvbkluZm88QVNUQnVp
bGRlcj4mIGZ1bmN0aW9uSW5mbywgU3VwZXJCaW5kaW5nIHN1cGVyQmluZGluZykKKyAgICAgICAg
Y29uc3QgSWRlbnRpZmllciogbmFtZSwgY29uc3QgUGFyc2VyRnVuY3Rpb25JbmZvPEFTVEJ1aWxk
ZXI+JiBmdW5jdGlvbkluZm8sIGJvb2wgaXNDbGFzc1Byb3BlcnR5KQogICAgIHsKICAgICAgICAg
QVNTRVJUKG5hbWUpOwogICAgICAgICBmdW5jdGlvbkluZm8uYm9keS0+c2V0TG9jKGZ1bmN0aW9u
SW5mby5zdGFydExpbmUsIGZ1bmN0aW9uSW5mby5lbmRMaW5lLCBsb2NhdGlvbi5zdGFydE9mZnNl
dCwgbG9jYXRpb24ubGluZVN0YXJ0T2Zmc2V0KTsKQEAgLTQxOCwyNyArNDE4LDI3IEBAIHB1Ymxp
YzoKICAgICAgICAgZnVuY3Rpb25JbmZvLmJvZHktPnNldEluZmVycmVkTmFtZSgqbmFtZSk7CiAg
ICAgICAgIFNvdXJjZUNvZGUgc291cmNlID0gbV9zb3VyY2VDb2RlLT5zdWJFeHByZXNzaW9uKGZ1
bmN0aW9uSW5mby5zdGFydE9mZnNldCwgZnVuY3Rpb25JbmZvLmVuZE9mZnNldCwgZnVuY3Rpb25J
bmZvLnN0YXJ0TGluZSwgZnVuY3Rpb25JbmZvLmJvZHlTdGFydENvbHVtbik7CiAgICAgICAgIE1l
dGhvZERlZmluaXRpb25Ob2RlKiBtZXRob2REZWYgPSBuZXcgKG1fcGFyc2VyQXJlbmEpIE1ldGhv
ZERlZmluaXRpb25Ob2RlKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5udWxsSWRlbnRp
ZmllciwgZnVuY3Rpb25JbmZvLmJvZHksIHNvdXJjZSk7Ci0gICAgICAgIHJldHVybiBuZXcgKG1f
cGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZSgqbmFtZSwgbWV0aG9kRGVmLCB0eXBlLCBQcm9wZXJ0
eU5vZGU6OlVua25vd24sIHN1cGVyQmluZGluZyk7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFy
c2VyQXJlbmEpIFByb3BlcnR5Tm9kZSgqbmFtZSwgbWV0aG9kRGVmLCB0eXBlLCBQcm9wZXJ0eU5v
ZGU6OlVua25vd24sIFN1cGVyQmluZGluZzo6TmVlZGVkLCBpc0NsYXNzUHJvcGVydHkpOwogICAg
IH0KIAogICAgIE5FVkVSX0lOTElORSBQcm9wZXJ0eU5vZGUqIGNyZWF0ZUdldHRlck9yU2V0dGVy
UHJvcGVydHkoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgUHJvcGVydHlOb2RlOjpU
eXBlIHR5cGUsIGJvb2wsCi0gICAgICAgIEV4cHJlc3Npb25Ob2RlKiBuYW1lLCBjb25zdCBQYXJz
ZXJGdW5jdGlvbkluZm88QVNUQnVpbGRlcj4mIGZ1bmN0aW9uSW5mbywgU3VwZXJCaW5kaW5nIHN1
cGVyQmluZGluZykKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG5hbWUsIGNvbnN0IFBhcnNlckZ1
bmN0aW9uSW5mbzxBU1RCdWlsZGVyPiYgZnVuY3Rpb25JbmZvLCBib29sIGlzQ2xhc3NQcm9wZXJ0
eSkKICAgICB7CiAgICAgICAgIEFTU0VSVChuYW1lKTsKICAgICAgICAgZnVuY3Rpb25JbmZvLmJv
ZHktPnNldExvYyhmdW5jdGlvbkluZm8uc3RhcnRMaW5lLCBmdW5jdGlvbkluZm8uZW5kTGluZSwg
bG9jYXRpb24uc3RhcnRPZmZzZXQsIGxvY2F0aW9uLmxpbmVTdGFydE9mZnNldCk7CiAgICAgICAg
IFNvdXJjZUNvZGUgc291cmNlID0gbV9zb3VyY2VDb2RlLT5zdWJFeHByZXNzaW9uKGZ1bmN0aW9u
SW5mby5zdGFydE9mZnNldCwgZnVuY3Rpb25JbmZvLmVuZE9mZnNldCwgZnVuY3Rpb25JbmZvLnN0
YXJ0TGluZSwgZnVuY3Rpb25JbmZvLmJvZHlTdGFydENvbHVtbik7CiAgICAgICAgIE1ldGhvZERl
ZmluaXRpb25Ob2RlKiBtZXRob2REZWYgPSBuZXcgKG1fcGFyc2VyQXJlbmEpIE1ldGhvZERlZmlu
aXRpb25Ob2RlKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5udWxsSWRlbnRpZmllciwg
ZnVuY3Rpb25JbmZvLmJvZHksIHNvdXJjZSk7Ci0gICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2Vy
QXJlbmEpIFByb3BlcnR5Tm9kZShuYW1lLCBtZXRob2REZWYsIHR5cGUsIFByb3BlcnR5Tm9kZTo6
VW5rbm93biwgc3VwZXJCaW5kaW5nKTsKKyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVu
YSkgUHJvcGVydHlOb2RlKG5hbWUsIG1ldGhvZERlZiwgdHlwZSwgUHJvcGVydHlOb2RlOjpVbmtu
b3duLCBTdXBlckJpbmRpbmc6Ok5lZWRlZCwgaXNDbGFzc1Byb3BlcnR5KTsKICAgICB9CiAKICAg
ICBORVZFUl9JTkxJTkUgUHJvcGVydHlOb2RlKiBjcmVhdGVHZXR0ZXJPclNldHRlclByb3BlcnR5
KFZNKiB2bSwgUGFyc2VyQXJlbmEmIHBhcnNlckFyZW5hLCBjb25zdCBKU1Rva2VuTG9jYXRpb24m
IGxvY2F0aW9uLCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgYm9vbCwKLSAgICAgICAgZG91Ymxl
IG5hbWUsIGNvbnN0IFBhcnNlckZ1bmN0aW9uSW5mbzxBU1RCdWlsZGVyPiYgZnVuY3Rpb25JbmZv
LCBTdXBlckJpbmRpbmcgc3VwZXJCaW5kaW5nKQorICAgICAgICBkb3VibGUgbmFtZSwgY29uc3Qg
UGFyc2VyRnVuY3Rpb25JbmZvPEFTVEJ1aWxkZXI+JiBmdW5jdGlvbkluZm8sIGJvb2wgaXNDbGFz
c1Byb3BlcnR5KQogICAgIHsKICAgICAgICAgZnVuY3Rpb25JbmZvLmJvZHktPnNldExvYyhmdW5j
dGlvbkluZm8uc3RhcnRMaW5lLCBmdW5jdGlvbkluZm8uZW5kTGluZSwgbG9jYXRpb24uc3RhcnRP
ZmZzZXQsIGxvY2F0aW9uLmxpbmVTdGFydE9mZnNldCk7CiAgICAgICAgIGNvbnN0IElkZW50aWZp
ZXImIGlkZW50ID0gcGFyc2VyQXJlbmEuaWRlbnRpZmllckFyZW5hKCkubWFrZU51bWVyaWNJZGVu
dGlmaWVyKHZtLCBuYW1lKTsKICAgICAgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtX3NvdXJjZUNv
ZGUtPnN1YkV4cHJlc3Npb24oZnVuY3Rpb25JbmZvLnN0YXJ0T2Zmc2V0LCBmdW5jdGlvbkluZm8u
ZW5kT2Zmc2V0LCBmdW5jdGlvbkluZm8uc3RhcnRMaW5lLCBmdW5jdGlvbkluZm8uYm9keVN0YXJ0
Q29sdW1uKTsKICAgICAgICAgTWV0aG9kRGVmaW5pdGlvbk5vZGUqIG1ldGhvZERlZiA9IG5ldyAo
bV9wYXJzZXJBcmVuYSkgTWV0aG9kRGVmaW5pdGlvbk5vZGUobG9jYXRpb24sIHZtLT5wcm9wZXJ0
eU5hbWVzLT5udWxsSWRlbnRpZmllciwgZnVuY3Rpb25JbmZvLmJvZHksIHNvdXJjZSk7Ci0gICAg
ICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZShpZGVudCwgbWV0aG9k
RGVmLCB0eXBlLCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIHN1cGVyQmluZGluZyk7CisgICAgICAg
IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZShpZGVudCwgbWV0aG9kRGVm
LCB0eXBlLCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIFN1cGVyQmluZGluZzo6TmVlZGVkLCBpc0Ns
YXNzUHJvcGVydHkpOwogICAgIH0KIAogICAgIEFyZ3VtZW50c05vZGUqIGNyZWF0ZUFyZ3VtZW50
cygpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQXJndW1lbnRzTm9kZSgpOyB9CkBAIC00
NDYsNyArNDQ2LDcgQEAgcHVibGljOgogICAgIEFyZ3VtZW50TGlzdE5vZGUqIGNyZWF0ZUFyZ3Vt
ZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUq
IGFyZykgeyByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBBcmd1bWVudExpc3ROb2RlKGxvY2F0
aW9uLCBhcmcpOyB9CiAgICAgQXJndW1lbnRMaXN0Tm9kZSogY3JlYXRlQXJndW1lbnRzTGlzdChj
b25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBBcmd1bWVudExpc3ROb2RlKiBhcmdzLCBF
eHByZXNzaW9uTm9kZSogYXJnKSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIEFyZ3VtZW50
TGlzdE5vZGUobG9jYXRpb24sIGFyZ3MsIGFyZyk7IH0KIAotICAgIFByb3BlcnR5Tm9kZSogY3Jl
YXRlUHJvcGVydHkoY29uc3QgSWRlbnRpZmllciogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9k
ZSogbm9kZSwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0VHlwZSBw
dXRUeXBlLCBib29sLCBTdXBlckJpbmRpbmcgc3VwZXJCaW5kaW5nID0gU3VwZXJCaW5kaW5nOjpO
b3ROZWVkZWQpCisgICAgUHJvcGVydHlOb2RlKiBjcmVhdGVQcm9wZXJ0eShjb25zdCBJZGVudGlm
aWVyKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiBub2RlLCBQcm9wZXJ0eU5vZGU6OlR5
cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlIHB1dFR5cGUsIGJvb2wsIFN1cGVyQmluZGlu
ZyBzdXBlckJpbmRpbmcsIGJvb2wgaXNDbGFzc1Byb3BlcnR5KQogICAgIHsKICAgICAgICAgaWYg
KG5vZGUtPmlzRnVuY0V4cHJOb2RlKCkpIHsKICAgICAgICAgICAgIGF1dG8gbWV0YWRhdGEgPSBz
dGF0aWNfY2FzdDxGdW5jRXhwck5vZGUqPihub2RlKS0+bWV0YWRhdGEoKTsKQEAgLTQ1NCwxMyAr
NDU0LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1ldGFkYXRhLT5zZXRJbmZlcnJlZE5hbWUo
KnByb3BlcnR5TmFtZSk7CiAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNDbGFzc0V4cHJOb2Rl
KCkpCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxDbGFzc0V4cHJOb2RlKj4obm9kZSktPnNldEVj
bWFOYW1lKCpwcm9wZXJ0eU5hbWUpOwotICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5h
KSBQcm9wZXJ0eU5vZGUoKnByb3BlcnR5TmFtZSwgbm9kZSwgdHlwZSwgcHV0VHlwZSwgc3VwZXJC
aW5kaW5nKTsKKyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlOb2Rl
KCpwcm9wZXJ0eU5hbWUsIG5vZGUsIHR5cGUsIHB1dFR5cGUsIHN1cGVyQmluZGluZywgaXNDbGFz
c1Byb3BlcnR5KTsKICAgICB9Ci0gICAgUHJvcGVydHlOb2RlKiBjcmVhdGVQcm9wZXJ0eShWTSog
dm0sIFBhcnNlckFyZW5hJiBwYXJzZXJBcmVuYSwgZG91YmxlIHByb3BlcnR5TmFtZSwgRXhwcmVz
c2lvbk5vZGUqIG5vZGUsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6OlB1
dFR5cGUgcHV0VHlwZSwgYm9vbCkKKyAgICBQcm9wZXJ0eU5vZGUqIGNyZWF0ZVByb3BlcnR5KFZN
KiB2bSwgUGFyc2VyQXJlbmEmIHBhcnNlckFyZW5hLCBkb3VibGUgcHJvcGVydHlOYW1lLCBFeHBy
ZXNzaW9uTm9kZSogbm9kZSwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6
UHV0VHlwZSBwdXRUeXBlLCBib29sLCBTdXBlckJpbmRpbmcgc3VwZXJCaW5kaW5nLCBib29sIGlz
Q2xhc3NQcm9wZXJ0eSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEp
IFByb3BlcnR5Tm9kZShwYXJzZXJBcmVuYS5pZGVudGlmaWVyQXJlbmEoKS5tYWtlTnVtZXJpY0lk
ZW50aWZpZXIodm0sIHByb3BlcnR5TmFtZSksIG5vZGUsIHR5cGUsIHB1dFR5cGUpOworICAgICAg
ICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eU5vZGUocGFyc2VyQXJlbmEuaWRl
bnRpZmllckFyZW5hKCkubWFrZU51bWVyaWNJZGVudGlmaWVyKHZtLCBwcm9wZXJ0eU5hbWUpLCBu
b2RlLCB0eXBlLCBwdXRUeXBlLCBzdXBlckJpbmRpbmcsIGlzQ2xhc3NQcm9wZXJ0eSk7CiAgICAg
fQotICAgIFByb3BlcnR5Tm9kZSogY3JlYXRlUHJvcGVydHkoRXhwcmVzc2lvbk5vZGUqIHByb3Bl
cnR5TmFtZSwgRXhwcmVzc2lvbk5vZGUqIG5vZGUsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQ
cm9wZXJ0eU5vZGU6OlB1dFR5cGUgcHV0VHlwZSwgYm9vbCwgU3VwZXJCaW5kaW5nIHN1cGVyQmlu
ZGluZyA9IFN1cGVyQmluZGluZzo6Tm90TmVlZGVkKSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJl
bmEpIFByb3BlcnR5Tm9kZShwcm9wZXJ0eU5hbWUsIG5vZGUsIHR5cGUsIHB1dFR5cGUsIHN1cGVy
QmluZGluZyk7IH0KKyAgICBQcm9wZXJ0eU5vZGUqIGNyZWF0ZVByb3BlcnR5KEV4cHJlc3Npb25O
b2RlKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiBub2RlLCBQcm9wZXJ0eU5vZGU6OlR5
cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlIHB1dFR5cGUsIGJvb2wsIFN1cGVyQmluZGlu
ZyBzdXBlckJpbmRpbmcsIGJvb2wgaXNDbGFzc1Byb3BlcnR5KSB7IHJldHVybiBuZXcgKG1fcGFy
c2VyQXJlbmEpIFByb3BlcnR5Tm9kZShwcm9wZXJ0eU5hbWUsIG5vZGUsIHR5cGUsIHB1dFR5cGUs
IHN1cGVyQmluZGluZywgaXNDbGFzc1Byb3BlcnR5KTsgfQogICAgIFByb3BlcnR5TGlzdE5vZGUq
IGNyZWF0ZVByb3BlcnR5TGlzdChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBQcm9w
ZXJ0eU5vZGUqIHByb3BlcnR5KSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5
TGlzdE5vZGUobG9jYXRpb24sIHByb3BlcnR5KTsgfQogICAgIFByb3BlcnR5TGlzdE5vZGUqIGNy
ZWF0ZVByb3BlcnR5TGlzdChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBQcm9wZXJ0
eU5vZGUqIHByb3BlcnR5LCBQcm9wZXJ0eUxpc3ROb2RlKiB0YWlsKSB7IHJldHVybiBuZXcgKG1f
cGFyc2VyQXJlbmEpIFByb3BlcnR5TGlzdE5vZGUobG9jYXRpb24sIHByb3BlcnR5LCB0YWlsKTsg
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1
Y3RvcnMuaAkocmV2aXNpb24gMTk5ODM3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2RlQ29uc3RydWN0b3JzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyMCwyMiArMjIwLDI0IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAKLSAgICBpbmxpbmUgUHJvcGVydHlOb2Rl
OjpQcm9wZXJ0eU5vZGUoY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhwcmVzc2lvbk5vZGUqIGFz
c2lnbiwgVHlwZSB0eXBlLCBQdXRUeXBlIHB1dFR5cGUsIFN1cGVyQmluZGluZyBzdXBlckJpbmRp
bmcgPSBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCkKKyAgICBpbmxpbmUgUHJvcGVydHlOb2RlOjpQ
cm9wZXJ0eU5vZGUoY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhwcmVzc2lvbk5vZGUqIGFzc2ln
biwgVHlwZSB0eXBlLCBQdXRUeXBlIHB1dFR5cGUsIFN1cGVyQmluZGluZyBzdXBlckJpbmRpbmcs
IGJvb2wgaXNDbGFzc1Byb3BlcnR5KQogICAgICAgICA6IG1fbmFtZSgmbmFtZSkKICAgICAgICAg
LCBtX2Fzc2lnbihhc3NpZ24pCiAgICAgICAgICwgbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV9u
ZWVkc1N1cGVyQmluZGluZyhzdXBlckJpbmRpbmcgPT0gU3VwZXJCaW5kaW5nOjpOZWVkZWQpCiAg
ICAgICAgICwgbV9wdXRUeXBlKHB1dFR5cGUpCisgICAgICAgICwgbV9pc0NsYXNzUHJvcGVydHko
aXNDbGFzc1Byb3BlcnR5KQogICAgIHsKICAgICB9CiAKLSAgICBpbmxpbmUgUHJvcGVydHlOb2Rl
OjpQcm9wZXJ0eU5vZGUoRXhwcmVzc2lvbk5vZGUqIG5hbWUsIEV4cHJlc3Npb25Ob2RlKiBhc3Np
Z24sIFR5cGUgdHlwZSwgUHV0VHlwZSBwdXRUeXBlLCBTdXBlckJpbmRpbmcgc3VwZXJCaW5kaW5n
ID0gU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQpCisgICAgaW5saW5lIFByb3BlcnR5Tm9kZTo6UHJv
cGVydHlOb2RlKEV4cHJlc3Npb25Ob2RlKiBuYW1lLCBFeHByZXNzaW9uTm9kZSogYXNzaWduLCBU
eXBlIHR5cGUsIFB1dFR5cGUgcHV0VHlwZSwgU3VwZXJCaW5kaW5nIHN1cGVyQmluZGluZywgYm9v
bCBpc0NsYXNzUHJvcGVydHkpCiAgICAgICAgIDogbV9uYW1lKDApCiAgICAgICAgICwgbV9leHBy
ZXNzaW9uKG5hbWUpCiAgICAgICAgICwgbV9hc3NpZ24oYXNzaWduKQogICAgICAgICAsIG1fdHlw
ZSh0eXBlKQogICAgICAgICAsIG1fbmVlZHNTdXBlckJpbmRpbmcoc3VwZXJCaW5kaW5nID09IFN1
cGVyQmluZGluZzo6TmVlZGVkKQogICAgICAgICAsIG1fcHV0VHlwZShwdXRUeXBlKQorICAgICAg
ICAsIG1faXNDbGFzc1Byb3BlcnR5KGlzQ2xhc3NQcm9wZXJ0eSkKICAgICB7CiAgICAgfQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCShyZXZpc2lvbiAxOTk4MzcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYyNiwxNCArNjI2LDE1IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBlbnVtIFR5cGUgeyBD
b25zdGFudCA9IDEsIEdldHRlciA9IDIsIFNldHRlciA9IDQsIENvbXB1dGVkID0gOCwgU2hvcnRo
YW5kID0gMTYgfTsKICAgICAgICAgZW51bSBQdXRUeXBlIHsgVW5rbm93biwgS25vd25EaXJlY3Qg
fTsKIAotICAgICAgICBQcm9wZXJ0eU5vZGUoY29uc3QgSWRlbnRpZmllciYsIEV4cHJlc3Npb25O
b2RlKiwgVHlwZSwgUHV0VHlwZSwgU3VwZXJCaW5kaW5nKTsKLSAgICAgICAgUHJvcGVydHlOb2Rl
KEV4cHJlc3Npb25Ob2RlKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiwgVHlwZSwgUHV0
VHlwZSwgU3VwZXJCaW5kaW5nKTsKKyAgICAgICAgUHJvcGVydHlOb2RlKGNvbnN0IElkZW50aWZp
ZXImLCBFeHByZXNzaW9uTm9kZSosIFR5cGUsIFB1dFR5cGUsIFN1cGVyQmluZGluZywgYm9vbCBp
c0NsYXNzUHJvcGVydHkpOworICAgICAgICBQcm9wZXJ0eU5vZGUoRXhwcmVzc2lvbk5vZGUqIHBy
b3BlcnR5TmFtZSwgRXhwcmVzc2lvbk5vZGUqLCBUeXBlLCBQdXRUeXBlLCBTdXBlckJpbmRpbmcs
IGJvb2wgaXNDbGFzc1Byb3BlcnR5KTsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogZXhwcmVz
c2lvbk5hbWUoKSBjb25zdCB7IHJldHVybiBtX2V4cHJlc3Npb247IH0KICAgICAgICAgY29uc3Qg
SWRlbnRpZmllciogbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogCiAgICAgICAgIFR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFR5cGU+KG1fdHlwZSk7IH0KICAg
ICAgICAgYm9vbCBuZWVkc1N1cGVyQmluZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNTdXBl
ckJpbmRpbmc7IH0KKyAgICAgICAgYm9vbCBpc0NsYXNzUHJvcGVydHkoKSBjb25zdCB7IHJldHVy
biBtX2lzQ2xhc3NQcm9wZXJ0eTsgfQogICAgICAgICBQdXRUeXBlIHB1dFR5cGUoKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxQdXRUeXBlPihtX3B1dFR5cGUpOyB9CiAKICAgICBwcml2YXRl
OgpAQCAtNjQ0LDYgKzY0NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1bnNpZ25lZCBt
X3R5cGUgOiA1OwogICAgICAgICB1bnNpZ25lZCBtX25lZWRzU3VwZXJCaW5kaW5nIDogMTsKICAg
ICAgICAgdW5zaWduZWQgbV9wdXRUeXBlIDogMTsKKyAgICAgICAgdW5zaWduZWQgbV9pc0NsYXNz
UHJvcGVydHk6IDE7CiAgICAgfTsKIAogICAgIGNsYXNzIFByb3BlcnR5TGlzdE5vZGUgOiBwdWJs
aWMgRXhwcmVzc2lvbk5vZGUgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyLmNwcAkocmV2aXNpb24gMTk5ODM3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9QYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDc4LDkgKzIwNzgsOSBAQCB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IGJvb2wgUGFyc2VyCiAgICAgICAgIGlmICAoZ2VuZXJhdG9y
Qm9keVNjb3BlLT5zdHJpY3RNb2RlKCkpCiAgICAgICAgICAgICBmdW5jdGlvblNjb3BlLT5zZXRT
dHJpY3RNb2RlKCk7CiAKLSAgICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKGdlbmVyYXRvckJvZHlT
Y29wZS0+aGFzRGlyZWN0U3VwZXIoKSwgIkNhbm5vdCBjYWxsIHN1cGVyKCkgb3V0c2lkZSBvZiBh
IGNsYXNzIGNvbnN0cnVjdG9yIik7CisgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShnZW5lcmF0
b3JCb2R5U2NvcGUtPmhhc0RpcmVjdFN1cGVyKCksICJzdXBlciBpcyBub3QgdmFsaWQgaW4gdGhp
cyBjb250ZXh0Iik7CiAgICAgICAgIGlmIChnZW5lcmF0b3JCb2R5U2NvcGUtPm5lZWRzU3VwZXJC
aW5kaW5nKCkpCi0gICAgICAgICAgICBzZW1hbnRpY0ZhaWxJZlRydWUoZXhwZWN0ZWRTdXBlckJp
bmRpbmcgPT0gU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQsICJzdXBlciBjYW4gb25seSBiZSB1c2Vk
IGluIGEgbWV0aG9kIG9mIGEgZGVyaXZlZCBjbGFzcyIpOworICAgICAgICAgICAgc2VtYW50aWNG
YWlsSWZUcnVlKGV4cGVjdGVkU3VwZXJCaW5kaW5nID09IFN1cGVyQmluZGluZzo6Tm90TmVlZGVk
LCAic3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dCIpOwogCiAgICAgICAgIHBvcFNj
b3BlKGdlbmVyYXRvckJvZHlTY29wZSwgVHJlZUJ1aWxkZXI6Ok5lZWRzRnJlZVZhcmlhYmxlSW5m
byk7CiAgICAgfSBlbHNlCkBAIC0yMTAzLDE1ICsyMTAzLDE1IEBAIHRlbXBsYXRlIDxjbGFzcyBU
cmVlQnVpbGRlcj4gYm9vbCBQYXJzZXIKICAgICAgICAgICAgIENvbnN0cnVjdG9yS2luZCBmdW5j
dGlvbkNvbnN0cnVjdG9yS2luZCA9IGZ1bmN0aW9uQm9keVR5cGUgPT0gU3RhbmRhcmRGdW5jdGlv
bkJvZHlCbG9jayAmJiAhc2NvcGVSZWYtPmlzRXZhbENvbnRleHQoKQogICAgICAgICAgICAgICAg
ID8gY29uc3RydWN0b3JLaW5kCiAgICAgICAgICAgICAgICAgOiBzY29wZVJlZi0+Y29uc3RydWN0
b3JLaW5kKCk7Ci0gICAgICAgICAgICBzZW1hbnRpY0ZhaWxJZlRydWUoZnVuY3Rpb25Db25zdHJ1
Y3RvcktpbmQgPT0gQ29uc3RydWN0b3JLaW5kOjpOb25lLCAiQ2Fubm90IGNhbGwgc3VwZXIoKSBv
dXRzaWRlIG9mIGEgY2xhc3MgY29uc3RydWN0b3IiKTsKLSAgICAgICAgICAgIHNlbWFudGljRmFp
bElmVHJ1ZShmdW5jdGlvbkNvbnN0cnVjdG9yS2luZCAhPSBDb25zdHJ1Y3RvcktpbmQ6OkRlcml2
ZWQsICJDYW5ub3QgY2FsbCBzdXBlcigpIGluIGEgYmFzZSBjbGFzcyBjb25zdHJ1Y3RvciIpOwor
ICAgICAgICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKGZ1bmN0aW9uQ29uc3RydWN0b3JLaW5kID09
IENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgInN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRl
eHQiKTsKKyAgICAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShmdW5jdGlvbkNvbnN0cnVjdG9y
S2luZCAhPSBDb25zdHJ1Y3RvcktpbmQ6OkRlcml2ZWQsICJzdXBlciBpcyBub3QgdmFsaWQgaW4g
dGhpcyBjb250ZXh0Iik7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGZ1bmN0aW9uU2NvcGUtPm5l
ZWRzU3VwZXJCaW5kaW5nKCkpIHsKICAgICAgICAgICAgIFNjb3BlUmVmIHNjb3BlUmVmID0gY2xv
c2VzdFBhcmVudE9yZGluYXJ5RnVuY3Rpb25Ob25MZXhpY2FsU2NvcGUoKTsKICAgICAgICAgICAg
IFN1cGVyQmluZGluZyBmdW5jdGlvblN1cGVyQmluZGluZyA9IGZ1bmN0aW9uQm9keVR5cGUgPT0g
U3RhbmRhcmRGdW5jdGlvbkJvZHlCbG9jayAmJiAhc2NvcGVSZWYtPmlzRXZhbENvbnRleHQoKQog
ICAgICAgICAgICAgICAgID8gZXhwZWN0ZWRTdXBlckJpbmRpbmcKICAgICAgICAgICAgICAgICA6
IHNjb3BlUmVmLT5leHBlY3RlZFN1cGVyQmluZGluZygpOwotICAgICAgICAgICAgc2VtYW50aWNG
YWlsSWZUcnVlKGZ1bmN0aW9uU3VwZXJCaW5kaW5nID09IFN1cGVyQmluZGluZzo6Tm90TmVlZGVk
LCAic3VwZXIgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIG1ldGhvZCBvZiBhIGRlcml2ZWQgY2xhc3Mi
KTsKKyAgICAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShmdW5jdGlvblN1cGVyQmluZGluZyA9
PSBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgInN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNv
bnRleHQiKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjMzNSw4ICsyMzM1LDkgQEAgdGVtcGxh
dGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlQ2xhc3NFeAogICAgICAgICBUcmVlUHJvcGVydHkg
cHJvcGVydHk7CiAgICAgICAgIGNvbnN0IGJvb2wgYWx3YXlzU3RyaWN0SW5zaWRlQ2xhc3MgPSB0
cnVlOwogICAgICAgICBpZiAoaXNHZXR0ZXIgfHwgaXNTZXR0ZXIpIHsKKyAgICAgICAgICAgIGJv
b2wgaXNDbGFzc1Byb3BlcnR5ID0gdHJ1ZTsKICAgICAgICAgICAgIHByb3BlcnR5ID0gcGFyc2VH
ZXR0ZXJTZXR0ZXIoY29udGV4dCwgYWx3YXlzU3RyaWN0SW5zaWRlQ2xhc3MsIGlzR2V0dGVyID8g
UHJvcGVydHlOb2RlOjpHZXR0ZXIgOiBQcm9wZXJ0eU5vZGU6OlNldHRlciwgbWV0aG9kU3RhcnQs
Ci0gICAgICAgICAgICAgICAgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBTdXBlckJpbmRpbmc6Ok5l
ZWRlZCk7CisgICAgICAgICAgICAgICAgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBpc0NsYXNzUHJv
cGVydHkpOwogICAgICAgICAgICAgZmFpbElmRmFsc2UocHJvcGVydHksICJDYW5ub3QgcGFyc2Ug
dGhpcyBtZXRob2QiKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIFBhcnNlckZ1bmN0
aW9uSW5mbzxUcmVlQnVpbGRlcj4gbWV0aG9kSW5mbzsKQEAgLTIzNjEsMTEgKzIzNjIsMTMgQEAg
dGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlQ2xhc3NFeAogICAgICAgICAgICAgLy8g
RklYTUU6IFN5bnRheCBlcnJvciB3aGVuIHN1cGVyKCkgaXMgY2FsbGVkCiAgICAgICAgICAgICBz
ZW1hbnRpY0ZhaWxJZlRydWUoaXNTdGF0aWNNZXRob2QgJiYgbWV0aG9kSW5mby5uYW1lICYmICpt
ZXRob2RJbmZvLm5hbWUgPT0gcHJvcGVydHlOYW1lcy5wcm90b3R5cGUsCiAgICAgICAgICAgICAg
ICAgIkNhbm5vdCBkZWNsYXJlIGEgc3RhdGljIG1ldGhvZCBuYW1lZCAncHJvdG90eXBlJyIpOwor
CisgICAgICAgICAgICBib29sIGlzQ2xhc3NQcm9wZXJ0eSA9IHRydWU7CiAgICAgICAgICAgICBp
ZiAoY29tcHV0ZWRQcm9wZXJ0eU5hbWUpIHsKICAgICAgICAgICAgICAgICBwcm9wZXJ0eSA9IGNv
bnRleHQuY3JlYXRlUHJvcGVydHkoY29tcHV0ZWRQcm9wZXJ0eU5hbWUsIG1ldGhvZCwgc3RhdGlj
X2Nhc3Q8UHJvcGVydHlOb2RlOjpUeXBlPihQcm9wZXJ0eU5vZGU6OkNvbnN0YW50IHwgUHJvcGVy
dHlOb2RlOjpDb21wdXRlZCksCi0gICAgICAgICAgICAgICAgICAgIFByb3BlcnR5Tm9kZTo6VW5r
bm93biwgYWx3YXlzU3RyaWN0SW5zaWRlQ2xhc3MsIFN1cGVyQmluZGluZzo6TmVlZGVkKTsKKyAg
ICAgICAgICAgICAgICAgICAgUHJvcGVydHlOb2RlOjpVbmtub3duLCBhbHdheXNTdHJpY3RJbnNp
ZGVDbGFzcywgU3VwZXJCaW5kaW5nOjpOZWVkZWQsIGlzQ2xhc3NQcm9wZXJ0eSk7CiAgICAgICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBwcm9wZXJ0eSA9IGNvbnRleHQuY3JlYXRlUHJv
cGVydHkobWV0aG9kSW5mby5uYW1lLCBtZXRob2QsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFBy
b3BlcnR5Tm9kZTo6VW5rbm93biwgYWx3YXlzU3RyaWN0SW5zaWRlQ2xhc3MsIFN1cGVyQmluZGlu
Zzo6TmVlZGVkKTsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSA9IGNvbnRleHQuY3JlYXRlUHJv
cGVydHkobWV0aG9kSW5mby5uYW1lLCBtZXRob2QsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFBy
b3BlcnR5Tm9kZTo6VW5rbm93biwgYWx3YXlzU3RyaWN0SW5zaWRlQ2xhc3MsIFN1cGVyQmluZGlu
Zzo6TmVlZGVkLCBpc0NsYXNzUHJvcGVydHkpOwogICAgICAgICB9CiAKICAgICAgICAgVHJlZVBy
b3BlcnR5TGlzdCYgdGFpbCA9IGlzU3RhdGljTWV0aG9kID8gc3RhdGljTWV0aG9kc1RhaWwgOiBp
bnN0YW5jZU1ldGhvZHNUYWlsOwpAQCAtMzI1Nyw2ICszMjYwLDcgQEAgdGVtcGxhdGUgPGNsYXNz
IFRyZWVCdWlsZGVyPiBUcmVlUHJvcGVydAogewogICAgIGJvb2wgd2FzSWRlbnQgPSBmYWxzZTsK
ICAgICBib29sIGlzR2VuZXJhdG9yID0gZmFsc2U7CisgICAgYm9vbCBpc0NsYXNzUHJvcGVydHkg
PSBmYWxzZTsKICNpZiBFTkFCTEUoRVM2X0dFTkVSQVRPUlMpCiAgICAgaWYgKGNvbnN1bWUoVElN
RVMpKQogICAgICAgICBpc0dlbmVyYXRvciA9IHRydWU7CkBAIC0zMjc5LDEzICszMjgzLDEzIEBA
IHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnQKICAgICAgICAgICAgIFRy
ZWVFeHByZXNzaW9uIG5vZGUgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uT3JQcm9wYWdhdGVF
cnJvckNsYXNzKGNvbnRleHQpOwogICAgICAgICAgICAgZmFpbElmRmFsc2Uobm9kZSwgIkNhbm5v
dCBwYXJzZSBleHByZXNzaW9uIGZvciBwcm9wZXJ0eSBkZWNsYXJhdGlvbiIpOwogICAgICAgICAg
ICAgY29udGV4dC5zZXRFbmRPZmZzZXQobm9kZSwgbV9sZXhlci0+Y3VycmVudE9mZnNldCgpKTsK
LSAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KGlkZW50LCBub2RlLCBQ
cm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGNvbXBsZXRlKTsK
KyAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KGlkZW50LCBub2RlLCBQ
cm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGNvbXBsZXRlLCBT
dXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgaXNDbGFzc1Byb3BlcnR5KTsKICAgICAgICAgfQogCiAg
ICAgICAgIGlmIChtYXRjaChPUEVOUEFSRU4pKSB7CiAgICAgICAgICAgICBhdXRvIG1ldGhvZCA9
IHBhcnNlUHJvcGVydHlNZXRob2QoY29udGV4dCwgaWRlbnQsIGlzR2VuZXJhdG9yKTsKICAgICAg
ICAgICAgIHByb3BhZ2F0ZUVycm9yKCk7Ci0gICAgICAgICAgICByZXR1cm4gY29udGV4dC5jcmVh
dGVQcm9wZXJ0eShpZGVudCwgbWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0
eU5vZGU6Oktub3duRGlyZWN0LCBjb21wbGV0ZSk7CisgICAgICAgICAgICByZXR1cm4gY29udGV4
dC5jcmVhdGVQcm9wZXJ0eShpZGVudCwgbWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQ
cm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0LCBjb21wbGV0ZSwgU3VwZXJCaW5kaW5nOjpOZWVkZWQs
IGlzQ2xhc3NQcm9wZXJ0eSk7CiAgICAgICAgIH0KICAgICAgICAgZmFpbElmVHJ1ZShpc0dlbmVy
YXRvciwgIkV4cGVjdGVkIGEgcGFyZW50aGVzaXMgZm9yIGFyZ3VtZW50IGxpc3QiKTsKIApAQCAt
MzI5OCw3ICszMzAyLDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlUHJvcGVy
dAogICAgICAgICAgICAgaWYgKGN1cnJlbnRTY29wZSgpLT5pc0Fycm93RnVuY3Rpb24oKSkKICAg
ICAgICAgICAgICAgICBjdXJyZW50U2NvcGUoKS0+c2V0SW5uZXJBcnJvd0Z1bmN0aW9uVXNlc0V2
YWwoKTsKICAgICAgICAgICAgIFRyZWVFeHByZXNzaW9uIG5vZGUgPSBjb250ZXh0LmNyZWF0ZVJl
c29sdmUobG9jYXRpb24sICppZGVudCwgc3RhcnQsIGxhc3RUb2tlbkVuZFBvc2l0aW9uKCkpOwot
ICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlUHJvcGVydHkoaWRlbnQsIG5vZGUsIHN0
YXRpY19jYXN0PFByb3BlcnR5Tm9kZTo6VHlwZT4oUHJvcGVydHlOb2RlOjpDb25zdGFudCB8IFBy
b3BlcnR5Tm9kZTo6U2hvcnRoYW5kKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCwgY29tcGxl
dGUpOworICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlUHJvcGVydHkoaWRlbnQsIG5v
ZGUsIHN0YXRpY19jYXN0PFByb3BlcnR5Tm9kZTo6VHlwZT4oUHJvcGVydHlOb2RlOjpDb25zdGFu
dCB8IFByb3BlcnR5Tm9kZTo6U2hvcnRoYW5kKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCwg
Y29tcGxldGUsIFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBpc0NsYXNzUHJvcGVydHkpOwogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKG1hdGNoKEVRVUFMKSkgLy8gQ292ZXJJbml0aWFsaXplZE5h
bWUgaXMgZXhjbHVzaXZlIHRvIEJpbmRpbmdQYXR0ZXJuIGFuZCBBc3NpZ25tZW50UGF0dGVybgpA
QCAtMzMxMSw3ICszMzE1LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlUHJv
cGVydAogICAgICAgICAgICAgdHlwZSA9IFByb3BlcnR5Tm9kZTo6U2V0dGVyOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBmYWlsV2l0aE1lc3NhZ2UoIkV4cGVjdGVkIGEgJzonIGZvbGxvd2lu
ZyB0aGUgcHJvcGVydHkgbmFtZSAnIiwgaWRlbnQtPmltcGwoKSwgIiciKTsKLSAgICAgICAgcmV0
dXJuIHBhcnNlR2V0dGVyU2V0dGVyKGNvbnRleHQsIGNvbXBsZXRlLCB0eXBlLCBnZXR0ZXJPclNl
dHRlclN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIHBhcnNlR2V0dGVyU2V0dGVyKGNvbnRl
eHQsIGNvbXBsZXRlLCB0eXBlLCBnZXR0ZXJPclNldHRlclN0YXJ0T2Zmc2V0LCBDb25zdHJ1Y3Rv
cktpbmQ6Ok5vbmUsIGlzQ2xhc3NQcm9wZXJ0eSk7CiAgICAgfQogICAgIGNhc2UgRE9VQkxFOgog
ICAgIGNhc2UgSU5URUdFUjogewpAQCAtMzMyMiw3ICszMzI2LDcgQEAgdGVtcGxhdGUgPGNsYXNz
IFRyZWVCdWlsZGVyPiBUcmVlUHJvcGVydAogICAgICAgICAgICAgY29uc3QgSWRlbnRpZmllciYg
aWRlbnQgPSBtX3BhcnNlckFyZW5hLmlkZW50aWZpZXJBcmVuYSgpLm1ha2VOdW1lcmljSWRlbnRp
Zmllcihjb25zdF9jYXN0PFZNKj4obV92bSksIHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICBh
dXRvIG1ldGhvZCA9IHBhcnNlUHJvcGVydHlNZXRob2QoY29udGV4dCwgJmlkZW50LCBpc0dlbmVy
YXRvcik7CiAgICAgICAgICAgICBwcm9wYWdhdGVFcnJvcigpOwotICAgICAgICAgICAgcmV0dXJu
IGNvbnRleHQuY3JlYXRlUHJvcGVydHkoJmlkZW50LCBtZXRob2QsIFByb3BlcnR5Tm9kZTo6Q29u
c3RhbnQsIFByb3BlcnR5Tm9kZTo6VW5rbm93biwgY29tcGxldGUpOworICAgICAgICAgICAgcmV0
dXJuIGNvbnRleHQuY3JlYXRlUHJvcGVydHkoJmlkZW50LCBtZXRob2QsIFByb3BlcnR5Tm9kZTo6
Q29uc3RhbnQsIFByb3BlcnR5Tm9kZTo6VW5rbm93biwgY29tcGxldGUsIFN1cGVyQmluZGluZzo6
TmVlZGVkLCBpc0NsYXNzUHJvcGVydHkpOwogICAgICAgICB9CiAgICAgICAgIGZhaWxJZlRydWUo
aXNHZW5lcmF0b3IsICJFeHBlY3RlZCBhIHBhcmVudGhlc2lzIGZvciBhcmd1bWVudCBsaXN0Iik7
CiAKQEAgLTMzMzAsNyArMzMzNCw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJl
ZVByb3BlcnQKICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IHBhcnNlQXNzaWdubWVudEV4
cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgIGZhaWxJZkZhbHNlKG5vZGUsICJDYW5ub3QgcGFy
c2UgZXhwcmVzc2lvbiBmb3IgcHJvcGVydHkgZGVjbGFyYXRpb24iKTsKICAgICAgICAgY29udGV4
dC5zZXRFbmRPZmZzZXQobm9kZSwgbV9sZXhlci0+Y3VycmVudE9mZnNldCgpKTsKLSAgICAgICAg
cmV0dXJuIGNvbnRleHQuY3JlYXRlUHJvcGVydHkoY29uc3RfY2FzdDxWTSo+KG1fdm0pLCBtX3Bh
cnNlckFyZW5hLCBwcm9wZXJ0eU5hbWUsIG5vZGUsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFBy
b3BlcnR5Tm9kZTo6VW5rbm93biwgY29tcGxldGUpOworICAgICAgICByZXR1cm4gY29udGV4dC5j
cmVhdGVQcm9wZXJ0eShjb25zdF9jYXN0PFZNKj4obV92bSksIG1fcGFyc2VyQXJlbmEsIHByb3Bl
cnR5TmFtZSwgbm9kZSwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgUHJvcGVydHlOb2RlOjpVbmtu
b3duLCBjb21wbGV0ZSwgU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQsIGlzQ2xhc3NQcm9wZXJ0eSk7
CiAgICAgfQogICAgIGNhc2UgT1BFTkJSQUNLRVQ6IHsKICAgICAgICAgbmV4dCgpOwpAQCAtMzM0
MSw3ICszMzQ1LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlUHJvcGVydAog
ICAgICAgICBpZiAobWF0Y2goT1BFTlBBUkVOKSkgewogICAgICAgICAgICAgYXV0byBtZXRob2Qg
PSBwYXJzZVByb3BlcnR5TWV0aG9kKGNvbnRleHQsICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5udWxs
SWRlbnRpZmllciwgaXNHZW5lcmF0b3IpOwogICAgICAgICAgICAgcHJvcGFnYXRlRXJyb3IoKTsK
LSAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KHByb3BlcnR5TmFtZSwg
bWV0aG9kLCBzdGF0aWNfY2FzdDxQcm9wZXJ0eU5vZGU6OlR5cGU+KFByb3BlcnR5Tm9kZTo6Q29u
c3RhbnQgfCBQcm9wZXJ0eU5vZGU6OkNvbXB1dGVkKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVj
dCwgY29tcGxldGUpOworICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlUHJvcGVydHko
cHJvcGVydHlOYW1lLCBtZXRob2QsIHN0YXRpY19jYXN0PFByb3BlcnR5Tm9kZTo6VHlwZT4oUHJv
cGVydHlOb2RlOjpDb25zdGFudCB8IFByb3BlcnR5Tm9kZTo6Q29tcHV0ZWQpLCBQcm9wZXJ0eU5v
ZGU6Oktub3duRGlyZWN0LCBjb21wbGV0ZSwgU3VwZXJCaW5kaW5nOjpOZWVkZWQsIGlzQ2xhc3NQ
cm9wZXJ0eSk7CiAgICAgICAgIH0KICAgICAgICAgZmFpbElmVHJ1ZShpc0dlbmVyYXRvciwgIkV4
cGVjdGVkIGEgcGFyZW50aGVzaXMgZm9yIGFyZ3VtZW50IGxpc3QiKTsKIApAQCAtMzM0OSw3ICsz
MzUzLDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlUHJvcGVydAogICAgICAg
ICBUcmVlRXhwcmVzc2lvbiBub2RlID0gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbihjb250ZXh0
KTsKICAgICAgICAgZmFpbElmRmFsc2Uobm9kZSwgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIGZv
ciBwcm9wZXJ0eSBkZWNsYXJhdGlvbiIpOwogICAgICAgICBjb250ZXh0LnNldEVuZE9mZnNldChu
b2RlLCBtX2xleGVyLT5jdXJyZW50T2Zmc2V0KCkpOwotICAgICAgICByZXR1cm4gY29udGV4dC5j
cmVhdGVQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIG5vZGUsIHN0YXRpY19jYXN0PFByb3BlcnR5Tm9k
ZTo6VHlwZT4oUHJvcGVydHlOb2RlOjpDb25zdGFudCB8IFByb3BlcnR5Tm9kZTo6Q29tcHV0ZWQp
LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGNvbXBsZXRlKTsKKyAgICAgICAgcmV0dXJuIGNvbnRl
eHQuY3JlYXRlUHJvcGVydHkocHJvcGVydHlOYW1lLCBub2RlLCBzdGF0aWNfY2FzdDxQcm9wZXJ0
eU5vZGU6OlR5cGU+KFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQgfCBQcm9wZXJ0eU5vZGU6OkNvbXB1
dGVkKSwgUHJvcGVydHlOb2RlOjpVbmtub3duLCBjb21wbGV0ZSwgU3VwZXJCaW5kaW5nOjpOb3RO
ZWVkZWQsIGlzQ2xhc3NQcm9wZXJ0eSk7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGZh
aWxJZkZhbHNlKG1fdG9rZW4ubV90eXBlICYgS2V5d29yZFRva2VuRmxhZywgIkV4cGVjdGVkIGEg
cHJvcGVydHkgbmFtZSIpOwpAQCAtMzM2NCwxNCArMzM2OCwxNCBAQCB0ZW1wbGF0ZSA8Y2xhc3Mg
VHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzCiAgICAgdW5zaWduZWQgbWV0aG9kU3RhcnQgPSB0b2tl
blN0YXJ0KCk7CiAgICAgUGFyc2VyRnVuY3Rpb25JbmZvPFRyZWVCdWlsZGVyPiBtZXRob2RJbmZv
OwogICAgIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBpc0dlbmVyYXRvciA/IFNvdXJjZVBh
cnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlckZ1bmN0aW9uTW9kZSA6IFNvdXJjZVBhcnNlTW9kZTo6
TWV0aG9kTW9kZTsKLSAgICBmYWlsSWZGYWxzZSgocGFyc2VGdW5jdGlvbkluZm8oY29udGV4dCwg
RnVuY3Rpb25Ob1JlcXVpcmVtZW50cywgcGFyc2VNb2RlLCBmYWxzZSwgQ29uc3RydWN0b3JLaW5k
OjpOb25lLCBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgbWV0aG9kU3RhcnQsIG1ldGhvZEluZm8s
IEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6Ok1ldGhvZCkpLCAiQ2Fubm90IHBhcnNlIHRoaXMgbWV0
aG9kIik7CisgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0
aW9uTm9SZXF1aXJlbWVudHMsIHBhcnNlTW9kZSwgZmFsc2UsIENvbnN0cnVjdG9yS2luZDo6Tm9u
ZSwgU3VwZXJCaW5kaW5nOjpOZWVkZWQsIG1ldGhvZFN0YXJ0LCBtZXRob2RJbmZvLCBGdW5jdGlv
bkRlZmluaXRpb25UeXBlOjpNZXRob2QpKSwgIkNhbm5vdCBwYXJzZSB0aGlzIG1ldGhvZCIpOwog
ICAgIG1ldGhvZEluZm8ubmFtZSA9IG1ldGhvZE5hbWU7CiAgICAgcmV0dXJuIGNvbnRleHQuY3Jl
YXRlTWV0aG9kRGVmaW5pdGlvbihtZXRob2RMb2NhdGlvbiwgbWV0aG9kSW5mbyk7CiB9CiAKIHRl
bXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+CiB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+
IFRyZWVQcm9wZXJ0eSBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VHZXR0ZXJTZXR0ZXIoVHJlZUJ1
aWxkZXImIGNvbnRleHQsIGJvb2wgc3RyaWN0LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgdW5z
aWduZWQgZ2V0dGVyT3JTZXR0ZXJTdGFydE9mZnNldCwKLSAgICBDb25zdHJ1Y3RvcktpbmQgY29u
c3RydWN0b3JLaW5kLCBTdXBlckJpbmRpbmcgc3VwZXJCaW5kaW5nKQorICAgIENvbnN0cnVjdG9y
S2luZCBjb25zdHJ1Y3RvcktpbmQsIGJvb2wgaXNDbGFzc1Byb3BlcnR5KQogewogICAgIGNvbnN0
IElkZW50aWZpZXIqIHN0cmluZ1Byb3BlcnR5TmFtZSA9IDA7CiAgICAgZG91YmxlIG51bWVyaWNQ
cm9wZXJ0eU5hbWUgPSAwOwpAQCAtMzM4MSw5ICszMzg1LDkgQEAgdGVtcGxhdGUgPGNsYXNzIFRy
ZWVCdWlsZGVyPiBUcmVlUHJvcGVydAogCiAgICAgaWYgKG1hdGNoU3BlY0lkZW50aWZpZXIoKSB8
fCBtYXRjaChTVFJJTkcpIHx8IG1fdG9rZW4ubV90eXBlICYgS2V5d29yZFRva2VuRmxhZykgewog
ICAgICAgICBzdHJpbmdQcm9wZXJ0eU5hbWUgPSBtX3Rva2VuLm1fZGF0YS5pZGVudDsKLSAgICAg
ICAgc2VtYW50aWNGYWlsSWZUcnVlKHN1cGVyQmluZGluZyA9PSBTdXBlckJpbmRpbmc6Ok5lZWRl
ZCAmJiAqc3RyaW5nUHJvcGVydHlOYW1lID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPnByb3RvdHlw
ZSwKKyAgICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKGlzQ2xhc3NQcm9wZXJ0eSAmJiAqc3RyaW5n
UHJvcGVydHlOYW1lID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwKICAgICAgICAg
ICAgICJDYW5ub3QgZGVjbGFyZSBhIHN0YXRpYyBtZXRob2QgbmFtZWQgJ3Byb3RvdHlwZSciKTsK
LSAgICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKHN1cGVyQmluZGluZyA9PSBTdXBlckJpbmRpbmc6
Ok5lZWRlZCAmJiAqc3RyaW5nUHJvcGVydHlOYW1lID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPmNv
bnN0cnVjdG9yLAorICAgICAgICBzZW1hbnRpY0ZhaWxJZlRydWUoaXNDbGFzc1Byb3BlcnR5ICYm
ICpzdHJpbmdQcm9wZXJ0eU5hbWUgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3Is
CiAgICAgICAgICAgICAiQ2Fubm90IGRlY2xhcmUgYSBnZXR0ZXIgb3Igc2V0dGVyIG5hbWVkICdj
b25zdHJ1Y3RvciciKTsKICAgICAgICAgbmV4dCgpOwogICAgIH0gZWxzZSBpZiAobWF0Y2goRE9V
QkxFKSB8fCBtYXRjaChJTlRFR0VSKSkgewpAQCAtMzQwMCwxOSArMzQwNCwxOSBAQCB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVQcm9wZXJ0CiAgICAgUGFyc2VyRnVuY3Rpb25JbmZv
PFRyZWVCdWlsZGVyPiBpbmZvOwogICAgIGlmICh0eXBlICYgUHJvcGVydHlOb2RlOjpHZXR0ZXIp
IHsKICAgICAgICAgZmFpbElmRmFsc2UobWF0Y2goT1BFTlBBUkVOKSwgIkV4cGVjdGVkIGEgcGFy
YW1ldGVyIGxpc3QgZm9yIGdldHRlciBkZWZpbml0aW9uIik7Ci0gICAgICAgIGZhaWxJZkZhbHNl
KChwYXJzZUZ1bmN0aW9uSW5mbyhjb250ZXh0LCBGdW5jdGlvbk5vUmVxdWlyZW1lbnRzLCBTb3Vy
Y2VQYXJzZU1vZGU6OkdldHRlck1vZGUsIGZhbHNlLCBjb25zdHJ1Y3RvcktpbmQsIHN1cGVyQmlu
ZGluZywgZ2V0dGVyT3JTZXR0ZXJTdGFydE9mZnNldCwgaW5mbywgRnVuY3Rpb25EZWZpbml0aW9u
VHlwZTo6TWV0aG9kKSksICJDYW5ub3QgcGFyc2UgZ2V0dGVyIGRlZmluaXRpb24iKTsKKyAgICAg
ICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0aW9uTm9SZXF1
aXJlbWVudHMsIFNvdXJjZVBhcnNlTW9kZTo6R2V0dGVyTW9kZSwgZmFsc2UsIGNvbnN0cnVjdG9y
S2luZCwgU3VwZXJCaW5kaW5nOjpOZWVkZWQsIGdldHRlck9yU2V0dGVyU3RhcnRPZmZzZXQsIGlu
Zm8sIEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6Ok1ldGhvZCkpLCAiQ2Fubm90IHBhcnNlIGdldHRl
ciBkZWZpbml0aW9uIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZmFpbElmRmFsc2UobWF0Y2go
T1BFTlBBUkVOKSwgIkV4cGVjdGVkIGEgcGFyYW1ldGVyIGxpc3QgZm9yIHNldHRlciBkZWZpbml0
aW9uIik7Ci0gICAgICAgIGZhaWxJZkZhbHNlKChwYXJzZUZ1bmN0aW9uSW5mbyhjb250ZXh0LCBG
dW5jdGlvbk5vUmVxdWlyZW1lbnRzLCBTb3VyY2VQYXJzZU1vZGU6OlNldHRlck1vZGUsIGZhbHNl
LCBjb25zdHJ1Y3RvcktpbmQsIHN1cGVyQmluZGluZywgZ2V0dGVyT3JTZXR0ZXJTdGFydE9mZnNl
dCwgaW5mbywgRnVuY3Rpb25EZWZpbml0aW9uVHlwZTo6TWV0aG9kKSksICJDYW5ub3QgcGFyc2Ug
c2V0dGVyIGRlZmluaXRpb24iKTsKKyAgICAgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25J
bmZvKGNvbnRleHQsIEZ1bmN0aW9uTm9SZXF1aXJlbWVudHMsIFNvdXJjZVBhcnNlTW9kZTo6U2V0
dGVyTW9kZSwgZmFsc2UsIGNvbnN0cnVjdG9yS2luZCwgU3VwZXJCaW5kaW5nOjpOZWVkZWQsIGdl
dHRlck9yU2V0dGVyU3RhcnRPZmZzZXQsIGluZm8sIEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6Ok1l
dGhvZCkpLCAiQ2Fubm90IHBhcnNlIHNldHRlciBkZWZpbml0aW9uIik7CiAgICAgfQogCiAgICAg
aWYgKHN0cmluZ1Byb3BlcnR5TmFtZSkKLSAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlR2V0
dGVyT3JTZXR0ZXJQcm9wZXJ0eShsb2NhdGlvbiwgdHlwZSwgc3RyaWN0LCBzdHJpbmdQcm9wZXJ0
eU5hbWUsIGluZm8sIHN1cGVyQmluZGluZyk7CisgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0
ZUdldHRlck9yU2V0dGVyUHJvcGVydHkobG9jYXRpb24sIHR5cGUsIHN0cmljdCwgc3RyaW5nUHJv
cGVydHlOYW1lLCBpbmZvLCBpc0NsYXNzUHJvcGVydHkpOwogCiAgICAgaWYgKGNvbXB1dGVkUHJv
cGVydHlOYW1lKQotICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVHZXR0ZXJPclNldHRlclBy
b3BlcnR5KGxvY2F0aW9uLCBzdGF0aWNfY2FzdDxQcm9wZXJ0eU5vZGU6OlR5cGU+KHR5cGUgfCBQ
cm9wZXJ0eU5vZGU6OkNvbXB1dGVkKSwgc3RyaWN0LCBjb21wdXRlZFByb3BlcnR5TmFtZSwgaW5m
bywgc3VwZXJCaW5kaW5nKTsKKyAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlR2V0dGVyT3JT
ZXR0ZXJQcm9wZXJ0eShsb2NhdGlvbiwgc3RhdGljX2Nhc3Q8UHJvcGVydHlOb2RlOjpUeXBlPih0
eXBlIHwgUHJvcGVydHlOb2RlOjpDb21wdXRlZCksIHN0cmljdCwgY29tcHV0ZWRQcm9wZXJ0eU5h
bWUsIGluZm8sIGlzQ2xhc3NQcm9wZXJ0eSk7CiAKLSAgICByZXR1cm4gY29udGV4dC5jcmVhdGVH
ZXR0ZXJPclNldHRlclByb3BlcnR5KGNvbnN0X2Nhc3Q8Vk0qPihtX3ZtKSwgbV9wYXJzZXJBcmVu
YSwgbG9jYXRpb24sIHR5cGUsIHN0cmljdCwgbnVtZXJpY1Byb3BlcnR5TmFtZSwgaW5mbywgc3Vw
ZXJCaW5kaW5nKTsKKyAgICByZXR1cm4gY29udGV4dC5jcmVhdGVHZXR0ZXJPclNldHRlclByb3Bl
cnR5KGNvbnN0X2Nhc3Q8Vk0qPihtX3ZtKSwgbV9wYXJzZXJBcmVuYSwgbG9jYXRpb24sIHR5cGUs
IHN0cmljdCwgbnVtZXJpY1Byb3BlcnR5TmFtZSwgaW5mbywgaXNDbGFzc1Byb3BlcnR5KTsKIH0K
IAogdGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KQEAgLTM4OTQsNyArMzg5OCw3IEBAIHRl
bXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3MKIAogICAgIGlmIChiYXNlSXNT
dXBlcikgewogICAgICAgICBTY29wZVJlZiBzY29wZVJlZiA9IGNsb3Nlc3RQYXJlbnRPcmRpbmFy
eUZ1bmN0aW9uTm9uTGV4aWNhbFNjb3BlKCk7Ci0gICAgICAgIHNlbWFudGljRmFpbElmRmFsc2Uo
Y3VycmVudFNjb3BlKCktPmlzRnVuY3Rpb24oKSB8fCAoc2NvcGVSZWYtPmlzRXZhbENvbnRleHQo
KSAmJiBzY29wZVJlZi0+ZXhwZWN0ZWRTdXBlckJpbmRpbmcoKSA9PSBTdXBlckJpbmRpbmc6Ok5l
ZWRlZCksICInc3VwZXInIGlzIG9ubHkgdmFsaWQgaW5zaWRlIGEgZnVuY3Rpb24gb3IgYW4gJ2V2
YWwnIGluc2lkZSBhIGZ1bmN0aW9uIik7CisgICAgICAgIHNlbWFudGljRmFpbElmRmFsc2UoY3Vy
cmVudFNjb3BlKCktPmlzRnVuY3Rpb24oKSB8fCAoc2NvcGVSZWYtPmlzRXZhbENvbnRleHQoKSAm
JiBzY29wZVJlZi0+ZXhwZWN0ZWRTdXBlckJpbmRpbmcoKSA9PSBTdXBlckJpbmRpbmc6Ok5lZWRl
ZCksICJzdXBlciBpcyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0Iik7CiAgICAgICAgIGJhc2Ug
PSBjb250ZXh0LmNyZWF0ZVN1cGVyRXhwcihsb2NhdGlvbik7CiAgICAgICAgIG5leHQoKTsKICAg
ICAgICAgY3VycmVudEZ1bmN0aW9uU2NvcGUoKS0+c2V0TmVlZHNTdXBlckJpbmRpbmcoKTsKQEAg
LTM5NzIsNyArMzk3Niw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJl
c3MKICAgICAgICAgYmFzZUlzU3VwZXIgPSBmYWxzZTsKICAgICB9CiBlbmRNZW1iZXJFeHByZXNz
aW9uOgotICAgIHNlbWFudGljRmFpbElmVHJ1ZShiYXNlSXNTdXBlciwgIkNhbm5vdCByZWZlcmVu
Y2Ugc3VwZXIiKTsKKyAgICBzZW1hbnRpY0ZhaWxJZlRydWUoYmFzZUlzU3VwZXIsICJzdXBlciBp
cyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0Iik7CiAgICAgd2hpbGUgKG5ld0NvdW50LS0pCiAg
ICAgICAgIGJhc2UgPSBjb250ZXh0LmNyZWF0ZU5ld0V4cHIobG9jYXRpb24sIGJhc2UsIGV4cHJl
c3Npb25TdGFydCwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSk7CiAgICAgcmV0dXJuIGJhc2U7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgJKHJldmlzaW9uIDE5OTgzNykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEzODksNyArMTM4OSw3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVC
dWlsZGVyPiBBTFdBWVNfSU5MSU5FIFRyZWVFeHByZXNzaW9uIHBhcnNlQXJndW1lbnQoVHJlZUJ1
aWxkZXImLCBBcmd1bWVudFR5cGUmKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+
IFRyZWVQcm9wZXJ0eSBwYXJzZVByb3BlcnR5KFRyZWVCdWlsZGVyJiwgYm9vbCBzdHJpY3QpOwog
ICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gcGFyc2VQcm9w
ZXJ0eU1ldGhvZChUcmVlQnVpbGRlciYgY29udGV4dCwgY29uc3QgSWRlbnRpZmllciogbWV0aG9k
TmFtZSwgYm9vbCBpc0dlbmVyYXRvcik7Ci0gICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBUcmVlUHJvcGVydHkgcGFyc2VHZXR0ZXJTZXR0ZXIoVHJlZUJ1aWxkZXImLCBib29sIHN0cmlj
dCwgUHJvcGVydHlOb2RlOjpUeXBlLCB1bnNpZ25lZCBnZXR0ZXJPclNldHRlclN0YXJ0T2Zmc2V0
LCBDb25zdHJ1Y3RvcktpbmQgPSBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIFN1cGVyQmluZGluZyA9
IFN1cGVyQmluZGluZzo6Tm90TmVlZGVkKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxk
ZXI+IFRyZWVQcm9wZXJ0eSBwYXJzZUdldHRlclNldHRlcihUcmVlQnVpbGRlciYsIGJvb2wgc3Ry
aWN0LCBQcm9wZXJ0eU5vZGU6OlR5cGUsIHVuc2lnbmVkIGdldHRlck9yU2V0dGVyU3RhcnRPZmZz
ZXQsIENvbnN0cnVjdG9yS2luZCwgYm9vbCBpc0NsYXNzUHJvcGVydHkpOwogICAgIHRlbXBsYXRl
IDxjbGFzcyBUcmVlQnVpbGRlcj4gQUxXQVlTX0lOTElORSBUcmVlRnVuY3Rpb25Cb2R5IHBhcnNl
RnVuY3Rpb25Cb2R5KFRyZWVCdWlsZGVyJiwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50LCBp
bnQgZnVuY3Rpb25LZXl3b3JkU3RhcnQsIGludCBmdW5jdGlvbk5hbWVTdGFydCwgaW50IHBhcmFt
ZXRlcnNTdGFydCwgQ29uc3RydWN0b3JLaW5kLCBTdXBlckJpbmRpbmcsIEZ1bmN0aW9uQm9keVR5
cGUsIHVuc2lnbmVkLCBTb3VyY2VQYXJzZU1vZGUpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVl
QnVpbGRlcj4gQUxXQVlTX0lOTElORSBib29sIHBhcnNlRm9ybWFsUGFyYW1ldGVycyhUcmVlQnVp
bGRlciYsIFRyZWVGb3JtYWxQYXJhbWV0ZXJMaXN0LCB1bnNpZ25lZCYpOwogICAgIGVudW0gVmFy
RGVjbGFyYXRpb25MaXN0Q29udGV4dCB7IEZvckxvb3BDb250ZXh0LCBWYXJEZWNsYXJhdGlvbkNv
bnRleHQgfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hl
Y2tlci5oCShyZXZpc2lvbiAxOTk4MzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1N5bnRheENoZWNrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjAyLDIwICsyMDIsMjAgQEAgcHVi
bGljOgogCiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgaW50KSB7IHJldHVybiBBcmd1bWVudHNMaXN0UmVzdWx0OyB9CiAgICAgaW50IGNyZWF0ZUFy
Z3VtZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50LCBpbnQpIHsgcmV0dXJuIEFy
Z3VtZW50c0xpc3RSZXN1bHQ7IH0KLSAgICBQcm9wZXJ0eSBjcmVhdGVQcm9wZXJ0eShjb25zdCBJ
ZGVudGlmaWVyKiBuYW1lLCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0eU5v
ZGU6OlB1dFR5cGUsIGJvb2wgY29tcGxldGUsIFN1cGVyQmluZGluZyA9IFN1cGVyQmluZGluZzo6
Tm90TmVlZGVkKQorICAgIFByb3BlcnR5IGNyZWF0ZVByb3BlcnR5KGNvbnN0IElkZW50aWZpZXIq
IG5hbWUsIGludCwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0VHlw
ZSwgYm9vbCBjb21wbGV0ZSwgU3VwZXJCaW5kaW5nLCBib29sKQogICAgIHsKICAgICAgICAgaWYg
KCFjb21wbGV0ZSkKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eSh0eXBlKTsKICAgICAgICAg
QVNTRVJUKG5hbWUpOwogICAgICAgICByZXR1cm4gUHJvcGVydHkobmFtZSwgdHlwZSk7CiAgICAg
fQotICAgIFByb3BlcnR5IGNyZWF0ZVByb3BlcnR5KFZNKiB2bSwgUGFyc2VyQXJlbmEmIHBhcnNl
ckFyZW5hLCBkb3VibGUgbmFtZSwgaW50LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVy
dHlOb2RlOjpQdXRUeXBlLCBib29sIGNvbXBsZXRlKQorICAgIFByb3BlcnR5IGNyZWF0ZVByb3Bl
cnR5KFZNKiB2bSwgUGFyc2VyQXJlbmEmIHBhcnNlckFyZW5hLCBkb3VibGUgbmFtZSwgaW50LCBQ
cm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlLCBib29sIGNvbXBs
ZXRlLCBTdXBlckJpbmRpbmcsIGJvb2wpCiAgICAgewogICAgICAgICBpZiAoIWNvbXBsZXRlKQog
ICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5KHR5cGUpOwogICAgICAgICByZXR1cm4gUHJvcGVy
dHkoJnBhcnNlckFyZW5hLmlkZW50aWZpZXJBcmVuYSgpLm1ha2VOdW1lcmljSWRlbnRpZmllcih2
bSwgbmFtZSksIHR5cGUpOwogICAgIH0KLSAgICBQcm9wZXJ0eSBjcmVhdGVQcm9wZXJ0eShpbnQs
IGludCwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0VHlwZSwgYm9v
bCwgU3VwZXJCaW5kaW5nID0gU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQpCisgICAgUHJvcGVydHkg
Y3JlYXRlUHJvcGVydHkoaW50LCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0
eU5vZGU6OlB1dFR5cGUsIGJvb2wsIFN1cGVyQmluZGluZywgYm9vbCkKICAgICB7CiAgICAgICAg
IHJldHVybiBQcm9wZXJ0eSh0eXBlKTsKICAgICB9CkBAIC0yNjksMTggKzI2OSwxOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhcHBlbmRFeHBvcnRTcGVjaWZpZXIoRXhwb3J0U3BlY2lmaWVyTGlzdCwg
RXhwb3J0U3BlY2lmaWVyKSB7IH0KIAogICAgIGludCBhcHBlbmRDb25zdERlY2woY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiwgaW50LCBjb25zdCBJZGVudGlmaWVyKiwgaW50KSB7IHJldHVybiBTdGF0
ZW1lbnRSZXN1bHQ7IH0KLSAgICBQcm9wZXJ0eSBjcmVhdGVHZXR0ZXJPclNldHRlclByb3BlcnR5
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBib29sIHN0
cmljdCwgY29uc3QgSWRlbnRpZmllciogbmFtZSwgY29uc3QgUGFyc2VyRnVuY3Rpb25JbmZvPFN5
bnRheENoZWNrZXI+JiwgU3VwZXJCaW5kaW5nKQorICAgIFByb3BlcnR5IGNyZWF0ZUdldHRlck9y
U2V0dGVyUHJvcGVydHkoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgUHJvcGVydHlOb2RlOjpUeXBl
IHR5cGUsIGJvb2wgc3RyaWN0LCBjb25zdCBJZGVudGlmaWVyKiBuYW1lLCBjb25zdCBQYXJzZXJG
dW5jdGlvbkluZm88U3ludGF4Q2hlY2tlcj4mLCBib29sKQogICAgIHsKICAgICAgICAgQVNTRVJU
KG5hbWUpOwogICAgICAgICBpZiAoIXN0cmljdCkKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0
eSh0eXBlKTsKICAgICAgICAgcmV0dXJuIFByb3BlcnR5KG5hbWUsIHR5cGUpOwogICAgIH0KLSAg
ICBQcm9wZXJ0eSBjcmVhdGVHZXR0ZXJPclNldHRlclByb3BlcnR5KGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBib29sLCBpbnQsIGNvbnN0IFBhcnNlckZ1
bmN0aW9uSW5mbzxTeW50YXhDaGVja2VyPiYsIFN1cGVyQmluZGluZykKKyAgICBQcm9wZXJ0eSBj
cmVhdGVHZXR0ZXJPclNldHRlclByb3BlcnR5KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFByb3Bl
cnR5Tm9kZTo6VHlwZSB0eXBlLCBib29sLCBpbnQsIGNvbnN0IFBhcnNlckZ1bmN0aW9uSW5mbzxT
eW50YXhDaGVja2VyPiYsIGJvb2wpCiAgICAgewogICAgICAgICByZXR1cm4gUHJvcGVydHkodHlw
ZSk7CiAgICAgfQotICAgIFByb3BlcnR5IGNyZWF0ZUdldHRlck9yU2V0dGVyUHJvcGVydHkoVk0q
IHZtLCBQYXJzZXJBcmVuYSYgcGFyc2VyQXJlbmEsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFBy
b3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBib29sIHN0cmljdCwgZG91YmxlIG5hbWUsIGNvbnN0IFBh
cnNlckZ1bmN0aW9uSW5mbzxTeW50YXhDaGVja2VyPiYsIFN1cGVyQmluZGluZykKKyAgICBQcm9w
ZXJ0eSBjcmVhdGVHZXR0ZXJPclNldHRlclByb3BlcnR5KFZNKiB2bSwgUGFyc2VyQXJlbmEmIHBh
cnNlckFyZW5hLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlw
ZSwgYm9vbCBzdHJpY3QsIGRvdWJsZSBuYW1lLCBjb25zdCBQYXJzZXJGdW5jdGlvbkluZm88U3lu
dGF4Q2hlY2tlcj4mLCBib29sKQogICAgIHsKICAgICAgICAgaWYgKCFzdHJpY3QpCiAgICAgICAg
ICAgICByZXR1cm4gUHJvcGVydHkodHlwZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2dlbmVyYXRvci13aXRoLXN1cGVyLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2VuZXJhdG9yLXdpdGgtc3VwZXIuanMJKHJl
dmlzaW9uIDE5OTgzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2Vu
ZXJhdG9yLXdpdGgtc3VwZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDcgQEAgZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewogICAgICAgICByZXR1cm4gZXZhbCgn
c3VwZXInKTsKICAgICB9CiAKLSAgICBzaG91bGRUaHJvdygoKSA9PiB0ZXN0KCksICJTeW50YXhF
cnJvcjogJ3N1cGVyJyBpcyBvbmx5IHZhbGlkIGluc2lkZSBhIGZ1bmN0aW9uIG9yIGFuICdldmFs
JyBpbnNpZGUgYSBmdW5jdGlvbi4iKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB0ZXN0KCksICJT
eW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4iKTsKIH0oKSk7
CiAKIChmdW5jdGlvbiAoKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL21vZHVsZXMtc3ludGF4LWVycm9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvbW9kdWxlcy1zeW50YXgtZXJyb3IuanMJKHJldmlzaW9uIDE5
OTgzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbW9kdWxlcy1zeW50
YXgtZXJyb3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTMwNywxMiArMzA3LDEyIEBAIG5ldy50YXJn
ZXQ7CiAKIGNoZWNrTW9kdWxlU3ludGF4RXJyb3IoU3RyaW5nLnJhd2AKIHN1cGVyKCk7Ci1gLCBg
U3ludGF4RXJyb3I6ICdzdXBlcicgaXMgb25seSB2YWxpZCBpbnNpZGUgYSBmdW5jdGlvbiBvciBh
biAnZXZhbCcgaW5zaWRlIGEgZnVuY3Rpb24uOjJgKTsKK2AsIGBTeW50YXhFcnJvcjogc3VwZXIg
aXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC46MmApOwogCiBjaGVja01vZHVsZVN5bnRheEVy
cm9yKFN0cmluZy5yYXdgCiBzdXBlci50ZXN0KCk7Ci1gLCBgU3ludGF4RXJyb3I6ICdzdXBlcicg
aXMgb25seSB2YWxpZCBpbnNpZGUgYSBmdW5jdGlvbiBvciBhbiAnZXZhbCcgaW5zaWRlIGEgZnVu
Y3Rpb24uOjJgKTsKK2AsIGBTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMg
Y29udGV4dC46MmApOwogCiBjaGVja01vZHVsZVN5bnRheEVycm9yKFN0cmluZy5yYXdgCiBzdXBl
ci50ZXN0ID0gMjA7Ci1gLCBgU3ludGF4RXJyb3I6ICdzdXBlcicgaXMgb25seSB2YWxpZCBpbnNp
ZGUgYSBmdW5jdGlvbiBvciBhbiAnZXZhbCcgaW5zaWRlIGEgZnVuY3Rpb24uOjJgKTsKK2AsIGBT
eW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC46MmApOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zdXBlci1pbi1sZXhpY2FsLXNj
b3BlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
c3VwZXItaW4tbGV4aWNhbC1zY29wZS5qcwkocmV2aXNpb24gMTk5ODM3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zdXBlci1pbi1sZXhpY2FsLXNjb3BlLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOCwzMyArMTgsMzMgQEAgZnVuY3Rpb24gdGVzdFN5bnRheEVycm9yKHNj
cmlwdCwgbWVzc2FnZQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHN5bnRheCBl
cnJvciBub3QgdGhyb3duIik7CiAKICAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gbWVzc2FnZSkK
LSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpICsg
IihFeHBlY3RlZDogIiArIG1lc3NhZ2UgKyAiKSIpOwogfQogCi10ZXN0U3ludGF4RXJyb3IoYHN1
cGVyKClgLCBgU3ludGF4RXJyb3I6ICdzdXBlcicgaXMgb25seSB2YWxpZCBpbnNpZGUgYSBmdW5j
dGlvbiBvciBhbiAnZXZhbCcgaW5zaWRlIGEgZnVuY3Rpb24uYCk7Ci10ZXN0U3ludGF4RXJyb3Io
YHN1cGVyLmhlbGxvKClgLCBgU3ludGF4RXJyb3I6ICdzdXBlcicgaXMgb25seSB2YWxpZCBpbnNp
ZGUgYSBmdW5jdGlvbiBvciBhbiAnZXZhbCcgaW5zaWRlIGEgZnVuY3Rpb24uYCk7Cit0ZXN0U3lu
dGF4RXJyb3IoYHN1cGVyKClgLCBgU3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0
aGlzIGNvbnRleHQuYCk7Cit0ZXN0U3ludGF4RXJyb3IoYHN1cGVyLmhlbGxvKClgLCBgU3ludGF4
RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuYCk7CiB0ZXN0U3ludGF4
RXJyb3IoYAogewogICAgIHN1cGVyKCk7CiB9Ci1gLCBgU3ludGF4RXJyb3I6ICdzdXBlcicgaXMg
b25seSB2YWxpZCBpbnNpZGUgYSBmdW5jdGlvbiBvciBhbiAnZXZhbCcgaW5zaWRlIGEgZnVuY3Rp
b24uYCk7CitgLCBgU3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRl
eHQuYCk7CiB0ZXN0U3ludGF4RXJyb3IoYAogewogICAgIHN1cGVyLmhlbGxvKCk7CiB9Ci1gLCBg
U3ludGF4RXJyb3I6ICdzdXBlcicgaXMgb25seSB2YWxpZCBpbnNpZGUgYSBmdW5jdGlvbiBvciBh
biAnZXZhbCcgaW5zaWRlIGEgZnVuY3Rpb24uYCk7CitgLCBgU3ludGF4RXJyb3I6IHN1cGVyIGlz
IG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuYCk7CiB0ZXN0U3ludGF4RXJyb3IoYAogZnVuY3Rp
b24gdGVzdCgpCiB7CiAgICAgc3VwZXIoKTsKIH0KLWAsIGBTeW50YXhFcnJvcjogQ2Fubm90IGNh
bGwgc3VwZXIoKSBvdXRzaWRlIG9mIGEgY2xhc3MgY29uc3RydWN0b3IuYCk7CitgLCBgU3ludGF4
RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuYCk7CiB0ZXN0U3ludGF4
RXJyb3IoYAogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgc3VwZXIuaGVsbG8oKTsKIH0KLWAsIGBT
eW50YXhFcnJvcjogc3VwZXIgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIG1ldGhvZCBvZiBhIGRlcml2
ZWQgY2xhc3MuYCk7CitgLCBgU3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlz
IGNvbnRleHQuYCk7CiB0ZXN0U3ludGF4RXJyb3IoYAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC01
Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBzdXBlcigpOwogICAgIH0KIH0K
LWAsIGBTeW50YXhFcnJvcjogQ2Fubm90IGNhbGwgc3VwZXIoKSBvdXRzaWRlIG9mIGEgY2xhc3Mg
Y29uc3RydWN0b3IuYCk7CitgLCBgU3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0
aGlzIGNvbnRleHQuYCk7CiB0ZXN0U3ludGF4RXJyb3IoYAogZnVuY3Rpb24gdGVzdCgpCiB7CkBA
IC02MCw0ICs2MCw0IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBzdXBlci5oZWxsbygpOwog
ICAgIH0KIH0KLWAsIGBTeW50YXhFcnJvcjogc3VwZXIgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIG1l
dGhvZCBvZiBhIGRlcml2ZWQgY2xhc3MuYCk7CitgLCBgU3ludGF4RXJyb3I6IHN1cGVyIGlzIG5v
dCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuYCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3RhZ2dlZC10ZW1wbGF0ZXMtc3ludGF4LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGFnZ2VkLXRlbXBsYXRlcy1zeW50YXgu
anMJKHJldmlzaW9uIDE5OTgzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvdGFnZ2VkLXRlbXBsYXRlcy1zeW50YXguanMJKHdvcmtpbmcgY29weSkKQEAgLTY2LDUgKzY2
LDUgQEAgdGVzdFN5bnRheCgiKGNsYXNzIGV4dGVuZHMgSGVsbG8geyBjb25zdAogdGVzdFN5bnRh
eCgiKGNsYXNzIGV4dGVuZHMgSGVsbG8geyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKWAke3RhZ30g
JHt0YWd9YCB9IH0pIik7CiB0ZXN0U3ludGF4KCIoY2xhc3MgZXh0ZW5kcyBIZWxsbyB7IGNvbnN0
cnVjdG9yKCkgeyBzdXBlcigpYCR7dGFnfSR7dGFnfWAgfSB9KSIpOwogCi10ZXN0U3ludGF4RXJy
b3IoInN1cGVyYEhlbGxvJHt0YWd9YCIsICJTeW50YXhFcnJvcjogJ3N1cGVyJyBpcyBvbmx5IHZh
bGlkIGluc2lkZSBhIGZ1bmN0aW9uIG9yIGFuICdldmFsJyBpbnNpZGUgYSBmdW5jdGlvbi4iKTsK
K3Rlc3RTeW50YXhFcnJvcigic3VwZXJgSGVsbG8ke3RhZ31gIiwgIlN5bnRheEVycm9yOiBzdXBl
ciBpcyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0LiIpOwogdGVzdFN5bnRheEVycm9yKCIoY2xh
c3MgeyBzYXkoKSB7IHN1cGVyYEhlbGxvJHt0YWd9YCB9IH0pIiwgIlN5bnRheEVycm9yOiBDYW5u
b3QgdXNlIHN1cGVyIGFzIHRhZyBmb3IgdGFnZ2VkIHRlbXBsYXRlcy4iKTsKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE5OTgzNykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE5IEBACisyMDE2LTA0LTIyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgc3VwZXIgc2hvdWxkIGJlIGF2YWlsYWJsZSBpbiBvYmplY3QgbGl0
ZXJhbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
NjkzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVw
ZGF0ZWQgZXhwZWN0ZWQgcmVzdWx0cyBhbmQgYWRkZWQgYSBmZXcgbmV3IHRlc3RzLgorCisgICAg
ICAgICoganMvYXJyb3dmdW5jdGlvbi1zeW50YXgtZXJyb3JzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBqcy9jbGFzcy1zeW50YXgtc3VwZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL29i
amVjdC1saXRlcmFsLW1ldGhvZHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3NjcmlwdC10
ZXN0cy9hcnJvd2Z1bmN0aW9uLXN5bnRheC1lcnJvcnMuanM6CisgICAgICAgICoganMvc2NyaXB0
LXRlc3RzL2NsYXNzLXN5bnRheC1zdXBlci5qczoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMv
b2JqZWN0LWxpdGVyYWwtbWV0aG9kcy5qczoKKwogMjAxNi0wNC0yMSAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9kZXJuIElEQiAoV29ya2Vycyk6IE1vcmUg
SURCQ29ubmVjdGlvblByb3h5IHJlZmFjdG9yaW5nLgpJbmRleDogTGF5b3V0VGVzdHMvanMvYXJy
b3dmdW5jdGlvbi1zeW50YXgtZXJyb3JzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9hcnJvd2Z1bmN0aW9uLXN5bnRheC1lcnJvcnMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxOTk4MzcpCisrKyBMYXlvdXRUZXN0cy9qcy9hcnJvd2Z1bmN0aW9uLXN5bnRheC1lcnJv
cnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsMjAgKzEzMSwyMCBAQCBQQVNT
IHZhciBhcnIxID0gW2EsIGJdID0+IGEgKyBiOyB0aHJldyBlCiBQQVNTIHZhciBhcnIyID0ge2Es
IGJ9ID0+IGEgKyBiOyB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9r
ZW4gJz0+Jy4gRXhwZWN0ZWQgJzsnIGFmdGVyIHZhcmlhYmxlIGRlY2xhcmF0aW9uLi4KIFBBU1Mg
dmFyIGFycjMgPSB7YzphLGQ6Yn0gPT4gYSArIGI7IHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJv
cjogVW5leHBlY3RlZCB0b2tlbiAnPT4nLiBFeHBlY3RlZCAnOycgYWZ0ZXIgdmFyaWFibGUgZGVj
bGFyYXRpb24uLgogUEFTUyB2YXIgYXJyMyA9IHtjOmIsZDphfSA9PiBhICsgYjsgdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICc9PicuIEV4cGVjdGVkICc7JyBh
ZnRlciB2YXJpYWJsZSBkZWNsYXJhdGlvbi4uCi1QQVNTIHZhciBhcnI0ID0gKCkgPT4geyBzdXBl
cigpOyB9OyB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IENhbm5vdCBjYWxsIHN1cGVyKCkg
b3V0c2lkZSBvZiBhIGNsYXNzIGNvbnN0cnVjdG9yLi4KLVBBU1MgdmFyIGFycjQgPSAoKSA9PiB7
IHN1cGVyOyB9OyB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IENhbm5vdCByZWZlcmVuY2Ug
c3VwZXIuLgotUEFTUyB2YXIgYXJyNSA9ICgpID0+IHsgc3VwZXIuZ2V0VmFsdWUoKTsgfTsgdGhy
ZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBzdXBlciBjYW4gb25seSBiZSB1c2VkIGluIGEgbWV0
aG9kIG9mIGEgZGVyaXZlZCBjbGFzcy4uCi1QQVNTIHZhciBhcnI2ID0gKCkgPT4gIHN1cGVyKCk7
IHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogQ2Fubm90IGNhbGwgc3VwZXIoKSBvdXRzaWRl
IG9mIGEgY2xhc3MgY29uc3RydWN0b3IuLgotUEFTUyB2YXIgYXJyNyA9ICgpID0+ICBzdXBlcjsg
dGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBDYW5ub3QgcmVmZXJlbmNlIHN1cGVyLi4KLVBB
U1MgdmFyIGFycjggPSAoKSA9PiAgc3VwZXIuZ2V0VmFsdWUoKTsgdGhyZXcgZXhjZXB0aW9uIFN5
bnRheEVycm9yOiBzdXBlciBjYW4gb25seSBiZSB1c2VkIGluIGEgbWV0aG9kIG9mIGEgZGVyaXZl
ZCBjbGFzcy4uCi1QQVNTIGNsYXNzIEEgeyBjb25zdHJ1Y3RvcigpIHsgZnVuY3Rpb24gYSAoKSB7
IHJldHVybiAoKSA9PiB7IHN1cGVyKCk7IH07fX0gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9y
OiBDYW5ub3QgY2FsbCBzdXBlcigpIG91dHNpZGUgb2YgYSBjbGFzcyBjb25zdHJ1Y3Rvci4uCi1Q
QVNTIGNsYXNzIEIgeyBjb25zdHJ1Y3RvcigpIHsgZnVuY3Rpb24gYiAoKSB7IHJldHVybiAoKSA9
PiB7IHN1cGVyOyB9OyB9OyB9fSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IENhbm5vdCBy
ZWZlcmVuY2Ugc3VwZXIuLgotUEFTUyBjbGFzcyBDIHsgY29uc3RydWN0b3IoKSB7IGZ1bmN0aW9u
IGMgKCkgeyByZXR1cm4gKCkgPT4geyBzdXBlci5nZXRWYWx1ZSgpOyB9O319IHRocmV3IGV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogc3VwZXIgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIG1ldGhvZCBvZiBh
IGRlcml2ZWQgY2xhc3MuLgotUEFTUyBjbGFzcyBEIHsgY29uc3RydWN0b3IoKSB7IGZ1bmN0aW9u
IGEgKCkgeyByZXR1cm4gKCkgPT4gc3VwZXIoKTsgfX0gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVy
cm9yOiBDYW5ub3QgY2FsbCBzdXBlcigpIG91dHNpZGUgb2YgYSBjbGFzcyBjb25zdHJ1Y3Rvci4u
Ci1QQVNTIGNsYXNzIEUgeyBjb25zdHJ1Y3RvcigpIHsgZnVuY3Rpb24gYiAoKSB7IHJldHVybiAo
KSA9PiBzdXBlcjsgfTsgfX0gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBDYW5ub3QgcmVm
ZXJlbmNlIHN1cGVyLi4KLVBBU1MgY2xhc3MgRiB7IGNvbnN0cnVjdG9yKCkgeyBmdW5jdGlvbiBj
ICgpIHsgcmV0dXJuICgpID0+IHN1cGVyLmdldFZhbHVlKCk7IH19IHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogc3VwZXIgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIG1ldGhvZCBvZiBhIGRlcml2
ZWQgY2xhc3MuLgotUEFTUyBjbGFzcyBHIHt9OyBjbGFzcyBHMiBleHRlbmRzIEcgeyBnZXRWYWx1
ZSgpIHsgZnVuY3Rpb24gYyAoKSB7IHJldHVybiAoKSA9PiBzdXBlci5nZXRWYWx1ZSgpOyB9fSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IHN1cGVyIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBt
ZXRob2Qgb2YgYSBkZXJpdmVkIGNsYXNzLi4KLVBBU1MgY2xhc3MgSCB7fTsgY2xhc3MgSDIgZXh0
ZW5kcyBIIHsgbWV0aG9kKCkgeyBmdW5jdGlvbiAqZ2VuKCkgeyBsZXQgYXJyID0gKCkgPT4gc3Vw
ZXIuZ2V0VmFsdWUoKTsgYXJyKCk7IH0gfSB9IHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjog
c3VwZXIgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIG1ldGhvZCBvZiBhIGRlcml2ZWQgY2xhc3MuLgor
UEFTUyB2YXIgYXJyNCA9ICgpID0+IHsgc3VwZXIoKTsgfTsgdGhyZXcgZXhjZXB0aW9uIFN5bnRh
eEVycm9yOiBzdXBlciBpcyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0Li4KK1BBU1MgdmFyIGFy
cjQgPSAoKSA9PiB7IHN1cGVyOyB9OyB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IHN1cGVy
IGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuLgorUEFTUyB2YXIgYXJyNSA9ICgpID0+IHsg
c3VwZXIuZ2V0VmFsdWUoKTsgfTsgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBzdXBlciBp
cyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0Li4KK1BBU1MgdmFyIGFycjYgPSAoKSA9PiAgc3Vw
ZXIoKTsgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBzdXBlciBpcyBub3QgdmFsaWQgaW4g
dGhpcyBjb250ZXh0Li4KK1BBU1MgdmFyIGFycjcgPSAoKSA9PiAgc3VwZXI7IHRocmV3IGV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4uCitQ
QVNTIHZhciBhcnI4ID0gKCkgPT4gIHN1cGVyLmdldFZhbHVlKCk7IHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4uCitQQVNTIGNs
YXNzIEEgeyBjb25zdHJ1Y3RvcigpIHsgZnVuY3Rpb24gYSAoKSB7IHJldHVybiAoKSA9PiB7IHN1
cGVyKCk7IH07fX0gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBzdXBlciBpcyBub3QgdmFs
aWQgaW4gdGhpcyBjb250ZXh0Li4KK1BBU1MgY2xhc3MgQiB7IGNvbnN0cnVjdG9yKCkgeyBmdW5j
dGlvbiBiICgpIHsgcmV0dXJuICgpID0+IHsgc3VwZXI7IH07IH07IH19IHRocmV3IGV4Y2VwdGlv
biBTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4uCitQQVNT
IGNsYXNzIEMgeyBjb25zdHJ1Y3RvcigpIHsgZnVuY3Rpb24gYyAoKSB7IHJldHVybiAoKSA9PiB7
IHN1cGVyLmdldFZhbHVlKCk7IH07fX0gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBzdXBl
ciBpcyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0Li4KK1BBU1MgY2xhc3MgRCB7IGNvbnN0cnVj
dG9yKCkgeyBmdW5jdGlvbiBhICgpIHsgcmV0dXJuICgpID0+IHN1cGVyKCk7IH19IHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4u
CitQQVNTIGNsYXNzIEUgeyBjb25zdHJ1Y3RvcigpIHsgZnVuY3Rpb24gYiAoKSB7IHJldHVybiAo
KSA9PiBzdXBlcjsgfTsgfX0gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBzdXBlciBpcyBu
b3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0Li4KK1BBU1MgY2xhc3MgRiB7IGNvbnN0cnVjdG9yKCkg
eyBmdW5jdGlvbiBjICgpIHsgcmV0dXJuICgpID0+IHN1cGVyLmdldFZhbHVlKCk7IH19IHRocmV3
IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4
dC4uCitQQVNTIGNsYXNzIEcge307IGNsYXNzIEcyIGV4dGVuZHMgRyB7IGdldFZhbHVlKCkgeyBm
dW5jdGlvbiBjICgpIHsgcmV0dXJuICgpID0+IHN1cGVyLmdldFZhbHVlKCk7IH19IHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4u
CitQQVNTIGNsYXNzIEgge307IGNsYXNzIEgyIGV4dGVuZHMgSCB7IG1ldGhvZCgpIHsgZnVuY3Rp
b24gKmdlbigpIHsgbGV0IGFyciA9ICgpID0+IHN1cGVyLmdldFZhbHVlKCk7IGFycigpOyB9IH0g
fSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlz
IGNvbnRleHQuLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtc3VwZXItZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1zdXBlci1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDE5OTgzNykKKysrIExheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1z
dXBlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2LDggKzE2LDggQEAgUEFTUyAo
bmV3IERlcml2ZWQpLmJhc2VNZXRob2RJbkdldHRlclNldAogUEFTUyBEZXJpdmVkLnN0YXRpY01l
dGhvZCgpOjo6ImJhc2UzIgogUEFTUyAobmV3IFNlY29uZERlcml2ZWQpLmNoYWluTWV0aG9kKCku
dG9TdHJpbmcoKTo6OlsiYmFzZSIsICJkZXJpdmVkIiwgInNlY29uZERlcml2ZWQiXS50b1N0cmlu
ZygpCiBQQVNTIHggPSBjbGFzcyBleHRlbmRzIEJhc2UgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIo
KTsgfSBzdXBlcigpIHt9IH0KLVBBU1MgeCA9IGNsYXNzIGV4dGVuZHMgQmFzZSB7IGNvbnN0cnVj
dG9yKCkgeyBzdXBlcigpOyB9IG1ldGhvZCgpIHsgc3VwZXIoKSB9IH06OjpTeW50YXhFcnJvcjog
Q2Fubm90IGNhbGwgc3VwZXIoKSBvdXRzaWRlIG9mIGEgY2xhc3MgY29uc3RydWN0b3IuCi1QQVNT
IHggPSBjbGFzcyBleHRlbmRzIEJhc2UgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfSBtZXRo
b2QoKSB7IHN1cGVyIH0gfTo6OlN5bnRheEVycm9yOiBDYW5ub3QgcmVmZXJlbmNlIHN1cGVyLgor
UEFTUyB4ID0gY2xhc3MgZXh0ZW5kcyBCYXNlIHsgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH0g
bWV0aG9kKCkgeyBzdXBlcigpIH0gfTo6OlN5bnRheEVycm9yOiBzdXBlciBpcyBub3QgdmFsaWQg
aW4gdGhpcyBjb250ZXh0LgorUEFTUyB4ID0gY2xhc3MgZXh0ZW5kcyBCYXNlIHsgY29uc3RydWN0
b3IoKSB7IHN1cGVyKCk7IH0gbWV0aG9kKCkgeyBzdXBlciB9IH06OjpTeW50YXhFcnJvcjogc3Vw
ZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4KIFBBU1MgeCA9IGNsYXNzIGV4dGVuZHMg
QmFzZSB7IGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9IG1ldGhvZCgpIHsgcmV0dXJuIG5ldyBz
dXBlciB9IH06OjpTeW50YXhFcnJvcjogQ2Fubm90IHVzZSBuZXcgd2l0aCBzdXBlci4KIFBBU1Mg
eCA9IGNsYXNzIGV4dGVuZHMgQmFzZSB7IGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9IG1ldGhv
ZDEoKSB7IGRlbGV0ZSAoc3VwZXIuZm9vKSB9IG1ldGhvZDIoKSB7IGRlbGV0ZSBzdXBlclsiZm9v
Il0gfSB9CiBQQVNTIChuZXcgeCkubWV0aG9kMSgpOjo6UmVmZXJlbmNlRXJyb3I6IENhbm5vdCBk
ZWxldGUgYSBzdXBlciBwcm9wZXJ0eQpAQCAtMzcsMTggKzM3LDE4IEBAIFBBU1MgeCBpbnN0YW5j
ZW9mIE9iamVjdAogUEFTUyBuZXcgKGNsYXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVjdG9yKCkg
eyB9IH0pOjo6UmVmZXJlbmNlRXJyb3I6IENhbm5vdCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2YXJp
YWJsZS4KIFBBU1MgbmV3IChjbGFzcyBleHRlbmRzIG51bGwgeyBjb25zdHJ1Y3RvcigpIHsgcmV0
dXJuIDE7IH0gfSk6OjpUeXBlRXJyb3I6IENhbm5vdCByZXR1cm4gYSBub24tb2JqZWN0IHR5cGUg
aW4gdGhlIGNvbnN0cnVjdG9yIG9mIGEgZGVyaXZlZCBjbGFzcy4KIFBBU1MgbmV3IChjbGFzcyBl
eHRlbmRzIG51bGwgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKSB9IH0pOjo6VHlwZUVycm9yOiBm
dW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnc3VwZXIoKScpCi1QQVNT
IG5ldyAoY2xhc3MgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKSB9IH0pOjo6U3ludGF4RXJyb3I6
IENhbm5vdCBjYWxsIHN1cGVyKCkgaW4gYSBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLgotUEFTUyBm
dW5jdGlvbiB4KCkgeyBzdXBlcigpOyB9Ojo6U3ludGF4RXJyb3I6IENhbm5vdCBjYWxsIHN1cGVy
KCkgb3V0c2lkZSBvZiBhIGNsYXNzIGNvbnN0cnVjdG9yLgotUEFTUyBuZXcgKGNsYXNzIGV4dGVu
ZHMgT2JqZWN0IHsgY29uc3RydWN0b3IoKSB7IGZ1bmN0aW9uIHgoKSB7IHN1cGVyKCkgfSB9IH0p
Ojo6U3ludGF4RXJyb3I6IENhbm5vdCBjYWxsIHN1cGVyKCkgb3V0c2lkZSBvZiBhIGNsYXNzIGNv
bnN0cnVjdG9yLgotUEFTUyBuZXcgKGNsYXNzIGV4dGVuZHMgT2JqZWN0IHsgY29uc3RydWN0b3Io
KSB7IGZ1bmN0aW9uIHgoKSB7IHN1cGVyLm1ldGhvZCB9IH0gfSk6OjpTeW50YXhFcnJvcjogc3Vw
ZXIgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIG1ldGhvZCBvZiBhIGRlcml2ZWQgY2xhc3MuCi1QQVNT
IGZ1bmN0aW9uIHgoKSB7IHN1cGVyLm1ldGhvZCgpOyB9Ojo6U3ludGF4RXJyb3I6IHN1cGVyIGNh
biBvbmx5IGJlIHVzZWQgaW4gYSBtZXRob2Qgb2YgYSBkZXJpdmVkIGNsYXNzLgotUEFTUyBmdW5j
dGlvbiB4KCkgeyBzdXBlcigpOyB9Ojo6U3ludGF4RXJyb3I6IENhbm5vdCBjYWxsIHN1cGVyKCkg
b3V0c2lkZSBvZiBhIGNsYXNzIGNvbnN0cnVjdG9yLgotUEFTUyBldmFsKCJzdXBlci5tZXRob2Qo
KSIpOjo6U3ludGF4RXJyb3I6ICdzdXBlcicgaXMgb25seSB2YWxpZCBpbnNpZGUgYSBmdW5jdGlv
biBvciBhbiAnZXZhbCcgaW5zaWRlIGEgZnVuY3Rpb24uCi1QQVNTIGV2YWwoInN1cGVyKCkiKTo6
OlN5bnRheEVycm9yOiAnc3VwZXInIGlzIG9ubHkgdmFsaWQgaW5zaWRlIGEgZnVuY3Rpb24gb3Ig
YW4gJ2V2YWwnIGluc2lkZSBhIGZ1bmN0aW9uLgotUEFTUyAoZnVuY3Rpb24gKCkgeyBldmFsKCJz
dXBlci5tZXRob2QoKSIpO30pKCk6OjpTeW50YXhFcnJvcjogJ3N1cGVyJyBpcyBvbmx5IHZhbGlk
IGluc2lkZSBhIGZ1bmN0aW9uIG9yIGFuICdldmFsJyBpbnNpZGUgYSBmdW5jdGlvbi4KLVBBU1Mg
KGZ1bmN0aW9uICgpIHsgZXZhbCgic3VwZXIoKSIpO30pKCk6OjpTeW50YXhFcnJvcjogJ3N1cGVy
JyBpcyBvbmx5IHZhbGlkIGluc2lkZSBhIGZ1bmN0aW9uIG9yIGFuICdldmFsJyBpbnNpZGUgYSBm
dW5jdGlvbi4KLVBBU1MgbmV3IChjbGFzcyB7IGNvbnN0cnVjdG9yKCkgeyAoZnVuY3Rpb24gKCkg
eyBldmFsKCJzdXBlcigpIik7fSkoKTsgfSB9KTo6OlN5bnRheEVycm9yOiAnc3VwZXInIGlzIG9u
bHkgdmFsaWQgaW5zaWRlIGEgZnVuY3Rpb24gb3IgYW4gJ2V2YWwnIGluc2lkZSBhIGZ1bmN0aW9u
LgotUEFTUyAobmV3IChjbGFzcyB7IG1ldGhvZCgpIHsgKGZ1bmN0aW9uICgpIHsgZXZhbCgic3Vw
ZXIubWV0aG9kKCkiKTt9KSgpOyB9fSkpLm1ldGhvZCgpOjo6U3ludGF4RXJyb3I6ICdzdXBlcicg
aXMgb25seSB2YWxpZCBpbnNpZGUgYSBmdW5jdGlvbiBvciBhbiAnZXZhbCcgaW5zaWRlIGEgZnVu
Y3Rpb24uCitQQVNTIG5ldyAoY2xhc3MgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKSB9IH0pOjo6
U3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuCitQQVNTIGZ1
bmN0aW9uIHgoKSB7IHN1cGVyKCk7IH06OjpTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlk
IGluIHRoaXMgY29udGV4dC4KK1BBU1MgbmV3IChjbGFzcyBleHRlbmRzIE9iamVjdCB7IGNvbnN0
cnVjdG9yKCkgeyBmdW5jdGlvbiB4KCkgeyBzdXBlcigpIH0gfSB9KTo6OlN5bnRheEVycm9yOiBz
dXBlciBpcyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0LgorUEFTUyBuZXcgKGNsYXNzIGV4dGVu
ZHMgT2JqZWN0IHsgY29uc3RydWN0b3IoKSB7IGZ1bmN0aW9uIHgoKSB7IHN1cGVyLm1ldGhvZCB9
IH0gfSk6OjpTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4K
K1BBU1MgZnVuY3Rpb24geCgpIHsgc3VwZXIubWV0aG9kKCk7IH06OjpTeW50YXhFcnJvcjogc3Vw
ZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4KK1BBU1MgZnVuY3Rpb24geCgpIHsgc3Vw
ZXIoKTsgfTo6OlN5bnRheEVycm9yOiBzdXBlciBpcyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0
LgorUEFTUyBldmFsKCJzdXBlci5tZXRob2QoKSIpOjo6U3ludGF4RXJyb3I6IHN1cGVyIGlzIG5v
dCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuCitQQVNTIGV2YWwoInN1cGVyKCkiKTo6OlN5bnRheEVy
cm9yOiBzdXBlciBpcyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0LgorUEFTUyAoZnVuY3Rpb24g
KCkgeyBldmFsKCJzdXBlci5tZXRob2QoKSIpO30pKCk6OjpTeW50YXhFcnJvcjogc3VwZXIgaXMg
bm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4KK1BBU1MgKGZ1bmN0aW9uICgpIHsgZXZhbCgic3Vw
ZXIoKSIpO30pKCk6OjpTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29u
dGV4dC4KK1BBU1MgbmV3IChjbGFzcyB7IGNvbnN0cnVjdG9yKCkgeyAoZnVuY3Rpb24gKCkgeyBl
dmFsKCJzdXBlcigpIik7fSkoKTsgfSB9KTo6OlN5bnRheEVycm9yOiBzdXBlciBpcyBub3QgdmFs
aWQgaW4gdGhpcyBjb250ZXh0LgorUEFTUyAobmV3IChjbGFzcyB7IG1ldGhvZCgpIHsgKGZ1bmN0
aW9uICgpIHsgZXZhbCgic3VwZXIubWV0aG9kKCkiKTt9KSgpOyB9fSkpLm1ldGhvZCgpOjo6U3lu
dGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZAogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9vYmpl
Y3QtbGl0ZXJhbC1tZXRob2RzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9vYmplY3QtbGl0ZXJhbC1tZXRob2RzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTk5ODM3
KQorKysgTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtbWV0aG9kcy1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDEyIEBAIFBBU1MgKHsgZm9vKGEsIGIpIHsgaWYg
fSwgYmFyKCl7fSB9KSB0aHIKIFBBU1MgKHtfX3Byb3RvX186IGZ1bmN0aW9uKCl7fX0pIGluc3Rh
bmNlb2YgRnVuY3Rpb24gaXMgdHJ1ZQogUEFTUyAoe19fcHJvdG9fXygpe319KSBpbnN0YW5jZW9m
IEZ1bmN0aW9uIGlzIGZhbHNlCiBQQVNTICh7X19wcm90b19fKCl7fX0pLl9fcHJvdG9fXyBpbnN0
YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKK1BBU1MgeyBmKCkgeyByZXR1cm4gc3VwZXIuZigpOyB9
IH0uZigpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAneycu
CitQQVNTIG5ldyAoeyBmKCkgeyByZXR1cm4gc3VwZXIoKTsgfS5mKSB0aHJldyBleGNlcHRpb24g
U3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuLgorUEFTUyBv
ID0geyBmKCkgeyB9IH07IG5ldyAoeyBfX3Byb3RvX186IG8sIGYoKSB7IHJldHVybiBzdXBlcigp
OyB9IH0pLmYgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBzdXBlciBpcyBub3QgdmFsaWQg
aW4gdGhpcyBjb250ZXh0Li4KK1BBU1MgbyA9IHsgZigpIHsgcmV0dXJuIHRydWU7IH0gfTsgKHsg
X19wcm90b19fOiBvLCBmKCkgeyByZXR1cm4gc3VwZXIuZigpOyB9IH0pLmYoKSBpcyB0cnVlCitQ
QVNTIG8gPSB7IGdldCBwKCkgeyByZXR1cm4gdHJ1ZTsgfSB9OyAoeyBfX3Byb3RvX186IG8sIGdl
dCBwKCkgeyByZXR1cm4gc3VwZXIucDsgfSB9KS5wIGlzIHRydWUKK1BBU1MgbyA9IHsgc2V0IHAo
cDIpIHsgfSB9OyAoeyBfX3Byb3RvX186IG8sIHNldCBwKHAyKSB7IHN1cGVyLnAgPSBwMjsgfSB9
KS5wID0gdHJ1ZSBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9hcnJvd2Z1bmN0
aW9uLXN5bnRheC1lcnJvcnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL2Fycm93ZnVuY3Rpb24tc3ludGF4LWVycm9ycy5qcwkocmV2aXNpb24gMTk5ODM3KQor
KysgTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2Fycm93ZnVuY3Rpb24tc3ludGF4LWVycm9y
cy5qcwkod29ya2luZyBjb3B5KQpAQCAtNDgsMjIgKzQ4LDIyIEBAIHNob3VsZFRocm93KCd2YXIg
YXJyMiA9IHthLCBifSA9PiBhICsgYjsKIHNob3VsZFRocm93KCd2YXIgYXJyMyA9IHtjOmEsZDpi
fSA9PiBhICsgYjsnKTsKIHNob3VsZFRocm93KCd2YXIgYXJyMyA9IHtjOmIsZDphfSA9PiBhICsg
YjsnKTsKIAotc2hvdWxkVGhyb3coJ3ZhciBhcnI0ID0gKCkgPT4geyBzdXBlcigpOyB9OycsICci
U3ludGF4RXJyb3I6IENhbm5vdCBjYWxsIHN1cGVyKCkgb3V0c2lkZSBvZiBhIGNsYXNzIGNvbnN0
cnVjdG9yLiInKTsKLXNob3VsZFRocm93KCd2YXIgYXJyNCA9ICgpID0+IHsgc3VwZXI7IH07Jywg
JyJTeW50YXhFcnJvcjogQ2Fubm90IHJlZmVyZW5jZSBzdXBlci4iJyk7Ci1zaG91bGRUaHJvdygn
dmFyIGFycjUgPSAoKSA9PiB7IHN1cGVyLmdldFZhbHVlKCk7IH07JywgJyJTeW50YXhFcnJvcjog
c3VwZXIgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIG1ldGhvZCBvZiBhIGRlcml2ZWQgY2xhc3MuIicp
Oworc2hvdWxkVGhyb3coJ3ZhciBhcnI0ID0gKCkgPT4geyBzdXBlcigpOyB9OycsICciU3ludGF4
RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuIicpOworc2hvdWxkVGhy
b3coJ3ZhciBhcnI0ID0gKCkgPT4geyBzdXBlcjsgfTsnLCAnIlN5bnRheEVycm9yOiBzdXBlciBp
cyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCd2YXIgYXJyNSA9
ICgpID0+IHsgc3VwZXIuZ2V0VmFsdWUoKTsgfTsnLCAnIlN5bnRheEVycm9yOiBzdXBlciBpcyBu
b3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0LiInKTsKIAotc2hvdWxkVGhyb3coJ3ZhciBhcnI2ID0g
KCkgPT4gIHN1cGVyKCk7JywgJyJTeW50YXhFcnJvcjogQ2Fubm90IGNhbGwgc3VwZXIoKSBvdXRz
aWRlIG9mIGEgY2xhc3MgY29uc3RydWN0b3IuIicpOwotc2hvdWxkVGhyb3coJ3ZhciBhcnI3ID0g
KCkgPT4gIHN1cGVyOycsICciU3ludGF4RXJyb3I6IENhbm5vdCByZWZlcmVuY2Ugc3VwZXIuIicp
Owotc2hvdWxkVGhyb3coJ3ZhciBhcnI4ID0gKCkgPT4gIHN1cGVyLmdldFZhbHVlKCk7JywgJyJT
eW50YXhFcnJvcjogc3VwZXIgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIG1ldGhvZCBvZiBhIGRlcml2
ZWQgY2xhc3MuIicpOworc2hvdWxkVGhyb3coJ3ZhciBhcnI2ID0gKCkgPT4gIHN1cGVyKCk7Jywg
JyJTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4iJyk7Citz
aG91bGRUaHJvdygndmFyIGFycjcgPSAoKSA9PiAgc3VwZXI7JywgJyJTeW50YXhFcnJvcjogc3Vw
ZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygndmFyIGFy
cjggPSAoKSA9PiAgc3VwZXIuZ2V0VmFsdWUoKTsnLCAnIlN5bnRheEVycm9yOiBzdXBlciBpcyBu
b3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0LiInKTsKIAotc2hvdWxkVGhyb3coJ2NsYXNzIEEgeyBj
b25zdHJ1Y3RvcigpIHsgZnVuY3Rpb24gYSAoKSB7IHJldHVybiAoKSA9PiB7IHN1cGVyKCk7IH07
fX0nLCAnIlN5bnRheEVycm9yOiBDYW5ub3QgY2FsbCBzdXBlcigpIG91dHNpZGUgb2YgYSBjbGFz
cyBjb25zdHJ1Y3Rvci4iJyk7Ci1zaG91bGRUaHJvdygnY2xhc3MgQiB7IGNvbnN0cnVjdG9yKCkg
eyBmdW5jdGlvbiBiICgpIHsgcmV0dXJuICgpID0+IHsgc3VwZXI7IH07IH07IH19JywgJyJTeW50
YXhFcnJvcjogQ2Fubm90IHJlZmVyZW5jZSBzdXBlci4iJyk7Ci1zaG91bGRUaHJvdygnY2xhc3Mg
QyB7IGNvbnN0cnVjdG9yKCkgeyBmdW5jdGlvbiBjICgpIHsgcmV0dXJuICgpID0+IHsgc3VwZXIu
Z2V0VmFsdWUoKTsgfTt9fScsICciU3ludGF4RXJyb3I6IHN1cGVyIGNhbiBvbmx5IGJlIHVzZWQg
aW4gYSBtZXRob2Qgb2YgYSBkZXJpdmVkIGNsYXNzLiInKTsKK3Nob3VsZFRocm93KCdjbGFzcyBB
IHsgY29uc3RydWN0b3IoKSB7IGZ1bmN0aW9uIGEgKCkgeyByZXR1cm4gKCkgPT4geyBzdXBlcigp
OyB9O319JywgJyJTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4
dC4iJyk7CitzaG91bGRUaHJvdygnY2xhc3MgQiB7IGNvbnN0cnVjdG9yKCkgeyBmdW5jdGlvbiBi
ICgpIHsgcmV0dXJuICgpID0+IHsgc3VwZXI7IH07IH07IH19JywgJyJTeW50YXhFcnJvcjogc3Vw
ZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnY2xhc3Mg
QyB7IGNvbnN0cnVjdG9yKCkgeyBmdW5jdGlvbiBjICgpIHsgcmV0dXJuICgpID0+IHsgc3VwZXIu
Z2V0VmFsdWUoKTsgfTt9fScsICciU3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0
aGlzIGNvbnRleHQuIicpOwogCi1zaG91bGRUaHJvdygnY2xhc3MgRCB7IGNvbnN0cnVjdG9yKCkg
eyBmdW5jdGlvbiBhICgpIHsgcmV0dXJuICgpID0+IHN1cGVyKCk7IH19JywgJyJTeW50YXhFcnJv
cjogQ2Fubm90IGNhbGwgc3VwZXIoKSBvdXRzaWRlIG9mIGEgY2xhc3MgY29uc3RydWN0b3IuIicp
Owotc2hvdWxkVGhyb3coJ2NsYXNzIEUgeyBjb25zdHJ1Y3RvcigpIHsgZnVuY3Rpb24gYiAoKSB7
IHJldHVybiAoKSA9PiBzdXBlcjsgfTsgfX0nLCAnIlN5bnRheEVycm9yOiBDYW5ub3QgcmVmZXJl
bmNlIHN1cGVyLiInKTsKLXNob3VsZFRocm93KCdjbGFzcyBGIHsgY29uc3RydWN0b3IoKSB7IGZ1
bmN0aW9uIGMgKCkgeyByZXR1cm4gKCkgPT4gc3VwZXIuZ2V0VmFsdWUoKTsgfX0nLCAnIlN5bnRh
eEVycm9yOiBzdXBlciBjYW4gb25seSBiZSB1c2VkIGluIGEgbWV0aG9kIG9mIGEgZGVyaXZlZCBj
bGFzcy4iJyk7Ci1zaG91bGRUaHJvdygnY2xhc3MgRyB7fTsgY2xhc3MgRzIgZXh0ZW5kcyBHIHsg
Z2V0VmFsdWUoKSB7IGZ1bmN0aW9uIGMgKCkgeyByZXR1cm4gKCkgPT4gc3VwZXIuZ2V0VmFsdWUo
KTsgfX0nLCAnIlN5bnRheEVycm9yOiBzdXBlciBjYW4gb25seSBiZSB1c2VkIGluIGEgbWV0aG9k
IG9mIGEgZGVyaXZlZCBjbGFzcy4iJyk7Ci1zaG91bGRUaHJvdygnY2xhc3MgSCB7fTsgY2xhc3Mg
SDIgZXh0ZW5kcyBIIHsgbWV0aG9kKCkgeyBmdW5jdGlvbiAqZ2VuKCkgeyBsZXQgYXJyID0gKCkg
PT4gc3VwZXIuZ2V0VmFsdWUoKTsgYXJyKCk7IH0gfSB9JywgJyJTeW50YXhFcnJvcjogc3VwZXIg
Y2FuIG9ubHkgYmUgdXNlZCBpbiBhIG1ldGhvZCBvZiBhIGRlcml2ZWQgY2xhc3MuIicpOworc2hv
dWxkVGhyb3coJ2NsYXNzIEQgeyBjb25zdHJ1Y3RvcigpIHsgZnVuY3Rpb24gYSAoKSB7IHJldHVy
biAoKSA9PiBzdXBlcigpOyB9fScsICciU3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBp
biB0aGlzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJ2NsYXNzIEUgeyBjb25zdHJ1Y3Rvcigp
IHsgZnVuY3Rpb24gYiAoKSB7IHJldHVybiAoKSA9PiBzdXBlcjsgfTsgfX0nLCAnIlN5bnRheEVy
cm9yOiBzdXBlciBpcyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93
KCdjbGFzcyBGIHsgY29uc3RydWN0b3IoKSB7IGZ1bmN0aW9uIGMgKCkgeyByZXR1cm4gKCkgPT4g
c3VwZXIuZ2V0VmFsdWUoKTsgfX0nLCAnIlN5bnRheEVycm9yOiBzdXBlciBpcyBub3QgdmFsaWQg
aW4gdGhpcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCdjbGFzcyBHIHt9OyBjbGFzcyBHMiBl
eHRlbmRzIEcgeyBnZXRWYWx1ZSgpIHsgZnVuY3Rpb24gYyAoKSB7IHJldHVybiAoKSA9PiBzdXBl
ci5nZXRWYWx1ZSgpOyB9fScsICciU3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0
aGlzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJ2NsYXNzIEgge307IGNsYXNzIEgyIGV4dGVu
ZHMgSCB7IG1ldGhvZCgpIHsgZnVuY3Rpb24gKmdlbigpIHsgbGV0IGFyciA9ICgpID0+IHN1cGVy
LmdldFZhbHVlKCk7IGFycigpOyB9IH0gfScsICciU3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2
YWxpZCBpbiB0aGlzIGNvbnRleHQuIicpOwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKSW5kZXg6IExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtc3VwZXIu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRh
eC1zdXBlci5qcwkocmV2aXNpb24gMTk5ODM3KQorKysgTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRl
c3RzL2NsYXNzLXN5bnRheC1zdXBlci5qcwkod29ya2luZyBjb3B5KQpAQCAtOTksOCArOTksOCBA
QCBzaG91bGRCZSgnRGVyaXZlZC5zdGF0aWNNZXRob2QoKScsICciYmFzCiBzaG91bGRCZSgnKG5l
dyBTZWNvbmREZXJpdmVkKS5jaGFpbk1ldGhvZCgpLnRvU3RyaW5nKCknLCAnWyJiYXNlIiwgImRl
cml2ZWQiLCAic2Vjb25kRGVyaXZlZCJdLnRvU3RyaW5nKCknKTsKIHNob3VsZE5vdFRocm93KCd4
ID0gY2xhc3MgZXh0ZW5kcyBCYXNlIHsgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH0gc3VwZXIo
KSB7fSB9Jyk7CiBzaG91bGRUaHJvdygneCA9IGNsYXNzIGV4dGVuZHMgQmFzZSB7IGNvbnN0cnVj
dG9yKCkgeyBzdXBlcigpOyB9IG1ldGhvZCgpIHsgc3VwZXIoKSB9IH0nLAotICAgICciU3ludGF4
RXJyb3I6IENhbm5vdCBjYWxsIHN1cGVyKCkgb3V0c2lkZSBvZiBhIGNsYXNzIGNvbnN0cnVjdG9y
LiInKTsKLXNob3VsZFRocm93KCd4ID0gY2xhc3MgZXh0ZW5kcyBCYXNlIHsgY29uc3RydWN0b3Io
KSB7IHN1cGVyKCk7IH0gbWV0aG9kKCkgeyBzdXBlciB9IH0nLCAnIlN5bnRheEVycm9yOiBDYW5u
b3QgcmVmZXJlbmNlIHN1cGVyLiInKTsKKyAgICAnIlN5bnRheEVycm9yOiBzdXBlciBpcyBub3Qg
dmFsaWQgaW4gdGhpcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCd4ID0gY2xhc3MgZXh0ZW5k
cyBCYXNlIHsgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH0gbWV0aG9kKCkgeyBzdXBlciB9IH0n
LCAnIlN5bnRheEVycm9yOiBzdXBlciBpcyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0LiInKTsK
IHNob3VsZFRocm93KCd4ID0gY2xhc3MgZXh0ZW5kcyBCYXNlIHsgY29uc3RydWN0b3IoKSB7IHN1
cGVyKCk7IH0gbWV0aG9kKCkgeyByZXR1cm4gbmV3IHN1cGVyIH0gfScsICciU3ludGF4RXJyb3I6
IENhbm5vdCB1c2UgbmV3IHdpdGggc3VwZXIuIicpOwogc2hvdWxkTm90VGhyb3coJ3ggPSBjbGFz
cyBleHRlbmRzIEJhc2UgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfSBtZXRob2QxKCkgeyBk
ZWxldGUgKHN1cGVyLmZvbykgfSBtZXRob2QyKCkgeyBkZWxldGUgc3VwZXJbImZvbyJdIH0gfScp
Owogc2hvdWxkVGhyb3coJyhuZXcgeCkubWV0aG9kMSgpJywgJyJSZWZlcmVuY2VFcnJvcjogQ2Fu
bm90IGRlbGV0ZSBhIHN1cGVyIHByb3BlcnR5IicpOwpAQCAtMTIwLDE5ICsxMjAsMTkgQEAgc2hv
dWxkQmVUcnVlKCd4IGluc3RhbmNlb2YgT2JqZWN0Jyk7CiBzaG91bGRUaHJvdygnbmV3IChjbGFz
cyBleHRlbmRzIG51bGwgeyBjb25zdHJ1Y3RvcigpIHsgfSB9KScsICciUmVmZXJlbmNlRXJyb3I6
IENhbm5vdCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZS4iJyk7CiBzaG91bGRUaHJvdygn
bmV3IChjbGFzcyBleHRlbmRzIG51bGwgeyBjb25zdHJ1Y3RvcigpIHsgcmV0dXJuIDE7IH0gfSkn
LCAnIlR5cGVFcnJvcjogQ2Fubm90IHJldHVybiBhIG5vbi1vYmplY3QgdHlwZSBpbiB0aGUgY29u
c3RydWN0b3Igb2YgYSBkZXJpdmVkIGNsYXNzLiInKTsKIHNob3VsZFRocm93KCduZXcgKGNsYXNz
IGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpIH0gfSknLCAnIlR5cGVFcnJv
cjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgXCdzdXBlcigpXCcp
IicpOwotc2hvdWxkVGhyb3coJ25ldyAoY2xhc3MgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKSB9
IH0pJywgJyJTeW50YXhFcnJvcjogQ2Fubm90IGNhbGwgc3VwZXIoKSBpbiBhIGJhc2UgY2xhc3Mg
Y29uc3RydWN0b3IuIicpOwotc2hvdWxkVGhyb3coJ2Z1bmN0aW9uIHgoKSB7IHN1cGVyKCk7IH0n
LCAnIlN5bnRheEVycm9yOiBDYW5ub3QgY2FsbCBzdXBlcigpIG91dHNpZGUgb2YgYSBjbGFzcyBj
b25zdHJ1Y3Rvci4iJyk7Ci1zaG91bGRUaHJvdygnbmV3IChjbGFzcyBleHRlbmRzIE9iamVjdCB7
IGNvbnN0cnVjdG9yKCkgeyBmdW5jdGlvbiB4KCkgeyBzdXBlcigpIH0gfSB9KScsICciU3ludGF4
RXJyb3I6IENhbm5vdCBjYWxsIHN1cGVyKCkgb3V0c2lkZSBvZiBhIGNsYXNzIGNvbnN0cnVjdG9y
LiInKTsKLXNob3VsZFRocm93KCduZXcgKGNsYXNzIGV4dGVuZHMgT2JqZWN0IHsgY29uc3RydWN0
b3IoKSB7IGZ1bmN0aW9uIHgoKSB7IHN1cGVyLm1ldGhvZCB9IH0gfSknLCAnIlN5bnRheEVycm9y
OiBzdXBlciBjYW4gb25seSBiZSB1c2VkIGluIGEgbWV0aG9kIG9mIGEgZGVyaXZlZCBjbGFzcy4i
Jyk7Ci1zaG91bGRUaHJvdygnZnVuY3Rpb24geCgpIHsgc3VwZXIubWV0aG9kKCk7IH0nLCAnIlN5
bnRheEVycm9yOiBzdXBlciBjYW4gb25seSBiZSB1c2VkIGluIGEgbWV0aG9kIG9mIGEgZGVyaXZl
ZCBjbGFzcy4iJyk7Ci1zaG91bGRUaHJvdygnZnVuY3Rpb24geCgpIHsgc3VwZXIoKTsgfScsICci
U3ludGF4RXJyb3I6IENhbm5vdCBjYWxsIHN1cGVyKCkgb3V0c2lkZSBvZiBhIGNsYXNzIGNvbnN0
cnVjdG9yLiInKTsKLXNob3VsZFRocm93KCdldmFsKCJzdXBlci5tZXRob2QoKSIpJywgJyJTeW50
YXhFcnJvcjogXCdzdXBlclwnIGlzIG9ubHkgdmFsaWQgaW5zaWRlIGEgZnVuY3Rpb24gb3IgYW4g
XCdldmFsXCcgaW5zaWRlIGEgZnVuY3Rpb24uIicpOwotc2hvdWxkVGhyb3coJ2V2YWwoInN1cGVy
KCkiKScsICciU3ludGF4RXJyb3I6IFwnc3VwZXJcJyBpcyBvbmx5IHZhbGlkIGluc2lkZSBhIGZ1
bmN0aW9uIG9yIGFuIFwnZXZhbFwnIGluc2lkZSBhIGZ1bmN0aW9uLiInKTsKK3Nob3VsZFRocm93
KCduZXcgKGNsYXNzIHsgY29uc3RydWN0b3IoKSB7IHN1cGVyKCkgfSB9KScsICciU3ludGF4RXJy
b3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3co
J2Z1bmN0aW9uIHgoKSB7IHN1cGVyKCk7IH0nLCAnIlN5bnRheEVycm9yOiBzdXBlciBpcyBub3Qg
dmFsaWQgaW4gdGhpcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCduZXcgKGNsYXNzIGV4dGVu
ZHMgT2JqZWN0IHsgY29uc3RydWN0b3IoKSB7IGZ1bmN0aW9uIHgoKSB7IHN1cGVyKCkgfSB9IH0p
JywgJyJTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4iJyk7
CitzaG91bGRUaHJvdygnbmV3IChjbGFzcyBleHRlbmRzIE9iamVjdCB7IGNvbnN0cnVjdG9yKCkg
eyBmdW5jdGlvbiB4KCkgeyBzdXBlci5tZXRob2QgfSB9IH0pJywgJyJTeW50YXhFcnJvcjogc3Vw
ZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4iJyk7CitzaG91bGRUaHJvdygnZnVuY3Rp
b24geCgpIHsgc3VwZXIubWV0aG9kKCk7IH0nLCAnIlN5bnRheEVycm9yOiBzdXBlciBpcyBub3Qg
dmFsaWQgaW4gdGhpcyBjb250ZXh0LiInKTsKK3Nob3VsZFRocm93KCdmdW5jdGlvbiB4KCkgeyBz
dXBlcigpOyB9JywgJyJTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlkIGluIHRoaXMgY29u
dGV4dC4iJyk7CitzaG91bGRUaHJvdygnZXZhbCgic3VwZXIubWV0aG9kKCkiKScsICciU3ludGF4
RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuIicpOworc2hvdWxkVGhy
b3coJ2V2YWwoInN1cGVyKCkiKScsICciU3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBp
biB0aGlzIGNvbnRleHQuIicpOwogCi1zaG91bGRUaHJvdygnKGZ1bmN0aW9uICgpIHsgZXZhbCgi
c3VwZXIubWV0aG9kKCkiKTt9KSgpJywgJyJTeW50YXhFcnJvcjogXCdzdXBlclwnIGlzIG9ubHkg
dmFsaWQgaW5zaWRlIGEgZnVuY3Rpb24gb3IgYW4gXCdldmFsXCcgaW5zaWRlIGEgZnVuY3Rpb24u
IicpOwotc2hvdWxkVGhyb3coJyhmdW5jdGlvbiAoKSB7IGV2YWwoInN1cGVyKCkiKTt9KSgpJywg
JyJTeW50YXhFcnJvcjogXCdzdXBlclwnIGlzIG9ubHkgdmFsaWQgaW5zaWRlIGEgZnVuY3Rpb24g
b3IgYW4gXCdldmFsXCcgaW5zaWRlIGEgZnVuY3Rpb24uIicpOworc2hvdWxkVGhyb3coJyhmdW5j
dGlvbiAoKSB7IGV2YWwoInN1cGVyLm1ldGhvZCgpIik7fSkoKScsICciU3ludGF4RXJyb3I6IHN1
cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJyhmdW5j
dGlvbiAoKSB7IGV2YWwoInN1cGVyKCkiKTt9KSgpJywgJyJTeW50YXhFcnJvcjogc3VwZXIgaXMg
bm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4iJyk7CiAKLXNob3VsZFRocm93KCduZXcgKGNsYXNz
IHsgY29uc3RydWN0b3IoKSB7IChmdW5jdGlvbiAoKSB7IGV2YWwoInN1cGVyKCkiKTt9KSgpOyB9
IH0pJywgJyJTeW50YXhFcnJvcjogXCdzdXBlclwnIGlzIG9ubHkgdmFsaWQgaW5zaWRlIGEgZnVu
Y3Rpb24gb3IgYW4gXCdldmFsXCcgaW5zaWRlIGEgZnVuY3Rpb24uIicpOwotc2hvdWxkVGhyb3co
JyhuZXcgKGNsYXNzIHsgbWV0aG9kKCkgeyAoZnVuY3Rpb24gKCkgeyBldmFsKCJzdXBlci5tZXRo
b2QoKSIpO30pKCk7IH19KSkubWV0aG9kKCknLCAnIlN5bnRheEVycm9yOiBcJ3N1cGVyXCcgaXMg
b25seSB2YWxpZCBpbnNpZGUgYSBmdW5jdGlvbiBvciBhbiBcJ2V2YWxcJyBpbnNpZGUgYSBmdW5j
dGlvbi4iJyk7CitzaG91bGRUaHJvdygnbmV3IChjbGFzcyB7IGNvbnN0cnVjdG9yKCkgeyAoZnVu
Y3Rpb24gKCkgeyBldmFsKCJzdXBlcigpIik7fSkoKTsgfSB9KScsICciU3ludGF4RXJyb3I6IHN1
cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlzIGNvbnRleHQuIicpOworc2hvdWxkVGhyb3coJyhuZXcg
KGNsYXNzIHsgbWV0aG9kKCkgeyAoZnVuY3Rpb24gKCkgeyBldmFsKCJzdXBlci5tZXRob2QoKSIp
O30pKCk7IH19KSkubWV0aG9kKCknLCAnIlN5bnRheEVycm9yOiBzdXBlciBpcyBub3QgdmFsaWQg
aW4gdGhpcyBjb250ZXh0LiInKTsKIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtbWV0aG9kcy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVy
YWwtbWV0aG9kcy5qcwkocmV2aXNpb24gMTk5ODM3KQorKysgTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL29iamVjdC1saXRlcmFsLW1ldGhvZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTgyLDMg
KzgyLDEwIEBAIHNob3VsZFRocm93KCIoeyBmb28oYSwgYikgeyBpZiB9LCBiYXIoKXsKIHNob3Vs
ZEJlVHJ1ZSgiKHtfX3Byb3RvX186IGZ1bmN0aW9uKCl7fX0pIGluc3RhbmNlb2YgRnVuY3Rpb24i
KTsKIHNob3VsZEJlRmFsc2UoIih7X19wcm90b19fKCl7fX0pIGluc3RhbmNlb2YgRnVuY3Rpb24i
KTsKIHNob3VsZEJlVHJ1ZSgiKHtfX3Byb3RvX18oKXt9fSkuX19wcm90b19fIGluc3RhbmNlb2Yg
RnVuY3Rpb24iKTsKKworc2hvdWxkVGhyb3coInsgZigpIHsgcmV0dXJuIHN1cGVyLmYoKTsgfSB9
LmYoKSIpOworc2hvdWxkVGhyb3coIm5ldyAoeyBmKCkgeyByZXR1cm4gc3VwZXIoKTsgfS5mKSIp
Oworc2hvdWxkVGhyb3coIm8gPSB7IGYoKSB7IH0gfTsgbmV3ICh7IF9fcHJvdG9fXzogbywgZigp
IHsgcmV0dXJuIHN1cGVyKCk7IH0gfSkuZiIpOworc2hvdWxkQmVUcnVlKCJvID0geyBmKCkgeyBy
ZXR1cm4gdHJ1ZTsgfSB9OyAoeyBfX3Byb3RvX186IG8sIGYoKSB7IHJldHVybiBzdXBlci5mKCk7
IH0gfSkuZigpIik7CitzaG91bGRCZVRydWUoIm8gPSB7IGdldCBwKCkgeyByZXR1cm4gdHJ1ZTsg
fSB9OyAoeyBfX3Byb3RvX186IG8sIGdldCBwKCkgeyByZXR1cm4gc3VwZXIucDsgfSB9KS5wIik7
CitzaG91bGRCZVRydWUoIm8gPSB7IHNldCBwKHAyKSB7IH0gfTsgKHsgX19wcm90b19fOiBvLCBz
ZXQgcChwMikgeyBzdXBlci5wID0gcDI7IH0gfSkucCA9IHRydWUiKTsK
</data>
<flag name="review"
          id="301363"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>