<?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>149331</bug_id>
          
          <creation_ts>2015-09-17 20:16:45 -0700</creation_ts>
          <short_desc>[WebIDL] Specify default parameter values where it is useful</short_desc>
          <delta_ts>2015-09-19 17:45:49 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=148582</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>149263</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>m.goleb+bugzilla</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1127030</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-17 20:16:45 -0700</bug_when>
    <thetext>Specify default parameter values where it is useful, that is to say where undefined would be converted to something else than the default value otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127031</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-17 20:17:08 -0700</bug_when>
    <thetext>rdar://problem/22545600</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127064</commentid>
    <comment_count>2</comment_count>
      <attachid>261489</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-17 22:15:29 -0700</bug_when>
    <thetext>Created attachment 261489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127135</commentid>
    <comment_count>3</comment_count>
      <attachid>261489</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-18 09:39:06 -0700</bug_when>
    <thetext>Comment on attachment 261489
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3387
&gt; +                push(@$outputArray, &quot;        $name = String(ASCIILiteral(&quot; . $parameter-&gt;default . &quot;));\n&quot;);

Why is the String() needed here?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3389
&gt; +                push(@$outputArray, &quot;        $name = exec-&gt;uncheckedArgument($argsIndex).toString(exec)-&gt;value(exec);\n&quot;);

Why did you remove the early return when toString had an exception before calling value that the old code had?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3396
&gt; +                push(@$outputArray, &quot;    auto* ${name}String = ${argValue}.toString(exec);\n&quot;);
&gt; +                push(@$outputArray, &quot;    auto&amp; $name = ${name}String-&gt;value(exec);\n&quot;);

Same question here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127154</commentid>
    <comment_count>4</comment_count>
      <attachid>261489</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 10:41:46 -0700</bug_when>
    <thetext>Comment on attachment 261489
Patch

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

&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3387
&gt;&gt; +                push(@$outputArray, &quot;        $name = String(ASCIILiteral(&quot; . $parameter-&gt;default . &quot;));\n&quot;);
&gt; 
&gt; Why is the String() needed here?

iirc, the compiler did not let me have different types (literal vs String) on both sides on the ternary but I can try without again.

&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3389
&gt;&gt; +                push(@$outputArray, &quot;        $name = exec-&gt;uncheckedArgument($argsIndex).toString(exec)-&gt;value(exec);\n&quot;);
&gt; 
&gt; Why did you remove the early return when toString had an exception before calling value that the old code had?

I believe this was a bug. This is inconsistent with how we usually convert String in the bindings. In regular cases, we do .toString(exec)-&gt;value(exec) then do the exception check. However, we were doing it differently in the string enumeration case only which does not make much sense to me. If JSString::value() throws an exception, I think it makes sense to do the exception check after the call the value() as well. At the very least, it is consistent with how we usually convert strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127157</commentid>
    <comment_count>5</comment_count>
      <attachid>261489</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 10:58:01 -0700</bug_when>
    <thetext>Comment on attachment 261489
Patch

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

&gt;&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3389
&gt;&gt;&gt; +                push(@$outputArray, &quot;        $name = exec-&gt;uncheckedArgument($argsIndex).toString(exec)-&gt;value(exec);\n&quot;);
&gt;&gt; 
&gt;&gt; Why did you remove the early return when toString had an exception before calling value that the old code had?
&gt; 
&gt; I believe this was a bug. This is inconsistent with how we usually convert String in the bindings. In regular cases, we do .toString(exec)-&gt;value(exec) then do the exception check. However, we were doing it differently in the string enumeration case only which does not make much sense to me. If JSString::value() throws an exception, I think it makes sense to do the exception check after the call the value() as well. At the very least, it is consistent with how we usually convert strings.

I have just talked to Geoff about this:
1. Calling toString(exec)-&gt;value(exec) is safe because toString() will return an empty string (not null) in case of exception.
2. We should do an exception check after the call to value(exec) because it can throw in case it runs out of memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127429</commentid>
    <comment_count>6</comment_count>
      <attachid>261489</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-19 15:43:41 -0700</bug_when>
    <thetext>Comment on attachment 261489
Patch

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

&gt;&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3387
&gt;&gt;&gt; +                push(@$outputArray, &quot;        $name = String(ASCIILiteral(&quot; . $parameter-&gt;default . &quot;));\n&quot;);
&gt;&gt; 
&gt;&gt; Why is the String() needed here?
&gt; 
&gt; iirc, the compiler did not let me have different types (literal vs String) on both sides on the ternary but I can try without again.

I don’t see a ternary. Maybe you had that in an earlier version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127432</commentid>
    <comment_count>7</comment_count>
      <attachid>261489</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-19 16:20:38 -0700</bug_when>
    <thetext>Comment on attachment 261489
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3387
&gt;&gt;&gt;&gt; +                push(@$outputArray, &quot;        $name = String(ASCIILiteral(&quot; . $parameter-&gt;default . &quot;));\n&quot;);
&gt;&gt;&gt; 
&gt;&gt;&gt; Why is the String() needed here?
&gt;&gt; 
&gt;&gt; iirc, the compiler did not let me have different types (literal vs String) on both sides on the ternary but I can try without again.
&gt; 
&gt; I don’t see a ternary. Maybe you had that in an earlier version.

Oh right, this iteration no longer has a ternary, sorry. I&apos;ll fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127436</commentid>
    <comment_count>8</comment_count>
      <attachid>261591</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-19 16:55:32 -0700</bug_when>
    <thetext>Created attachment 261591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127448</commentid>
    <comment_count>9</comment_count>
      <attachid>261591</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-19 17:45:44 -0700</bug_when>
    <thetext>Comment on attachment 261591
Patch

Clearing flags on attachment: 261591

Committed r190021: &lt;http://trac.webkit.org/changeset/190021&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127449</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-19 17:45:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261489</attachid>
            <date>2015-09-17 22:15:29 -0700</date>
            <delta_ts>2015-09-19 16:55:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149331-20150917221516.patch</filename>
            <type>text/plain</type>
            <size>34482</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5OTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGRkN2EyNDA2NTc4NzA1
ZjhkNDJjNTM3NDJkMDQ3OWFiZTk0YmRiNi4uNDFkNTAxZWE0NWRlNzk5MjU5NTE0MzQ4Mjk2MDQw
NWJiMWI0OGIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYyIEBACiAyMDE1LTA5LTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dlYklETF0gU3BlY2lmeSBk
ZWZhdWx0IHBhcmFtZXRlciB2YWx1ZXMgd2hlcmUgaXQgaXMgdXNlZnVsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzMzEKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzIyNTQ1NjAwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNwZWNpZnkgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzIHdoZXJlIGl0IGlz
IHVzZWZ1bCBpbiBvdXIgSURMLCB0aGF0IGlzCisgICAgICAgIHRvIHNheSB3aGVyZSB1bmRlZmlu
ZWQgd291bGQgYmUgY29udmVydGVkIHRvIHNvbWV0aGluZyBlbHNlIHRoYW4gdGhlCisgICAgICAg
IGRlZmF1bHQgdmFsdWUgb3RoZXJ3aXNlLiBUaGlzIHBhdGNoIGZvY3VzZXMgb24gdGhlIEhUTUwg
QVBJLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIHN1cHBvcnQgZm9yIGRlZmF1bHQg
dmFsdWVzIGZvciBvcHRpb25hbCBwYXJhbWV0ZXJzCisgICAgICAgIG9mIHN0cmluZyBlbnVtZXJh
dGlvbiB0eXBlIGFzIHRoaXMgd2FzIG5lZWRlZCBieSB0aGUKKyAgICAgICAgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEIEFQSS4KKworICAgICAgICBUZXN0OiBmYXN0L2h0bWwvdW5kZWZpbmVkLXBh
cmFtZXRlci1kZWZhdWx0LXZhbHVlLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2spOgor
ICAgICAgICBBZGQgc3VwcG9ydCBkZWZhdWx0IHZhbHVlcyBmb3Igb3B0aW9uYWwgcGFyYW1ldGVy
cyBvZiBzdHJpbmcgZW51bWVyYXRpb24KKyAgICAgICAgdHlwZSBhcyB0aGlzIHdhcyBuZWVkZWQg
YnkgdGhlIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBBUEkuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICBBZGQgYmluZGluZ3MgdGVzdHMgY292ZXJh
Z2UgZm9yIG9wdGlvbmFsIHBhcmFtZXRlcnMgb2Ygc3RyaW5nIGVudW1lcmF0aW9uCisgICAgICAg
IHR5cGUgYW5kIHRoYXQgaGF2ZSBhIGRlZmF1bHQgdmFsdWUuCisKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICBTcGVjaWZ5IGRlZmF1bHQgcGFyYW1ldGVyIHZh
bHVlIGZvciBzdGVwVXAoKSAvIHN0ZXBEb3duKCkuIFdpdGhvdXQgdGhpcywKKyAgICAgICAgc3Rl
cFVwKHVuZGVmaW5lZCkgd291bGQgYmUgZXF1aXZhbGVudCB0byBjYWxsaW5nIHN0ZXBVcCgwKSBl
dmVuIHRob3VnaAorICAgICAgICBpdCBpcyBzdXBwb3NlZCB0byBiZSBlcXVpdmFsZW50IHRvIGNh
bGxpbmcgc3RlcFVwKDEpLgorCisgICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbDoKKyAgICAgICAgU3Bl
Y2lmeSBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZSBmb3IgaW5zZXJ0Um93KCkuIFdpdGhvdXQgdGhp
cywKKyAgICAgICAgaW5zZXJ0Um93KHVuZGVmaW5lZCkgd291bGQgYmUgZXF1aXZhbGVudCB0byBp
bnNlcnRSb3coMCkgaW5zdGVhZCBvZgorICAgICAgICBpbnNlcnRSb3coLTEpLiBUaGlzIHdvdWxk
IHByZXBlbmQgdGhlIHJvdyBpbnN0ZWFkIG9mIGFwcGVuZGluZyBpdDoKKyAgICAgICAgLSBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNodG1sdGFibGVlbGVtZW50CisgICAgICAgIC0gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jaHRtbHRhYmxlc2VjdGlvbmVsZW1lbnQKKworICAg
ICAgICAqIGh0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGw6CisgICAgICAgIFNwZWNpZnkgZGVm
YXVsdCBwYXJhbWV0ZXIgdmFsdWUgZm9yIGluc2VydENlbGwoKS4gV2l0aG91dCB0aGlzLAorICAg
ICAgICBpbnNlcnRDZWxsKHVuZGVmaW5lZCkgd291bGQgYmUgZXF1aXZhbGVudCB0byBpbnNlcnRD
ZWxsKDApIGluc3RlYWQgb2YKKyAgICAgICAgaW5zZXJ0Q2VsbCgtMSkuIFRoaXMgd291bGQgcHJl
cGVuZCB0aGUgY2VsbCBpbnN0ZWFkIG9mIGFwcGVuZGluZyBpdDoKKyAgICAgICAgLSBodHRwczov
L2h0bWwuc3BlYy53aGF0d2cub3JnLyNodG1sdGFibGVyb3dlbGVtZW50CisKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsOgorICAgICAgICBTcGVjaWZ5
IGRlZmF1bHQgdmFsdWUgZm9yIENhbnZhc1dpbmRpbmdSdWxlIHBhcmFtZXRlcnMgc28gdGhhdCBj
YWxsaW5nCisgICAgICAgIHRoaXMgd2l0aCB1bmRlZmluZWQgd2lsbCB1c2UgdGhlIGRlZmF1bHQg
ZW51bSB2YWx1ZSBpbnN0ZWFkIG9mIHVzaW5nIHRoZQorICAgICAgICAidW5kZWZpbmVkIiBzdHJp
bmcgYW5kIHRoZW4gdGhyb3dpbmcgYmVjYXVzZSBpdCBpcyBub3QgYSB2YWxpZCBlbnVtIHZhbHVl
OgorICAgICAgICAtIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2NhbnZhc3JlbmRlcmlu
Z2NvbnRleHQyZAorCisyMDE1LTA5LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKICAgICAgICAgW1dlYklETF0gQWRkIHN1cHBvcnQgZm9yIGRlZmF1bHQgcGFyYW1ldGVyIHZh
bHVlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5
MjYzCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU0NTYwMD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZTMwMWU4MGMy
ZGFhOWI2MmEwM2ZlMjgxZTdmZmEwYzQyYTljODJhNS4uN2UxOTlhMDY0ZGI5ZTA3MDU4Y2U0NTUy
MTAyY2VkMmY3ZjRkMzUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTMzNTcsMjYgKzMzNTcsNDYgQEAgc3ViIEdlbmVy
YXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0Vu
dW1UeXBlKCRhcmdUeXBlKSkgewogICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siPHJ1bnRpbWUv
RXJyb3IuaD4ifSA9IDE7CiAKLSAgICAgICAgICAgIG15ICRhcmdWYWx1ZSA9ICJleGVjLT5hcmd1
bWVudCgkYXJnc0luZGV4KSI7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
Ly8gS2VlcCBwb2ludGVyIHRvIHRoZSBKU1N0cmluZyBpbiBhIGxvY2FsIHNvIHdlIGRvbid0IG5l
ZWQgdG8gcmVmIHRoZSBTdHJpbmcuXG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBhdXRvKiAke25hbWV9U3RyaW5nID0gJHthcmdWYWx1ZX0udG9TdHJpbmcoZXhlYyk7
XG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoVU5MSUtFTFko
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpKVxuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7XG4iKTsK
LSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvJiAkbmFtZSA9ICR7bmFt
ZX1TdHJpbmctPnZhbHVlKGV4ZWMpO1xuIik7Ci0KLSAgICAgICAgICAgIG15IEBlbnVtVmFsdWVz
ID0gJGNvZGVHZW5lcmF0b3ItPlZhbGlkRW51bVZhbHVlcygkYXJnVHlwZSk7Ci0gICAgICAgICAg
ICBteSBAZW51bUNoZWNrcyA9ICgpOwotICAgICAgICAgICAgbXkgJGVudW1zID0gMDsKLSAgICAg
ICAgICAgIGZvcmVhY2ggbXkgJGVudW1WYWx1ZSAoQGVudW1WYWx1ZXMpIHsKLSAgICAgICAgICAg
ICAgICBwdXNoKEBlbnVtQ2hlY2tzLCAiJHtuYW1lfSAhPSBcIiRlbnVtVmFsdWVcIiIpOwotICAg
ICAgICAgICAgICAgIGlmICghJGVudW1zKSB7Ci0gICAgICAgICAgICAgICAgICAgICRlbnVtcyA9
ICJcXFwiJGVudW1WYWx1ZVxcXCIiOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgICRlbnVtcyA9ICRlbnVtcyAuICIsIFxcXCIiIC4gJGVudW1WYWx1ZSAuICJc
XFwiIjsKKyAgICAgICAgICAgIG15ICRleGNlcHRpb25DaGVjayA9IHN1YiB7CisgICAgICAgICAg
ICAgICAgbXkgJGluZGVudCA9IHNoaWZ0OworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgJGluZGVudCAuICIgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSlc
biIpOworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICIgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7XG4iKTsKKyAgICAgICAg
ICAgIH07CisKKyAgICAgICAgICAgIG15ICRlbnVtVmFsdWVDaGVjayA9IHN1YiB7CisgICAgICAg
ICAgICAgICAgbXkgJGluZGVudCA9IHNoaWZ0OworICAgICAgICAgICAgICAgIG15IEBlbnVtVmFs
dWVzID0gJGNvZGVHZW5lcmF0b3ItPlZhbGlkRW51bVZhbHVlcygkYXJnVHlwZSk7CisgICAgICAg
ICAgICAgICAgbXkgQGVudW1DaGVja3MgPSAoKTsKKyAgICAgICAgICAgICAgICBteSAkZW51bXMg
PSAwOworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJGVudW1WYWx1ZSAoQGVudW1WYWx1ZXMp
IHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAZW51bUNoZWNrcywgIiR7bmFtZX0gIT0gXCIk
ZW51bVZhbHVlXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCEkZW51bXMpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICRlbnVtcyA9ICJcXFwiJGVudW1WYWx1ZVxcXCIiOworICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJGVudW1zID0g
JGVudW1zIC4gIiwgXFxcIiIgLiAkZW51bVZhbHVlIC4gIlxcXCIiOworICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgJGluZGVudCAuICIgICAgaWYgKCIgLiBqb2luKCIgJiYgIiwgQGVudW1DaGVja3MpIC4g
IilcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICIg
ICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50TXVzdEJlRW51bUVycm9yKCpleGVjLCAkYXJnc0lu
ZGV4LCBcIiRuYW1lXCIsIFwiJGludGVyZmFjZU5hbWVcIiwgJHF1b3RlZEZ1bmN0aW9uTmFtZSwg
XCIkZW51bXNcIik7XG4iKTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIG15ICRhcmdW
YWx1ZSA9ICJleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSI7CisgICAgICAgICAgICBpZiAoJHBh
cmFtZXRlci0+aXNPcHRpb25hbCAmJiAkcGFyYW1ldGVyLT5kZWZhdWx0KSB7CisgICAgICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFN0cmluZyAkbmFtZTtcbiIpOworICAgICAg
ICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoJHthcmdWYWx1ZX0uaXNVbmRl
ZmluZWQoKSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAg
ICAgJG5hbWUgPSBTdHJpbmcoQVNDSUlMaXRlcmFsKCIgLiAkcGFyYW1ldGVyLT5kZWZhdWx0IC4g
IikpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGVsc2Ug
e1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFt
ZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KCRhcmdzSW5kZXgpLnRvU3RyaW5nKGV4ZWMpLT52
YWx1ZShleGVjKTtcbiIpOworICAgICAgICAgICAgICAgICYkZXhjZXB0aW9uQ2hlY2soIiAgICAi
KTsKKyAgICAgICAgICAgICAgICAmJGVudW1WYWx1ZUNoZWNrKCIgICAgIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgLy8gS2VlcCBwb2lu
dGVyIHRvIHRoZSBKU1N0cmluZyBpbiBhIGxvY2FsIHNvIHdlIGRvbid0IG5lZWQgdG8gcmVmIHRo
ZSBTdHJpbmcuXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
YXV0byogJHtuYW1lfVN0cmluZyA9ICR7YXJnVmFsdWV9LnRvU3RyaW5nKGV4ZWMpO1xuIik7Cisg
ICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8mICRuYW1lID0gJHtu
YW1lfVN0cmluZy0+dmFsdWUoZXhlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAmJGV4Y2VwdGlv
bkNoZWNrKCIiKTsKKyAgICAgICAgICAgICAgICAmJGVudW1WYWx1ZUNoZWNrKCIiKTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHB1c2ggKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKCIgLiBq
b2luKCIgJiYgIiwgQGVudW1DaGVja3MpIC4gIilcbiIpOwotICAgICAgICAgICAgcHVzaCAoQCRv
dXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRNdXN0QmVFbnVtRXJyb3Io
KmV4ZWMsICRhcmdzSW5kZXgsIFwiJG5hbWVcIiwgXCIkaW50ZXJmYWNlTmFtZVwiLCAkcXVvdGVk
RnVuY3Rpb25OYW1lLCBcIiRlbnVtc1wiKTtcbiIpOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgIyBJZiB0aGUgIlN0cmljdFR5cGVDaGVja2luZyIgZXh0ZW5kZWQgYXR0cmlidXRlIGlz
IHByZXNlbnQsIGFuZCB0aGUgYXJndW1lbnQncyB0eXBlIGlzIGFuCiAgICAgICAgICAgICAjIGlu
dGVyZmFjZSB0eXBlLCB0aGVuIGlmIHRoZSBpbmNvbWluZyB2YWx1ZSBkb2VzIG5vdCBpbXBsZW1l
bnQgdGhhdCBpbnRlcmZhY2UsIGEgVHlwZUVycm9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RP
YmouY3BwCmluZGV4IDJlZjg3NjdhYjE1ODhjZjAwZGRmZmMzM2Q3ZjRjYTc1YTJkNGQwODcuLmMz
NzVmYTEwNjgwZDVhZDdmNWNiYTM4OWMwMmFlYzkwODAzYzRmNjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmou
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouY3BwCkBAIC0xMTM1LDYgKzExMzUsMTYgQEAgdm9pZCB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX21ldGhvZF93aXRoX2VudW1fYXJnKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdl
YktpdERPTVQKICAgICBpdGVtLT5tZXRob2RXaXRoRW51bUFyZyhjb252ZXJ0ZWRFbnVtQXJnKTsK
IH0KIAordm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX29wdGlvbmFsX2VudW1f
YXJnX2FuZF9kZWZhdWx0X3ZhbHVlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRl
c3RFbnVtVHlwZSogZW51bUFyZykKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX1RFU1RfT0JKKHNl
bGYpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfVEVTVF9FTlVNX1RZUEUo
ZW51bUFyZykpOworICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7CisgICAgV2ViQ29yZTo6VGVzdEVudW1UeXBlKiBjb252ZXJ0ZWRFbnVtQXJnID0gV2ViS2l0
Ojpjb3JlKGVudW1BcmcpOworICAgIGl0ZW0tPm1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmRE
ZWZhdWx0VmFsdWUoY29udmVydGVkRW51bUFyZyk7Cit9CisKIFdlYktpdERPTVRlc3RPYmoqIHdl
YmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3RoYXRfcmVxdWlyZXNfYWxsX2FyZ3NfYW5kX3Rocm93
cyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01U
ZXN0T2JqKiBvYmpBcmcsIEdFcnJvcioqIGVycm9yKQogewogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAppbmRleCA0
NTc3ZDMxNWZiN2Q5NGIxZWU1NWRhYzA3M2UyMDBlYzY1ODZiOTk4Li5hZTdlOGU1NDcyYTVkNmRh
YjU2NDk5ODc5OTk5MWRlZmExYzY1NTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5o
CkBAIC0yNDYsNiArMjQ2LDE2IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV90ZXN0X29i
al9tZXRob2Rfd2l0aF9lbnVtX2FyZyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01U
ZXN0RW51bVR5cGUqIGVudW1BcmcpOwogCiAvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0
aG9kX3dpdGhfb3B0aW9uYWxfZW51bV9hcmdfYW5kX2RlZmF1bHRfdmFsdWU6CisgKiBAc2VsZjog
QSAjV2ViS2l0RE9NVGVzdE9iagorICogQGVudW1Bcmc6IEEgI1dlYktpdERPTVRlc3RFbnVtVHlw
ZQorICoKKyAqIFN0YWJpbGl0eTogVW5zdGFibGUKKyoqLworV0VCS0lUX0FQSSB2b2lkCit3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX29wdGlvbmFsX2VudW1fYXJnX2FuZF9kZWZhdWx0
X3ZhbHVlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RFbnVtVHlwZSogZW51
bUFyZyk7CisKKy8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2RfdGhhdF9yZXF1aXJl
c19hbGxfYXJnc19hbmRfdGhyb3dzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAq
IEBzdHJBcmc6IEEgI2djaGFyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGM0YzU3Njc1MDk1ZDQ3ZTg1MmU3ZWRk
ZmU4ZGJkNzcxZTVmYWNlZjQuLmYzYThmZDczZGUxMTU4MmUwNWZiNGU2NWM0ZjMyOWI4MDllNWMx
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCkBAIC05MSw2ICs5MSw3IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEpT
CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFJl
dHVybmluZ1NlcXVlbmNlKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZyhK
U0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRW
YWx1ZShKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRo
cm93cyhKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKEpTQzo6RXhlY1N0YXRl
Kik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PcHRpb25zT2JqZWN0KEpTQzo6RXhlY1N0YXRlKik7CkBAIC02MDIsNiArNjAzLDcg
QEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFs
dWVzW10gPQogICAgIHsgIm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyIsIEpTQzo6RnVuY3Rpb24sIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcpLCAoaW50cHRyX3QpICgx
KSB9IH0sCiAgICAgeyAibWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UiLCBKU0M6OkZ1bmN0aW9uLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UpLCAoaW50cHRyX3Qp
ICgxKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0aEVudW1BcmciLCBKU0M6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcpLCAoaW50cHRyX3QpICgxKSB9IH0s
CisgICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZSIsIEpTQzo6
RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJn
QW5kRGVmYXVsdFZhbHVlKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgIm1ldGhvZFRoYXRS
ZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyksIChpbnRwdHJfdCkgKDIp
IH0gfSwKICAgICB7ICJzZXJpYWxpemVkVmFsdWUiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsg
Im9wdGlvbnNPYmplY3QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3B0
aW9uc09iamVjdCksIChpbnRwdHJfdCkgKDEpIH0gfSwKQEAgLTMyNDEsMTUgKzMyNDMsNDQgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhFbnVtQXJnKEV4ZWNTdGEKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAgICAgLy8gS2VlcCBwb2lu
dGVyIHRvIHRoZSBKU1N0cmluZyBpbiBhIGxvY2FsIHNvIHdlIGRvbid0IG5lZWQgdG8gcmVmIHRo
ZSBTdHJpbmcuCiAgICAgYXV0byogZW51bUFyZ1N0cmluZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRv
U3RyaW5nKGV4ZWMpOworICAgIGF1dG8mIGVudW1BcmcgPSBlbnVtQXJnU3RyaW5nLT52YWx1ZShl
eGVjKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGF1dG8mIGVudW1Bcmcg
PSBlbnVtQXJnU3RyaW5nLT52YWx1ZShleGVjKTsKICAgICBpZiAoZW51bUFyZyAhPSAiIiAmJiBl
bnVtQXJnICE9ICJFbnVtVmFsdWUxIiAmJiBlbnVtQXJnICE9ICJFbnVtVmFsdWUyIiAmJiBlbnVt
QXJnICE9ICJFbnVtVmFsdWUzIikKICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRNdXN0QmVF
bnVtRXJyb3IoKmV4ZWMsIDAsICJlbnVtQXJnIiwgIlRlc3RPYmoiLCAibWV0aG9kV2l0aEVudW1B
cmciLCAiXCJcIiwgXCJFbnVtVmFsdWUxXCIsIFwiRW51bVZhbHVlMlwiLCBcIkVudW1WYWx1ZTNc
IiIpOwogICAgIGltcGwubWV0aG9kV2l0aEVudW1BcmcoZW51bUFyZyk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1B
cmdBbmREZWZhdWx0VmFsdWUoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpCisgICAgICAgIHJldHVybiB0aHJvd1RoaXNUeXBlRXJyb3IoKmV4ZWMsICJUZXN0
T2JqIiwgIm1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUiKTsKKyAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsK
KyAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOworCisgICAgc2l6ZV90IGFyZ3ND
b3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsKKyAgICBpZiAoYXJnc0NvdW50IDw9IDApIHsK
KyAgICAgICAgaW1wbC5tZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlKCk7
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfQor
CisgICAgU3RyaW5nIGVudW1Bcmc7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZp
bmVkKCkpCisgICAgICAgIGVudW1BcmcgPSBTdHJpbmcoQVNDSUlMaXRlcmFsKCJFbnVtVmFsdWUx
IikpOworICAgIGVsc2UgeworICAgICAgICBlbnVtQXJnID0gZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOworICAgICAgICBpZiAoVU5MSUtFTFko
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgaWYgKGVudW1BcmcgIT0gIiIgJiYgZW51bUFyZyAh
PSAiRW51bVZhbHVlMSIgJiYgZW51bUFyZyAhPSAiRW51bVZhbHVlMiIgJiYgZW51bUFyZyAhPSAi
RW51bVZhbHVlMyIpCisgICAgICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudE11c3RCZUVudW1F
cnJvcigqZXhlYywgMCwgImVudW1BcmciLCAiVGVzdE9iaiIsICJtZXRob2RXaXRoT3B0aW9uYWxF
bnVtQXJnQW5kRGVmYXVsdFZhbHVlIiwgIlwiXCIsIFwiRW51bVZhbHVlMVwiLCBcIkVudW1WYWx1
ZTJcIiwgXCJFbnVtVmFsdWUzXCIiKTsKKyAgICB9CisgICAgaW1wbC5tZXRob2RXaXRoT3B0aW9u
YWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlKGVudW1BcmcpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhy
b3dzKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L09iakMvRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L09iakMvRE9NVGVzdE9iai5oCmluZGV4IDg1ZjZlYjljNWRiYWMxMDU5OTQyMDNiZDk4ZGJk
MDllZWQxZmIyNWUuLjRhZmMwZWE1NmVlZGFlMmI2NzkzYzI4NWQ2MGJlNDMyNGI1MDcyZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0T2JqLmgKQEAgLTEzMyw2ICsxMzMsNyBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNl
IERPTVRlc3RPYmogOiBET01PYmplY3QKIC0gKERPTVRlc3RPYmogKilvYmpNZXRob2Q7CiAtIChE
T01UZXN0T2JqICopb2JqTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJp
bmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwogLSAodm9pZCltZXRob2RX
aXRoRW51bUFyZzooRE9NVGVzdEVudW1UeXBlICopZW51bUFyZzsKKy0gKHZvaWQpbWV0aG9kV2l0
aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZTooRE9NVGVzdEVudW1UeXBlICopZW51bUFy
ZzsKIC0gKERPTVRlc3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzOihO
U1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtICh2b2lkKXNl
cmlhbGl6ZWRWYWx1ZTooTlNTdHJpbmcgKilzZXJpYWxpemVkQXJnOwogLSAodm9pZClvcHRpb25z
T2JqZWN0OihET01EaWN0aW9uYXJ5ICopb28gb29vOihET01EaWN0aW9uYXJ5ICopb29vOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmoubW0KaW5kZXggNjY4ZGZjYWJjYjNlN2EzMWVjYThlYzgxZThjYzgzYjQ5YmRjMmQ3MC4u
ZTAwNmU0OGJmMTIxM2MxMDRiMDdiZDgyZjM4MjNlOTA5NTM2MWZiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1t
CkBAIC04ODQsNiArODg0LDEyIEBAIC0gKHZvaWQpbWV0aG9kV2l0aEVudW1Bcmc6KERPTVRlc3RF
bnVtVHlwZSAqKWVudW1BcmcKICAgICBJTVBMLT5tZXRob2RXaXRoRW51bUFyZyhjb3JlKGVudW1B
cmcpKTsKIH0KIAorLSAodm9pZCltZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZh
bHVlOihET01UZXN0RW51bVR5cGUgKillbnVtQXJnCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPm1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdB
bmREZWZhdWx0VmFsdWUoY29yZShlbnVtQXJnKSk7Cit9CisKIC0gKERPTVRlc3RPYmogKiltZXRo
b2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6
KERPTVRlc3RPYmogKilvYmpBcmcKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwKaW5kZXggY2M5ZTcwMDdjNmRhMGJhODUzMzk2OWNkOThlMmFlY2NmM2Y0ZjBlMC4u
OWViNDJiOGMzZTdkNjM4ZTBjYTY2YzE3YTJhNzU0OGM2MjI1NTgxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtOTIsNiArOTIs
NyBAQCBlbnVtIF9vcHRpb25hbCB7ICIiLCAiT3B0aW9uYWxWYWx1ZTEiLCAiT3B0aW9uYWxWYWx1
ZTIiLCAiT3B0aW9uYWxWYWx1ZTMiIH07CiAgICAgc2VxdWVuY2U8U2NyaXB0UHJvZmlsZT4gbWV0
aG9kUmV0dXJuaW5nU2VxdWVuY2UobG9uZyBsb25nQXJnKTsKIAogICAgIHZvaWQgbWV0aG9kV2l0
aEVudW1BcmcoVGVzdEVudW1UeXBlIGVudW1BcmcpOworICAgIHZvaWQgbWV0aG9kV2l0aE9wdGlv
bmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZShvcHRpb25hbCBUZXN0RW51bVR5cGUgZW51bUFyZyA9
ICJFbnVtVmFsdWUxIik7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gVGVzdE9iaiBtZXRob2RUaGF0
UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKERPTVN0cmluZyBzdHJBcmcsIFRlc3RPYmogb2JqQXJn
KTsKIAogICAgIHZvaWQgc2VyaWFsaXplZFZhbHVlKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBzZXJp
YWxpemVkQXJnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4
IGQzOGUzMTRlN2VjODM2ODJkNWFmZjkwMzA5NmJkZDZiYzQ0OTFiZWEuLjIyZDVkOTExY2FmYzk1
YmVkZjc3NjFlM2VkMWU3YzE2NDY0NWJhNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmlkbApAQCAtNjUsOCArNjUsOCBAQCBpbnRlcmZhY2UgSFRNTElucHV0RWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKICAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUg
RGF0ZSB2YWx1ZUFzRGF0ZTsKICAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUg
dW5yZXN0cmljdGVkIGRvdWJsZSB2YWx1ZUFzTnVtYmVyOwogCi0gICAgW1JhaXNlc0V4Y2VwdGlv
bl0gdm9pZCBzdGVwVXAob3B0aW9uYWwgbG9uZyBuKTsKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2
b2lkIHN0ZXBEb3duKG9wdGlvbmFsIGxvbmcgbik7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9p
ZCBzdGVwVXAob3B0aW9uYWwgbG9uZyBuID0gMSk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9p
ZCBzdGVwRG93bihvcHRpb25hbCBsb25nIG4gPSAxKTsKIAogICAgIGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIHdpZHRoOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdpbGxWYWxpZGF0
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsCmluZGV4IGYyNTZlYzI3
YjhhMzg3NDE4ZTg2ZGM4ODkxOTVhZjg2ZGQwYjYzMDAuLjc2Mzc3ZTk3NjI4OTczYWI1ZWJkZDZi
MmE1OTA2NWExZTllNzE1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50
LmlkbApAQCAtNDUsNyArNDUsNyBAQCBpbnRlcmZhY2UgSFRNTFRhYmxlRWxlbWVudCA6IEhUTUxF
bGVtZW50IHsKICAgICBIVE1MRWxlbWVudCBjcmVhdGVDYXB0aW9uKCk7CiAgICAgdm9pZCBkZWxl
dGVDYXB0aW9uKCk7CiAKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSBIVE1MRWxlbWVudCBpbnNlcnRS
b3cob3B0aW9uYWwgbG9uZyBpbmRleCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gSFRNTEVsZW1l
bnQgaW5zZXJ0Um93KG9wdGlvbmFsIGxvbmcgaW5kZXggPSAtMSk7CiAgICAgW1JhaXNlc0V4Y2Vw
dGlvbl0gdm9pZCBkZWxldGVSb3coW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBsb25nIGlu
ZGV4KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRs
CmluZGV4IGI2YjY4ZjNmNDhjNGI3ZDc3OGMxZGYwYzAzYjRmYzMyODE2ZTQ5OGEuLmI0NDQzZjUw
MmQ0MTNlYzJhYTgzMTVlNDQ2YjJmYzQwYTU2NTIxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVSb3dFbGVtZW50LmlkbApAQCAtMjcsNyArMjcsNyBAQCBpbnRlcmZhY2UgSFRN
TFRhYmxlUm93RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICBbUmVmbGVjdD1jaGFyXSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGNoOwogICAgIFtSZWZsZWN0PWNoYXJvZmZdIGF0dHJpYnV0ZSBET01T
dHJpbmcgY2hPZmY7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdkFsaWduOwot
ICAgIFtSYWlzZXNFeGNlcHRpb25dIEhUTUxFbGVtZW50IGluc2VydENlbGwob3B0aW9uYWwgbG9u
ZyBpbmRleCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gSFRNTEVsZW1lbnQgaW5zZXJ0Q2VsbChv
cHRpb25hbCBsb25nIGluZGV4ID0gLTEpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgZGVs
ZXRlQ2VsbChbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIGxvbmcgaW5kZXgpOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbAppbmRl
eCBlOWFlMmE1MDA2MzA2OTcxYzgwNzc4NzYxZGUwMmFkZDM3Mjg5NjY1Li4wMDJmZTgyZmY3NTZk
ZDNkNDc0NjgyYWM3YzRmNTcyNjhmMmUzZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbApAQCAtMjYsNyArMjYsNyBAQAogICAgIFtSZWZs
ZWN0PWNoYXJvZmZdIGF0dHJpYnV0ZSBET01TdHJpbmcgY2hPZmY7CiAgICAgW1JlZmxlY3RdIGF0
dHJpYnV0ZSBET01TdHJpbmcgdkFsaWduOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29s
bGVjdGlvbiByb3dzOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIEhUTUxFbGVtZW50IGluc2VydFJv
dyhvcHRpb25hbCBsb25nIGluZGV4KTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBIVE1MRWxlbWVu
dCBpbnNlcnRSb3cob3B0aW9uYWwgbG9uZyBpbmRleCA9IC0xKTsKICAgICBbUmFpc2VzRXhjZXB0
aW9uXSB2b2lkIGRlbGV0ZVJvdyhbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIGxvbmcgaW5k
ZXgpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKaW5kZXggYjJjMDMyY2M1NzNkMzIyMTBiNWNiNmFiMjJl
MTI2NDFhYzVhNjg0MS4uNWRlMzVlZDY5ZmE4MDA3NzA0Yjc4NDNmMzA5MTkxZGRhNDk5MWIyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaWRsCkBAIC04MCwxOCArODAsMTggQEAgaW50ZXJmYWNlIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRCA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQgewogICAgICAgICB1bnJlc3Ry
aWN0ZWQgZmxvYXQgZW5kQW5nbGUsIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgYm9vbGVh
biBhbnRpY2xvY2t3aXNlKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGVsbGlwc2UodW5y
ZXN0cmljdGVkIGZsb2F0IHgsIHVucmVzdHJpY3RlZCBmbG9hdCB5LCB1bnJlc3RyaWN0ZWQgZmxv
YXQgcmFkaXVzWCwgdW5yZXN0cmljdGVkIGZsb2F0IHJhZGl1c1ksIHVucmVzdHJpY3RlZCBmbG9h
dCByb3RhdGlvbiwgdW5yZXN0cmljdGVkIGZsb2F0IHN0YXJ0QW5nbGUsIHVucmVzdHJpY3RlZCBm
bG9hdCBlbmRBbmdsZSwgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBib29sZWFuIGFudGlj
bG9ja3dpc2UpOwogCi0gICAgdm9pZCBmaWxsKERPTVBhdGggcGF0aCwgb3B0aW9uYWwgQ2FudmFz
V2luZGluZ1J1bGUgd2luZGluZyk7CisgICAgdm9pZCBmaWxsKERPTVBhdGggcGF0aCwgb3B0aW9u
YWwgQ2FudmFzV2luZGluZ1J1bGUgd2luZGluZyA9ICJub256ZXJvIik7CiAgICAgdm9pZCBzdHJv
a2UoRE9NUGF0aCBwYXRoKTsKLSAgICB2b2lkIGNsaXAoRE9NUGF0aCBwYXRoLCBvcHRpb25hbCBD
YW52YXNXaW5kaW5nUnVsZSB3aW5kaW5nKTsKKyAgICB2b2lkIGNsaXAoRE9NUGF0aCBwYXRoLCBv
cHRpb25hbCBDYW52YXNXaW5kaW5nUnVsZSB3aW5kaW5nID0gIm5vbnplcm8iKTsKIAotICAgIHZv
aWQgZmlsbChvcHRpb25hbCBDYW52YXNXaW5kaW5nUnVsZSB3aW5kaW5nKTsKKyAgICB2b2lkIGZp
bGwob3B0aW9uYWwgQ2FudmFzV2luZGluZ1J1bGUgd2luZGluZyA9ICJub256ZXJvIik7CiAgICAg
dm9pZCBzdHJva2UoKTsKLSAgICB2b2lkIGNsaXAob3B0aW9uYWwgQ2FudmFzV2luZGluZ1J1bGUg
d2luZGluZyk7CisgICAgdm9pZCBjbGlwKG9wdGlvbmFsIENhbnZhc1dpbmRpbmdSdWxlIHdpbmRp
bmcgPSAibm9uemVybyIpOwogCi0gICAgYm9vbGVhbiBpc1BvaW50SW5QYXRoKERPTVBhdGggcGF0
aCwgdW5yZXN0cmljdGVkIGZsb2F0IHgsIHVucmVzdHJpY3RlZCBmbG9hdCB5LCBvcHRpb25hbCBD
YW52YXNXaW5kaW5nUnVsZSB3aW5kaW5nKTsKKyAgICBib29sZWFuIGlzUG9pbnRJblBhdGgoRE9N
UGF0aCBwYXRoLCB1bnJlc3RyaWN0ZWQgZmxvYXQgeCwgdW5yZXN0cmljdGVkIGZsb2F0IHksIG9w
dGlvbmFsIENhbnZhc1dpbmRpbmdSdWxlIHdpbmRpbmcgPSAibm9uemVybyIpOwogICAgIGJvb2xl
YW4gaXNQb2ludEluU3Ryb2tlKERPTVBhdGggcGF0aCwgdW5yZXN0cmljdGVkIGZsb2F0IHgsIHVu
cmVzdHJpY3RlZCBmbG9hdCB5KTsKIAotICAgIGJvb2xlYW4gaXNQb2ludEluUGF0aCh1bnJlc3Ry
aWN0ZWQgZmxvYXQgeCwgdW5yZXN0cmljdGVkIGZsb2F0IHksIG9wdGlvbmFsIENhbnZhc1dpbmRp
bmdSdWxlIHdpbmRpbmcpOworICAgIGJvb2xlYW4gaXNQb2ludEluUGF0aCh1bnJlc3RyaWN0ZWQg
ZmxvYXQgeCwgdW5yZXN0cmljdGVkIGZsb2F0IHksIG9wdGlvbmFsIENhbnZhc1dpbmRpbmdSdWxl
IHdpbmRpbmcgPSAibm9uemVybyIpOwogICAgIGJvb2xlYW4gaXNQb2ludEluU3Ryb2tlKHVucmVz
dHJpY3RlZCBmbG9hdCB4LCB1bnJlc3RyaWN0ZWQgZmxvYXQgeSk7CiAKICAgICAvLyB0ZXh0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggNWI0ZjliMTQ1YjFlYmRhNTQ2ZDM0ZGJjMjMyZTkwYWQyOTk4OGQ0NC4uYzQ3MTVlZTBj
YWRlNmUzNDQ5NmIzYjRkYjA2ZDliNGEwMTA4YjViMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAy
MDE1LTA5LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dl
YklETF0gU3BlY2lmeSBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZXMgd2hlcmUgaXQgaXMgdXNlZnVs
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzMzEK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTQ1NjAwPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IHRvIGNoZWNrIHRoZSBiZWhhdmlv
ciBvZiBwYXNzaW5nIHVuZGVmaW5lZCBmb3IgdmFyaW91cyBvcHRpb25hbAorICAgICAgICBwYXJh
bWV0ZXJzIHRoYXQgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgaW4gdGhlIEhUTUwgc3BlY2lmaWNhdGlv
bi4KKworICAgICAgICAqIGZhc3QvaHRtbC91bmRlZmluZWQtcGFyYW1ldGVyLWRlZmF1bHQtdmFs
dWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2h0bWwvdW5kZWZpbmVkLXBh
cmFtZXRlci1kZWZhdWx0LXZhbHVlLmh0bWw6IEFkZGVkLgorCisyMDE1LTA5LTE3ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgW1dlYklETF0gQWRkIHN1cHBvcnQg
Zm9yIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MjYzCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU0
NTYwMD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jbGlwLXBh
dGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNsaXAtcGF0
aC1leHBlY3RlZC50eHQKaW5kZXggMDNhM2Q0NTUyYmIxOGQwMjYwM2FkYWMyODZhMWI0MWNmMDEw
NTM4Ni4uMDA0YjExMTM2NDcwNDlkY2NiNTVkNTkzMjkyN2M1YzExNGMwNTU2ZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNsaXAtcGF0aC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNsaXAtcGF0aC1leHBlY3RlZC50
eHQKQEAgLTI3LDcgKzI3LDcgQEAgUEFTUyBhcmVhQ29sb3IoaW1hZ2VEYXRhLmRhdGEsIHtyOjAs
ZzowLGI6MCxhOjB9KSBpcyB0cnVlCiBQQVNTIGN0eC5jbGlwKDApIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IEFyZ3VtZW50IDEgKCd3aW5kaW5nJykgdG8gQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNsaXAgbXVzdCBiZSBvbmUgb2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgogUEFTUyBjdHgu
Y2xpcChudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnd2luZGlu
ZycpIHRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jbGlwIG11c3QgYmUgb25lIG9mOiAibm9u
emVybyIsICJldmVub2RkIi4KIFBBU1MgY3R4LmNsaXAoJ3BhdGgyZCcpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCd3aW5kaW5nJykgdG8gQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNsaXAgbXVzdCBiZSBvbmUgb2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgotUEFTUyBj
dHguY2xpcCh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEg
KCd3aW5kaW5nJykgdG8gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNsaXAgbXVzdCBiZSBvbmUg
b2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgorUEFTUyBjdHguY2xpcCh1bmRlZmluZWQpIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBjdHguY2xpcChOdW1iZXIuTUFYX1ZBTFVFKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnd2luZGluZycpIHRvIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jbGlwIG11c3QgYmUgb25lIG9mOiAibm9uemVybyIsICJldmVub2Rk
Ii4KIFBBU1MgY3R4LmNsaXAoZnVuY3Rpb24oKSB7fSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogQXJndW1lbnQgMSAoJ3dpbmRpbmcnKSB0byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY2xp
cCBtdXN0IGJlIG9uZSBvZjogIm5vbnplcm8iLCAiZXZlbm9kZCIuCiBQQVNTIGN0eC5jbGlwKGZh
bHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnd2luZGluZycpIHRv
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jbGlwIG11c3QgYmUgb25lIG9mOiAibm9uemVybyIs
ICJldmVub2RkIi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1m
aWxsLXBhdGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWZp
bGwtcGF0aC1leHBlY3RlZC50eHQKaW5kZXggYTQ5NzY5OGY5ZDIzOGVhNTNhMzM2YjQyOTJlZjUx
ZDcyMDRlYmQ3My4uODY0MWU3YTI5YzIwNzdjZTlmNzQ5MmEzZDhkYzM0ZjFhNWQxZGVjOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWZpbGwtcGF0aC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWZpbGwtcGF0aC1leHBl
Y3RlZC50eHQKQEAgLTI2LDcgKzI2LDcgQEAgUEFTUyBhcmVhQ29sb3IoaW1hZ2VEYXRhLmRhdGEs
IHtyOjAsZzowLGI6MCxhOjB9KSBpcyB0cnVlCiBQQVNTIGN0eC5maWxsKDApIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCd3aW5kaW5nJykgdG8gQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmZpbGwgbXVzdCBiZSBvbmUgb2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgogUEFT
UyBjdHguZmlsbChudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgn
d2luZGluZycpIHRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5maWxsIG11c3QgYmUgb25lIG9m
OiAibm9uemVybyIsICJldmVub2RkIi4KIFBBU1MgY3R4LmZpbGwoJ3BhdGgyZCcpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCd3aW5kaW5nJykgdG8gQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmZpbGwgbXVzdCBiZSBvbmUgb2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgot
UEFTUyBjdHguZmlsbCh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDEgKCd3aW5kaW5nJykgdG8gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmZpbGwgbXVzdCBi
ZSBvbmUgb2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgorUEFTUyBjdHguZmlsbCh1bmRlZmluZWQp
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBjdHguZmlsbChOdW1iZXIuTUFYX1ZBTFVF
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnd2luZGluZycpIHRvIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5maWxsIG11c3QgYmUgb25lIG9mOiAibm9uemVybyIsICJl
dmVub2RkIi4KIFBBU1MgY3R4LmZpbGwoZnVuY3Rpb24oKSB7fSkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQXJndW1lbnQgMSAoJ3dpbmRpbmcnKSB0byBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuZmlsbCBtdXN0IGJlIG9uZSBvZjogIm5vbnplcm8iLCAiZXZlbm9kZCIuCiBQQVNTIGN0eC5m
aWxsKGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnd2luZGlu
ZycpIHRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5maWxsIG11c3QgYmUgb25lIG9mOiAibm9u
emVybyIsICJldmVub2RkIi4KQEAgLTM0LDcgKzM0LDcgQEAgUEFTUyBjdHguZmlsbChuZXcgRGF0
ZSgpKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnd2luZGluZycpIHRv
IEMKIFBBU1MgY3R4LmZpbGwoMCwgJ25vbnplcm8nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBUeXBlIGVycm9yLgogUEFTUyBjdHguZmlsbChudWxsLCAnbm9uemVybycpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGN0eC5maWxsKCdwYXRoMmQnLCAnbm9u
emVybycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGN0eC5m
aWxsKHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3dp
bmRpbmcnKSB0byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuZmlsbCBtdXN0IGJlIG9uZSBvZjog
Im5vbnplcm8iLCAiZXZlbm9kZCIuCitGQUlMIGN0eC5maWxsKHVuZGVmaW5lZCkgc2hvdWxkIHRo
cm93IGFuIGV4Y2VwdGlvbi4gV2FzIHVuZGVmaW5lZC4KIFBBU1MgY3R4LmZpbGwoTnVtYmVyLk1B
WF9WQUxVRSwgJ25vbnplcm8nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgogUEFTUyBjdHguZmlsbChmdW5jdGlvbigpIHt9LCAnbm9uemVybycpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGN0eC5maWxsKGZhbHNlLCAnbm9uemVybycp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWNsaXAtcGF0aC5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtY2xpcC1wYXRoLmpzCmlu
ZGV4IDYyOTUxZGJkOTM1YmYyN2EwNDQ0YzkzYTBlZWY0NGRhZGViMTBiZWUuLmY2MDRlN2JkYjBj
NWE5ODRmMWI1Y2M2MTZjMzRiMDNmMDcxY2ZmMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtY2xpcC1wYXRoLmpzCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtY2xpcC1wYXRoLmpzCkBAIC0xMTIs
NyArMTEyLDcgQEAgc2hvdWxkQmUoJ2FyZWFDb2xvcihpbWFnZURhdGEuZGF0YSwge3I6MCxnOjAs
YjowLGE6MH0pJywgJ3RydWUnKTsKIHNob3VsZFRocm93KCJjdHguY2xpcCgwKSIpOwogc2hvdWxk
VGhyb3coImN0eC5jbGlwKG51bGwpIik7CiBzaG91bGRUaHJvdygiY3R4LmNsaXAoJ3BhdGgyZCcp
Iik7Ci1zaG91bGRUaHJvdygiY3R4LmNsaXAodW5kZWZpbmVkKSIpOworc2hvdWxkTm90VGhyb3co
ImN0eC5jbGlwKHVuZGVmaW5lZCkiKTsKIHNob3VsZFRocm93KCJjdHguY2xpcChOdW1iZXIuTUFY
X1ZBTFVFKSIpOwogc2hvdWxkVGhyb3coImN0eC5jbGlwKGZ1bmN0aW9uKCkge30pIik7CiBzaG91
bGRUaHJvdygiY3R4LmNsaXAoZmFsc2UpIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWZpbGwtcGF0aC5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtZmlsbC1wYXRoLmpzCmluZGV4IDUyYWUxZjE5
OTE3NzQ0YjI4Y2NmZTEwMDJmZWVkYzEzMTc2YmM1YTUuLmE4YzMwYzE2NGMwYzhjYmU4YTJkZjdk
M2Q2NGQ2MDk4ZjczYmExNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Nj
cmlwdC10ZXN0cy9jYW52YXMtZmlsbC1wYXRoLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtZmlsbC1wYXRoLmpzCkBAIC05NCw3ICs5NCw3IEBAIHNo
b3VsZEJlKCdhcmVhQ29sb3IoaW1hZ2VEYXRhLmRhdGEsIHtyOjAsZzowLGI6MCxhOjB9KScsICd0
cnVlJyk7CiBzaG91bGRUaHJvdygiY3R4LmZpbGwoMCkiKTsKIHNob3VsZFRocm93KCJjdHguZmls
bChudWxsKSIpOwogc2hvdWxkVGhyb3coImN0eC5maWxsKCdwYXRoMmQnKSIpOwotc2hvdWxkVGhy
b3coImN0eC5maWxsKHVuZGVmaW5lZCkiKTsKK3Nob3VsZE5vdFRocm93KCJjdHguZmlsbCh1bmRl
ZmluZWQpIik7CiBzaG91bGRUaHJvdygiY3R4LmZpbGwoTnVtYmVyLk1BWF9WQUxVRSkiKTsKIHNo
b3VsZFRocm93KCJjdHguZmlsbChmdW5jdGlvbigpIHt9KSIpOwogc2hvdWxkVGhyb3coImN0eC5m
aWxsKGZhbHNlKSIpOwpAQCAtMTA2LDQgKzEwNiw0IEBAIHNob3VsZFRocm93KCJjdHguZmlsbCh1
bmRlZmluZWQpIik7CiBzaG91bGRUaHJvdygiY3R4LmZpbGwoTnVtYmVyLk1BWF9WQUxVRSwgJ25v
bnplcm8nKSIpOwogc2hvdWxkVGhyb3coImN0eC5maWxsKGZ1bmN0aW9uKCkge30sICdub256ZXJv
JykiKTsKIHNob3VsZFRocm93KCJjdHguZmlsbChmYWxzZSwgJ25vbnplcm8nKSIpOwotc2hvdWxk
VGhyb3coImN0eC5maWxsKG5ldyBEYXRlKCksICdub256ZXJvJykiKTsKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCitzaG91bGRUaHJvdygiY3R4LmZpbGwobmV3IERhdGUoKSwgJ25vbnplcm8n
KSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3VuZGVmaW5lZC1wYXJhbWV0
ZXItZGVmYXVsdC12YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvdW5k
ZWZpbmVkLXBhcmFtZXRlci1kZWZhdWx0LXZhbHVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
YjJmOTBjZjFlNjBlNzAyMWZiODYyOTA3OTFjOWQ1YThhODQ0NDk5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3VuZGVmaW5lZC1wYXJhbWV0ZXItZGVmYXVsdC12YWx1
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1MyBAQAorQ2hlY2tzIHRoZSBiZWhhdmlvciBvZiBw
YXNzaW5nIHVuZGVmaW5lZCBmb3Igb3B0aW9uYWwgcGFyYW1ldGVycyB0aGF0IGhhdmUgZGVmYXVs
dCB2YWx1ZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyogSFRNTElucHV0RWxl
bWVudC5zdGVwVXAob3B0aW9uYWwgbG9uZyBuID0gMSkKK1BBU1MgdGVzdE51bWJlci52YWx1ZSBp
cyAiMCIKK3Rlc3ROdW1iZXIuc3RlcFVwKCkKK1BBU1MgdGVzdE51bWJlci52YWx1ZSBpcyAiMSIK
K3Rlc3ROdW1iZXIuc3RlcFVwKHVuZGVmaW5lZCkKK1BBU1MgdGVzdE51bWJlci52YWx1ZSBpcyAi
MiIKKworKiBIVE1MSW5wdXRFbGVtZW50LnN0ZXBEb3duKG9wdGlvbmFsIGxvbmcgbiA9IDEpCit0
ZXN0TnVtYmVyLnN0ZXBEb3duKCkKK1BBU1MgdGVzdE51bWJlci52YWx1ZSBpcyAiMSIKK3Rlc3RO
dW1iZXIuc3RlcERvd24odW5kZWZpbmVkKQorUEFTUyB0ZXN0TnVtYmVyLnZhbHVlIGlzICIwIgor
CisqIEhUTUxUYWJsZUVsZW1lbnQuaW5zZXJ0Um93KG9wdGlvbmFsIGxvbmcgaW5kZXggPSAtMSkK
K25ld1JvdzEgPSB0ZXN0VGFibGUuaW5zZXJ0Um93KCkKK1BBU1MgdGVzdFRhYmxlLnJvd3NbdGVz
dFRhYmxlLnJvd3MubGVuZ3RoIC0gMV0gaXMgbmV3Um93MQorbmV3Um93MiA9IHRlc3RUYWJsZS5p
bnNlcnRSb3codW5kZWZpbmVkKQorUEFTUyB0ZXN0VGFibGUucm93c1t0ZXN0VGFibGUucm93cy5s
ZW5ndGggLSAxXSBpcyBuZXdSb3cyCisKKyogSFRNTFRhYmxlUm93RWxlbWVudC5pbnNlcnRDZWxs
KG9wdGlvbmFsIGxvbmcgaW5kZXggPSAtMSkKK25ld0NlbGwxID0gdGVzdFJvdy5pbnNlcnRDZWxs
KCkKK1BBU1MgdGVzdFJvdy5jZWxsc1t0ZXN0Um93LmNlbGxzLmxlbmd0aCAtIDFdIGlzIG5ld0Nl
bGwxCituZXdDZWxsMiA9IHRlc3RSb3cuaW5zZXJ0Q2VsbCh1bmRlZmluZWQpCitQQVNTIHRlc3RS
b3cuY2VsbHNbdGVzdFJvdy5jZWxscy5sZW5ndGggLSAxXSBpcyBuZXdDZWxsMgorCisqIEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50Lmluc2VydFJvdyhvcHRpb25hbCBsb25nIGluZGV4ID0gLTEpCitu
ZXdSb3czID0gdGVzdFRhYmxlU2VjdGlvbi5pbnNlcnRSb3coKQorUEFTUyB0ZXN0VGFibGUucm93
c1t0ZXN0VGFibGVTZWN0aW9uLnJvd3MubGVuZ3RoIC0gMV0gaXMgbmV3Um93MworbmV3Um93NCA9
IHRlc3RUYWJsZVNlY3Rpb24uaW5zZXJ0Um93KHVuZGVmaW5lZCkKK1BBU1MgdGVzdFRhYmxlLnJv
d3NbdGVzdFRhYmxlU2VjdGlvbi5yb3dzLmxlbmd0aCAtIDFdIGlzIG5ld1JvdzQKKworKiBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuZmlsbChvcHRpb25hbCBDYW52YXNXaW5kaW5nUnVsZSB3aW5k
aW5nID0gJ25vbnplcm8nKQorUEFTUyBjdHguZmlsbCh1bmRlZmluZWQpIGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uLgorCisqIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5maWxsKFBhdGgyRCBwYXRo
LCBvcHRpb25hbCBDYW52YXNXaW5kaW5nUnVsZSB3aW5kaW5nID0gJ25vbnplcm8nKQorUEFTUyBj
dHguZmlsbChwYXRoLCB1bmRlZmluZWQpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorCisqIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jbGlwKG9wdGlvbmFsIENhbnZhc1dpbmRpbmdSdWxlIHdp
bmRpbmcgPSAnbm9uemVybycpCitQQVNTIGN0eC5jbGlwKHVuZGVmaW5lZCkgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCisKKyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNsaXAoUGF0aDJEIHBh
dGgsIG9wdGlvbmFsIENhbnZhc1dpbmRpbmdSdWxlIHdpbmRpbmcgPSAnbm9uemVybycpCitQQVNT
IGN0eC5jbGlwKHBhdGgsIHVuZGVmaW5lZCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCisKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC91bmRlZmluZWQtcGFyYW1ldGVyLWRlZmF1bHQt
dmFsdWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC91bmRlZmluZWQtcGFyYW1ldGVyLWRl
ZmF1bHQtdmFsdWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTVkMmVmZWNiOWQ5ZjI3YjkyYjU2YzhiN2Rj
MzBiMDM0ZmE4YTUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3Vu
ZGVmaW5lZC1wYXJhbWV0ZXItZGVmYXVsdC12YWx1ZS5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9InRl
c3ROdW1iZXIiIHZhbHVlPSIwIj4KKworPHRhYmxlIGlkPSJ0ZXN0VGFibGUiPgorICA8dGhlYWQg
aWQ9InRlc3RUYWJsZVNlY3Rpb24iPgorICAgIDx0cj48L3RyPgorICA8L3RoZWFkPgorICA8dHIg
aWQ9InRlc3RSb3ciPgorICAgIDx0ZCBpZD0idGVzdENlbGwiPjwvdGQKKyAgPC90cj4KKzwvdGFi
bGU+CisKKzxjYW52YXMgaWQ9InRlc3RDYW52YXMiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj4K
KworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJDaGVja3MgdGhlIGJlaGF2aW9yIG9mIHBhc3Npbmcg
dW5kZWZpbmVkIGZvciBvcHRpb25hbCBwYXJhbWV0ZXJzIHRoYXQgaGF2ZSBkZWZhdWx0IHZhbHVl
cyIpOworCitkZWJ1ZygiKiBIVE1MSW5wdXRFbGVtZW50LnN0ZXBVcChvcHRpb25hbCBsb25nIG4g
PSAxKSIpOwordmFyIHRlc3ROdW1iZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdE51
bWJlciIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0TnVtYmVyLnZhbHVlIiwgIjAiKTsK
K2V2YWxBbmRMb2coInRlc3ROdW1iZXIuc3RlcFVwKCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygidGVzdE51bWJlci52YWx1ZSIsICIxIik7CitldmFsQW5kTG9nKCJ0ZXN0TnVtYmVyLnN0ZXBV
cCh1bmRlZmluZWQpIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3ROdW1iZXIudmFsdWUi
LCAiMiIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiKiBIVE1MSW5wdXRFbGVtZW50LnN0ZXBEb3du
KG9wdGlvbmFsIGxvbmcgbiA9IDEpIik7CitldmFsQW5kTG9nKCJ0ZXN0TnVtYmVyLnN0ZXBEb3du
KCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdE51bWJlci52YWx1ZSIsICIxIik7Citl
dmFsQW5kTG9nKCJ0ZXN0TnVtYmVyLnN0ZXBEb3duKHVuZGVmaW5lZCkiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygidGVzdE51bWJlci52YWx1ZSIsICIwIik7CisKK2RlYnVnKCIiKTsKK2RlYnVn
KCIqIEhUTUxUYWJsZUVsZW1lbnQuaW5zZXJ0Um93KG9wdGlvbmFsIGxvbmcgaW5kZXggPSAtMSki
KTsKKy8vIFNob3VsZCBhcHBlbmQgdGhlIHJvdyBpZiBpbmRleCBpcyBtaXNzaW5nIG9yIHVuZGVm
aW5lZC4KK3ZhciB0ZXN0VGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdFRhYmxl
Iik7Cit2YXIgbmV3Um93MTsKK2V2YWxBbmRMb2coIm5ld1JvdzEgPSB0ZXN0VGFibGUuaW5zZXJ0
Um93KCkiKTsKK3Nob3VsZEJlKCJ0ZXN0VGFibGUucm93c1t0ZXN0VGFibGUucm93cy5sZW5ndGgg
LSAxXSIsICJuZXdSb3cxIik7Cit2YXIgbmV3Um93MgorZXZhbEFuZExvZygibmV3Um93MiA9IHRl
c3RUYWJsZS5pbnNlcnRSb3codW5kZWZpbmVkKSIpOworc2hvdWxkQmUoInRlc3RUYWJsZS5yb3dz
W3Rlc3RUYWJsZS5yb3dzLmxlbmd0aCAtIDFdIiwgIm5ld1JvdzIiKTsKKworZGVidWcoIiIpOwor
ZGVidWcoIiogSFRNTFRhYmxlUm93RWxlbWVudC5pbnNlcnRDZWxsKG9wdGlvbmFsIGxvbmcgaW5k
ZXggPSAtMSkiKTsKKy8vIFNob3VsZCBhcHBlbmQgdGhlIGNlbGwgaWYgaW5kZXggaXMgbWlzc2lu
ZyBvciB1bmRlZmluZWQuCit2YXIgdGVzdFJvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0Um93Iik7Cit2YXIgbmV3Q2VsbDE7CitldmFsQW5kTG9nKCJuZXdDZWxsMSA9IHRlc3RSb3cu
aW5zZXJ0Q2VsbCgpIik7CitzaG91bGRCZSgidGVzdFJvdy5jZWxsc1t0ZXN0Um93LmNlbGxzLmxl
bmd0aCAtIDFdIiwgIm5ld0NlbGwxIik7Cit2YXIgbmV3Q2VsbDI7CitldmFsQW5kTG9nKCJuZXdD
ZWxsMiA9IHRlc3RSb3cuaW5zZXJ0Q2VsbCh1bmRlZmluZWQpIik7CitzaG91bGRCZSgidGVzdFJv
dy5jZWxsc1t0ZXN0Um93LmNlbGxzLmxlbmd0aCAtIDFdIiwgIm5ld0NlbGwyIik7CisKK2RlYnVn
KCIiKTsKK2RlYnVnKCIqIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lmluc2VydFJvdyhvcHRpb25h
bCBsb25nIGluZGV4ID0gLTEpIik7CisvLyBTaG91bGQgYXBwZW5kIHRoZSByb3cgaWYgaW5kZXgg
aXMgbWlzc2luZyBvciB1bmRlZmluZWQuCit2YXIgdGVzdFRhYmxlU2VjdGlvbiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0VGFibGVTZWN0aW9uIik7Cit2YXIgbmV3Um93MzsKK2V2YWxB
bmRMb2coIm5ld1JvdzMgPSB0ZXN0VGFibGVTZWN0aW9uLmluc2VydFJvdygpIik7CitzaG91bGRC
ZSgidGVzdFRhYmxlLnJvd3NbdGVzdFRhYmxlU2VjdGlvbi5yb3dzLmxlbmd0aCAtIDFdIiwgIm5l
d1JvdzMiKTsKK3ZhciBuZXdSb3c0OworZXZhbEFuZExvZygibmV3Um93NCA9IHRlc3RUYWJsZVNl
Y3Rpb24uaW5zZXJ0Um93KHVuZGVmaW5lZCkiKTsKK3Nob3VsZEJlKCJ0ZXN0VGFibGUucm93c1t0
ZXN0VGFibGVTZWN0aW9uLnJvd3MubGVuZ3RoIC0gMV0iLCAibmV3Um93NCIpOworCitkZWJ1Zygi
Iik7CitkZWJ1ZygiKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuZmlsbChvcHRpb25hbCBDYW52
YXNXaW5kaW5nUnVsZSB3aW5kaW5nID0gJ25vbnplcm8nKSIpOwordmFyIGN0eCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Q2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKK2N0eC5yZWN0
KDAsIDAsIDE1MCwgMTAwKTsKK2N0eC5maWxsU3R5bGUgPSAicmVkIjsKK3Nob3VsZE5vdFRocm93
KCJjdHguZmlsbCh1bmRlZmluZWQpIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCIqIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5maWxsKFBhdGgyRCBwYXRoLCBvcHRpb25hbCBDYW52YXNXaW5kaW5n
UnVsZSB3aW5kaW5nID0gJ25vbnplcm8nKSIpOwordmFyIHBhdGggPSBuZXcgUGF0aDJEKCk7Citz
aG91bGROb3RUaHJvdygiY3R4LmZpbGwocGF0aCwgdW5kZWZpbmVkKSIpOworCitkZWJ1ZygiIik7
CitkZWJ1ZygiKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY2xpcChvcHRpb25hbCBDYW52YXNX
aW5kaW5nUnVsZSB3aW5kaW5nID0gJ25vbnplcm8nKSIpOworc2hvdWxkTm90VGhyb3coImN0eC5j
bGlwKHVuZGVmaW5lZCkiKTsKKworZGVidWcoIiIpOworZGVidWcoIiogQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmNsaXAoUGF0aDJEIHBhdGgsIG9wdGlvbmFsIENhbnZhc1dpbmRpbmdSdWxlIHdp
bmRpbmcgPSAnbm9uemVybycpIik7CitzaG91bGROb3RUaHJvdygiY3R4LmNsaXAocGF0aCwgdW5k
ZWZpbmVkKSIpOworCitkZWJ1ZygiIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261591</attachid>
            <date>2015-09-19 16:55:32 -0700</date>
            <delta_ts>2015-09-19 17:45:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149331-20150919165517.patch</filename>
            <type>text/plain</type>
            <size>34378</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI5ZDEzYzZjMTc3NThl
MDJiZmNlZmQ0ODQwNGY3YjViZDhiMjUxZS4uZTBjMzY3NWMxYWFmNzgwZDA3ZGJmYTEwYTgxMmJi
OGUzNDlhMDA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYyIEBACiAyMDE1LTA5LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dlYklETF0gU3BlY2lmeSBk
ZWZhdWx0IHBhcmFtZXRlciB2YWx1ZXMgd2hlcmUgaXQgaXMgdXNlZnVsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzMzEKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzIyNTQ1NjAwPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgor
CisgICAgICAgIFNwZWNpZnkgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzIHdoZXJlIGl0IGlzIHVz
ZWZ1bCBpbiBvdXIgSURMLCB0aGF0IGlzCisgICAgICAgIHRvIHNheSB3aGVyZSB1bmRlZmluZWQg
d291bGQgYmUgY29udmVydGVkIHRvIHNvbWV0aGluZyBlbHNlIHRoYW4gdGhlCisgICAgICAgIGRl
ZmF1bHQgdmFsdWUgb3RoZXJ3aXNlLiBUaGlzIHBhdGNoIGZvY3VzZXMgb24gdGhlIEhUTUwgQVBJ
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIHN1cHBvcnQgZm9yIGRlZmF1bHQgdmFs
dWVzIGZvciBvcHRpb25hbCBwYXJhbWV0ZXJzCisgICAgICAgIG9mIHN0cmluZyBlbnVtZXJhdGlv
biB0eXBlIGFzIHRoaXMgd2FzIG5lZWRlZCBieSB0aGUKKyAgICAgICAgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEIEFQSS4KKworICAgICAgICBUZXN0OiBmYXN0L2h0bWwvdW5kZWZpbmVkLXBhcmFt
ZXRlci1kZWZhdWx0LXZhbHVlLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2spOgorICAg
ICAgICBBZGQgc3VwcG9ydCBkZWZhdWx0IHZhbHVlcyBmb3Igb3B0aW9uYWwgcGFyYW1ldGVycyBv
ZiBzdHJpbmcgZW51bWVyYXRpb24KKyAgICAgICAgdHlwZSBhcyB0aGlzIHdhcyBuZWVkZWQgYnkg
dGhlIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBBUEkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICBBZGQgYmluZGluZ3MgdGVzdHMgY292ZXJhZ2Ug
Zm9yIG9wdGlvbmFsIHBhcmFtZXRlcnMgb2Ygc3RyaW5nIGVudW1lcmF0aW9uCisgICAgICAgIHR5
cGUgYW5kIHRoYXQgaGF2ZSBhIGRlZmF1bHQgdmFsdWUuCisKKyAgICAgICAgKiBodG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaWRsOgorICAgICAgICBTcGVjaWZ5IGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVl
IGZvciBzdGVwVXAoKSAvIHN0ZXBEb3duKCkuIFdpdGhvdXQgdGhpcywKKyAgICAgICAgc3RlcFVw
KHVuZGVmaW5lZCkgd291bGQgYmUgZXF1aXZhbGVudCB0byBjYWxsaW5nIHN0ZXBVcCgwKSBldmVu
IHRob3VnaAorICAgICAgICBpdCBpcyBzdXBwb3NlZCB0byBiZSBlcXVpdmFsZW50IHRvIGNhbGxp
bmcgc3RlcFVwKDEpLgorCisgICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbDoKKyAgICAgICAgU3BlY2lm
eSBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZSBmb3IgaW5zZXJ0Um93KCkuIFdpdGhvdXQgdGhpcywK
KyAgICAgICAgaW5zZXJ0Um93KHVuZGVmaW5lZCkgd291bGQgYmUgZXF1aXZhbGVudCB0byBpbnNl
cnRSb3coMCkgaW5zdGVhZCBvZgorICAgICAgICBpbnNlcnRSb3coLTEpLiBUaGlzIHdvdWxkIHBy
ZXBlbmQgdGhlIHJvdyBpbnN0ZWFkIG9mIGFwcGVuZGluZyBpdDoKKyAgICAgICAgLSBodHRwczov
L2h0bWwuc3BlYy53aGF0d2cub3JnLyNodG1sdGFibGVlbGVtZW50CisgICAgICAgIC0gaHR0cHM6
Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jaHRtbHRhYmxlc2VjdGlvbmVsZW1lbnQKKworICAgICAg
ICAqIGh0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGw6CisgICAgICAgIFNwZWNpZnkgZGVmYXVs
dCBwYXJhbWV0ZXIgdmFsdWUgZm9yIGluc2VydENlbGwoKS4gV2l0aG91dCB0aGlzLAorICAgICAg
ICBpbnNlcnRDZWxsKHVuZGVmaW5lZCkgd291bGQgYmUgZXF1aXZhbGVudCB0byBpbnNlcnRDZWxs
KDApIGluc3RlYWQgb2YKKyAgICAgICAgaW5zZXJ0Q2VsbCgtMSkuIFRoaXMgd291bGQgcHJlcGVu
ZCB0aGUgY2VsbCBpbnN0ZWFkIG9mIGFwcGVuZGluZyBpdDoKKyAgICAgICAgLSBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnLyNodG1sdGFibGVyb3dlbGVtZW50CisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsOgorICAgICAgICBTcGVjaWZ5IGRl
ZmF1bHQgdmFsdWUgZm9yIENhbnZhc1dpbmRpbmdSdWxlIHBhcmFtZXRlcnMgc28gdGhhdCBjYWxs
aW5nCisgICAgICAgIHRoaXMgd2l0aCB1bmRlZmluZWQgd2lsbCB1c2UgdGhlIGRlZmF1bHQgZW51
bSB2YWx1ZSBpbnN0ZWFkIG9mIHVzaW5nIHRoZQorICAgICAgICAidW5kZWZpbmVkIiBzdHJpbmcg
YW5kIHRoZW4gdGhyb3dpbmcgYmVjYXVzZSBpdCBpcyBub3QgYSB2YWxpZCBlbnVtIHZhbHVlOgor
ICAgICAgICAtIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2NhbnZhc3JlbmRlcmluZ2Nv
bnRleHQyZAorCisyMDE1LTA5LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
ICAgICAgICAgR2V0IHJpZCBvZiBtb3N0IGN1c3RvbSBiaW5kaW5ncyBmb3IgTG9jYXRpb24uaWRs
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNzAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQppbmRleCBhZGM4ZDJlNDU1M2IyNWI2ZGRlZTU4NjhhOTdkNTU4NTNhNWI5NzRkLi42MWNm
ZTZiOWRhMGMwZDc1MGI0ZmM3Nzk3MWY0YWQzYTI3ZWRlZTBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzM1OSwyNiAr
MzM1OSw0NiBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgfSBlbHNpZiAo
JGNvZGVHZW5lcmF0b3ItPklzRW51bVR5cGUoJGFyZ1R5cGUpKSB7CiAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyI8cnVudGltZS9FcnJvci5oPiJ9ID0gMTsKIAotICAgICAgICAgICAgbXkgJGFy
Z1ZhbHVlID0gImV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpIjsKLSAgICAgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICAvLyBLZWVwIHBvaW50ZXIgdG8gdGhlIEpTU3RyaW5nIGluIGEg
bG9jYWwgc28gd2UgZG9uJ3QgbmVlZCB0byByZWYgdGhlIFN0cmluZy5cbiIpOwotICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8qICR7bmFtZX1TdHJpbmcgPSAke2FyZ1Zh
bHVlfS50b1N0cmluZyhleGVjKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpXG4iKTsKLSAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IGF1dG8mICRuYW1lID0gJHtuYW1lfVN0cmluZy0+dmFsdWUoZXhlYyk7XG4iKTsKLQotICAgICAg
ICAgICAgbXkgQGVudW1WYWx1ZXMgPSAkY29kZUdlbmVyYXRvci0+VmFsaWRFbnVtVmFsdWVzKCRh
cmdUeXBlKTsKLSAgICAgICAgICAgIG15IEBlbnVtQ2hlY2tzID0gKCk7Ci0gICAgICAgICAgICBt
eSAkZW51bXMgPSAwOwotICAgICAgICAgICAgZm9yZWFjaCBteSAkZW51bVZhbHVlIChAZW51bVZh
bHVlcykgewotICAgICAgICAgICAgICAgIHB1c2goQGVudW1DaGVja3MsICIke25hbWV9ICE9IFwi
JGVudW1WYWx1ZVwiIik7Ci0gICAgICAgICAgICAgICAgaWYgKCEkZW51bXMpIHsKLSAgICAgICAg
ICAgICAgICAgICAgJGVudW1zID0gIlxcXCIkZW51bVZhbHVlXFxcIiI7Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgJGVudW1zID0gJGVudW1zIC4gIiwgXFxc
IiIgLiAkZW51bVZhbHVlIC4gIlxcXCIiOworICAgICAgICAgICAgbXkgJGV4Y2VwdGlvbkNoZWNr
ID0gc3ViIHsKKyAgICAgICAgICAgICAgICBteSAkaW5kZW50ID0gc2hpZnQ7CisgICAgICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIiAgICBpZiAoVU5MSUtFTFkoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpKVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAkaW5kZW50IC4gIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTtcbiIpOworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgbXkgJGVudW1WYWx1ZUNo
ZWNrID0gc3ViIHsKKyAgICAgICAgICAgICAgICBteSAkaW5kZW50ID0gc2hpZnQ7CisgICAgICAg
ICAgICAgICAgbXkgQGVudW1WYWx1ZXMgPSAkY29kZUdlbmVyYXRvci0+VmFsaWRFbnVtVmFsdWVz
KCRhcmdUeXBlKTsKKyAgICAgICAgICAgICAgICBteSBAZW51bUNoZWNrcyA9ICgpOworICAgICAg
ICAgICAgICAgIG15ICRlbnVtcyA9IDA7CisgICAgICAgICAgICAgICAgZm9yZWFjaCBteSAkZW51
bVZhbHVlIChAZW51bVZhbHVlcykgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBlbnVtQ2hl
Y2tzLCAiJHtuYW1lfSAhPSBcIiRlbnVtVmFsdWVcIiIpOworICAgICAgICAgICAgICAgICAgICBp
ZiAoISRlbnVtcykgeworICAgICAgICAgICAgICAgICAgICAgICAgJGVudW1zID0gIlxcXCIkZW51
bVZhbHVlXFxcIiI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAkZW51bXMgPSAkZW51bXMgLiAiLCBcXFwiIiAuICRlbnVtVmFsdWUgLiAiXFxc
IiI7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIiAgICBpZiAoIiAuIGpvaW4oIiAm
JiAiLCBAZW51bUNoZWNrcykgLiAiKVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAkaW5kZW50IC4gIiAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRNdXN0QmVFbnVt
RXJyb3IoKmV4ZWMsICRhcmdzSW5kZXgsIFwiJG5hbWVcIiwgXCIkaW50ZXJmYWNlTmFtZVwiLCAk
cXVvdGVkRnVuY3Rpb25OYW1lLCBcIiRlbnVtc1wiKTtcbiIpOworICAgICAgICAgICAgfTsKKwor
ICAgICAgICAgICAgbXkgJGFyZ1ZhbHVlID0gImV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpIjsK
KyAgICAgICAgICAgIGlmICgkcGFyYW1ldGVyLT5pc09wdGlvbmFsICYmICRwYXJhbWV0ZXItPmRl
ZmF1bHQpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgU3RyaW5n
ICRuYW1lO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlm
ICgke2FyZ1ZhbHVlfS5pc1VuZGVmaW5lZCgpKVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgICAgICAkbmFtZSA9IEFTQ0lJTGl0ZXJhbCgiIC4gJHBhcmFtZXRl
ci0+ZGVmYXVsdCAuICIpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIGVsc2Uge1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgICAgICAkbmFtZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KCRhcmdzSW5kZXgpLnRvU3Ry
aW5nKGV4ZWMpLT52YWx1ZShleGVjKTtcbiIpOworICAgICAgICAgICAgICAgICYkZXhjZXB0aW9u
Q2hlY2soIiAgICAiKTsKKyAgICAgICAgICAgICAgICAmJGVudW1WYWx1ZUNoZWNrKCIgICAgIik7
CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
Ly8gS2VlcCBwb2ludGVyIHRvIHRoZSBKU1N0cmluZyBpbiBhIGxvY2FsIHNvIHdlIGRvbid0IG5l
ZWQgdG8gcmVmIHRoZSBTdHJpbmcuXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgYXV0byogJHtuYW1lfVN0cmluZyA9ICR7YXJnVmFsdWV9LnRvU3RyaW5nKGV4
ZWMpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8m
ICRuYW1lID0gJHtuYW1lfVN0cmluZy0+dmFsdWUoZXhlYyk7XG4iKTsKKyAgICAgICAgICAgICAg
ICAmJGV4Y2VwdGlvbkNoZWNrKCIiKTsKKyAgICAgICAgICAgICAgICAmJGVudW1WYWx1ZUNoZWNr
KCIiKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1c2ggKEAkb3V0cHV0QXJyYXksICIg
ICAgaWYgKCIgLiBqb2luKCIgJiYgIiwgQGVudW1DaGVja3MpIC4gIilcbiIpOwotICAgICAgICAg
ICAgcHVzaCAoQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRNdXN0
QmVFbnVtRXJyb3IoKmV4ZWMsICRhcmdzSW5kZXgsIFwiJG5hbWVcIiwgXCIkaW50ZXJmYWNlTmFt
ZVwiLCAkcXVvdGVkRnVuY3Rpb25OYW1lLCBcIiRlbnVtc1wiKTtcbiIpOwogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgIyBJZiB0aGUgIlN0cmljdFR5cGVDaGVja2luZyIgZXh0ZW5kZWQg
YXR0cmlidXRlIGlzIHByZXNlbnQsIGFuZCB0aGUgYXJndW1lbnQncyB0eXBlIGlzIGFuCiAgICAg
ICAgICAgICAjIGludGVyZmFjZSB0eXBlLCB0aGVuIGlmIHRoZSBpbmNvbWluZyB2YWx1ZSBkb2Vz
IG5vdCBpbXBsZW1lbnQgdGhhdCBpbnRlcmZhY2UsIGEgVHlwZUVycm9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0
T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouY3BwCmluZGV4IDFiOWFhMjgzNWNlMTY5YWQwNmNiNmRjOWM5NDI5MmIy
MjA1ODBmMzkuLmE1ODljNzFkYmJjZTgxY2I5ZDdmMGYzMmJkMThhYzEyYTVmNTYzZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0xMTUyLDYgKzExNTIsMTYgQEAgdm9p
ZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX2VudW1fYXJnKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTVQKICAgICBpdGVtLT5tZXRob2RXaXRoRW51bUFyZyhjb252ZXJ0
ZWRFbnVtQXJnKTsKIH0KIAordm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX29w
dGlvbmFsX2VudW1fYXJnX2FuZF9kZWZhdWx0X3ZhbHVlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IFdlYktpdERPTVRlc3RFbnVtVHlwZSogZW51bUFyZykKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lT
X1RFU1RfT0JKKHNlbGYpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfVEVT
VF9FTlVNX1RZUEUoZW51bUFyZykpOworICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJL
aXQ6OmNvcmUoc2VsZik7CisgICAgV2ViQ29yZTo6VGVzdEVudW1UeXBlKiBjb252ZXJ0ZWRFbnVt
QXJnID0gV2ViS2l0Ojpjb3JlKGVudW1BcmcpOworICAgIGl0ZW0tPm1ldGhvZFdpdGhPcHRpb25h
bEVudW1BcmdBbmREZWZhdWx0VmFsdWUoY29udmVydGVkRW51bUFyZyk7Cit9CisKIFdlYktpdERP
TVRlc3RPYmoqIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3RoYXRfcmVxdWlyZXNfYWxsX2Fy
Z3NfYW5kX3Rocm93cyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogc3RyQXJn
LCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcsIEdFcnJvcioqIGVycm9yKQogewogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RP
YmouaAppbmRleCA3MjM2ZTY4MzVhZDA5ZGZmZmM1NDU4MzMwNDRmNWM0M2E1ZmQyOGFiLi4yNjMx
ZTU4NGM3OTRiYzdhNTE3MDgwNTdjMzRlYjNlYWY3YTE2ZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdE9iai5oCkBAIC0yNDYsNiArMjQ2LDE2IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0
X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9lbnVtX2FyZyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBXZWJLaXRET01UZXN0RW51bVR5cGUqIGVudW1BcmcpOwogCiAvKioKKyAqIHdlYmtpdF9kb21f
dGVzdF9vYmpfbWV0aG9kX3dpdGhfb3B0aW9uYWxfZW51bV9hcmdfYW5kX2RlZmF1bHRfdmFsdWU6
CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagorICogQGVudW1Bcmc6IEEgI1dlYktpdERP
TVRlc3RFbnVtVHlwZQorICoKKyAqIFN0YWJpbGl0eTogVW5zdGFibGUKKyoqLworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX29wdGlvbmFsX2VudW1fYXJn
X2FuZF9kZWZhdWx0X3ZhbHVlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RF
bnVtVHlwZSogZW51bUFyZyk7CisKKy8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rf
dGhhdF9yZXF1aXJlc19hbGxfYXJnc19hbmRfdGhyb3dzOgogICogQHNlbGY6IEEgI1dlYktpdERP
TVRlc3RPYmoKICAqIEBzdHJBcmc6IEEgI2djaGFyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGE1NmUzMmJhMmZk
YmU5ODQ1ZWNjM2ExNWIyNzcxOWFjOTI4MzBjNWEuLmMwODkzZGEwZmI5Yzc4YTAyMGJjNjUxYjlj
MmQwMjc4MGZlMTNhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC05MSw2ICs5MSw3IEBAIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhv
ZFdpdGhBcmdzKEpTCiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcoSlNDOjpFeGVjU3RhdGUqKTsK
IEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFJldHVybmluZ1NlcXVlbmNlKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoRW51bUFyZyhKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51bUFy
Z0FuZERlZmF1bHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVz
QWxsQXJnc0FuZFRocm93cyhKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKEpT
Qzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PcHRpb25zT2JqZWN0KEpTQzo6RXhlY1N0YXRlKik7CkBAIC02
MDUsNiArNjA2LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3Rv
dHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyIsIEpTQzo6
RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcpLCAo
aW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAibWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UiLCBKU0M6
OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2Up
LCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0aEVudW1BcmciLCBKU0M6OkZ1
bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcpLCAoaW50cHRy
X3QpICgxKSB9IH0sCisgICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRW
YWx1ZSIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsg
Im1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyksIChp
bnRwdHJfdCkgKDIpIH0gfSwKICAgICB7ICJzZXJpYWxpemVkVmFsdWUiLCBKU0M6OkZ1bmN0aW9u
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKSwgKGludHB0cl90KSAoMSkg
fSB9LAogICAgIHsgIm9wdGlvbnNPYmplY3QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3B0aW9uc09iamVjdCksIChpbnRwdHJfdCkgKDEpIH0gfSwKQEAgLTMyODEsMTUg
KzMyODMsNDQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJnKEV4ZWNTdGEKICAgICAgICAgcmV0dXJuIHRocm93
Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAgICAg
Ly8gS2VlcCBwb2ludGVyIHRvIHRoZSBKU1N0cmluZyBpbiBhIGxvY2FsIHNvIHdlIGRvbid0IG5l
ZWQgdG8gcmVmIHRoZSBTdHJpbmcuCiAgICAgYXV0byogZW51bUFyZ1N0cmluZyA9IGV4ZWMtPmFy
Z3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpOworICAgIGF1dG8mIGVudW1BcmcgPSBlbnVtQXJnU3Ry
aW5nLT52YWx1ZShleGVjKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGF1
dG8mIGVudW1BcmcgPSBlbnVtQXJnU3RyaW5nLT52YWx1ZShleGVjKTsKICAgICBpZiAoZW51bUFy
ZyAhPSAiIiAmJiBlbnVtQXJnICE9ICJFbnVtVmFsdWUxIiAmJiBlbnVtQXJnICE9ICJFbnVtVmFs
dWUyIiAmJiBlbnVtQXJnICE9ICJFbnVtVmFsdWUzIikKICAgICAgICAgcmV0dXJuIHRocm93QXJn
dW1lbnRNdXN0QmVFbnVtRXJyb3IoKmV4ZWMsIDAsICJlbnVtQXJnIiwgIlRlc3RPYmoiLCAibWV0
aG9kV2l0aEVudW1BcmciLCAiXCJcIiwgXCJFbnVtVmFsdWUxXCIsIFwiRW51bVZhbHVlMlwiLCBc
IkVudW1WYWx1ZTNcIiIpOwogICAgIGltcGwubWV0aG9kV2l0aEVudW1BcmcoZW51bUFyZyk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CisgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOworICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpCisgICAgICAgIHJldHVybiB0aHJvd1RoaXNUeXBlRXJyb3Io
KmV4ZWMsICJUZXN0T2JqIiwgIm1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFs
dWUiKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9i
ajo6aW5mbygpKTsKKyAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOworCisgICAg
c2l6ZV90IGFyZ3NDb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsKKyAgICBpZiAoYXJnc0Nv
dW50IDw9IDApIHsKKyAgICAgICAgaW1wbC5tZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVm
YXVsdFZhbHVlKCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CisgICAgfQorCisgICAgU3RyaW5nIGVudW1Bcmc7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
KDApLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIGVudW1BcmcgPSBTdHJpbmcoQVNDSUlMaXRlcmFs
KCJFbnVtVmFsdWUxIikpOworICAgIGVsc2UgeworICAgICAgICBlbnVtQXJnID0gZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOworICAgICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQorICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgaWYgKGVudW1BcmcgIT0gIiIg
JiYgZW51bUFyZyAhPSAiRW51bVZhbHVlMSIgJiYgZW51bUFyZyAhPSAiRW51bVZhbHVlMiIgJiYg
ZW51bUFyZyAhPSAiRW51bVZhbHVlMyIpCisgICAgICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVu
dE11c3RCZUVudW1FcnJvcigqZXhlYywgMCwgImVudW1BcmciLCAiVGVzdE9iaiIsICJtZXRob2RX
aXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlIiwgIlwiXCIsIFwiRW51bVZhbHVlMVwi
LCBcIkVudW1WYWx1ZTJcIiwgXCJFbnVtVmFsdWUzXCIiKTsKKyAgICB9CisgICAgaW1wbC5tZXRo
b2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlKGVudW1BcmcpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNB
bGxBcmdzQW5kVGhyb3dzKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCmluZGV4IDQyMmQ4NjMwMDQ3MDAwMTMx
ZmNlZGVmN2EyZWJjZGFlYTQ0ODUzMDAuLmJkNzJkZGZlMGFjYjUxZDQ3ZWJiNTdkNmRjYTQxNjQ4
ZTAwZTQwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKQEAgLTEzNCw2ICsxMzQsNyBAQCBXRUJDT1JFX0VYUE9S
VCBAaW50ZXJmYWNlIERPTVRlc3RPYmogOiBET01PYmplY3QKIC0gKERPTVRlc3RPYmogKilvYmpN
ZXRob2Q7CiAtIChET01UZXN0T2JqICopb2JqTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0
ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwogLSAo
dm9pZCltZXRob2RXaXRoRW51bUFyZzooRE9NVGVzdEVudW1UeXBlICopZW51bUFyZzsKKy0gKHZv
aWQpbWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZTooRE9NVGVzdEVudW1U
eXBlICopZW51bUFyZzsKIC0gKERPTVRlc3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdz
QW5kVGhyb3dzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7
CiAtICh2b2lkKXNlcmlhbGl6ZWRWYWx1ZTooTlNTdHJpbmcgKilzZXJpYWxpemVkQXJnOwogLSAo
dm9pZClvcHRpb25zT2JqZWN0OihET01EaWN0aW9uYXJ5ICopb28gb29vOihET01EaWN0aW9uYXJ5
ICopb29vOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXggNzY5MTc1NzFjNzQ3OWEwZjA2OThmZWM3MGZiMTUw
MGZhY2RmNjI4MS4uY2RkMTk2YWU2YTI5NTRkODQ4ZWI5MGUyNjQzOTE5MWFjNTY4ZGJjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0T2JqLm1tCkBAIC04OTYsNiArODk2LDEyIEBAIC0gKHZvaWQpbWV0aG9kV2l0aEVudW1B
cmc6KERPTVRlc3RFbnVtVHlwZSAqKWVudW1BcmcKICAgICBJTVBMLT5tZXRob2RXaXRoRW51bUFy
Zyhjb3JlKGVudW1BcmcpKTsKIH0KIAorLSAodm9pZCltZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJn
QW5kRGVmYXVsdFZhbHVlOihET01UZXN0RW51bVR5cGUgKillbnVtQXJnCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPm1ldGhvZFdpdGhPcHRp
b25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUoY29yZShlbnVtQXJnKSk7Cit9CisKIC0gKERPTVRl
c3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzOihOU1N0cmluZyAqKXN0
ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKIHsKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggOWQ1ZDc2MTViODc2ZDZiMzEzYjVhZjc1YzQ5NWYw
MDMxZDY0OGIzOC4uNDU3MWI2ZDFkNTZiNjc2OTY1MDgxMzIzZWE0MmJjNWI5MTRlYTMxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApA
QCAtOTIsNiArOTIsNyBAQCBlbnVtIF9vcHRpb25hbCB7ICIiLCAiT3B0aW9uYWxWYWx1ZTEiLCAi
T3B0aW9uYWxWYWx1ZTIiLCAiT3B0aW9uYWxWYWx1ZTMiIH07CiAgICAgc2VxdWVuY2U8U2NyaXB0
UHJvZmlsZT4gbWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UobG9uZyBsb25nQXJnKTsKIAogICAgIHZv
aWQgbWV0aG9kV2l0aEVudW1BcmcoVGVzdEVudW1UeXBlIGVudW1BcmcpOworICAgIHZvaWQgbWV0
aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZShvcHRpb25hbCBUZXN0RW51bVR5
cGUgZW51bUFyZyA9ICJFbnVtVmFsdWUxIik7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gVGVzdE9i
aiBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKERPTVN0cmluZyBzdHJBcmcsIFRl
c3RPYmogb2JqQXJnKTsKIAogICAgIHZvaWQgc2VyaWFsaXplZFZhbHVlKFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSBzZXJpYWxpemVkQXJnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsCmluZGV4IGQzOGUzMTRlN2VjODM2ODJkNWFmZjkwMzA5NmJkZDZiYzQ0OTFiZWEuLjIy
ZDVkOTExY2FmYzk1YmVkZjc3NjFlM2VkMWU3YzE2NDY0NWJhNzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNjUsOCArNjUsOCBAQCBpbnRlcmZhY2UgSFRN
TElucHV0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9u
XSBhdHRyaWJ1dGUgRGF0ZSB2YWx1ZUFzRGF0ZTsKICAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9u
XSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB2YWx1ZUFzTnVtYmVyOwogCi0gICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gdm9pZCBzdGVwVXAob3B0aW9uYWwgbG9uZyBuKTsKLSAgICBbUmFpc2Vz
RXhjZXB0aW9uXSB2b2lkIHN0ZXBEb3duKG9wdGlvbmFsIGxvbmcgbik7CisgICAgW1JhaXNlc0V4
Y2VwdGlvbl0gdm9pZCBzdGVwVXAob3B0aW9uYWwgbG9uZyBuID0gMSk7CisgICAgW1JhaXNlc0V4
Y2VwdGlvbl0gdm9pZCBzdGVwRG93bihvcHRpb25hbCBsb25nIG4gPSAxKTsKIAogICAgIGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIHdpZHRoOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
IHdpbGxWYWxpZGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsCmlu
ZGV4IGYyNTZlYzI3YjhhMzg3NDE4ZTg2ZGM4ODkxOTVhZjg2ZGQwYjYzMDAuLjc2Mzc3ZTk3NjI4
OTczYWI1ZWJkZDZiMmE1OTA2NWExZTllNzE1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVFbGVtZW50LmlkbApAQCAtNDUsNyArNDUsNyBAQCBpbnRlcmZhY2UgSFRNTFRhYmxlRWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKICAgICBIVE1MRWxlbWVudCBjcmVhdGVDYXB0aW9uKCk7CiAg
ICAgdm9pZCBkZWxldGVDYXB0aW9uKCk7CiAKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSBIVE1MRWxl
bWVudCBpbnNlcnRSb3cob3B0aW9uYWwgbG9uZyBpbmRleCk7CisgICAgW1JhaXNlc0V4Y2VwdGlv
bl0gSFRNTEVsZW1lbnQgaW5zZXJ0Um93KG9wdGlvbmFsIGxvbmcgaW5kZXggPSAtMSk7CiAgICAg
W1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBkZWxldGVSb3coW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRp
b25hbCBsb25nIGluZGV4KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlUm93RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJv
d0VsZW1lbnQuaWRsCmluZGV4IGI2YjY4ZjNmNDhjNGI3ZDc3OGMxZGYwYzAzYjRmYzMyODE2ZTQ5
OGEuLmI0NDQzZjUwMmQ0MTNlYzJhYTgzMTVlNDQ2YjJmYzQwYTU2NTIxMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmlkbApAQCAtMjcsNyArMjcsNyBAQCBp
bnRlcmZhY2UgSFRNTFRhYmxlUm93RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICBbUmVmbGVj
dD1jaGFyXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoOwogICAgIFtSZWZsZWN0PWNoYXJvZmZdIGF0
dHJpYnV0ZSBET01TdHJpbmcgY2hPZmY7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgdkFsaWduOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIEhUTUxFbGVtZW50IGluc2VydENlbGwo
b3B0aW9uYWwgbG9uZyBpbmRleCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gSFRNTEVsZW1lbnQg
aW5zZXJ0Q2VsbChvcHRpb25hbCBsb25nIGluZGV4ID0gLTEpOwogICAgIFtSYWlzZXNFeGNlcHRp
b25dIHZvaWQgZGVsZXRlQ2VsbChbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIGxvbmcgaW5k
ZXgpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmlkbAppbmRleCBlOWFlMmE1MDA2MzA2OTcxYzgwNzc4NzYxZGUwMmFkZDM3Mjg5NjY1Li4w
MDJmZTgyZmY3NTZkZDNkNDc0NjgyYWM3YzRmNTcyNjhmMmUzZGViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbApAQCAtMjYsNyArMjYsNyBA
QAogICAgIFtSZWZsZWN0PWNoYXJvZmZdIGF0dHJpYnV0ZSBET01TdHJpbmcgY2hPZmY7CiAgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdkFsaWduOwogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBIVE1MQ29sbGVjdGlvbiByb3dzOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIEhUTUxFbGVt
ZW50IGluc2VydFJvdyhvcHRpb25hbCBsb25nIGluZGV4KTsKKyAgICBbUmFpc2VzRXhjZXB0aW9u
XSBIVE1MRWxlbWVudCBpbnNlcnRSb3cob3B0aW9uYWwgbG9uZyBpbmRleCA9IC0xKTsKICAgICBb
UmFpc2VzRXhjZXB0aW9uXSB2b2lkIGRlbGV0ZVJvdyhbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlv
bmFsIGxvbmcgaW5kZXgpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKaW5kZXggYjJjMDMyY2M1NzNkMzIy
MTBiNWNiNmFiMjJlMTI2NDFhYzVhNjg0MS4uNWRlMzVlZDY5ZmE4MDA3NzA0Yjc4NDNmMzA5MTkx
ZGRhNDk5MWIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCkBAIC04MCwxOCArODAsMTggQEAgaW50ZXJmYWNl
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQgewogICAg
ICAgICB1bnJlc3RyaWN0ZWQgZmxvYXQgZW5kQW5nbGUsIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0
aW9uYWwgYm9vbGVhbiBhbnRpY2xvY2t3aXNlKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lk
IGVsbGlwc2UodW5yZXN0cmljdGVkIGZsb2F0IHgsIHVucmVzdHJpY3RlZCBmbG9hdCB5LCB1bnJl
c3RyaWN0ZWQgZmxvYXQgcmFkaXVzWCwgdW5yZXN0cmljdGVkIGZsb2F0IHJhZGl1c1ksIHVucmVz
dHJpY3RlZCBmbG9hdCByb3RhdGlvbiwgdW5yZXN0cmljdGVkIGZsb2F0IHN0YXJ0QW5nbGUsIHVu
cmVzdHJpY3RlZCBmbG9hdCBlbmRBbmdsZSwgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBi
b29sZWFuIGFudGljbG9ja3dpc2UpOwogCi0gICAgdm9pZCBmaWxsKERPTVBhdGggcGF0aCwgb3B0
aW9uYWwgQ2FudmFzV2luZGluZ1J1bGUgd2luZGluZyk7CisgICAgdm9pZCBmaWxsKERPTVBhdGgg
cGF0aCwgb3B0aW9uYWwgQ2FudmFzV2luZGluZ1J1bGUgd2luZGluZyA9ICJub256ZXJvIik7CiAg
ICAgdm9pZCBzdHJva2UoRE9NUGF0aCBwYXRoKTsKLSAgICB2b2lkIGNsaXAoRE9NUGF0aCBwYXRo
LCBvcHRpb25hbCBDYW52YXNXaW5kaW5nUnVsZSB3aW5kaW5nKTsKKyAgICB2b2lkIGNsaXAoRE9N
UGF0aCBwYXRoLCBvcHRpb25hbCBDYW52YXNXaW5kaW5nUnVsZSB3aW5kaW5nID0gIm5vbnplcm8i
KTsKIAotICAgIHZvaWQgZmlsbChvcHRpb25hbCBDYW52YXNXaW5kaW5nUnVsZSB3aW5kaW5nKTsK
KyAgICB2b2lkIGZpbGwob3B0aW9uYWwgQ2FudmFzV2luZGluZ1J1bGUgd2luZGluZyA9ICJub256
ZXJvIik7CiAgICAgdm9pZCBzdHJva2UoKTsKLSAgICB2b2lkIGNsaXAob3B0aW9uYWwgQ2FudmFz
V2luZGluZ1J1bGUgd2luZGluZyk7CisgICAgdm9pZCBjbGlwKG9wdGlvbmFsIENhbnZhc1dpbmRp
bmdSdWxlIHdpbmRpbmcgPSAibm9uemVybyIpOwogCi0gICAgYm9vbGVhbiBpc1BvaW50SW5QYXRo
KERPTVBhdGggcGF0aCwgdW5yZXN0cmljdGVkIGZsb2F0IHgsIHVucmVzdHJpY3RlZCBmbG9hdCB5
LCBvcHRpb25hbCBDYW52YXNXaW5kaW5nUnVsZSB3aW5kaW5nKTsKKyAgICBib29sZWFuIGlzUG9p
bnRJblBhdGgoRE9NUGF0aCBwYXRoLCB1bnJlc3RyaWN0ZWQgZmxvYXQgeCwgdW5yZXN0cmljdGVk
IGZsb2F0IHksIG9wdGlvbmFsIENhbnZhc1dpbmRpbmdSdWxlIHdpbmRpbmcgPSAibm9uemVybyIp
OwogICAgIGJvb2xlYW4gaXNQb2ludEluU3Ryb2tlKERPTVBhdGggcGF0aCwgdW5yZXN0cmljdGVk
IGZsb2F0IHgsIHVucmVzdHJpY3RlZCBmbG9hdCB5KTsKIAotICAgIGJvb2xlYW4gaXNQb2ludElu
UGF0aCh1bnJlc3RyaWN0ZWQgZmxvYXQgeCwgdW5yZXN0cmljdGVkIGZsb2F0IHksIG9wdGlvbmFs
IENhbnZhc1dpbmRpbmdSdWxlIHdpbmRpbmcpOworICAgIGJvb2xlYW4gaXNQb2ludEluUGF0aCh1
bnJlc3RyaWN0ZWQgZmxvYXQgeCwgdW5yZXN0cmljdGVkIGZsb2F0IHksIG9wdGlvbmFsIENhbnZh
c1dpbmRpbmdSdWxlIHdpbmRpbmcgPSAibm9uemVybyIpOwogICAgIGJvb2xlYW4gaXNQb2ludElu
U3Ryb2tlKHVucmVzdHJpY3RlZCBmbG9hdCB4LCB1bnJlc3RyaWN0ZWQgZmxvYXQgeSk7CiAKICAg
ICAvLyB0ZXh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMWU5ZjMzNjk2Y2VhMzgyZWQ2YmI0OTA1ZDQ0Y2UyYzBhMWRkODY3
NS4uYzY2ODU3ZWI4NjkwM2I2NmNlZjliODJlNTM4Njc0MDZlYzYwMTgyNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDE1LTA5LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dlYklETF0gU3BlY2lmeSBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZXMgd2hlcmUg
aXQgaXMgdXNlZnVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDkzMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTQ1NjAwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZCB0ZXN0IHRvIGNoZWNrIHRo
ZSBiZWhhdmlvciBvZiBwYXNzaW5nIHVuZGVmaW5lZCBmb3IgdmFyaW91cyBvcHRpb25hbAorICAg
ICAgICBwYXJhbWV0ZXJzIHRoYXQgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgaW4gdGhlIEhUTUwgc3Bl
Y2lmaWNhdGlvbi4KKworICAgICAgICAqIGZhc3QvaHRtbC91bmRlZmluZWQtcGFyYW1ldGVyLWRl
ZmF1bHQtdmFsdWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2h0bWwvdW5k
ZWZpbmVkLXBhcmFtZXRlci1kZWZhdWx0LXZhbHVlLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA5LTE4
ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBOdWxsIGRlcmVmZXJl
bmNlIGxvYWRpbmcgQmxpbmsgbGF5b3V0IHRlc3Qgc3ZnL2ZpbHRlcnMvZmVJbWFnZS1mYWlsZWQt
bG9hZC1jcmFzaC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtY2xpcC1wYXRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZh
cy1jbGlwLXBhdGgtZXhwZWN0ZWQudHh0CmluZGV4IDAzYTNkNDU1MmJiMThkMDI2MDNhZGFjMjg2
YTFiNDFjZjAxMDUzODYuLjAwNGIxMTEzNjQ3MDQ5ZGNjYjU1ZDU5MzI5MjdjNWMxMTRjMDU1NmUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jbGlwLXBhdGgtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jbGlwLXBhdGgt
ZXhwZWN0ZWQudHh0CkBAIC0yNyw3ICsyNyw3IEBAIFBBU1MgYXJlYUNvbG9yKGltYWdlRGF0YS5k
YXRhLCB7cjowLGc6MCxiOjAsYTowfSkgaXMgdHJ1ZQogUEFTUyBjdHguY2xpcCgwKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnd2luZGluZycpIHRvIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jbGlwIG11c3QgYmUgb25lIG9mOiAibm9uemVybyIsICJldmVub2RkIi4K
IFBBU1MgY3R4LmNsaXAobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQg
MSAoJ3dpbmRpbmcnKSB0byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY2xpcCBtdXN0IGJlIG9u
ZSBvZjogIm5vbnplcm8iLCAiZXZlbm9kZCIuCiBQQVNTIGN0eC5jbGlwKCdwYXRoMmQnKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnd2luZGluZycpIHRvIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jbGlwIG11c3QgYmUgb25lIG9mOiAibm9uemVybyIsICJldmVub2Rk
Ii4KLVBBU1MgY3R4LmNsaXAodW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBB
cmd1bWVudCAxICgnd2luZGluZycpIHRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jbGlwIG11
c3QgYmUgb25lIG9mOiAibm9uemVybyIsICJldmVub2RkIi4KK1BBU1MgY3R4LmNsaXAodW5kZWZp
bmVkKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgY3R4LmNsaXAoTnVtYmVyLk1BWF9W
QUxVRSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3dpbmRpbmcnKSB0
byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY2xpcCBtdXN0IGJlIG9uZSBvZjogIm5vbnplcm8i
LCAiZXZlbm9kZCIuCiBQQVNTIGN0eC5jbGlwKGZ1bmN0aW9uKCkge30pIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCd3aW5kaW5nJykgdG8gQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNsaXAgbXVzdCBiZSBvbmUgb2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgogUEFTUyBj
dHguY2xpcChmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3dp
bmRpbmcnKSB0byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY2xpcCBtdXN0IGJlIG9uZSBvZjog
Im5vbnplcm8iLCAiZXZlbm9kZCIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9jYW52YXMtZmlsbC1wYXRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1maWxsLXBhdGgtZXhwZWN0ZWQudHh0CmluZGV4IGE0OTc2OThmOWQyMzhlYTUzYTMz
NmI0MjkyZWY1MWQ3MjA0ZWJkNzMuLjg2NDFlN2EyOWMyMDc3Y2U5Zjc0OTJhM2Q4ZGMzNGYxYTVk
MWRlYzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1maWxsLXBh
dGgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1maWxs
LXBhdGgtZXhwZWN0ZWQudHh0CkBAIC0yNiw3ICsyNiw3IEBAIFBBU1MgYXJlYUNvbG9yKGltYWdl
RGF0YS5kYXRhLCB7cjowLGc6MCxiOjAsYTowfSkgaXMgdHJ1ZQogUEFTUyBjdHguZmlsbCgwKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnd2luZGluZycpIHRvIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5maWxsIG11c3QgYmUgb25lIG9mOiAibm9uemVybyIsICJldmVu
b2RkIi4KIFBBU1MgY3R4LmZpbGwobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJn
dW1lbnQgMSAoJ3dpbmRpbmcnKSB0byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuZmlsbCBtdXN0
IGJlIG9uZSBvZjogIm5vbnplcm8iLCAiZXZlbm9kZCIuCiBQQVNTIGN0eC5maWxsKCdwYXRoMmQn
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnd2luZGluZycpIHRvIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5maWxsIG11c3QgYmUgb25lIG9mOiAibm9uemVybyIsICJl
dmVub2RkIi4KLVBBU1MgY3R4LmZpbGwodW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBBcmd1bWVudCAxICgnd2luZGluZycpIHRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5m
aWxsIG11c3QgYmUgb25lIG9mOiAibm9uemVybyIsICJldmVub2RkIi4KK1BBU1MgY3R4LmZpbGwo
dW5kZWZpbmVkKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgY3R4LmZpbGwoTnVtYmVy
Lk1BWF9WQUxVRSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3dpbmRp
bmcnKSB0byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuZmlsbCBtdXN0IGJlIG9uZSBvZjogIm5v
bnplcm8iLCAiZXZlbm9kZCIuCiBQQVNTIGN0eC5maWxsKGZ1bmN0aW9uKCkge30pIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCd3aW5kaW5nJykgdG8gQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmZpbGwgbXVzdCBiZSBvbmUgb2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgog
UEFTUyBjdHguZmlsbChmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQg
MSAoJ3dpbmRpbmcnKSB0byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuZmlsbCBtdXN0IGJlIG9u
ZSBvZjogIm5vbnplcm8iLCAiZXZlbm9kZCIuCkBAIC0zNCw3ICszNCw3IEBAIFBBU1MgY3R4LmZp
bGwobmV3IERhdGUoKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3dp
bmRpbmcnKSB0byBDCiBQQVNTIGN0eC5maWxsKDAsICdub256ZXJvJykgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgY3R4LmZpbGwobnVsbCwgJ25vbnplcm8nKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBjdHguZmlsbCgncGF0
aDJkJywgJ25vbnplcm8nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgot
UEFTUyBjdHguZmlsbCh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDEgKCd3aW5kaW5nJykgdG8gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmZpbGwgbXVzdCBi
ZSBvbmUgb2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgorRkFJTCBjdHguZmlsbCh1bmRlZmluZWQp
IHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uIFdhcyB1bmRlZmluZWQuCiBQQVNTIGN0eC5maWxs
KE51bWJlci5NQVhfVkFMVUUsICdub256ZXJvJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KIFBBU1MgY3R4LmZpbGwoZnVuY3Rpb24oKSB7fSwgJ25vbnplcm8nKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBjdHguZmlsbChmYWxzZSwg
J25vbnplcm8nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1jbGlwLXBh
dGguanMgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWNsaXAt
cGF0aC5qcwppbmRleCA2Mjk1MWRiZDkzNWJmMjdhMDQ0NGM5M2EwZWVmNDRkYWRlYjEwYmVlLi5m
NjA0ZTdiZGIwYzVhOTg0ZjFiNWNjNjE2YzM0YjAzZjA3MWNmZjFhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWNsaXAtcGF0aC5qcworKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWNsaXAtcGF0aC5q
cwpAQCAtMTEyLDcgKzExMiw3IEBAIHNob3VsZEJlKCdhcmVhQ29sb3IoaW1hZ2VEYXRhLmRhdGEs
IHtyOjAsZzowLGI6MCxhOjB9KScsICd0cnVlJyk7CiBzaG91bGRUaHJvdygiY3R4LmNsaXAoMCki
KTsKIHNob3VsZFRocm93KCJjdHguY2xpcChudWxsKSIpOwogc2hvdWxkVGhyb3coImN0eC5jbGlw
KCdwYXRoMmQnKSIpOwotc2hvdWxkVGhyb3coImN0eC5jbGlwKHVuZGVmaW5lZCkiKTsKK3Nob3Vs
ZE5vdFRocm93KCJjdHguY2xpcCh1bmRlZmluZWQpIik7CiBzaG91bGRUaHJvdygiY3R4LmNsaXAo
TnVtYmVyLk1BWF9WQUxVRSkiKTsKIHNob3VsZFRocm93KCJjdHguY2xpcChmdW5jdGlvbigpIHt9
KSIpOwogc2hvdWxkVGhyb3coImN0eC5jbGlwKGZhbHNlKSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1maWxsLXBhdGguanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWZpbGwtcGF0aC5qcwppbmRl
eCA1MmFlMWYxOTkxNzc0NGIyOGNjZmUxMDAyZmVlZGMxMzE3NmJjNWE1Li5hOGMzMGMxNjRjMGM4
Y2JlOGEyZGY3ZDNkNjRkNjA5OGY3M2JhMTc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWZpbGwtcGF0aC5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWZpbGwtcGF0aC5qcwpAQCAtOTQsNyAr
OTQsNyBAQCBzaG91bGRCZSgnYXJlYUNvbG9yKGltYWdlRGF0YS5kYXRhLCB7cjowLGc6MCxiOjAs
YTowfSknLCAndHJ1ZScpOwogc2hvdWxkVGhyb3coImN0eC5maWxsKDApIik7CiBzaG91bGRUaHJv
dygiY3R4LmZpbGwobnVsbCkiKTsKIHNob3VsZFRocm93KCJjdHguZmlsbCgncGF0aDJkJykiKTsK
LXNob3VsZFRocm93KCJjdHguZmlsbCh1bmRlZmluZWQpIik7CitzaG91bGROb3RUaHJvdygiY3R4
LmZpbGwodW5kZWZpbmVkKSIpOwogc2hvdWxkVGhyb3coImN0eC5maWxsKE51bWJlci5NQVhfVkFM
VUUpIik7CiBzaG91bGRUaHJvdygiY3R4LmZpbGwoZnVuY3Rpb24oKSB7fSkiKTsKIHNob3VsZFRo
cm93KCJjdHguZmlsbChmYWxzZSkiKTsKQEAgLTEwNiw0ICsxMDYsNCBAQCBzaG91bGRUaHJvdygi
Y3R4LmZpbGwodW5kZWZpbmVkKSIpOwogc2hvdWxkVGhyb3coImN0eC5maWxsKE51bWJlci5NQVhf
VkFMVUUsICdub256ZXJvJykiKTsKIHNob3VsZFRocm93KCJjdHguZmlsbChmdW5jdGlvbigpIHt9
LCAnbm9uemVybycpIik7CiBzaG91bGRUaHJvdygiY3R4LmZpbGwoZmFsc2UsICdub256ZXJvJyki
KTsKLXNob3VsZFRocm93KCJjdHguZmlsbChuZXcgRGF0ZSgpLCAnbm9uemVybycpIik7ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQorc2hvdWxkVGhyb3coImN0eC5maWxsKG5ldyBEYXRlKCks
ICdub256ZXJvJykiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC91bmRlZmlu
ZWQtcGFyYW1ldGVyLWRlZmF1bHQtdmFsdWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9odG1sL3VuZGVmaW5lZC1wYXJhbWV0ZXItZGVmYXVsdC12YWx1ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWIyZjkwY2YxZTYwZTcwMjFmYjg2MjkwNzkxYzlkNWE4YTg0NDQ5OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC91bmRlZmluZWQtcGFyYW1ldGVyLWRl
ZmF1bHQtdmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTMgQEAKK0NoZWNrcyB0aGUgYmVo
YXZpb3Igb2YgcGFzc2luZyB1bmRlZmluZWQgZm9yIG9wdGlvbmFsIHBhcmFtZXRlcnMgdGhhdCBo
YXZlIGRlZmF1bHQgdmFsdWVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisqIEhU
TUxJbnB1dEVsZW1lbnQuc3RlcFVwKG9wdGlvbmFsIGxvbmcgbiA9IDEpCitQQVNTIHRlc3ROdW1i
ZXIudmFsdWUgaXMgIjAiCit0ZXN0TnVtYmVyLnN0ZXBVcCgpCitQQVNTIHRlc3ROdW1iZXIudmFs
dWUgaXMgIjEiCit0ZXN0TnVtYmVyLnN0ZXBVcCh1bmRlZmluZWQpCitQQVNTIHRlc3ROdW1iZXIu
dmFsdWUgaXMgIjIiCisKKyogSFRNTElucHV0RWxlbWVudC5zdGVwRG93bihvcHRpb25hbCBsb25n
IG4gPSAxKQordGVzdE51bWJlci5zdGVwRG93bigpCitQQVNTIHRlc3ROdW1iZXIudmFsdWUgaXMg
IjEiCit0ZXN0TnVtYmVyLnN0ZXBEb3duKHVuZGVmaW5lZCkKK1BBU1MgdGVzdE51bWJlci52YWx1
ZSBpcyAiMCIKKworKiBIVE1MVGFibGVFbGVtZW50Lmluc2VydFJvdyhvcHRpb25hbCBsb25nIGlu
ZGV4ID0gLTEpCituZXdSb3cxID0gdGVzdFRhYmxlLmluc2VydFJvdygpCitQQVNTIHRlc3RUYWJs
ZS5yb3dzW3Rlc3RUYWJsZS5yb3dzLmxlbmd0aCAtIDFdIGlzIG5ld1JvdzEKK25ld1JvdzIgPSB0
ZXN0VGFibGUuaW5zZXJ0Um93KHVuZGVmaW5lZCkKK1BBU1MgdGVzdFRhYmxlLnJvd3NbdGVzdFRh
YmxlLnJvd3MubGVuZ3RoIC0gMV0gaXMgbmV3Um93MgorCisqIEhUTUxUYWJsZVJvd0VsZW1lbnQu
aW5zZXJ0Q2VsbChvcHRpb25hbCBsb25nIGluZGV4ID0gLTEpCituZXdDZWxsMSA9IHRlc3RSb3cu
aW5zZXJ0Q2VsbCgpCitQQVNTIHRlc3RSb3cuY2VsbHNbdGVzdFJvdy5jZWxscy5sZW5ndGggLSAx
XSBpcyBuZXdDZWxsMQorbmV3Q2VsbDIgPSB0ZXN0Um93Lmluc2VydENlbGwodW5kZWZpbmVkKQor
UEFTUyB0ZXN0Um93LmNlbGxzW3Rlc3RSb3cuY2VsbHMubGVuZ3RoIC0gMV0gaXMgbmV3Q2VsbDIK
KworKiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pbnNlcnRSb3cob3B0aW9uYWwgbG9uZyBpbmRl
eCA9IC0xKQorbmV3Um93MyA9IHRlc3RUYWJsZVNlY3Rpb24uaW5zZXJ0Um93KCkKK1BBU1MgdGVz
dFRhYmxlLnJvd3NbdGVzdFRhYmxlU2VjdGlvbi5yb3dzLmxlbmd0aCAtIDFdIGlzIG5ld1JvdzMK
K25ld1JvdzQgPSB0ZXN0VGFibGVTZWN0aW9uLmluc2VydFJvdyh1bmRlZmluZWQpCitQQVNTIHRl
c3RUYWJsZS5yb3dzW3Rlc3RUYWJsZVNlY3Rpb24ucm93cy5sZW5ndGggLSAxXSBpcyBuZXdSb3c0
CisKKyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmZpbGwob3B0aW9uYWwgQ2FudmFzV2luZGlu
Z1J1bGUgd2luZGluZyA9ICdub256ZXJvJykKK1BBU1MgY3R4LmZpbGwodW5kZWZpbmVkKSBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KKworKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuZmlsbChQ
YXRoMkQgcGF0aCwgb3B0aW9uYWwgQ2FudmFzV2luZGluZ1J1bGUgd2luZGluZyA9ICdub256ZXJv
JykKK1BBU1MgY3R4LmZpbGwocGF0aCwgdW5kZWZpbmVkKSBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KKworKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY2xpcChvcHRpb25hbCBDYW52YXNXaW5k
aW5nUnVsZSB3aW5kaW5nID0gJ25vbnplcm8nKQorUEFTUyBjdHguY2xpcCh1bmRlZmluZWQpIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorCisqIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jbGlw
KFBhdGgyRCBwYXRoLCBvcHRpb25hbCBDYW52YXNXaW5kaW5nUnVsZSB3aW5kaW5nID0gJ25vbnpl
cm8nKQorUEFTUyBjdHguY2xpcChwYXRoLCB1bmRlZmluZWQpIGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvdW5kZWZpbmVkLXBhcmFtZXRl
ci1kZWZhdWx0LXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvdW5kZWZpbmVkLXBh
cmFtZXRlci1kZWZhdWx0LXZhbHVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE1ZDJlZmVjYjlkOWYyN2I5
MmI1NmM4YjdkYzMwYjAzNGZhOGE1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaHRtbC91bmRlZmluZWQtcGFyYW1ldGVyLWRlZmF1bHQtdmFsdWUuaHRtbApAQCAtMCwwICsx
LDkzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxpbnB1dCB0eXBlPSJudW1i
ZXIiIGlkPSJ0ZXN0TnVtYmVyIiB2YWx1ZT0iMCI+CisKKzx0YWJsZSBpZD0idGVzdFRhYmxlIj4K
KyAgPHRoZWFkIGlkPSJ0ZXN0VGFibGVTZWN0aW9uIj4KKyAgICA8dHI+PC90cj4KKyAgPC90aGVh
ZD4KKyAgPHRyIGlkPSJ0ZXN0Um93Ij4KKyAgICA8dGQgaWQ9InRlc3RDZWxsIj48L3RkCisgIDwv
dHI+Cis8L3RhYmxlPgorCis8Y2FudmFzIGlkPSJ0ZXN0Q2FudmFzIiB3aWR0aD0iMTAwIiBoZWln
aHQ9IjEwMCI+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQ2hlY2tzIHRoZSBiZWhhdmlvciBv
ZiBwYXNzaW5nIHVuZGVmaW5lZCBmb3Igb3B0aW9uYWwgcGFyYW1ldGVycyB0aGF0IGhhdmUgZGVm
YXVsdCB2YWx1ZXMiKTsKKworZGVidWcoIiogSFRNTElucHV0RWxlbWVudC5zdGVwVXAob3B0aW9u
YWwgbG9uZyBuID0gMSkiKTsKK3ZhciB0ZXN0TnVtYmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRlc3ROdW1iZXIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdE51bWJlci52YWx1
ZSIsICIwIik7CitldmFsQW5kTG9nKCJ0ZXN0TnVtYmVyLnN0ZXBVcCgpIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInRlc3ROdW1iZXIudmFsdWUiLCAiMSIpOworZXZhbEFuZExvZygidGVzdE51
bWJlci5zdGVwVXAodW5kZWZpbmVkKSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0TnVt
YmVyLnZhbHVlIiwgIjIiKTsKKworZGVidWcoIiIpOworZGVidWcoIiogSFRNTElucHV0RWxlbWVu
dC5zdGVwRG93bihvcHRpb25hbCBsb25nIG4gPSAxKSIpOworZXZhbEFuZExvZygidGVzdE51bWJl
ci5zdGVwRG93bigpIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3ROdW1iZXIudmFsdWUi
LCAiMSIpOworZXZhbEFuZExvZygidGVzdE51bWJlci5zdGVwRG93bih1bmRlZmluZWQpIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3ROdW1iZXIudmFsdWUiLCAiMCIpOworCitkZWJ1Zygi
Iik7CitkZWJ1ZygiKiBIVE1MVGFibGVFbGVtZW50Lmluc2VydFJvdyhvcHRpb25hbCBsb25nIGlu
ZGV4ID0gLTEpIik7CisvLyBTaG91bGQgYXBwZW5kIHRoZSByb3cgaWYgaW5kZXggaXMgbWlzc2lu
ZyBvciB1bmRlZmluZWQuCit2YXIgdGVzdFRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3RUYWJsZSIpOwordmFyIG5ld1JvdzE7CitldmFsQW5kTG9nKCJuZXdSb3cxID0gdGVzdFRh
YmxlLmluc2VydFJvdygpIik7CitzaG91bGRCZSgidGVzdFRhYmxlLnJvd3NbdGVzdFRhYmxlLnJv
d3MubGVuZ3RoIC0gMV0iLCAibmV3Um93MSIpOwordmFyIG5ld1JvdzIKK2V2YWxBbmRMb2coIm5l
d1JvdzIgPSB0ZXN0VGFibGUuaW5zZXJ0Um93KHVuZGVmaW5lZCkiKTsKK3Nob3VsZEJlKCJ0ZXN0
VGFibGUucm93c1t0ZXN0VGFibGUucm93cy5sZW5ndGggLSAxXSIsICJuZXdSb3cyIik7CisKK2Rl
YnVnKCIiKTsKK2RlYnVnKCIqIEhUTUxUYWJsZVJvd0VsZW1lbnQuaW5zZXJ0Q2VsbChvcHRpb25h
bCBsb25nIGluZGV4ID0gLTEpIik7CisvLyBTaG91bGQgYXBwZW5kIHRoZSBjZWxsIGlmIGluZGV4
IGlzIG1pc3Npbmcgb3IgdW5kZWZpbmVkLgordmFyIHRlc3RSb3cgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdFJvdyIpOwordmFyIG5ld0NlbGwxOworZXZhbEFuZExvZygibmV3Q2VsbDEg
PSB0ZXN0Um93Lmluc2VydENlbGwoKSIpOworc2hvdWxkQmUoInRlc3RSb3cuY2VsbHNbdGVzdFJv
dy5jZWxscy5sZW5ndGggLSAxXSIsICJuZXdDZWxsMSIpOwordmFyIG5ld0NlbGwyOworZXZhbEFu
ZExvZygibmV3Q2VsbDIgPSB0ZXN0Um93Lmluc2VydENlbGwodW5kZWZpbmVkKSIpOworc2hvdWxk
QmUoInRlc3RSb3cuY2VsbHNbdGVzdFJvdy5jZWxscy5sZW5ndGggLSAxXSIsICJuZXdDZWxsMiIp
OworCitkZWJ1ZygiIik7CitkZWJ1ZygiKiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pbnNlcnRS
b3cob3B0aW9uYWwgbG9uZyBpbmRleCA9IC0xKSIpOworLy8gU2hvdWxkIGFwcGVuZCB0aGUgcm93
IGlmIGluZGV4IGlzIG1pc3Npbmcgb3IgdW5kZWZpbmVkLgordmFyIHRlc3RUYWJsZVNlY3Rpb24g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdFRhYmxlU2VjdGlvbiIpOwordmFyIG5ld1Jv
dzM7CitldmFsQW5kTG9nKCJuZXdSb3czID0gdGVzdFRhYmxlU2VjdGlvbi5pbnNlcnRSb3coKSIp
Oworc2hvdWxkQmUoInRlc3RUYWJsZS5yb3dzW3Rlc3RUYWJsZVNlY3Rpb24ucm93cy5sZW5ndGgg
LSAxXSIsICJuZXdSb3czIik7Cit2YXIgbmV3Um93NDsKK2V2YWxBbmRMb2coIm5ld1JvdzQgPSB0
ZXN0VGFibGVTZWN0aW9uLmluc2VydFJvdyh1bmRlZmluZWQpIik7CitzaG91bGRCZSgidGVzdFRh
YmxlLnJvd3NbdGVzdFRhYmxlU2VjdGlvbi5yb3dzLmxlbmd0aCAtIDFdIiwgIm5ld1JvdzQiKTsK
KworZGVidWcoIiIpOworZGVidWcoIiogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmZpbGwob3B0
aW9uYWwgQ2FudmFzV2luZGluZ1J1bGUgd2luZGluZyA9ICdub256ZXJvJykiKTsKK3ZhciBjdHgg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdENhbnZhcyIpLmdldENvbnRleHQoIjJkIik7
CitjdHgucmVjdCgwLCAwLCAxNTAsIDEwMCk7CitjdHguZmlsbFN0eWxlID0gInJlZCI7CitzaG91
bGROb3RUaHJvdygiY3R4LmZpbGwodW5kZWZpbmVkKSIpOworCitkZWJ1ZygiIik7CitkZWJ1Zygi
KiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuZmlsbChQYXRoMkQgcGF0aCwgb3B0aW9uYWwgQ2Fu
dmFzV2luZGluZ1J1bGUgd2luZGluZyA9ICdub256ZXJvJykiKTsKK3ZhciBwYXRoID0gbmV3IFBh
dGgyRCgpOworc2hvdWxkTm90VGhyb3coImN0eC5maWxsKHBhdGgsIHVuZGVmaW5lZCkiKTsKKwor
ZGVidWcoIiIpOworZGVidWcoIiogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNsaXAob3B0aW9u
YWwgQ2FudmFzV2luZGluZ1J1bGUgd2luZGluZyA9ICdub256ZXJvJykiKTsKK3Nob3VsZE5vdFRo
cm93KCJjdHguY2xpcCh1bmRlZmluZWQpIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCIqIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5jbGlwKFBhdGgyRCBwYXRoLCBvcHRpb25hbCBDYW52YXNXaW5k
aW5nUnVsZSB3aW5kaW5nID0gJ25vbnplcm8nKSIpOworc2hvdWxkTm90VGhyb3coImN0eC5jbGlw
KHBhdGgsIHVuZGVmaW5lZCkiKTsKKworZGVidWcoIiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>